webGL - 在曲面上绘制一条线

时间:2014-07-15 19:33:55

标签: 3d webgl

我有一个三维纹理表面,我需要绘制一条彩色线条。这类似于在球体上绘制纬度/经度线。有没有一种简单的方法在这个表面上画一条线?到目前为止,我得到的最好的结果是计算沿着曲面的点并使它们成为我的线顶点但是这看起来有点儿麻烦,因为有些地方线条显示得很好,而地方却没有。另外,如果我使用这种方法,我是否需要将线从表面偏移或做其他事情以使它们不“重叠”并显示表面而不是线?

2 个答案:

答案 0 :(得分:0)

使用当前的方法,您需要偏移线(可能沿着曲面法线),您看到的效果称为z-fighting,由线条和具有相同光栅深度值的曲面引起。

如果您不想或不能偏移线条,您可以将线条渲染为单独的帧缓冲区,将其纹理映射到全屏四边形并将它们混合在一起。

如果您不需要更新线条,可以使用画布2D将其绘制到纹理中。根据您的需要和“表面”的属性,您也可以使用片段着色器直接在gpu上绘制线条。

答案 1 :(得分:-1)

经过大量的试验和错误(以及时间 - 这是非常古老的),我发现最好的方法是在纹理上创建我想要的线条并在表面上使用该纹理。工作完美!