【问题标题】:What range are the uv coordinates fromuv坐标的范围是多少
【发布时间】:2016-02-22 01:35:04
【问题描述】:

我有一个带有着色器材质的球体。在那个材料中,我需要使用uv 坐标,但我不明白它们是如何计算的。如果我检查球体uv 的几何形状,坐标在[0, 1] 范围内,但在我的着色器中它们似乎只使用了该范围的一半。为什么会这样?

 var material = new THREE.ShaderMaterial({
     vertexShader: vertexShader, 
     fragmentShader: fragmentShader
 });

 var sphere = new THREE.Mesh( new THREE.SphereGeometry(150, 16, 16), material);


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

//
// Fragment shader
//
varying vec2 vUv;
void main() {
    // why is the vUv.x range somewhere between 17/255 and 110/255
    gl_FragColor = vec4( vUv.x, 0.0, 0.0, 1.0);

    // this corrects it a little bit but it still isnt range [0/255, 255/255]
    //gl_FragColor = vec4( vUv.x*2.0, 0.0, 0.0, 1.0);
}

jsfiddle

【问题讨论】:

    标签: opengl-es three.js webgl shader uv-mapping


    【解决方案1】:

    哦,我刚刚知道了 :) ...uv.x 范围是 [0, 1],只是范围是整个球体,而不仅仅是可见部分。向jsfiddle添加可移动相机就很清楚了,只需尝试围绕球体旋转:)

    jsfiddle

    【讨论】:

      猜你喜欢
      • 2017-11-25
      • 2018-06-23
      • 2017-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-30
      • 1970-01-01
      相关资源
      最近更新 更多