텍스처 좌표가있는 THREE.BufferGeometry의 예제를 찾을 수 없습니다. 텍스쳐 메쉬에 사용 되나요? 나는 그것을 작동시킬 수 없다. 이 코드로 잘못 될 수 있는지 아무 생각이 없다, 그래서 THREE.Geometry와three.js : 텍스처 좌표가있는 BufferGeometry
var quad_vertices =
[
-30.0, 30.0, 0.0,
30.0, 30.0, 0.0,
30.0, -30.0, 0.0,
-30.0, -30.0, 0.0
];
var quad_uvs =
[
0.0, 0.0,
1.0, 0.0,
1.0, 1.0,
0.0, 1.0
];
var quad_indices =
[
0, 2, 1, 0, 3, 2
];
var geometry = new THREE.BufferGeometry();
geometry.attributes =
{
position:
{
itemSize: 3,
array: new Float32Array(3 * 4)
},
uv:
{
itemSize: 2,
array: new Float32Array(2 * 4)
},
index:
{
itemSize: 1,
array: new Uint16Array(6)
}
};
var positions = geometry.attributes.position.array;
var uvs = geometry.attributes.uv.array;
var indices = geometry.attributes.index.array;
var i;
for(i = 0; i < positions.length; i += 3)
{
positions[i] = quad_vertices[i];
positions[i + 1] = quad_vertices[i + 1];
positions[i + 2] = quad_vertices[i + 2];
}
for(i = 0; i < uvs.length; i += 2)
{
uvs[i] = quad_uvs[i];
uvs[i + 1] = quad_uvs[i + 1];
}
for(i = 0; i < indices.length; i++)
indices[i] = quad_indices[i];
var texture = THREE.ImageUtils.loadTexture('./assets/texture.png');
texture.anisotropy = renderer.getMaxAnisotropy();
var material = new THREE.MeshBasicMaterial({ map: texture });
var mesh = new THREE.Mesh(geometry, material);
mesh.position.z = -100;
scene.add(mesh);
그냥 만드는 메시는 OK입니다 : 여기에 내 테스트 코드입니다. 이견있는 사람?
봐 '. 또한 쿼드는 three.js에서 더 이상 지원되지 않습니다. r.61로 업데이트하십시오. – WestLangley
Geometry에서 BufferGeometry를 만들 필요가 없습니다. 맞습니까? 그래서 그것은 해결 방법 일뿐입니다. 또한 three.js 쿼드를 사용하지 않습니다. – user2904567
당신은 그렇게하지 않았지만, 그 함수를 한 번 사용했다면, 적어도'BufferGeometry'가 어떻게 생성되었는지 보게 될 것입니다. – WestLangley