在处理多种材料的情况下,由于不需要,因此省略一些信息。如果它们没有被处理,CPU将不会传递给GPU(或顶点到frag)。
在这种情况下,我应该关注着色器中变量(尤其是制服)是否正确(通过)?
或者,我应该在CPU中处理变量并相信着色器中的变量是正确的(传递的)吗?
答案 0 :(得分:0)
制服:你至少应该知道该制服中的内容以及该值是否会影响结果。
默认值为零,如here所述。
除此之外,可以有任何值,您在上次存储时只会依赖于您的代码,如果它可以以任何方式影响结果。上传"上传"当前值或零,因此您不必检查它。
输入:输入值取决于您传入的当前输入数组,您只能控制这些信息的来源。没有它,着色器没有多大意义。 These arrays control number of instances of shaders
无论哪种方式,如果正确传递变量,它们在着色器中也是正确的。检查这个有时很难,但可以做到。例如reading from frame buffer。