자연스럽게 보이는 복셀 만드는 법


11

복셀 게임을 개발 중이지만 잘못된 기술을 사용하고 있다고 생각합니다. 나는 평평한 타일을 사용하여 블록을 만들고 더 좋고 효율적인 방법이 있다고 생각합니다.

자연스럽게 보이는 지형이있는 복셀 게임을 보았습니다. 그로 인해 나는 비 블로킹을 의미합니다. 이 게임은 입방 미터당 4 * 4 * 4 블록을 가지고 있으며 흙, 모래 및 돌과 같은 블록은 둥근 모서리를 가지고 있으며 녹는 종류가 있습니다 (일반 게임과 동일). 스크린 샷 여기에 이미지 설명을 입력하십시오

이것이 어떻게 달성됩니까?



이것이 어떤 게임인지 아십니까? 복셀인지 어떻게 확인할 수 있습니까? 좋아, 스스로 그것을 발견, 게임은 Blockscape : indiedb.com/games/blockscape
Babis

procworld.blogspot.com에는 복셀 엔진이 어떻게 만들어 졌는지에 대한 모든 종류의 자세한 블로그 게시물이 있습니다. 게시물은 엔진이 유년기부터 현재 Everquest Next에 대한 라이센스가 부여 된 시점까지 몇 년 전으로 거슬러 올라갑니다.
stokastic 2016 년

답변:


14

이것은 다른 높이의 큐브 사이에 램프를 보간하여 이루어집니다.

이와 같은 풍경이있는 경우 (측면에서 본)

  #
 ####   ##
############

다각형을 추가하여 다음과 같이 만듭니다.

 /#\
/####\ /##\
############

이러한 램프를 계산하는 알고리즘은 마칭 큐브 알고리즘 입니다.

더 아름답기를 원할 때 단일 다각형을 사용하여 큐브 사이를 보간하지 말고 여러 다각형의 곡선을 사용하십시오. 그러나 장면에 많은 다각형이 추가되므로 카메라에 가까운 큐브에 대해서만이 작업을 수행해야합니다.


감사합니다! OpenGL, 경량 Java 게임 라이브러리에서이를 수행하는 방법을 설명하는 장소를 알고 있습니까? 편집 : 그리고 행진 지형에 충돌 감지를 추가하는 방법을 잘 알고 있다면 높이 평가할 것입니다.
KaareZ

@KaareZ 죄송합니다. LWJGL을 사용한 적이 없습니다.
Philipp

@Philipp 이 답변에

1
또는 행진 큐브를 모두 건너 뛰고 훨씬 더 흥미로운 frankpetterson.com/publications/dualcontour/dualcontour.pdf로 이동할 수 있습니다. 덜 복잡합니다. 노이즈 청션 을 최종 청크의 정점에 오프셋으로 추가 할 수도 있습니다. 당신은 여전히 ​​블록을 가지고 있지만 지금은 엄격한 직선으로 엄격하게 정렬되지 않아 언덕 구르는 성질을 가지고 있습니다 ... 더블 컨투어링과 더 흥미로운 결과를 위해 이것을 결합합니다 (정점 오프셋에 수정자가 더 많거나 적은 유기적 생성을 제어 함) .
user29244

forum.unity3d.com/attachments/captura-jpg.23795 여기에는 "롤링 블록"의 사진이 있습니다 (수직 변위로 적용되는 오프셋). 여기에는 더 많은 그림이 있지만 모든 방향으로 변위가 적용됩니다 forum.unity3d.com/attachments/t1- jpg.23871 forum.unity3d.com/attachments/t2-jpg.23872 vimeo.com/27976287
user29244

6

이미지의 것과 비슷한 품질을 얻기 위해 처리해야 할 두 가지 장애물이 있습니다. 첫 번째는 예술적이며 두 번째는 기술 (메모리, 처리)입니다. 먼저 예술적 문제를 이미 해결했다고 가정하면 모델, 예술 및 쉐이더 등을 만들 수 있습니다 (부분적으로는 예술 문제에 대답 할 수 없기 때문에).

주요 기술적 문제는 당신이 만든 모델을 높은 수준의 디테일로 복 셀링 할 때 수많은 작은 복셀이 생길 수 있다는 것입니다. 수많은 복셀을 처리하고 렌더링하는 것은 쉽지 않습니다. 이에 대한 답을 Sparse Voxel Octrees 라고합니다.

SVO는 모든 복셀을 처리하지 않고 매우 보이는 모델 만 렌더링 할 수있는 기능을 제공합니다. SVO를 렌더링하려면 일반적인 래스터 화 기술보다는 레이 캐스팅을 사용해야합니다.

이 백서의 SVO에 대한 자세한 내용

다음은 SVO https://code.google.com/p/efficient-sparse-voxel-octrees/ 의 BSD 라이센스 구현이 포함 된 오픈 소스입니다.

다음은 다각형 대 SVO 기반 렌더링 (장단점) 을 설명 하는 비디오입니다 .


대단해! 또한 sauerbraten.org를 살펴보십시오 . 비슷한 기법을 사용합니다 (하지만 행진 큐브를 구현하지 않고 해당 부분이 레벨 디자이너에게
맡겨 짐
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.