给出三角形网格的顶点和元素的VBO和EBO,我想用一种颜色渲染表面并用另一种颜色渲染边缘,这样我就可以像这样构造一些图像:
执行此操作的一种方法是为线框调用glDrawElements一次,为填充几何调用一次。我想知道是否有更有效的方法?也许,只用一次抽奖?
答案 0 :(得分:3)
您使用两种不同类型的primitives进行绘制,使用两组不同的渲染参数(即:要写入的颜色),因此几乎可以肯定两种不同的着色器。 / p>
即使您使用了ubershader方法,单个绘制调用也只能栅格化一种原始类型。绘制调用绘制三角形或线条,而不是两者。虽然GS可以将三角形转换为线条,反之亦然,但这是compile-time determination。
这样做的唯一方法是将对象渲染两次,使用不同的渲染参数/着色器/其他任何需要的东西。即使indirect multidraw commands也不能一次性完成。