블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2797)
Unity3D (853)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (61)
3DS Max (3)
Game (12)
Utility (68)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

[링크] https://www.shadertoy.com/browse

 

Browse (1) - Shadertoy BETA

Results (40693):

www.shadertoy.com

 

반응형
Posted by blueasa
, |



1. 개요

카툰랜더링이나 캐릭터 선택효과에 주로 쓰이는 실루엣 기법을 알아본다.

 

2.경계선 메쉬 만들기

메쉬를 구성하는 모든 edge들을 퇴축 사각형(넓이가 0인 사각형)으로 재구성한다.

 A        B
 *--------*
 |  edge  |
 *--------*
 C        D

 

초기에 A==C , B==D 이 다.

 

이부분은 silhouetteEdges.cpp,silhouetteEdges.h가 처리를 해준다.

 

SilhouetteEdges객체 초기화는 아래와 같이  메쉬를 넣어서 만든다.

ID3DXBuffer* adjBuffer = 0;
D3DXCreateTeapot(Device, &Teapot, &adjBuffer); 
OutLineShader::g_pMesh = new SilhouetteEdges(Device, Teapot, adjBuffer);
SAFE_RELEASE(adjBuffer);

 

랜더방법은 아래와같이 쉐이더 적용후에 render함수를 호출해준다.

 

pd3dDevice->SetVertexShader(OutLineShader::g_pShader);

...

OutLineShader::g_pMesh->render();

 

 

 

3. 실루엣 외각선 구분하기

두개의 면을 공유하는 외각선이 있을때 관찰자 기준으로 두개의 면이 서로 다른방향을 보면 그 외각선은 실루엣 외각선이다.

이부분은 outline.hlsl 이 처리한다.

 

 

4. 결론




출처 : http://gbox2.blog.me/100050813839

반응형
Posted by blueasa
, |