Realtime 3D Sumi-e Rendering
original paper by {sjkang, chkim}@cgvr.korea.ac.kr
http://cafe.naver.com/shader
임용균 ([email protected])
Sumi-e Rendering Process
• 농담 효과(Nong-Dam Effect)
▫ 수묵화에는 빛에 의한 명암 효과는 살펴 볼 수 없음.
▫ 양감을 나타내는 수단으로 먹과 색채의 농담의 변화가 표현
▫ 중심 내부에서 외부로 갈때 농묵에서 담묵으로 변화함.
• 윤곽선(Brush Stroke Effect)
▫ 선은 물체의 모양과 화가의 감정을 나타낸다. 수묵화는 윤곽
선이 일정하지 않다.
• 발묵 효과(Bal-Muk Effect)
▫ 붓에 함유된 물과 먹의 비율에 따라 종이 상에서 불규칙적인
농담 변화를 보이는 효과.
Sumi-e Rendering Process
• 내부 생략 효과(Atmospheric Depth & Inside Omission)
▫ 단순화와 생략이 적용되어 물체의 내부 모습이 추상화되어
간략하게 묘사 된다.
• 종이 번짐 효과(Paper Effect)
▫ 각각의 펄프에 따라 먹의 입자가 흡착되어 진행되는 현상으
로 각 재질의 펄프 분포 정도와 흡습도에 많은 영향을 받게
된다.
▫ 여러 종이의 재질을 선택적으로 적용할 수 있어야 한다.
Sumi-e Rendering Process
종이 번짐 효과
이미지 프로세싱
내부 생략 효과
내부 생략 효과 shader
발묵 효과
쉘 텍스쳐 3D 볼륨 텍스쳐
농담 변화
농담 효과 shader
윤곽선
생략 효과 shader 붓 터치 효과 shader
윤곽선(Brush Stroke Effect)
• 윤곽선 생략 효과 : 1D Warping Texture로 근사
▫ 1st_silhouette_1D_texture_index = max{(C • N), 0}
C : view space vector from vertex to closure effect position
N : view space vertex normal
윤곽선(Brush Stroke Effect)
• 붓 터치 효과 : 여러 번짐 효과 텍스쳐 세트를 Sphere Mapping하여 추가
적인 2차 윤곽선 표현
▫ view_space_reflection_vector r r = 2(N • E) • N – E
E : view space eye position vector
N : view space vertex normal
▫ 2nd_silhouette_2D_texture_index_u = rx/2m + 0.5
▫ 2nd_silhouette_2D_texture_index_v = ry/2m + 0.5
• 생략 효과와 붓 터치 효과를 결합하여 윤곽선을 나타낸다.
222)1( zyx rrrm
농담 변화(Nong-Dam Effect)
• 농담 효과 : 중심에서 외곽으로 갈수록 alpha값을 낮게 한다.
▫ Nong_Dam_Alpha = (V – C)•N
V: view space vertex position
C: view space nong-dam effect center position
N: view space vertex normal
▫ 일정한 한계치로 알파테스트를 수행하여 윤곽선 부근에서 외형 생
략 효과와 실루엣 드로잉 효과가 나타날 수 있도록 한다.
발묵 효과(Bal-Muk Effect)
• 발묵 효과 : 불규칙한 볼륨감 표현, 3D 볼륨 텍스쳐를 멀티 텍스쳐링
▫ shell_vertex_position = Vo + (h/m)•N Vo: original view space vertex position
h: shell level
m: maximum number of shells
N: view space vertex normal
▫ shell_texture_z_index = 1 / {k•(h/m)^q
k : scaling value
h : shell level
m : maximum number of Shells
q : attenuation factor
내부 생략 효과(Inside Omission)
• 내부 생략 효과 : spherical fogging을 이용
▫ inside_closure_effect_value = {(Vo – C)/(Vmax – C)}^q Vo: view space vertex position
C: view space object center position
Vmax: maximum vertex position from center C
q: attenuation factor
종이 번짐 효과(Paper Effect)
• 종이 번짐 효과▫ 종이 버퍼에 각 재질 속성별로 불규칙한 펄프의 분포값을 배정
▫ 이미지 처리(image processing)를 수행하여 최종 밝기값을 구함
▫ 기존의 렌더링 영상 결과와 블랜딩하여 최종 결과물 생성
l : pulp length
)22
(2
sin_l
xl
l
xcpospulp