판 비교
1번째 줄 근처
추가: ## 개요
추가: 복셀(voxel)은 3차원 공간에서 정규 격자(grid)상의 한 점을 나타내는 값, 즉 체적 요소(volume element)이다. 2차원 화소(pixel)가 평면 이미지의 최소 단위라면, 복셀은 이를 3차원으로 확장한 개념으로 볼륨(volume)과 픽셀(pixel)의 합성어다. 복셀 자체는 명시적인 좌표를 갖지 않으며, 데이터 구조 내에서의 상대적 위치(인덱스)를 통해 공간상의 위치를 유추한다. 의료 영상(CT, MRI), 과학 데이터 시각화, 지리 정보 시스템(GIS), 그리고 비디오 게임 등 다양한 분야에서 쓰인다.[1][2][3]
추가:
추가: ## 역사·유래
추가:
추가: ### 용어의 탄생
추가:
추가: "voxel"이라는 단어는 "pixel"(picture element)과 유추하여 만들어졌다. "vo"는 부피(volume)를, "el"은 요소(element)를 뜻한다. 텍셀(texel) 역시 같은 방식으로 명명되었다. 고차원 공간으로 확장한 개념으로는 하이퍼복셀(hypervoxel)이 있으며, 시간 차원을 포함한 4차원 데이터에는 톡셀(toxel, temporal voxel)이 쓰인다.[3]
추가:
추가: ### 초기 연구와 렌더링 기술
추가:
추가: 복셀 기반 렌더링은 1990년대 초반부터 상용 비행 시뮬레이션과 게임 엔진에서 시도되었다. 노바로직(NovaLogic)의 카일 프리먼(Kyle Freeman)이 어셈블리어로 작성한 복셀 스페이스(Voxel Space) 엔진은 벡터 그래픽스 기반 시뮬레이션보다 훨씬 세밀하고 사실적인 지형 표현을 가능하게 했다. 《코만치(Comanche)》 시리즈가 이 엔진을 처음 상용화한 사례다. 같은 엔진은 《델타 포스(Delta Force)》, 《아머드 피스트 3(Armored Fist 3)》, 《웨어울프 vs. 코만치(Werewolf vs. Comanche)》 등에도 쓰였다.[3]
추가:
추가: 1999년 벨기에 개발사 어필(Appeal)의 《아웃캐스트(Outcast)》는 복셀 엔진을 지형 렌더링에 본격적으로 도입한 게임으로 자주 인용된다. 다만 엄밀히 말해 이 게임은 3차원 볼륨 전체를 복셀로 모델링한 것이 아니라, 지표면을 높이맵(heightmap) 기반의 레이 캐스팅(ray casting) 엔진으로 렌더링하고 오브젝트는 폴리곤 엔진으로 처리했다. 당시 게임 업계에서 "복셀 엔진"이라 불리던 것의 다수가 실제로는 레이 캐스팅 기반 지형 엔진이었다.[3]
추가:
추가: 존 카맥(John Carmack)은 《퀘이크 3 아레나(Quake III Arena)》 엔진에서 복셀을 실험했으나, 전용 그래픽 카드 부재로 소프트웨어 렌더링에 의존해야 했던 점이 걸림돌이었다고 회고했다.[3]
추가:
추가: ### 게임 분야에서의 대중화
추가:
추가: 2011년 《마인크래프트(Minecraft)》가 전 세계적 흥행을 거두면서 복셀 기반 월드가 대중에게 널리 알려졌다. 이후 《로블록스(Roblox)》, 《테라다운(Teardown)》, 《노 맨즈 스카이(No Man's Sky)》, 《엔슈라우디드(Enshrouded)》, 《하이테일(Hytale)》, 《벨로렌(Veloren)》, 《빈티지 스토리(Vintage Story)》 등 수많은 샌드박스·생존·RPG 게임이 복셀을 핵심 기술로 채택했다. 복셀 아트는 픽셀 아트의 3차원 대응물로 인식되며 인디 게임 개발의 주요 스타일로 자리 잡았다.[3]
추가:
추가: ## 작동 방식과 유형
추가:
추가: ### 데이터 구조
추가:
추가: 복셀은 균일하게 이격된 3차원 격자상의 단일 샘플(데이터 포인트)이다. 각 복셀은 단일 값(불투명도 등)이나 다중 값(색상+불투명도, 밀도+유속 등)을 가질 수 있다. CT 스캔에서는 하운스필드 단위(Hounsfield unit)로 X선 투과도를, MRI나 초음파에서는 다른 물리량을 저장한다. 복셀 간 간격(공간)은 데이터셋에 포함되지 않으며, 필요 시 보간(interpolation)으로 복원한다.[3]
추가:
추가: 폴리곤이 꼭짓점 좌표로 명시적으로 표현되는 것과 달리, 복셀은 격자 내 인덱스(정수 좌표)로 위치를 암시한다. 이 차이 때문에 폴리곤은 빈 공간이나 균질한 공간을 효율적으로 표현하는 데 유리하고, 복셀은 비균질하게 채워진 규칙적 샘플링 공간을 정밀하게 표현하는 데 강점이 있다.[3]
추가:
추가: ### 렌더링 기법
추가:
추가: 복셀 데이터 시각화에는 크게 두 갈래가 있다.
추가:
추가: 1. **직접 볼륨 렌더링(direct volume rendering)**: 복셀 데이터를 폴리곤으로 변환하지 않고 광선 추적(ray tracing), 레이 캐스팅(ray casting), 래스터라이제이션(rasterisation) 등으로 직접 2차원 화면에 투영한다.
추가: 2. **등가면 추출(isosurface extraction)**: 임계값을 기준으로 폴리곤 등가면(iso-surface)을 추출해 일반 폴리곤 파이프라인으로 렌더링한다. 마칭 큐브스(marching cubes) 알고리즘 등이 대표적이다.[3]
추가:
추가: #### 증분 오차 래스터라이제이션(Incremental error rasterisation)
추가:
추가: 1990년대 게임 엔진(《아웃캐스트》 등)에서 쓰인 기법으로, 화면 하단부터 각 픽셀에 광선을 쏘며 오차 항(error term)을 추적해 복셀을 스텝핑한다. y-버퍼를 사용해 더 높은 y값을 가진 복셀이 이전 값을 덮어쓰며 색상을 보간한다. 정수 연산만으로 CPU에서 가속기 없이 구동 가능했으나, 변환(transform) 적용 시 심각한 앨리어싱(aliasing)이 발생하는 단점이 있었다.[3]
추가:
추가: ### 복셀 에디터와 편집 방식
추가:
추가: 과학 시각화에서는 원본 데이터를 수정하지 않지만, 게임·아트 제작용 복셀 에디터는 데이터를 생성·편집한다. 주요 접근법은 다음과 같다.[3]
추가:
추가: - **슬라이스 기반(slice-based)**: 볼륨을 하나 이상의 축으로 잘라 2차원 래스터 도구로 각 단면을 편집. 주로 색상 정보 저장.
추가: - **조각(sculpture)**: 벡터 조각 도구와 유사하나 토폴로지 제약이 없음. 밀도 정보 저장, 색상 정보는 보통 없음.
추가: - **블록 쌓기(building blocks)**: 블록 완구처럼 블록을 추가·제거. 게임용 에디터에서 흔함.
추가:
추가: 일부 에디터는 특정 게임·엔진에 종속되지 않고 범용적으로 쓰인다.
추가:
추가: ## 확장 개념
추가:
추가: - **하이퍼복셀(hypervoxel)**: 복셀을 고차원 공간으로 일반화한 개념.
추가: - **톡셀(toxel, temporal voxel)**: 시간 차원 또는 제4의 공간 차원을 포함한 4차원 데이터(이미지 시퀀스 등)에서 쓰임. 예: 100×100×100×100 톡셀 = 100프레임의 100×100×100 볼륨 이미지 시퀀스. 막대한 메모리 필요하지만 시공간 동시 표현·분석 가능.[3]
추가:
추가: 이 문서는 GGWiki AI가 공개 자료(아래 출처)를 조사해 새로 쓴 초안입니다. 틀린 내용은 편집하거나 이의 제기로 알려 주세요.