3D는 2D에서 3D로 끌어올리는 레버리지(leverage)가 가장 강한 양식(modality)입니다. 2023년의 돌파구(breakthrough)는 3D 가우시안 스플래팅(3D Gaussian Splatting)이었습니다. 2024-2026년의 생성형(generative) 흐름은 그 위에 다시점 확산(multi-view diffusion)과 3D 재구성(3D reconstruction)을 얹어, 단일 프롬프트(prompt)나 사진 한 장에서 객체(object)와 장면(scene)을 만들어 내는 방향으로 이어집니다.
유형: Learn
언어: Python
선수 지식: Phase 4 (Vision), Phase 8 · 07 (Latent Diffusion)
예상 시간: 약 45분
문제
3D 콘텐츠(content)는 여러 이유로 까다롭습니다.
표현 방식(Representation). 메쉬(mesh), 포인트 클라우드(point cloud), 복셀 그리드(voxel grid), 부호 거리장(signed distance field; SDF), 뉴럴 래디언스 필드(neural radiance field; NeRF), 3D 가우시안(3D Gaussian)이 있고 각각 장단점이 있습니다.
데이터 부족(Data scarcity). ImageNet은 1,400만 장의 이미지를 보유하지만, 가장 큰 정제된 3D 데이터셋인 Objaverse-XL(2023)도 약 1,000만 개 객체에 그치며 대부분 품질이 낮습니다.
메모리(Memory). 512³ 복셀 그리드는 1억 2,800만 복셀에 달하고, 쓸 만한 장면(scene) NeRF는 광선(ray)당 100만 개의 샘플이 필요합니다. 생성(generation)은 재구성(reconstruction)보다 훨씬 어렵습니다.
감독 신호(Supervision). 2D 이미지의 경우 픽셀이 곧 감독 신호이지만, 3D는 보통 몇 개의 2D 시점(view)만으로 3D로 끌어올려야(lift) 합니다.
2026년의 스택(stack)은 이 두 문제를 분리합니다. 먼저 확산 모델(diffusion model)로 *2D 다시점 이미지(multi-view image)*를 생성하고, 그 다음 그 이미지들에 3D 표현(주로 가우시안 스플래팅)을 맞춰 넣습니다(fit).
사전 테스트
2문제 · 이 강의를 시작하기 전에 얼마나 알고 있는지 확인해보세요
1.2026년의 3D 생성 파이프라인이 3D를 직접 생성하는 대신, 다시점 확산(multi-view diffusion) 후 3D 재구성(reconstruction) 두 단계로 나누는 이유는 무엇인가요?
2.3D 가우시안 스플래팅(3DGS)이 NeRF 대비 실시간 렌더링에 적합한 이유는 무엇인가요?
0/2 답변 완료
개념
표현 방식: 3D 가우시안 스플래팅(3D Gaussian Splatting, Kerbl et al., 2023)
장면을 약 100만 개의 3D 가우시안 구름(cloud)으로 표현합니다. 각 가우시안은 59개의 파라미터(parameter)를 가집니다. 위치(position) 3개, 공분산(covariance) 6개(또는 쿼터니언(quaternion) 4개 + 스케일(scale) 3개), 불투명도(opacity) 1개, 그리고 구면 조화(spherical-harmonics) 색상(차수 3에서 48개, 차수 0에서 3개)입니다.
렌더링(rendering)은 투영(projection)과 알파 합성(alpha-compositing)으로 이뤄집니다. 빠르고(4090 기준 1080p에서 약 100 fps), 미분 가능(differentiable)하며, 실제 사진에 대해 경사 하강(gradient descent)으로 적합(fit)시킬 수 있습니다. 소비자용 GPU에서 한 장면을 5-30분 만에 맞춰 넣을 수 있습니다.
그 위에 2023-2024년에 등장한 두 가지 혁신이 있습니다.
생성형 가우시안 스플랫(Generative Gaussian splats). LGM, LRM, InstantMesh 같은 모델은 한 장 또는 몇 장의 이미지에서 가우시안 구름을 직접 예측합니다.
4D 가우시안 스플래팅(4D Gaussian Splatting). 동적 장면(dynamic scene)을 다루기 위해 가우시안에 프레임별 오프셋(per-frame offset)을 부여합니다.
다시점 확산(Multi-view diffusion)
사전 학습된 이미지 확산 모델(pretrained image diffusion model)을 미세 조정(fine-tune)해서, 텍스트 프롬프트나 단일 이미지에서 동일 객체의 일관된(consistent) 다중 시점을 생성합니다. Zero123(Liu et al., 2023), MVDream(Shi et al., 2023), SV3D(Stability, 2024), CAT3D(Google, 2024) 등이 여기에 해당합니다. 보통 객체 주변의 4-16개 시점을 만들고, 이를 가우시안 스플래팅이나 NeRF로 3D에 끌어올립니다.
텍스트-투-3D 파이프라인(Text-to-3D pipelines)
모델
입력
출력
시간
DreamFusion (2022)
text
SDS 기반 NeRF
자산당 약 1시간
Magic3D
text
mesh + texture
약 40분
Shap-E (OpenAI, 2023)
text
implicit 3D
약 1분
SJC / ProlificDreamer
text
NeRF / mesh
약 30분
LRM (Meta, 2023)
image
triplane
약 5초
InstantMesh (2024)
image
mesh
약 10초
SV3D (Stability, 2024)
image
novel views
약 2분
CAT3D (Google, 2024)
1-64 images
3D NeRF
약 1분
TripoSR (2024)
image
mesh
약 1초
Meshy 4 (2025)
text + image
PBR mesh
약 30초
Rodin Gen-1.5 (2025)
text + image
PBR mesh
약 60초
Tencent Hunyuan3D 2.0 (2025)
image
mesh
약 30초
2025-2026년의 방향은 게임 엔진(game engine)에 바로 투입할 수 있는 PBR 재질(material)을 갖춘 직접 텍스트-투-메쉬(direct text-to-mesh) 모델입니다. 다만 일반 객체에 대해서는 다시점 확산을 중간 단계로 두는 방식이 여전히 가장 좋은 성능을 보입니다.
NeRF(참고용)
뉴럴 래디언스 필드(Neural Radiance Field, Mildenhall et al., 2020)는 작은 다층 퍼셉트론(MLP)이 (x, y, z, view direction)을 입력받아 (color, density)를 출력하는 모델입니다. 광선(ray)을 따라 적분해서 렌더링합니다. 메쉬 기반 새 시점 합성(novel-view synthesis)보다 품질이 좋지만 렌더링 속도는 100-1,000배 더 느립니다. 실시간 용도에서는 대부분 가우시안 스플래팅으로 대체되었지만, 연구 분야에서는 여전히 주류입니다.
직접 만들기
code/main.py는 장난감(toy) 수준의 2D "가우시안 스플래팅" 적합(fit)을 구현합니다. 합성된 목표 이미지(부드러운 그라데이션)를 2D 가우시안 스플랫의 합으로 표현하고, 위치·색상·공분산을 경사 하강으로 최적화해 목표에 맞춥니다. 여기서 두 가지 핵심 연산을 직접 확인할 수 있습니다. 정방향 렌더링(forward render, 스플랫 + 알파 합성)과 경사 하강을 통한 적합입니다.
defrender(image_size, gaussians):
img = [[0.0] * image_size for _ inrange(image_size)]
for g in gaussians:
for y inrange(image_size):
for x inrange(image_size):
img[y][x] += g["color"] * gaussian_at(x, y, g)
return img
실제 3D 가우시안 스플래팅은 가우시안을 깊이(depth) 순서로 정렬한 뒤 알파 합성을 순서대로 수행합니다. 우리 2D 장난감 버전은 단순히 더하기만 합니다.
Step 3: 경사 하강으로 적합
for step inrange(steps):
pred = render(size, gaussians)
loss = mse(pred, target)
gradients = compute_grads(pred, target, gaussians)
update(gaussians, gradients, lr)
빠지기 쉬운 함정(Pitfalls)
시점 불일치(View inconsistency). 4개의 시점을 서로 독립적으로 생성해서 객체 구조에 대해 의견이 어긋나면 3D 적합 결과가 흐릿(blurry)해집니다. 해결책은 공유 어텐션(shared attention)을 사용하는 다시점 확산입니다.
뒷면 환각(Back-side hallucination). 단일 이미지에서 3D로 만들 때는 보이지 않는 뒷면을 모델이 지어내야(invent) 합니다. 품질 편차가 매우 큽니다.
위상(topology) 문제. 음함수 표현(implicit field, SDF)에서 뽑아낸 메쉬는 구멍(hole)이나 자기 교차(self-intersection)가 있는 경우가 많습니다. 배포 전에 리메셔(remesher)(예: Blender의 voxel remesh)를 한 번 돌려야 합니다.
학습 데이터 라이선스(license). Objaverse는 라이선스가 섞여 있고, 상업적 사용 가능 여부는 모델마다 다릅니다.
사용해보기
작업
2026년 추천
사진에서 장면 재구성
가우시안 스플래팅 (3DGS, Gsplat, Scaniverse)
게임용 텍스트-투-3D 객체
Meshy 4 또는 Rodin Gen-1.5 (PBR 출력)
이미지-투-3D
Hunyuan3D 2.0, TripoSR, InstantMesh
소수 이미지에서 새 시점 합성
CAT3D, SV3D
동적 장면 재구성
4D Gaussian Splatting
아바타 / 옷 입은 사람
Gaussian Avatar, HUGS
연구 / SOTA
지난 주에 나온 최신 모델
게임이나 이커머스(e-commerce) 파이프라인에 프로덕션 3D를 배포한다면, Meshy 4나 Rodin Gen-1.5가 출력하는 PBR 메쉬가 Unity / Unreal에 그대로 들어갈 수 있어 유리합니다.
산출물 만들기
outputs/skill-3d-pipeline.md로 저장합니다. 이 스킬(skill)은 3D 작업 브리프(입력: text / 이미지 한 장 / 이미지 여러 장, 출력: mesh / splat / NeRF, 용도: render / game / VR)를 받아서 다음을 출력합니다. 파이프라인(다시점 확산 + 적합, 또는 직접 메쉬 모델), 베이스 모델(base model), 반복(iteration) 예산, 위상(topology) 후처리, 필요한 재질 채널(material channel).
연습문제
쉬움.code/main.py를 가우시안 개수 4, 16, 64로 각각 실행합니다. 목표(target) 대비 최종 MSE를 보고합니다.
중간. 컬러 가우시안(RGB)으로 확장합니다. 재구성 결과가 목표의 색상 패턴과 일치하는지 확인합니다.
어려움. gsplat 또는 Nerfstudio를 사용해 50장 사진 촬영물로 실제 객체를 재구성합니다. 적합 시간(fit time)과 보류(held-out) 시점에서의 최종 SSIM을 보고합니다.
핵심 용어
용어
흔한 설명
실제 의미
3D 가우시안 스플래팅(3D Gaussian Splatting)
"3DGS"
장면을 3D 가우시안 구름으로 표현하고, 미분 가능한 알파 합성으로 렌더링한다.
NeRF(Neural Radiance Field)
"뉴럴 래디언스 필드"
3D 한 점에서 색상과 밀도를 출력하는 MLP. 광선 적분으로 렌더링한다.
트라이플레인(Triplane)
"세 개의 2-D 평면"
3D를 세 개의 축 정렬 2-D 특징 그리드(feature grid)로 분해. 부피 표현보다 가볍다.
SDS(Score Distillation Sampling)
"스코어 디스틸레이션 샘플링"
2D 확산 모델의 스코어(score)를 의사 경사(pseudo-gradient)로 사용해 3D 모델을 학습한다.
다시점 확산(Multi-view diffusion)
"한 번에 여러 시점"
일관된 카메라 시점의 배치를 출력하는 확산 모델.
PBR(Physically-Based Rendering)
"물리 기반 렌더링"
알베도(albedo), 거칠기(roughness), 금속성(metallic), 노멀(normal) 채널을 가진 재질.
밀도화(Densification)
"스플랫 늘리기"
경사가 큰 영역에서 스플랫을 분할(split) 또는 복제(clone)하는 3DGS 학습 휴리스틱.
Production note: 3D에는 아직 공통 기반(substrate)이 없다
이미지(latent diffusion + DiT)와 영상(spatiotemporal DiT)과 달리, 3D에는 2026년에도 단일한 지배적 런타임(runtime)이 없습니다. 프로덕션 의사 결정은 표현 방식에 따라 갈라집니다.
다시점 확산 + LRM 재구성. 2단계 파이프라인입니다. 1단계(다시점 DiT)는 Lesson 07과 같은 확산 서버입니다. 2단계(LRM 트랜스포머)는 시점들을 받아 한 번에 정방향을 수행하는 일회성 모델입니다. 전체 지연(latency) 프로파일은 "확산 + 일회성"이므로 단계별로 서빙 기본 요소(serving primitive)를 골라야 합니다.
SDS / DreamFusion. 추론이 아니라 자산별 최적화입니다. 요청 처리기(request handler)가 아니라 배치 작업(job)으로 운영합니다.
대부분의 2026년 제품에서 정답은 "요청 시 다시점 확산 모델을 돌리고, 3DGS로의 재구성은 비동기(asynchronously)로 진행하며, 실시간 보기는 3DGS로 제공"하는 방식입니다. 이렇게 하면 작업이 GPU 추론 서버(빠름)와 오프라인 최적화기(느림) 사이에 깔끔하게 분리됩니다.