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

时间:2015-10-19 21:01:16

标签: three.js glsl blender

three.js r.73

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

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

和FragmentShader:

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.

1 个答案:

答案 0 :(得分:0)

回答@gaitat

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

JSON模型必须具有UV地图I've updated jsfiddle

r.73