2014-04-21 7 views
4

전 세계가 복셀로 가득차 있습니다. 내 세계는 320 * 320 * 96 복셀이라고 할 수 있습니다. 내 아이디어는 GPU에 새로운 "덩어리"를 전송할 때 성능이 저하되지 않도록 전 세계를 내 비디오 카드의 RAM에로드하는 것입니다. 그 voxelworld를 표시하기 위해 생성 된 얼굴의 양은 현대 그래픽 카드의 메모리에 쉽게 맞아야합니다.복셀 세계에서 '도용'

그러나 세계의 일부를 표시하지 않는 방법에 직면 해있는 지금 문제는이 세상의 시각을 (예 : 128 * 128 * 96)으로 제한하고 주변 세계 나 카메라를 다른 부분을 보여주십시오.

내 문제를 설명하기 위해 흰색으로 보이는 영역을 구성하는 (단순한) 장면을 볼 수 있어야합니다. 오른쪽 WebGL/three.js 기능을 사용하여보기를 흰색 부분.

the voxelworld

답변

3

당신은 당신이 현장에서 표시하지 않으 복셀을 제거 할 수 있습니다.

scene.remove(mesh) 

그리고 표시하고 싶을 때 장면에 추가하십시오.

scene.add(mesh) 

복셀 세계를 (Minecraft와 같은) 덩어리로 분할하고 그 덩어리를 개별적으로 메쉬로 만드는 것이 좋습니다. 장면에 표시 할 청크 메쉬를 추가하고 숨길 때 제거합니다.

+0

그저 부분적으로 내 문제를 해결하기 때문에 실제로 한 번에 하나의 보셀 스트립을 표시하거나 숨기고 싶습니다. 내 청크는 16 * 16 * 16 – windwarrior

+0

@windwarrior 그러면 청크를 사용하여 복셀을 구성하는 것이 무엇입니까? – AlexJM

+0

단일 블록을 변경해도 전체 보셀 월드가 무효화되지는 않습니다. – windwarrior