D3D10移植感想

本文讲述了将图形渲染从D3D9迁移到D3D10的过程,强调了D3D10在性能和设计上的改进。D3D10作为底层API,更偏向于高性能和灵活性,但使用难度增加,适合高端开发者。介绍了D3D10的三大核心元素:输入流、状态对象和shader,并提到了设备移除、设计时与运行时的分离等挑战。同时,文章指出D3D10在右手系的支持上更加彻底,且调试工具和文档有待完善。
摘要由CSDN通过智能技术生成

    折腾了许久,今天终于完成到D3D10的移植了。总体感觉不错,性能提高了不少。基本上,有一种再也不想回到混乱的D3D9时代的感觉。新的API很精简,没有冗余,操作和性能的关系很明了,完全贴合硬件。

    当然,这也意味着,它和D3D8、9的设计方向完全不同,而是一套偏向底层的API。早年,D3D API一直饱受争议,PC开发者大多认为它太底层太难用,而少数来自游戏主机开发背景的人则反而认为它抽象层次太高阻碍优化(游戏主机的API要更加底层)。当然,PC开发者的意见形成压倒性的优势,所以D3D不断向易用性方向前进,在版本8、9达到顶峰,甚至一时间赢得了超过OpenGL的口碑。但出乎意料的是,可编程管线的迅速发展改写了前进的方向,尤其是顶级的游戏厂商,他们对性能和灵活性的追求远远超过易用性。一套API难以同时满足不同需求的用户。此时的OpenGL也遇到了相同的问题,游戏开发者认为GL API已经严重脱离当今的硬件加速模型,需要调整精简,而CAD开发者则认为完全不需要,兼容性才最重要。争论n年之后的结果,就是分成两个profile。

    这种情况下,D3D10被设计成一套全新的底层API,面向高端用户。一般商务3D需求则有高层的WPF来满足,两者间的空白由XNA来填补。WPF和XNA都是基于.NET的,而对D3D10,微软甚至没有官方的.NET包装。这个定位,也导致D3D10的使用难度很高,如果不是追求顶级性能和灵活性,没必要为此浪费青春,退半步就有微软在易用性上下了苦功的XNA,而且XNA本身也为未来过渡到D3D10架构做了充足的铺垫(XNA还是跨平台的,支持Windows、XB

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值