惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

大猫的无限游戏
大猫的无限游戏
U
Unit 42
T
Tailwind CSS Blog
罗磊的独立博客
WordPress大学
WordPress大学
小众软件
小众软件
Recent Announcements
Recent Announcements
博客园 - 聂微东
Jina AI
Jina AI
云风的 BLOG
云风的 BLOG
博客园 - 【当耐特】
爱范儿
爱范儿
Microsoft Azure Blog
Microsoft Azure Blog
GbyAI
GbyAI
V
V2EX
博客园 - 三生石上(FineUI控件)
I
InfoQ
雷峰网
雷峰网
G
Google Developers Blog
阮一峰的网络日志
阮一峰的网络日志
B
Blog
腾讯CDC
A
About on SuperTechFans
博客园 - 叶小钗

博客园 - linyizsh

t&h MTE Best fit gbuffer normal MLAA(Morphological Antialiasing) Volumetric Obscurance ao propagation volume... lpv 说下pack/unpack normal的问题 CheckPoint 修改crysis支持nvperfhud volume light/light shaft/god ray 小更新下,加了DOF DeferShading + VSM + HDR + SSAO CheckPoint d3d10 放几张美图 4.1 Atmospheric Scattering prt ZT
Mipmap不连续问题。
linyizsh · 2010-10-17 · via 博客园 - linyizsh

一个容易疏忽的问题。

图:

    模型的边缘有个碍眼的白边,这个是由于计算水下的caustic的时候用了深度来计算某个tex的uv,结果产生这个白边。(图压缩后变难看了。。。)

这个不是算法错,也不是什么数据问题。而是由于使用的tex带有mipmap,但由于uv从深度算来,因此在ps里,边缘相邻两个像素的uv有个跳变,使gpu在这个地方出现lod计算错误,因此取了一个错误的值。

    解决的办法有两个,一个是自己计算lod,可以通过采样边缘的像素,在xy方向选深度差最小的那个相邻像素来计算ddx ddy。

另一个办法是tex如果尺寸比较小的话可以不要用mipmap,总是用0层,则不会出现问题。

解决后的图:

    这个问题其实存在的地方并不少,只要使用有突然跳跃的数值(比如这里的深度)来计算mipmap tex的uv,则都有可能会出现,不过有些情况下这个问题不太明显。

不解决其实也没啥问题,作为游戏来讲用户也不一定注意,所以这个问题也容易被疏忽,不过如果追求完美的图像的话,就总觉得有些别扭。