有符号距离场纹理是一种在像素的颜色信息中存储从像素到形状表面的距离的技术,可使用纹理实现几乎矢量图形的质量渲染(http://blog.demofox.org/2014 / 06/30 / distance-field-textures /)

在着色器中读取纹理数据时,您将获得0到1之间的值,这意味着要在-1和1之间进行映射。

创建着色器时,距离数据实质上是“规格化”的,这意味着,与其在纹理中存储真实的正或负距离值,不如将真实距离乘以某个常数,将其限制在0到1之间,然后存储该距离值。

该常数值基本上控制“渐变”带的像素宽度,其中形状的表面从0到1 (-1到1)。

是否基于输出纹理分辨率或其他任何最佳值?我总是反复尝试,直到看起来正确为止,但是觉得必须有更好的方法。

此外,有没有一种方法可以选择最佳的输出纹理大小?还是应该始终使用小于要渲染的纹理大小的纹理?

谢谢!

评论

非常有趣的帖子。您可以使用不同的常量发布一些图片吗?

也许我误会了其中的一部分。您是否不想在纹理中找到最大绝对距离并将其用作常数?