Archive for the ‘未分类’ category

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

6 1 月, 2011

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

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

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

6 1 月, 2011

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

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

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

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

6 1 月, 2011

《古月》新的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);
}

《古月》将引入第三方库《OpenGL Mathematics (GLM)》

4 1 月, 2011

GLM在设计上完全遵照OpenGL Shading Language风格,并使用开放的MIT授权协议。

以下截图为新渲染引擎使用GLM矩阵控制移动、缩放、旋转后的效果。

新渲染引擎所使用的矩阵处理已经全面转为使用GLM,以下为GLM介绍:

OpenGL Mathematics (GLM) is a C++ mathematics library for 3D applications based on the OpenGL Shading Language (GLSL) specification.

GLM provides 3D programmers with math classes and functions that are similar to GLSL or any high level GPU programming language. The idea is to have a library that has identical naming conventions and functionalities than GLSL so that when developers know GLSL, they know how to use GLM.

However, this project isn’t limited by GLSL features. An extension system, based on the GLSL extension conventions, allows extended capabilities.

This library can be used with OpenGL but also for software rendering (Raytracing / Rasterisation), image processing and as much contexts as a simple math library could be used for.

GLM is written as a platform independent library and supports the following compilers:

· GNU GCC 3.4 and higher

· Microsoft Visual Studio 8.0 and higher

The source code is under the MIT licence.

Any feedback is welcome and can be sent to g.truc.creation[at]gmail.com.

《古月》控制台版与普通图形版再分离

3 1 月, 2011

之前使用《古月》开发控制台应用程序,仍然使用普通版的FlowObject、FlowControl、ObjectControl。使得大量多余代码存在,虽不会被编译进最终程序,但仍可能引起诸多不便与一些完美主义者的不爽快。此次更新添加了新的ConsoleFlowObject、ConsoleFlowControl、ConsoleObjectControl为控制台版专用处理类。并将部分代码从原先的BaseApplication移到ConsoleApplication与GraphicsApplication,使用各位开发者原有程序仅需要做最小的变动即可适应新的SDK.(将控制台程序中用到的以上三个类名进行替换即可,普遍情况仅需替换FlowObject到ConsoleFlowObject。)

PopCaps《宝石迷阵3》

2 1 月, 2011

第二日继续,终于no.1

昨天打PopCaps的《宝石迷阵3》,知道排行榜是全球联网的,无意中突然发现自己进前五了,还好几次。

新3D渲染器今日进度(WIP),可使用矩阵定位

30 12 月, 2010

旧版的3D渲染器公开时,曾有一个类似的演示和截图。不过那一版的旋转摆放以及缩放是直接算出来位置画的。而这一版所有的立方体都是在0,0位置上绘制,最终通过变换矩阵指定到对应位置以及同时控制了缩放。

新3D渲染器今日进度(WIP),渲染基本元素

28 12 月, 2010

已经可以渲染最基本的元素了,制作了坐标轴、平面网格、立方体三种做为参照用基本元素。但还没有坐标变换、贴图、光照、场景管理等处理。

SystemInitInfo增加命令行参数导入支持

3 12 月, 2010

从R48开始,SystemInitInfo增加Init(int argc,wchar_t **)函数,用于导入命令行参数,具体参数格式如下:

-no_check 不检测CPU、操作系统
-no_show_error 不显示错误信息
-joystick 使用游杆
-no_enum_audio 不检测音频设备
-audio_device [name] 指定音频设备
-top_most 设定窗口永远在最上
-no_app_task_bar 不在任务栏显示
-fullscreen 全屏模式
-res [width height] 设定全屏显示尺寸
-bit [bit] 设定全屏色彩位数
-vsync [vsync] 设定全屏屏幕垂直刷新率
-chsfnt [name] 指定默认GUI中文字体名称
-engfnt [name] 指定默认GUI英文字体名称
-no_vbo 不使用Vertex Buffer Object
-no_fbo 不使用Fream Buffer Object
-no_pbo 不使用Pixel Buffer Object
-no_glsl 不使用GLSL
-no_npot 不使用非2次幂贴图

带简易物理模拟的《弹球》游戏:时间、淡出、重力、推力

1 12 月, 2010

果然加了冲撞力的《弹球》效果比较有趣,后面附上视频。

游戏本体可在这里下载:http://www.hyzgame.org.cn/Download/CMBall2.rar

鄂ICP备09027626号