|

楼主 |
发表于 2010-6-20 22:12:00
|
显示全部楼层
Re: 有个问题关于dx10的ID3DX10Sprite
这个效果我在dx10下已经实现了,没有使用到D3DX10_SPRITE
当然用到了ID3DX10Font只是不太明白ID3DX10Font如何drawtext到D3DX10_SPRITE上,然后取出这个D3DX10_SPRITE再设置
worldMatrix
楼主可以试试,我这个效果,我是在
float zoffset = fontInfo.ZValue - 0.4995f; //应该是0.5的有一定的浮点数误差要比0.5稍微小一点点
if(zoffset > 0.5f)
zoffset = 0.5f;
D3DXMatrixTranslation(&matrix, 0, 0, zoffset); //调整view,这样能实现自动遮挡
m_pSprite->SetViewTransform(&matrix)
上面做的文章实现了这个效果,做法有点变态,甚至对于这个方法的真正的意义还没完全搞懂,sdk文档帮助上写的
Pointer to a D3DXMATRIX that contains a transform of the sprite from the original world space. Use this transform to scale, rotate, or transform the sprite.
“original world space” 是啥意思,一语带过
(据文档所述还能位移,缩放,旋转sprite ,用ViewTransform来搞,这似乎太诡异了点吧?,倒是这段文字给了我一些希望)
我是完全慢慢试出来达到下面的效果,能满足我的需要了,但还不能明白dx10绘制font内部shader到底做了什么变换,这搞了我整整一天的时间
楼上的高手可以做做看看有没更简便的途径,或D3DX10_SPRITE实现这样效果
要求文字在空间绘制,能判断深度渲染并正确被遮挡

|
|