Facevertexuv阵列在三个几何类别中的功能是什么?



我使用的是使用参数函数来生成曲面的三。在三个.js JavaScript文件中,三个参数函数函数将2D向量反复推入Facevertexuvs变量。这是什么意义,facevertexuvs阵列有什么作用?

var a, b, c, d;
var uva, uvb, uvc, uvd;
var uvs = this.faceVertexUvs[ 0 ];
    for ( i = 0; i < stacks; i ++ ) {
        for ( j = 0; j < slices; j ++ ) {
            a = i * sliceCount + j;
            b = i * sliceCount + j + 1;
            c = ( i + 1 ) * sliceCount + j + 1;
            d = ( i + 1 ) * sliceCount + j;
            uva = new THREE.Vector2( j / slices, i / stacks );
            uvb = new THREE.Vector2( ( j + 1 ) / slices, i / stacks );
            uvc = new THREE.Vector2( ( j + 1 ) / slices, ( i + 1 ) / stacks );
            uvd = new THREE.Vector2( j / slices, ( i + 1 ) / stacks );
            faces.push( new THREE.Face3( a, b, d ) );
            uvs.push( [ uva, uvb, uvd ] );
            faces.push( new THREE.Face3( b, c, d ) );
            uvs.push( [ uvb.clone(), uvc, uvd.clone() ] );
        }
    }

参数测量学通过两个角度描述了身体,例如在球体上的晶格和经度。它还设置了紫外线坐标,即您在此处看到的2D向量,以允许在这些物体上映射球形纹理。因此,对于将其推入faces集合的任何3D点,将2D固定纹理映射UV坐标的2D点推到this.faceVertexUvs[0]集合。

使用这些UV坐标集,纹理将被映射,就像身体是一个变形的球体一样,对于大多数用例,这是可以接受的。

即使并不总是使用,三个定义了任何身体的UV坐标,以便在需要时使用纹理。

最新更新