我认为Direct3D和OpenGL在这方面的工作方式相同,所以我不会指定api。
在幕后,顶点着色器输出结构是在传递给片段着色器时插值的,还是着色器本身是用中间值插值(多次运行)?
如果有一个相对昂贵的片段着色器和少量顶点要处理,是否会将一些代码移动到顶点着色器以帮助提高性能?
答案 0 :(得分:0)
片段着色器在光栅化后调用屏幕上的每个像素,因此将一些代码移动到顶点着色器将改善性能。但是一些时间效应会更加糟糕。例如,具有lowpoly网格的光点看起来非常难看,或者如果斑点可以适合单个三角形,甚至可能是不可察觉的,看看here。
查看此OpenGL wiki以更好地理解渲染管道。