游戏开发论坛

 找回密码
 立即注册
搜索
查看: 9535|回复: 27

[求教]问一个D3D中有关alpha混色的问题!

[复制链接]

20

主题

398

帖子

398

积分

中级会员

Rank: 3Rank: 3

积分
398
发表于 2005-6-9 09:38:00 | 显示全部楼层 |阅读模式
    最近有个想法,想用D3D来渲染2D。方法是用两个三角形来组成一个“表面”,然后在上面贴纹理,“表面”的大小与纹理的大小相同。背景透明可以在载入纹理时设定透明色。整个“表面”以相同的Alpha值进行半透明我也实现了。我的问题是:

    如果纹理图片是32位的BMP图,也就是说带Alpha通道,如何设置才能实现:在输出图片时根据源“表面”自身的Alpha通道值来与目标“表面”进行Alpha混色?也就是说,“表面”中的每个像素都有其特定的Alpha值。

    我想用它来实现一些魔法效果,这样做边缘会有一种发光的感觉!哪位高手能指点小弟一下,小弟感激不尽!

[em14] [em1]

43

主题

155

帖子

171

积分

注册会员

Rank: 2

积分
171
发表于 2005-6-9 11:14:00 | 显示全部楼层

Re:[求教]问一个D3D中有关alpha混色的问题!

首先设置成从texture中获取alpha,

device->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);

然后指定blend factor就可以了,

device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);

如果用d3d实现2d可以参考dx9的D3DXSprite类.

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2005-6-9 12:10:00 | 显示全部楼层

Re:[求教]问一个D3D中有关alpha混色的问题!

注意,blendfactor用于rendertaget的。

20

主题

398

帖子

398

积分

中级会员

Rank: 3Rank: 3

积分
398
 楼主| 发表于 2005-6-9 15:42:00 | 显示全部楼层

Re:[求教]问一个D3D中有关alpha混色的问题!

搞定了!谢谢各位!

20

主题

398

帖子

398

积分

中级会员

Rank: 3Rank: 3

积分
398
 楼主| 发表于 2005-6-9 15:48:00 | 显示全部楼层

Re:[求教]问一个D3D中有关alpha混色的问题!

    还有个问题,怎么用Photoshop制作带alpha通道的BMP位图?

    我的方法是将图片复制一份并转换成灰度图,然后用复制通道的方法和并到原来的图片中,作为alpha通道,然后保存成32位BMP位图。但是用这种方法制作出来的图片,放入程序中却没有任何半透明的效果。

    请问怎样正确制作带alpha通道的BMP图?谢谢!

20

主题

398

帖子

398

积分

中级会员

Rank: 3Rank: 3

积分
398
 楼主| 发表于 2005-6-9 16:05:00 | 显示全部楼层

Re:[求教]问一个D3D中有关alpha混色的问题!

alpha混色好像还是有问题!我换了张图试了一下,发现仅仅是透明色和非透明色交界的地方有一定的透明处理,而非透明色的其他部分并没有任何的半透明效果,这是为什么呢?是不是因为我使用的不是D3DXSprite,而是用的三角形带(2个三角形)的缘故?

24

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
发表于 2005-6-9 16:13:00 | 显示全部楼层

Re:[求教]问一个D3D中有关alpha混色的问题!

bmp 可以带 alpha 通道????
没听说过啊,我用过 tga,dds,有, bmp怎么做啊,就只有 rgb,

24

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
发表于 2005-6-9 16:15:00 | 显示全部楼层

Re:[求教]问一个D3D中有关alpha混色的问题!

高手请指点

24

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
发表于 2005-6-9 16:17:00 | 显示全部楼层

Re:[求教]问一个D3D中有关alpha混色的问题!

bmp肯定 不行 ,除非 你自己的格式,多一个字节来保存alpha,

20

主题

398

帖子

398

积分

中级会员

Rank: 3Rank: 3

积分
398
 楼主| 发表于 2005-6-9 16:18:00 | 显示全部楼层

Re: Re:[求教]问一个D3D中有关alpha混色的问题!

比如说我想显示下面这幅图,绿色为透明色!黑色区域并没有变得透明,仅仅是黑色区域边缘有一点点透明效果。
sf_200569161736.bmp
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-26 07:03

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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