游戏开发论坛

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

关于Z-Fail ShadowVolume中出现的阴影偏移问题

[复制链接]

64

主题

855

帖子

856

积分

高级会员

Rank: 4

积分
856
QQ
发表于 2005-12-19 10:46:00 | 显示全部楼层 |阅读模式
在Z-Fail ShadowVolume中,由于需要对Volume体加入遮光盖,而这个遮光盖通常是用Mesh的受光面来做( 特别是用VertexShader来做Z-Fail SV时 ),所以存在遮光盖与受光面共面的问题,一般采用设置Z-Bias来使ShadowVolume体向+Z方向移入一小段距离来避免共面问题。

但这时会出现新的问题,当一个三角面法线与光线方向呈接近90度时,由于Z-Bias的影响导致Volume体实际上进入了Mesh的内部,此时再拉阴影出来就会出现较大的阴影偏移问题,如下图。

想请问做过Z-Fail SV的朋友有没有好的解决方案避免这种极小角度出现的问题呢?

实际上这个阴影Biass问题和投影矩阵也有关系,当投影矩阵的远近平面距离越接近,Mesh渲染后的Z值范围就越大,就能设置更小的Z-Bias,阴影Bias就越容易消除,但始终这不是一个治本之道。
sf_20051219104615.jpg

64

主题

855

帖子

856

积分

高级会员

Rank: 4

积分
856
QQ
 楼主| 发表于 2005-12-19 11:14:00 | 显示全部楼层

Re:关于Z-Fail ShadowVolume中出现的阴影偏移问题

哦?背光面?好像可行,不过不知道VertexShader Extrusion SV里面能否实现。。

64

主题

855

帖子

856

积分

高级会员

Rank: 4

积分
856
QQ
 楼主| 发表于 2005-12-19 11:33:00 | 显示全部楼层

Re:关于Z-Fail ShadowVolume中出现的阴影偏移问题

AZ的方法很不错哦,好像只需要改一下点积正负就可以了。

64

主题

855

帖子

856

积分

高级会员

Rank: 4

积分
856
QQ
 楼主| 发表于 2005-12-19 11:37:00 | 显示全部楼层

Re:关于Z-Fail ShadowVolume中出现的阴影偏移问题

VS Extrusion SV效率很高的,用VS的话,效率就完全取决于填充率,现在我的骨骼动画 + SV + 没有LOD的场景在ATI 9550上已经可以达到1000FPS,我决定用SV取代ShadowMap了,TSM、PSM好像都不是很爽。

64

主题

855

帖子

856

积分

高级会员

Rank: 4

积分
856
QQ
 楼主| 发表于 2005-12-19 11:48:00 | 显示全部楼层

Re:关于Z-Fail ShadowVolume中出现的阴影偏移问题

很简单的,VS.1.0就可以了,你去看NV SDK吧

64

主题

855

帖子

856

积分

高级会员

Rank: 4

积分
856
QQ
 楼主| 发表于 2005-12-19 16:36:00 | 显示全部楼层

Re:关于Z-Fail ShadowVolume中出现的阴影偏移问题

哈哈,AZ兄的提示果然正确,采用背光面做Volume Cap已经不存在小角度阴影偏移问题了,效果趋向完美!Thxs alot!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-23 00:57

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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