3D 引擎
do多多do
这个作者很懒,什么都没留下…
展开
-
什么是3D引擎
通俗的来说,3D引擎就是一个能够在屏幕上显示3D图像的软件。为达到此目的,现代的3D引擎都是使用一套API通过驱动或者运行时来和硬件进行交互。一个3D引擎可能是一个游戏引擎的一部分,但是游戏引擎也可以不需要3D引擎。 3D引擎使用的API较为底层,用来处理Vertex Buffers, Index Buffers, Shaders, Textures, Render Targets等;经过封翻译 2013-02-05 10:54:34 · 3301 阅读 · 0 评论 -
3D API
目前主要有两套3D API:Direct3D和OpenGL。我不想卷入哪个更加优秀的争论。他们都针对相同的底层硬件提供了接口,区别在于接口的质量和简单程度以及他们的实现(驱动),而不是功能特性。 微软的Direct3D提供了一套相当好的接口(第九版和第十版),但是深受函数调用问题模型之害:绘制函数需要强制内核上下文切换,这是一个相当大的性能开销。另外一个缺陷是它提供的API在版本之间变换,这翻译 2013-02-05 14:17:54 · 883 阅读 · 0 评论 -
3D 引擎做什么
3D引擎的任务是在屏幕上显示整个世界,更为精确的应该是显示用于感兴趣的部分。这意味着,3D引擎只需要显示整个世界的一个子集,这个子集是用户视野当中可见的部分。 所以,3D引擎的一个任务就是以尽可能快的速度找出整个游戏世界中的可见部分的这个子集。为了达到这个目的,我们将世界分成多个区域,每个区域中保存了该区域中包含的3D物体。然后,引擎会通过照相机的视点(camera point of vie翻译 2013-02-05 11:30:48 · 932 阅读 · 0 评论 -
场景管理
场景管理是3D引擎的一个核心部分,因为它是引擎的用户每天都要用到的一个特性。通常的做法是通过场景图(可能这样称呼不太准确)来实现,场景图就是一个数据结构,有:层次结构(火炬在英雄的手中),空间结构(一个兽人在英雄的旁边)以及状态结构(火炬当中的火是alpha混合的)。 这样一个结构的问题是,它试图成为一个万事通,但是最后在任何一方面都没有优势。互联网上已经有过许多对此的讨论,一般的共识是这样翻译 2013-02-06 11:29:41 · 1443 阅读 · 0 评论 -
FreeType使用步骤
1.初始化库FT_Library library;FT_Face face;FT_Error error = FT_Init_FreeType( &library ); 2. 加载相应的字体文件FT_New_Face( library, "/usr/share/fonts/truetype/arial.ttf", 0, &face );3. 设置字体的大小转载 2013-03-14 16:51:24 · 3420 阅读 · 0 评论 -
场景树和空间图
场景树这是整个场景的一个层次结构的表示,通过一棵简单的树来实现:一个“节点”有一个父亲和任意数量的孩子。这个数据结构用来管理层次结构的物体变换(位置和方向),以及他们的动画。在FlExtEngine中,CSceneNode类拥有一个update方法,用于对node的变换进行更新;它还有一个accept方法,这样就可以使用访问者模式以实现更好的扩展性。空间图这是整个场景的一个空间关系翻译 2013-02-06 05:20:36 · 5604 阅读 · 0 评论