2014-10-09 2 views
2

저는 babylonjs 3D WebGL 라이브러리를 사용하고 있습니다.Babylon.js에 사용자 정의 메쉬를 만드는 방법은 무엇입니까?

훌륭한 라이브러리이지만 THREE.JS 라이브러리에있는 동일한 라이브러리를 찾을 수 없습니다.

예를 들어, 데이터베이스에 2D 폴리곤이 있고, 그곳에서 다각형 데이터를 가져온 다음 사용자 지정 메쉬를 만들고 돌출시킵니다. three.js를 가진

이, 어떤 문제가 아니라, 좀 배열에 추가 할 수 있습니다

... 
points.push(new THREE.Vector2(part.x, -part.y)); 
... 
var shape = new THREE.Shape(points); 
var extrusion = { 
    amount: building.height, 
    bevelEnabled: false 
}; 
var geometry = new THREE.ExtrudeGeometry(shape, extrusion); 
var mesh = new THREE.Mesh(geometry, new THREE.MeshLambertMaterial({ 
    ambient: 0xbbbbb, 
    color: 0xff0000 
}); 
... 
scene.add(mesh); 

그것은 매우 간단합니다. 같은 것을하는 방법, 나는 찾을 수 없었다.

나는 단지 몇 가지 정보를 여기 발견했습니다 (MSDN에서 Ctrl 키 + F로 ->You can also create a mesh from a list of vertices and faces) 등의 예와

:

var plane = new BABYLON.Mesh(name, scene); 

var indices = []; 
var positions = []; 
var normals = []; 
var uvs = []; 

// Vertices 
var halfSize = size/2.0; 
positions.push(-halfSize, -halfSize, 0); 
normals.push(0, 0, -1.0); 
uvs.push(0.0, 0.0); 

positions.push(halfSize, -halfSize, 0); 
normals.push(0, 0, -1.0); 
uvs.push(1.0, 0.0); 

positions.push(halfSize, halfSize, 0); 
normals.push(0, 0, -1.0); 
uvs.push(1.0, 1.0); 

positions.push(-halfSize, halfSize, 0); 
normals.push(0, 0, -1.0); 
uvs.push(0.0, 1.0); 

// Indices 
indices.push(0); 
indices.push(1); 
indices.push(2); 

indices.push(0); 
indices.push(2); 
indices.push(3); 

plane.setVerticesData(positions, BABYLON.VertexBuffer.PositionKind); 
plane.setVerticesData(normals, BABYLON.VertexBuffer.NormalKind); 
plane.setVerticesData(uvs, BABYLON.VertexBuffer.UVKind); 
plane.setIndices(indices); 

return plane; 

하지만 THREE.JS와 같은 것이 아닙니다. 예를 들어 인덱스 버퍼를 수동으로 계산해야하는데, THREE.JS에서는 필요하지 않습니다. 또한 평면 만있는 샘플이고 정확한 돌출 정보를 찾지 못했습니다.

그래서 ... 바빌론에는 몇 가지 쉬운 방법이 있습니까?

답변

4

지금은 압출에 대한 지원이 없지만 이것이 추가 할 수있는 큰 기능이 될 수 있습니다. 나는 분명히 그것을 로드맵에 추가 할 것입니다. 문제를 더 자세히 논의하려면 the babylon.js forum에 문의하십시오.

편집 : 이제 사용자 정의 모양을 만들 수

유무 능력.

http://doc.babylonjs.com/tutorials/parametric_shapes#extrusion

+0

-1 이것은 질문에 대답하지 않습니다. 다른 포럼에서 답변에 링크 할 수도 있습니다. ** IF **는 자신의 게시물에도 답변을 포함합니다. 다른 포럼의 방문 페이지로 연결되는 링크는 이러한 정보를 제공하지 않습니다. –

+0

죄송합니다. 나는 무례하고 싶지 않았습니다. 내 답변은 : 지금은 지원이 없지만 가까운 장래에 추가 할 예정입니다. –

+2

귀하의 게시물을 편집하여 더 명확하게하고 내 downvote를 삭제했습니다. 나는 '이 기능이 아직 구현되지 않았다'는 사실을 깨닫지 못했다. –

관련 문제