如何将 D3DFMT_A8 纹理渲染为颜色?
是否可以用某种颜色渲染 D3DFMT_A8 纹理?像这样:
D3DXCreateTexture (pDevice, 128, 128, 0, D3DFMT_A8, D3DPOOL_MANAGED, &pTexture)
...
pSprite->Draw (pTexture, NULL, NULL , NULL, 0, pos, 0xffff0000); // red
谢谢!
Is it possible to render D3DFMT_A8 texture with some colour? Like this:
D3DXCreateTexture (pDevice, 128, 128, 0, D3DFMT_A8, D3DPOOL_MANAGED, &pTexture)
...
pSprite->Draw (pTexture, NULL, NULL , NULL, 0, pos, 0xffff0000); // red
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先,并非所有硬件都支持D3DFMT_A8。
现在假设 ID3DXSprite 不会占用太多管道,那么编写像素着色器就很简单了,如下所示:
着色器只需读取纹理中的值并将其跨所有通道混合。
Firstly, not all hardware supports D3DFMT_A8.
Now assuming that ID3DXSprite doesn't take over too much of the pipeline then its a simple matter of writing a pixel shader as follows:
The shader simply reads in the value in the texture and swizzles it across all channels.