存档在 2011年1月6日

《古月》R48将不提供C++Builder版本

2011年1月6日

这是《古月》引擎自1998年创建以来,首次不再发布Borland C++/C++Builder版。

不再发布并不是因为新版本不再支持C++Builder。而是因为Embarcadero公司拒绝向中国大陆地区的个人提供C++Builder授权,我方在尝试向美国Embarcadero直接购买C++Builder授权无果后,决定暂时停止发布《古月》的C++Builder版本。

旧绘图模式最终版:《古月》R48即将发布

2011年1月6日

源于新渲染器的开发,新的绘图模式更加直观,能够充分发挥出新硬件的效能。然后,这种新的渲染模式与旧的绘图代码存在冲突,无法并存。

所以,我们将在此发布基于旧渲染的最新版也是最终版《古月》引擎。第48个版本,从2003年末至今,历时7年,超过20款软件使用。

基于新渲染器的《古月》引擎将不再支持直接访问OpenGL API,同时大量的OpenGL 直接功能映射模块将会被删除。所有的绘制操作均会抽像化与直观化,支持多种级别的图形API。

新3D渲染器今日进度(WIP),接管所有矩阵计算

2011年1月6日

《古月》新的3D渲染器将会提供固定管线与可编程管线两种版本,其中固定管线模式使用OpenGL兼容模式、可编程管线使用OpenGL核心模式。为了在最大程度将双版本的处理统一,我方使用了类似可编程管线中的手法:不再使用OpenGL/GLU所提供的矩阵管理与变换函数,固定管线仅在最后一刻设置GL_PROJECTION与GL_MODELVIEW矩阵并渲染。其中被接管的函数包括:gluPerspective、glOrtho/gluOrtho、glFrustum、gluLookAt、glPushMatrix、glPopMatrix等等。

见如下一段代码:
bool OpenGLCompatibilityRender::DirectRender(const glm::mat4 &ltw,Renderable *obj)
{
if(!obj)return(false);

ClearMatrix(GL_PROJECTION);
glLoadMatrixf(glm::value_ptr(projection_matrix));

ClearMatrix(GL_MODELVIEW);
glLoadMatrixf(glm::value_ptr(modelview_matrix*ltw));

/*//可以不设置PROJECTION,只在MODELVIEW里设置用以下方式
//ClearMatrix(GL_PROJECTION);
//ClearMatrix(GL_MODELVIEW);
//glLoadMatrixf(p);
//glMultMatrixf(m*ltw);
*/

bool result=DirectRender(obj);

ClearMatrix(GL_PROJECTION);
ClearMatrix(GL_MODELVIEW);

return(result);
}

鄂ICP备09027626号