4P by neo 2달전 | ★ favorite | 댓글 1개

Voxel Space

웹 데모: Voxel Space 엔진

역사

  • 1992년 당시 CPU는 현재보다 1000배 느렸고 GPU 가속은 알려지지 않았거나 비쌌음.
  • 3D 게임은 CPU에서만 계산되었고, 렌더링 엔진은 단일 색상의 폴리곤을 렌더링했음.
  • 1991년 MicroProse의 게임 Gunship 2000과 1992년 NovaLogic의 게임 Comanche가 출시되었음.
  • Comanche는 당시로서는 놀라운 그래픽을 제공했으며, 텍스처, 음영, 그림자 등을 보여줌.

렌더링 알고리듬

  • Comanche는 Voxel Space라는 기술을 사용하며, 이는 레이 캐스팅과 유사한 아이디어에 기반함.
  • Voxel Space 엔진은 2.5D 엔진으로, 일반적인 3D 엔진이 제공하는 모든 자유도를 제공하지 않음.
높이 맵과 색상 맵
  • 지형을 표현하는 가장 쉬운 방법은 높이 맵과 색상 맵을 사용하는 것임.
  • Comanche 게임에서는 1024 * 1024 크기의 1바이트 높이 맵과 색상 맵을 사용함.
  • 이러한 맵은 주기적이며, 복잡한 구조물은 표현할 수 없지만, 색상 맵은 이미 음영과 그림자를 포함하고 있어 렌더링 과정에서 조명을 계산할 필요가 없음.
기본 알고리듬
  • 3D 엔진의 렌더링 알고리듬은 매우 간단함.
  • Voxel Space 엔진은 높이와 색상 맵을 래스터화하여 수직선을 그림.
  • 화면을 지우고, 후면에서 전면으로 렌더링하여 가림을 보장함.
  • 관찰자로부터의 광학적 거리에 해당하는 맵의 선을 결정함.
  • 선을 래스터화하여 화면의 열 수에 맞춤.
  • 2D 맵에서 선의 세그먼트에 해당하는 높이와 색상을 가져옴.
  • 높이 좌표에 대해 원근 투영을 수행함.
  • 원근 투영에서 가져온 높이와 해당 색상으로 수직선을 그림.
회전 추가
  • 위 알고리듬으로는 북쪽만 볼 수 있음.
  • 다른 각도를 보려면 좌표를 회전시키는 몇 줄의 코드가 필요함.
성능 향상
  • 성능을 높이기 위한 여러 가지 트릭이 있음.
  • 후면에서 전면으로 그리는 대신 전면에서 후면으로 그릴 수 있음.
  • 가림을 보장하기 위해 추가적인 y-버퍼가 필요함.
  • 세부 사항 수준을 조정하여 가까운 곳에서는 더 많은 세부 사항을, 먼 곳에서는 적은 세부 사항을 렌더링함.

링크

  • 웹 프로젝트 데모 페이지
  • Voxel 지형 엔진 소개
  • 개인 웹사이트

  • 색상, 높이

라이선스

  • 소프트웨어 부분은 MIT 라이선스 하에 있음.
  • Voxel Space 기술은 일부 국가에서 여전히 특허가 있을 수 있음.
  • 색상 및 높이 맵은 게임 Comanche에서 역설계된 것으로 라이선스에서 제외됨.
Hacker News 의견
  • 과거의 독창적이고 우아한 알고리즘이 마법 같은 경험을 제공하던 시대가 그리움. 하드웨어 자원이 제한적이던 시절, 개발자들은 새로운 기술과 창의성을 발휘하여 게임을 발전시켰음

    • 오늘날에는 PICO-8 같은 판타지 플랫폼이 AAA 스튜디오의 반복적인 게임보다 더 흥미로움
    • VoxelSpace와 같은 알고리즘은 적은 코드로 지형을 렌더링하는 방법을 보여줌
  • mars.com이라는 프로그램과 관련된 비디오가 흥미로움

    • Pouet 사이트에서 관련 정보를 찾을 수 있음
  • 이 렌더링 방법은 흥미롭지만, 임의의 볼륨을 렌더링할 수 없어 voxel로 분류하기는 어려움. 이는 높이맵 렌더러의 깔끔한 구현임

  • 2020년 또는 2017년의 논의가 제목에 포함될 수 있음. 2021년에도 같은 저장소에 대한 논의가 있었음

  • 프로그래밍을 처음 배울 때, QBasic으로 지형 높이맵을 생성하고 아이소메트릭 스타일로 렌더링하는 프로그램을 작성했던 기억이 있음. 이는 프로그래밍을 계속하게 만든 요소 중 하나였음

  • Adventure Game Studio로 이 기술을 사용하여 게임을 만들었음. 엔진의 이전 버전으로 최적화되지 않았지만, 언젠가 업데이트할 예정임

  • 대부분의 현대 게임에서는 산이 비어 있는 경우가 있지만, 이 방법을 사용하면 산이 견고하게 보임

  • Comanche 게임을 처음 플레이했을 때의 감동을 기억함. 이는 미래나 영화에서 온 것 같은 느낌을 주었음

  • 소프트웨어 렌더러 프로젝트는 재미있고 주말 프로젝트로 적합함. 과거에 유사한 알고리즘을 구현했지만, 현재의 구현이 훨씬 성능이 뛰어나고 간단함

  • GPU가 voxel 기반인 대체 타임라인에서 살고 싶음