游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1503|回复: 4

请教:D3D中如何用Alpha穿透后画的层

[复制链接]

4

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2004-10-4 10:40:00 | 显示全部楼层 |阅读模式
在Direct3D中用pd3dDevice.DrawIndexedPrimitive画两个层,第一层是半透明的,位于第二层前面,但是由于DrawIndexedPrimitive的顺序不能颠倒,总是不能透过第一层看到第二层,请问如果解决?

62

主题

296

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
QQ
发表于 2004-10-4 12:08:00 | 显示全部楼层

Re:请教:D3D中如何用Alpha穿透后画的层

那就倒过来画呗,深度缓存可以保证顺序正确

4

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
 楼主| 发表于 2004-10-4 21:07:00 | 显示全部楼层

Re:请教:D3D中如何用Alpha穿透后画的层

关键是顺序不能颠倒啊,我也考虑是否能向 Z-buffer一样处理遮挡关系,只是不知道该怎么用,还请说详细写,最好有代码,谢谢

0

主题

237

帖子

237

积分

中级会员

Rank: 3Rank: 3

积分
237
发表于 2004-10-5 00:28:00 | 显示全部楼层

Re:请教:D3D中如何用Alpha穿透后画的层

?]?法的了, 你要想?法???lpha值的一层, 在最後才画, 才可以?到你所?的效果.

或者你可以??, ???lpha值的所有polygon都放在另一??VB?, 最後才用???VB画吧...

4

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
 楼主| 发表于 2004-10-5 09:14:00 | 显示全部楼层

Re:请教:D3D中如何用Alpha穿透后画的层

如果都在一个VB里,情况也很糟。
比如连续几个堆叠在一起的半透明层(之间有间隙),因为画的顺序是固定的,所以从上面和下面观察就会出现不同的效果。

不过,设置SetRenderState(D3DRS_ZWRITEENABLE, iFalse);后
穿透效果就正常了,可惜不穿透的层又乱堆在一起了,没有一点层次。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-22 15:57

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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