3D正式成为REDirectUI的渲染选项
2010-10-20 10:11
267 查看
终于在REDirectUI中添加了D3D渲染方式,这只是底层渲染方式,仅作为第一步。启动渲染引擎时并不要求一定要使用D3D,只在显式指定使用D3D且机器具备硬件加速能力的情况下才使用D3D,否则仅使用DDRAW。
由于这只是UI引擎,并非为游戏而设计,因此更多的CPU时间用来处理标准窗口消息,而不是循环render frame。游戏的目的是处理大量的渲染细节,因此通常都是贴图再贴图,游戏程序员通常不考虑GDI,但REDirectUI非得考虑GDI不可,因为作为一个UI引擎,必须支持普通的子窗口和大量的ActiveX控件,这些东东都是以GDI为基础的。好在REDirectUI已经完美解决了GDI和D3D的结合问题,通过使用GDI桥(从未使用Sprite和D3DXFont),解决了用Sprite字体效果远不如GDI字体效果丰富的困惑,并且GDI桥的性能已经过极大优化。
* 选择D3D9的原因是,D3D9是最稳定最基础的版本,没有过多的高级封装。顶点着色器将在XML描述中支持,未来还将增加D2D在D10平台上提高性能。
* 大量使用MMX/SSE/SSE2/3DNow指令,用于解决GDI和D3D之间的快速沟通,测试性能良好,处理一张1024*768大小的32位位图所耗费的时间平均仅几毫秒。
* 在3D特性启动的情况下,UI元素的渲染是异步队列化执行的,任何UI元素随用随画,无需考虑是否放到WM_PAINT中完成。
* 除了某些矩阵变换API和静态纹理加载工具,所有其它D3DX的高级接口和封装工具都不使用,包括D3DXSprite和D3DXFont。
目前完成的只是3D最基础的渲染部分,用脚本控制3D场景和3D对象的工作尚未开始,3D-DOM还未构造,一旦这个特性完成,使用纯JS脚本就可以设计一套不错的3D游戏。
还是一句老话:REDirectUI必须是小巧而高性能的。这也是选择D3D9中最基础部分的原因。
特此留存,以备查询。
由于这只是UI引擎,并非为游戏而设计,因此更多的CPU时间用来处理标准窗口消息,而不是循环render frame。游戏的目的是处理大量的渲染细节,因此通常都是贴图再贴图,游戏程序员通常不考虑GDI,但REDirectUI非得考虑GDI不可,因为作为一个UI引擎,必须支持普通的子窗口和大量的ActiveX控件,这些东东都是以GDI为基础的。好在REDirectUI已经完美解决了GDI和D3D的结合问题,通过使用GDI桥(从未使用Sprite和D3DXFont),解决了用Sprite字体效果远不如GDI字体效果丰富的困惑,并且GDI桥的性能已经过极大优化。
* 选择D3D9的原因是,D3D9是最稳定最基础的版本,没有过多的高级封装。顶点着色器将在XML描述中支持,未来还将增加D2D在D10平台上提高性能。
* 大量使用MMX/SSE/SSE2/3DNow指令,用于解决GDI和D3D之间的快速沟通,测试性能良好,处理一张1024*768大小的32位位图所耗费的时间平均仅几毫秒。
* 在3D特性启动的情况下,UI元素的渲染是异步队列化执行的,任何UI元素随用随画,无需考虑是否放到WM_PAINT中完成。
* 除了某些矩阵变换API和静态纹理加载工具,所有其它D3DX的高级接口和封装工具都不使用,包括D3DXSprite和D3DXFont。
目前完成的只是3D最基础的渲染部分,用脚本控制3D场景和3D对象的工作尚未开始,3D-DOM还未构造,一旦这个特性完成,使用纯JS脚本就可以设计一套不错的3D游戏。
还是一句老话:REDirectUI必须是小巧而高性能的。这也是选择D3D9中最基础部分的原因。
特此留存,以备查询。
相关文章推荐
- 3D正式成为REDirectUI的渲染选项
- 3D UI 交互和 摄像机渲染控制
- 项目使用3D检查UI布局渲染
- Android应用程序UI硬件加速渲染环境初始化过程分析
- 3D渲染管线
- IOS开发----3D UI---CALayer的transform扩展
- HTML 5草案并没有成为正式标准
- (转)Unity3D NGUI在UI上显示3D模型
- 0基础如何成为UI/UE工程师?
- untiy初识之如何让3d物体显示在Ui中,
- untiy 3d ShaderLab_第8章_4_ 单光照贴图在Deferred 渲染路径下的实时阴影
- IOS 3D UI --- CALayer的透视投影
- 3D moblin UI on IDF
- 从今天开始正式成为深圳人
- 中国成为北极理事会正式观察员国 将享合法权利
- 3D渲染神器——Cinema 4D试用评测
- Android系统Surface机制的SurfaceFlinger服务渲染应用程序UI的过程分析(2)
- OpenDocument正式成为ISO标准(标准号: ISO/IEC 26300)
- iOS 3D UI——CALayer的transform扩展解析
- iOS 3D UI——CALayer的transform扩展解析