![]() |
1
2
为什么要将纹理从顶点着色器传递到片段着色器?只需在两个着色器中声明相同的采样器? 顶点着色引擎
碎片着色器
否则答案是否定的,不能在材质球之间传递纹理您可以传递一些值来选择采样器结果 顶点着色引擎
碎片着色器
注:根据Nicol的注释更新,如果在条件代码内部使用,则根据spec纹理break进行更新从 the spec, Appendix A.6
换句话说,这样的代码可能行不通
所以我想最好是对材质球的非条件部分中的所有纹理进行采样,然后使用类似于
当然,对于大多数用例,您可能应该使用纹理图集并使用纹理坐标来选择其中的一部分使用多个纹理的正常原因是:法线贴图、不透明度贴图、反射率贴图、环境光遮挡、照明或平滑混合(如污垢/草地/雪),在这种情况下,不需要条件要重新迭代,从材质球中的多个纹理中进行选择并不常见。 |
|
user3186555 · WebGL颜色约定-我使用哪种以及为什么? 7 年前 |
![]() |
Elias · 在webgl中生成文本纹理:Alpha不透明 7 年前 |
![]() |
x2dragunov2x · 每帧绘制一个持久三角形[重复] 7 年前 |
![]() |
Elias · webgl 2d将两个透明纹理叠加在一起 8 年前 |