在纹理上绘制程序线,避免在glsl中出现锯齿

时间:2012-11-27 07:51:02

标签: opengl graphics 3d glsl aliasing

我的目标是在柏油路上画出白线。由于道路的属性发生变化,因此不能只有代表沥青和白线的纹理。 目前的方法是应用沥青纹理并在另外两个纹理坐标中编码一些信息。在像素着色器中,读取那些坐标,我决定该片段是否应为白色。

这会导致高水平的混叠。这就是我想要解决的问题。

我一直在改变应用smothsetp或线性插值的线条的“白度”。我也根据相机的距离改变了宽度和颜色。这有点帮助,但在很远的距离,仍然有丑陋的别名。

你会怎么做呢?如果纹理代表平滑的白线并访问纹素,那会更好吗?我应该实现访问相邻纹素的双线性过滤器吗?

1 个答案:

答案 0 :(得分:1)

你应该简单地使用2个纹理和2个坐标。

  1. 在路多边形铺磁砖的小无缝的沥青纹理。
  2. 使用您将放置在此多边形中间的Alpha(使用纹理坐标偏移)标记纹理
  3. 或者您可以在道路中间为标记创建额外的多边形以避免任何锯齿。

    为了使一切看起来真实,你可以使用污垢和裂缝来施加Texture Bombing