游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5152|回复: 11

d3d如何实现的半透明效果

[复制链接]

10

主题

53

帖子

57

积分

注册会员

Rank: 2

积分
57
发表于 2008-8-11 16:55:00 | 显示全部楼层 |阅读模式
在d3d中可以用d3dxsprite来绘制图片,但是应该如何设置才能使图片半透明的显示呢,另外,再问一下,是否支持灰度显示或高亮显示

2

主题

8

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2008-8-11 17:23:00 | 显示全部楼层

Re:d3d如何实现的半透明效果


在输出的时候,有个参数Color,里面有个Alpha的通道,用它可以实现半透明。

灰度的话俺不是太清楚,不过用Color参数是可以去色的。

10

主题

53

帖子

57

积分

注册会员

Rank: 2

积分
57
 楼主| 发表于 2008-8-11 17:27:00 | 显示全部楼层

Re: d3d如何实现的半透明效果

我是想整张图半透明,不是局部,楼上的没明白我的意思,也就是说不是通过设置colorkey来实现

2

主题

132

帖子

132

积分

注册会员

Rank: 2

积分
132
发表于 2008-8-11 21:39:00 | 显示全部楼层

Re:d3d如何实现的半透明效果

ID3DXSprite* spr;

spr->Begin( D3DXSPRITE_ALPHABLEND ); // 一定要加上这个标志
spr->Draw( ......, 0x??ffffff ); // 那个??处就是透明度,比如ff就是不透明,80是半透明
spr->End();

10

主题

53

帖子

57

积分

注册会员

Rank: 2

积分
57
 楼主| 发表于 2008-8-12 01:01:00 | 显示全部楼层

Re:d3d如何实现的半透明效果

谢谢,果然管用

2

主题

8

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2008-8-12 10:12:00 | 显示全部楼层

Re:d3d如何实现的半透明效果


俺说的就是那个方法。。。。可能是我没说清楚吧。#——#

10

主题

53

帖子

57

积分

注册会员

Rank: 2

积分
57
 楼主| 发表于 2008-8-12 10:40:00 | 显示全部楼层

Re: Re:d3d如何实现的半透明效果

木吉: Re:d3d如何实现的半透明效果


俺说的就是那个方法。。。。可能是我没说清楚吧。#——#

那个color能不能用来把图片灰度化或者高亮化,要怎么设置呢,有没有计算公式之类的

2

主题

8

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2008-8-12 11:08:00 | 显示全部楼层

Re:d3d如何实现的半透明效果


高亮是没办法实现的,不过变暗是可以的。

“0x??ffffff”中,你把FFFFFF变为999999试下就知道了。

另外你可以试试0xffff00000,这样可以去掉除了红色以外的通道色。

高亮我现在也还没找到办法实现。希望有经验的朋友能出来支个招。

10

主题

53

帖子

57

积分

注册会员

Rank: 2

积分
57
 楼主| 发表于 2008-8-12 11:22:00 | 显示全部楼层

Re: d3d如何实现的半透明效果

好像只是变暗,并不是置灰,难道就没办法置灰或高亮吗,非要自己去扫描每一个像素,手动修改吗

2

主题

132

帖子

132

积分

注册会员

Rank: 2

积分
132
发表于 2008-8-12 14:04:00 | 显示全部楼层

Re:d3d如何实现的半透明效果

有设置灰度图和高亮的方法,用shader吧,而且一般都用到shader了。
设置绘图如果不换纹理的话,好像只有用shader实现高速即时的灰度图显示

高亮除了用shader有模拟的方法
比如在原来的纹理上渲染一个同样大小、形状的白色半透明物体…… - - |||

要详细点的过程或者例子代码否?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-21 16:10

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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