首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >暗色痤疮的病因

暗色痤疮的病因
EN

Computer Graphics用户
提问于 2016-03-16 16:05:17
回答 2查看 10.7K关注 0票数 17

我知道阴影贴图是如何工作的,但我没有得到阴影痤疮的原因!谁能告诉我阴影痤疮的原因在一个简单的方式和它是如何与深度地图分辨率?

EN

回答 2

Computer Graphics用户

回答已采纳

发布于 2016-03-16 18:49:36

图1:阴影痤疮的坏病例。(合成的,有点夸张的)

阴影痤疮是由阴影地图的离散性质引起的。阴影映射由样本组成,曲面是连续的。因此,在表面上可以有一个点,其中离散表面比样本更远。即使您有多个样本,这个问题仍然存在,但是您可以更聪明地进行抽样,这样可以在很大程度上消除这一问题。

图2:阴影函数及其离散样本的边切线。

解决这一问题的标准方法是稍微偏移阴影映射,这样对象就不再自己阴影了。这种偏移被称为偏见。可以使用比固定值更多的智能偏移,但固定值工作得很好,开销最小。

图像3:阴影函数偏置(偏移)向前。

票数 19
EN

Computer Graphics用户

发布于 2016-03-17 13:44:31

作为joojaa答案的补充:使用偏倚来抵消阴影函数确实可以解决阴影痤疮的问题,但是它可以引入另一个问题: Peter Panning。

正如您在左边的图片中所看到的,阴影与阴影投射墙断开连接。这给人的印象是,几何图形在地面上盘旋(就像彼得·潘( Panning)能在空中盘旋一样,因此就有了彼得·潘宁的名字)。

要解决这个问题,您必须使用“厚”几何,有一个卷,然后渲染阴影地图使用背面。如果偏移量小于几何厚度,就不会有彼得平宁。

这两张照片都是从本教程拍摄的,你也可以了解更多关于阴影映射是如何工作的,阴影痤疮是如何创建和解决的,以及彼得潘宁是什么。

票数 9
EN
页面原文内容由Computer Graphics提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://computergraphics.stackexchange.com/questions/2192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档