3D 수묵화 렌더링
Post

3D 수묵화 렌더링

1
2
3
4
5
6
7
// V: Direction of view
// N: Mesh normal
E = V · N

if( E  0 && E  Threshold ) E is Edge
else E is Omitted

img1

1
2
3
4
5
6
7
8
texColor;
g = texColor.r * 0.3 + texColor.g * 0.59 + texColor.b * 0.11; //to Luminance

// L: Direction of light
// N: Mesh normal
u = L·N

c = tex2D(TexS, float2(u*g, 0.5f));

img2 img3 img4 img5

좌/우/상/하/좌상/우상/좌하/우하 값을 가져오되 stride 값을 이용하여 얼마나 떨어져 있는 값을 가져올 것인지 결정한다.

img6

픽셀의 최종값을 c라고 할때, c * = pow(c, gPower); 를이용하여 밝은 부분은 더 밝게, 어두운 부분은 더 어둡게 한다.

img7

Stride와 gPower값을 적당히 변경한 경우이다.