Graphics 着色器不适用于ThreeJS升级-';viewMartrix:重新定义
似乎在升级Three.js时,它会抱怨对Graphics 着色器不适用于ThreeJS升级-';viewMartrix:重新定义,graphics,three.js,glsl,Graphics,Three.js,Glsl,似乎在升级Three.js时,它会抱怨对viewMatrix和camera #define MAX_DIR_LIGHTS 0 #define MAX_POINT_LIGHTS 0 #define MAX_SPOT_LIGHTS 0 #define MAX_HEMI_LIGHTS 0 #define MAX_SHADOWS 0 uniform mat4 viewMatrix; uniform vec3 cameraPosition; uniform vec3 di
viewMatrix
和camera
#define MAX_DIR_LIGHTS 0
#define MAX_POINT_LIGHTS 0
#define MAX_SPOT_LIGHTS 0
#define MAX_HEMI_LIGHTS 0
#define MAX_SHADOWS 0
uniform mat4 viewMatrix;
uniform vec3 cameraPosition;
uniform vec3 diffuse;
uniform float opacity;
我想知道为什么会发生这种情况,以及如何解决它
必须显示问题出现这种情况是因为在使用
着色器材质
时,渲染器会向着色器附加多个标准定义。以下是前8行:
高精度浮点;
精度高;
#定义高精度
#定义着色器名称着色器材质
#定义伽马系数2
一致mat4视图矩阵;
均匀vec3摄像机定位;
均匀布尔等正交;
然后,当您添加自己的制服时,您正试图重新定义它们:
统一mat4视图矩阵;
均匀vec3摄像机定位;
均匀vec3扩散;
均匀浮动不透明度;
这就是导致错误的原因
您可以去掉重复的
制服
,以避免重新定义,也可以改为。但是,请记住,它的工作原理与ShaderMaterial类似,只是内置制服和属性的定义不会自动添加到GLSL着色器代码之前。因此,您可能需要自己添加它们。谢谢!我删除了这个,似乎它继续工作!