목 차
🎨 Three.js / React Three Fiber (R3F)
📘 1단계: 기초 개념 (Foundations)
📗 2단계: 실사용 예시 (Practical Usage)
📙 3단계: 심화 (Advanced Concepts)
📒 4단계: 실무 적용 & 참고 자료 (Production & Resources)
3D 그래픽스 원리와 WebGL 기반 렌더링 구조 이해
Three.js 핵심 컴포넌트와 R3F의 추상화 방식 습득
WebGL vs Three.js vs R3F
Scene, Camera, Renderer 구조
Mesh, Geometry, Material, Light
R3F의 Declarative 방식
좌표계와 변환 행렬 (Translation, Rotation, Scale)
월드/뷰/프로젝션 변환
Perspective Projection vs Orthographic Projection
FOV(Field of View), Aspect Ratio, Near/Far Clipping
WebGL의 역할
Shaders(GLSL) 기초
버텍스/프래그먼트 셰이더
WebGL Context 생성과 Render Loop
Three.js로의 추상화 장점
Three.js 주요 클래스
Scene 생성 및 객체 추가
Camera(Orthographic, Perspective) 생성
WebGLRenderer 초기화와 애니메이션 루프
Mesh(Geometry + Material) 생성
Scene 생성
Camera 설정
Renderer 초기화 및 DOM 연결
기본 도형(Box, Sphere, Plane, Torus 등)
BufferGeometry 이해
Vertex, Normal, UV 구조
MeshBasicMaterial vs MeshStandardMaterial
PBR(Physically Based Rendering) 개념
색상, 반사, Roughness, Metalness
Ambient, Directional, Point, Spot Light
그림자 매핑 (ShadowMap)
Light Helper
'Canvas'와 Scene 생성
useFrame, useThree 훅
Props를 통한 객체 제어
Box 회전 예제
OrbitControls로 카메라 조작
Three.js와 R3F를 활용한 실질적인 인터랙티브 씬 제작
모델 로딩, 애니메이션, 이벤트 처리
OrbitControls, TrackballControls
카메라 위치 애니메이션
GLTFLoader 사용
Draco 압축 해제
GLTF 애니메이션 재생
ImageTexture, VideoTexture
RepeatWrapping, Offset
NormalMap, RoughnessMap, EnvironmentMap
PMREMGenerator 사용
HDR 파일 로드
AnimationMixer
R3F의 useFrame과 React state 연동
Raycaster로 객체 선택
마우스/터치 이벤트
드래그 앤 드롭
Leva, Drei 패널 사용
상태 변경에 따른 씬 업데이트
Components/Scenes/Assets 디렉토리 구성
Hooks 분리
Assets Preloading
고급 렌더링, 성능 최적화, 대규모 씬 관리
실시간 데이터와 상호작용 구현
Bloom, SSAO, Depth of Field
EffectComposer
Cannon.js, Rapier 연동
Rigid Body, Collider
Force, Impulse 적용
InstancedMesh
GPU Instance Rendering
성능 최적화 기법
원거리 객체 해상도 조절
Custom GLSL ShaderMaterial
Vertex/Fragment Shader 작성
Noise, Distortion, Procedural Texture
Suspense와 Lazy Loading
useLoader 최적화
Portal API로 객체 계층 변경
Zustand, Jotai
글로벌 상태로 씬과 UI 연결
WebSocket, Socket.IO
실시간 3D 시뮬레이션
Vite/Next.js + R3F
Netlify/Vercel 배포
CDN 기반 에셋 제공
Mesh Simplification
Texture Compression (Basis, KTX2)
Tree-shaking, Code Splitting
Canvas SEO 전략
ARIA와 키보드 내비게이션
모델 소스 보호
라이선스 관리
Three.js 공식 문서
R3F 공식 문서
Bruno Simon Three.js Journey
pmndrs/drei, react-postprocessing
기능: 카메라 회전, 조명, 간단한 3D 오브젝트 애니메이션
학습 포인트: OrbitControls, Mesh, Material, Light 기초
기능: OBJ/GLTF 모델 로드, 확대/축소, 회전
학습 포인트: GLTFLoader, Texture Mapping
기능: 클릭 시 해당 랜드마크 정보 표시
학습 포인트: Raycaster로 오브젝트 클릭 이벤트 구현
기능: 실시간 API 데이터를 그래프나 3D 차트로 표시
학습 포인트: Geometry 변형, 애니메이션 루프
기능: 플레이어 이동, 장애물 회피, 점수 시스템
학습 포인트: Physics 라이브러리(cannon-es) 연동
기능: WebXR API와 결합, VR 모드에서 전시물 탐색
학습 포인트: XR 지원, Scene 레이아웃 설계
기능: Socket.io로 다중 사용자 위치 동기화
학습 포인트: 네트워크 동기화, 성능 최적화
기능: Perlin Noise로 지형 생성, 오브젝트 자동 배치
학습 포인트: Shader, Geometry 커스터마이징
기능: 블록체인 연동, NFT 이미지/3D 모델 전시
학습 포인트: Web3.js/Ethers.js + R3F 통합