0%
BIGWORLD 服务端编程指南01
BIGWORLD 客户端编程指南03
BIGWORLD_05_Client Programming Guide_03
22. 3D Engine (Moo)
Moo是一个使用DirectX 9的3D引擎,提供了基于资源、对象和设备的服务,但不包括场景数据库。
基于资源的服务包括顶点缓冲区、索引缓冲区、顶点着色器、像素着色器和效果的生成和管理。纹理被自动压缩和存储。所有不受Direct3D管理的资源都由Moo管理,允许大量数据进出使用。
基于对象的服务包括完整的动画系统、带皮肤的两足动物、复合骨骼几何和专门的地形渲染。Moo公开了一个视觉的概念,一个重要的中层几何结构,它位于场景数据库之下,并大大简化了场景数据库代码。
基于设备的服务包括渲染状态的细节控制,封装在材料和着色器中。3D窗口被封装为一个RenderContext,并提供了渲染几何图形和存储照明状态的参考框架。
最后,Moo提供了基本的alpha混合排序三角形管道,不幸的是,Direct3D或(大多数)硬件仍然没有提供这种服务。
需要注意的是,在可能的情况下,Moo使用底层的Direct3DX结构,如D3DXMatrix,D3DXVector和D3DXQuaternion。DirectX团队不断改进这些数学类的实现,它们的功能经常利用处理器特定的指令,如MMX, SIMD和3DNow!利用这些工程师的努力是谨慎的。