THREE.ShaderMaterial 来自搅拌机的 JSON 模型

THREE.ShaderMaterial on JSON model from blender

three.js r.73

我使用了一个简单的着色器,可以在脸上制作方格。这是 VertexShader 的代码:

varying vec2 vUv;
void main() {
  vUv = uv;
  gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.0);
}

和片段着色器:

uniform vec3 color1;
uniform vec3 color2;
uniform float scale;
varying vec2 vUv;
void main() {
  vec2 center = -1.0 + 2.0 * vUv;
  vec2 uv = floor(center.xy * scale);
  if(mod(uv.x + uv.y, 2.0) > 0.5){
    gl_FragColor = vec4(color1, 1.0);
  }else{
    gl_FragColor = vec4(color2, 1.0);
  }
}

它适用于原始对象,但不适用于来自 Blender 的 json 格式的模型。

问题:为什么着色器不适用于 json 模型?

我准备好了jsfiddle with json object(white) and primitive box.

回答放在@gaitat

"uvs": [[0.5,0.5,0.5,0.749957(...)]],

JSON模型必须有UV贴图,I've updated jsfiddle

r.73