| 순번 | 조명 효과 | 비고 |
|---|---|---|
| 1.1. | Blinn-Phong | |
| 1.2. | PBR | |
| 1.3. | Fresnel Effect | |
| 1.4. | Rim Effect |
| 순번 | 유틸리티 기능 효과 | 비고 |
|---|---|---|
| 2.1. | Gizmo | Triangle, Sphere Intersection Algorithm |
| 2.2. | Octomap | Geometry Shader 활용한 Octomap 랜더링 |
- Graphics
- Texture 종류
- MASS
- ㅇㅇㅇ
- 수학
- 좌표계 상호 변환 기법(구, 카르테시안)
- 변환
- 물리
- 빛이 매질에 충돌 시 1) 정반사가 발생하거나 물질 내부로 흡수된다.
- 흡수되는 경우, 일부는 분자 단위의 충돌이 발생해 2) 난반사가 일어나거나 3) 감쇠한다.
- 빛의 현상을 실제 물리법칙에 근거하여 근사 한 것이 BRDF Light(PBR)이다.
$l$ : Surface to Light vector$v$ : Surface to Eye(Camera) vector$c_diff$ : Diffuse Albedo(Cubemap의 diffuseHDR Texture 활용)$\pi$ 로 나눠 정규화(에너지 보존법칙)
$n$ : Normal vector$l$ : Surface to Light vector$v$ : Surface to Eye(Camera) vector$h$ : Half way vector (${h = normalize(l + v)}$ )$k$ : 표면 거칠기$\alpha$ :${표면 거칠기^2}$ $F_0$ : 매질의 정반사율$F(l,h)$ : Fresnel-Schlick approximation$G(l,v,h)$ : Smith's Schlick-GGX Equation$D(h)$ : GGX/Trowbridge-Reitz Equation$G_1(vector)$ : Schlick Equation
float3 diffuseBRDF = ...;
float3 specularBRDF = ...;
float3 color (diffuseBRDF + specularBRDF);- GPU 연산을 위한 셰이더
- Compute shader는 그래픽 파이프라인에 종속되지 않음
| 용어 | 설명 | 비고 |
|---|---|---|
| SM | GPU의 독립적인 연산 단위 | Streaming Multiprocessors |
| SIMT | CUDA의 연산 방법, 동일 명령을 여러 쓰레드가 처리 | Single-Instruction, Multiple-Thread |
| Warp | 32개의 쓰레드 단위 실행 그룹 |
| 용어 | 설명 | 비고 |
|---|---|---|
| SV_DispatchThreadID | 쓰레드 고유 ID(SV_GroupID * numthreads + GroupThreadID) | DirectX11 |
| SV_GroupID | Group의 고유 ID |
| 용어 | 설명 | 비고 |
|---|---|---|
| Albedo(Color, Diffuse) | RGB 컬러 이미지 | 3D |
| AO(Ambient Occlusion) | 영역 별 광원에 얼마나 노출되는지 판단 | |
| Displacement(height) | 영역 별 높낮이(z축) 정보 | 1D |
| Normal | Normal vector 정보 | 3D |
| Roughness | 빛의 분산 정도에 대한 정보 | 3D |
| Opacity | 텍스쳐의 투명도 정보 | 1D |
| BRDF | LUT, |
2D |
- CPU와 GPU 메모리의 중단다리 역할
- 각 디바이스의 메모리 복사 최적화를 도와줌
- GPU 쓰레드가 동시에 읽고 쓸 수 있도록 지원하는 버퍼
- 주로 Compute shader에서 사용
-
Unordered Access View에서 자료구조를 커스텀 가능
-
GPU에서 읽기, 쓰기가 가능한 버퍼
$$ \begin{aligned} &R = \begin{bmatrix} 1-2n_x n_x & -2n_xn_y & -2n_xn_z & 0 \ -2n_xn_y & 1-2n_yn_y & -2n_yn_z & 0 \ -2n_xn_z & -2n_yn_z & 1-2n_zn_z & 0 \ -2dn_x & -2dn_y & -2dn_z & 1 \ \end{bmatrix} \end{aligned} \
이 행렬은 반사의 기준이되는 평면은 정규화 되어있다고 가정한다.\
\begin{aligned} proj_n(p-p_0) &= [n \cdot (p-p_0)]n \ &= e + f + g \end{aligned} $$


