游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2881|回复: 5

求助,D3D中透明渲染的问题

[复制链接]

13

主题

77

帖子

79

积分

注册会员

Rank: 2

积分
79
发表于 2005-2-2 15:38:00 | 显示全部楼层 |阅读模式
我建了一个矩形盒子,矩形盒子上全部点的坐标都放在一个VERTEXBUFFER里,然后设置AlphaEnable,SetStreamSource为矩形盒子的VERTEXBUFFER,然后DrawPrimitive,一开始矩形盒子是透明的,但是转动视角后,离摄像机近的面把离摄像机远的面挡住了,请问这个是需要自己在每桢中重新对VERTEXBUFFER里的点进行深度排序,还是要设置什么参数?

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2005-2-2 15:50:00 | 显示全部楼层

Re:求助,D3D中透明渲染的问题

D3DRS_ZENABLE开了吗?

13

主题

77

帖子

79

积分

注册会员

Rank: 2

积分
79
 楼主| 发表于 2005-2-2 16:17:00 | 显示全部楼层

Re:求助,D3D中透明渲染的问题

当然开了,只有在一个特定的观察角度的时候才不会出现遮挡,转动观察角度就会出现遮挡了。

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2005-2-2 16:28:00 | 显示全部楼层

Re:求助,D3D中透明渲染的问题

不如放源码上来看看。

6

主题

444

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
发表于 2005-2-2 17:17:00 | 显示全部楼层

Re:求助,D3D中透明渲染的问题

如果只是独立的凸多面体则无必要排序,直接按照三角形顶点缠绕顺序分类就成了,比如,CCW是背面的话,那么就先在pass1中设置cullmode为CW,然后渲染,然后在pass2中设置cullmode为CCW渲染一遍就成了。
原理在于
1:凸多边形的同样缠绕方式的三角形之间不可能发生遮挡关系
2:正面可能会遮挡背面,而背面不会遮挡正面。

13

主题

77

帖子

79

积分

注册会员

Rank: 2

积分
79
 楼主| 发表于 2005-2-3 09:12:00 | 显示全部楼层

Re:求助,D3D中透明渲染的问题

谢谢楼上,巧妙的利用CULLMODE,学到了不少东西。顺便再问一下,如果是凹多面体该怎么办呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-24 06:19

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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