游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3546|回复: 6

如何设置纹理的透明色

[复制链接]

21

主题

112

帖子

118

积分

注册会员

Rank: 2

积分
118
发表于 2009-1-4 11:02:00 | 显示全部楼层 |阅读模式
首先,我知道在使用 CreateTextureFromFile 之类的函数中,可以读入一个图片文件,并且通过这类函数中的参数,来指定纹理的透明色。

但是,现在我要使用 RTT ,在 RTT 中需要使用 CreateTexture 函数来创建一个空纹理,就像这样:
Device->CreateTexture(128,128,1,D3DUSAGE_RENDERTARGET,D3DFMT_R5G6B5,D3DPOOL_DEFAULT,&pRenderTexture,NULL);

其他的都没什么问题,但是,当我把渲染好的纹理画到屏幕上的时候,我发现这个纹理的背景色没有去掉,把其他显示的内容挡住了。。。。

那么,使用 CreateTexture 函数创建的纹理,如何指定透明色呢??
请大家帮帮忙,把知道的方法都说下。。。不论如何,让这个纹理中我所指定的颜色透明就可以了。。谢谢先~~
[em24] [em24] [em24] [em24]

14

主题

345

帖子

376

积分

中级会员

Rank: 3Rank: 3

积分
376
QQ
发表于 2009-1-4 18:45:00 | 显示全部楼层

Re:如何设置纹理的透明色

SetRenderTarget然后Clear

21

主题

112

帖子

118

积分

注册会员

Rank: 2

积分
118
 楼主| 发表于 2009-1-5 15:23:00 | 显示全部楼层

Re:如何设置纹理的透明色

xoyojank 兄弟啊,我的代码的确是在 SetRenderTarget 之后,马上使用了Clear

所以这个解决不了问题啊。。。。

要设置一个纹理的透明色,除了在使用 CreateTextureFromFile 之类的函数,在载入位图的时候指定一个透明色,难道就没有其他的方法了??

难道说,用 CreateTexture() 函数,创建的空纹理,在渲染上东西以后,就不能指定某个颜色透明??
新的一年啊。。。我需要大家的爱~~~~~

21

主题

112

帖子

118

积分

注册会员

Rank: 2

积分
118
 楼主| 发表于 2009-1-5 15:40:00 | 显示全部楼层

Re:如何设置纹理的透明色

我把这个程序发上来大家帮忙看下:



左上角的方块是用RTT渲染上去的,大的方块是直接绘制的,当大方块移动到左上角,也就是小方块绘制的区域时,被小方块的背景挡住了。。。。

我日,附件怎么发不了了。。。。

45

主题

1163

帖子

1165

积分

金牌会员

Rank: 6Rank: 6

积分
1165
发表于 2009-1-5 19:15:00 | 显示全部楼层

Re:如何设置纹理的透明色

阿尔法测试有没有用?

20

主题

136

帖子

172

积分

注册会员

Rank: 2

积分
172
发表于 2009-1-5 22:15:00 | 显示全部楼层

Re:如何设置纹理的透明色

建议使用 Alpha 通道,透明色不具有一般性。

20

主题

136

帖子

172

积分

注册会员

Rank: 2

积分
172
发表于 2009-1-5 22:20:00 | 显示全部楼层

Re:如何设置纹理的透明色

透明色的设置具体不清楚,不过可以确定的是,在 24/32 位色下表示的粉红色:0xFF00FF/0xFFFF00FF,在 16 位色应当表示为 0xF81F,二进制表示为 1111100000011111。

希望对你有帮助
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-20 13:38

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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