游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2298|回复: 3

[Direct2D绘制]求教大侠:大家绘制D3D中的2D元素为什么不用

[复制链接]

18

主题

116

帖子

218

积分

中级会员

Rank: 3Rank: 3

积分
218
发表于 2011-7-1 09:34:00 | 显示全部楼层 |阅读模式
3D场景中免不了要绘制一些2D元素,诸如UI等等。
个人感觉ID3DXSprite应当算是个比较好用的接口,使用起来也很方便。
不过,看前辈们貌似都很抵触这个接口,好像说是因为效率不行?好像大家采取的比较普遍的做法,就是固定Z坐标,然后直接在屏幕上绘制矩形+纹理。
求教各位大侠:大家普遍认为ID3DXSprite效率底下的原因或者依据是什么呢?又或者说大侠们还有其他的见解?[em6]
感激不尽~

==============抽象的分割线[em7]===============

小弟写过Xna,里面有一个SpriteBatch类,是这个环境下2D绘制公认的王道。基本的原理好像就是两个三角形拼合成一个矩形+纹理绘制+批处理。
D3D下的ID3DXSprite写法跟SpriteBatch挺像,有没有可能是采用了同样的机制呢?[em5]

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2011-7-1 12:26:00 | 显示全部楼层

Re:[Direct2D绘制]求教大侠:大家绘制D3D中的2D元素为什么不

一、有可能受显卡限制,虽然A/N两家的显卡都支持非2幂贴图,但是有个占50%以上GPU市场的公司叫INTEL

二、效率低下,想想3D游戏,现代GPU多是为三角形众多,贴图少设计的。而2D游戏如果追求高清美的话,就会变成贴图奇多无比,三角形没多少。

...............很多原因

8

主题

79

帖子

126

积分

注册会员

Rank: 2

积分
126
发表于 2011-7-1 13:07:00 | 显示全部楼层

Re:[Direct2D绘制]求教大侠:大家绘制D3D中的2D元素为什么不

因为不是你自己管理的,可能会有一些奇怪的问题

比如你同样的精灵需要大批绘制的时候 你不知道D3DXsprite有没有切换渲染状态之类的

你自己管理就不需要切换渲染状态 提交多个batch

33

主题

159

帖子

272

积分

中级会员

Rank: 3Rank: 3

积分
272
QQ
发表于 2011-7-1 21:03:00 | 显示全部楼层

Re:[Direct2D绘制]求教大侠:大家绘制D3D中的2D元素为什么不

....大侠做的都要适应openGL和DirectX两方面的,如果只用个D3DXsprite ,有些个东东只能用OPENGL的就死了
现在就很现实的,你把东西移到 android下,android 偶们都知道,它是opengl的天下,微软靠边站,或者说连站的地方都没有,它哪来的D3Dsprite
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-8-7 04:47

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表