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

카테고리

분류 전체보기 (2309)N
Unity3D (565)N
Programming (471)N
Unreal (4)
Gamebryo (56)
Tip & Tech (182)
협업 (34)
3DS Max (3)
Game (12)
Utility (114)
Etc (92)
Link (31)
Portfolio (19)
Subject (90)
iOS,OSX (37)
Android (12)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (1)
Memories (19)
Interest (37)
Thinking (36)
한글 (26)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (19)
Exercise (3)
나만의 맛집 (2)
냥이 (9)
육아 (5)
Total1,332,748
Today13
Yesterday299
Statistics Graph

달력

« » 2019.10
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

공지사항

태그목록



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

댓글을 달아 주세요



- Spring을 이용해 바람에 흔들리는 커튼(Cloth) 구현
Posted by blueasa

댓글을 달아 주세요



- Spring 시뮬레이션
Posted by blueasa

댓글을 달아 주세요



- 오일러 해법으로 포사체 운동 시뮬레이션
- 정확한 해석적 해와 비교
- 중앙에 중력을 뒀음
Posted by blueasa

댓글을 달아 주세요



- HLSL로 Sparkle 구현
Posted by blueasa

댓글을 달아 주세요



- HLSL로 Hatching 구현
Posted by blueasa

댓글을 달아 주세요



- HLSL로 SilhouetteToon 구현

'Subject > Shader' 카테고리의 다른 글

[과제082] Sparkle(HLSL)  (0) 2010.03.11
[과제082] Hatching(HLSL)  (0) 2010.03.11
[과제081-2] SilhouetteToon(Cratoon Rendering)(HLSL)  (0) 2010.03.11
[과제081-1] GlowToon(Cratoon Rendering)(HLSL)  (4) 2010.03.11
[과제080] Reflection/Refraction(HLSL)  (0) 2010.03.11
[과제079] Glow(HLSL)  (0) 2010.03.11
Posted by blueasa

댓글을 달아 주세요



- HLSL로 GlowToon 구현
Posted by blueasa

댓글을 달아 주세요

  1. 2013.11.26 17:30 안녕하세요  댓글주소  수정/삭제  댓글쓰기

    안녕하세요 레더몽키로 그대로 따라해서 GlowToon을 했습니다.
    근데 이걸 DX프레임워크에다가 적용시킬려니 외곽부분이 CW가 안되는거 같습니다. CW를 추가시켜도 똑같고요.
    어떤현상이냐하면 외곽이 캐릭터안에 꽉차게 보입니다.
    이걸 어떤씩으로 해결해줘야하나요?

    • 2013.11.27 18:17 신고 blueasa  댓글주소  수정/삭제

      안녕하세요.
      말씀하신 현상만으로는 정확하게 어떤지 감이 잘 안오는데요.
      외곽이 캐릭터안에 꽉차게 보인다면..
      Backface Culling이어야 되는데 Frontface Culling이 돼서 캐릭터 자체가 안보이는 문제같아 보이는데요.
      DX라면 쉐이더가 아니라 소스상에서 CW / CCW를 셋팅해줄 수 있었던걸로 기억합니다.
      소스상의 셋팅부분 확인을 한 번 해보세요~

      ex) m_pDevice->SetRenderState(D3DRS_CULLMODE,D3DCULL_CW);

      참조 : http://blog.naver.com/PostView.nhn?blogId=wlsspakss&logNo=110396484&categoryNo=110&viewDate=&currentPage=1&listtype=0
      참조 : http://msdn.microsoft.com/en-us/library/windows/desktop/bb172529(v=vs.85).aspx

  2. 2013.11.28 18:58 감사합니다  댓글주소  수정/삭제  댓글쓰기

    감사합니다~



- HLSL로 반사/굴절 구현
- 환경맵 추가
Posted by blueasa

댓글을 달아 주세요



- HLSL로 Glow 구현
Posted by blueasa

댓글을 달아 주세요