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

카테고리

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

달력

« » 2019.12
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        

공지사항

태그목록

스텐실 버퍼

stencil buffer는 특수한 효과를 위한 off-screen buffer로, back buffer 및 depth buffer와 동일한 해상도를 가진다. 따라서, stencil buffer 내의 (i, j)번째 픽셀은 back/depth buffer의 (i, j)번째 픽셀과 대응된다.

이름이 의미하는 것 처럼 stencil buffer는 back buffer의 일정 부분이 렌더링되는 것을 막는 효과를 위해 사용된다. 예를 들어, 거울에 특정 물체를 반사하도록 할려고 한다면, 거울에 반사되는 부분에 대해서만 드로잉을 수행하면 된다. 이 때 거울에 비치지 않는 부분은 렌더링되는 것을 막을 수 있는 있도록 하는 것이 바로 stencil buffer다.

 

다음과 같은 곳에 활용할 수 있다.

- 거울에 비치는 물체를 그릴때

- Shadow volume 을 이용한 그림자 렌더링

- 기타 다양한 마스킹( FPS 저격 줌인? )

 

기초 지식

렌더링 테스트의 순서 : 스텐실 테스트 -> Z-Test

 

 

In 게임브리오(StencilShadow.cpp)

 

NiStencilPropertyPtr spStencil = NiNew NiStencilProperty;
spStencil->SetStencilOn(true);

// 스텐실 테스트는 항상 통과하도록함
spStencil->SetStencilFunction(NiStencilProperty::TEST_ALWAYS);

// 스텐실 테스트에 실패해서 아무것도 그려지지 않게 생겼을 경우...
spStencil->SetStencilFailAction(NiStencilProperty::ACTION_KEEP);

// 스텐실 테스트와 Z-Test 모두 통과 했을 경우...
spStencil->SetStencilPassAction(NiStencilProperty::ACTION_INCREMENT);

// 스텐실 테스트는 통과했으나, Z-Test에서 통과하지 못했을 경우...
spStencil->SetStencilPassZFailAction(NiStencilProperty::ACTION_KEEP);

// 양면을 모두 그리도록..
spStencil->SetDrawMode(NiStencilProperty::DRAW_BOTH);
spShaft->AttachProperty(spStencil);

 

위에서 보면.. Stencil을 통과했다라는 말이.. Stencil + Z-Test 통과라는 것을 알 수 있다.

 

볼륨쉐도우

 

자세한 방법은 네이버씨에게 물어보거나, 아니면 책을 보면 쉽게 이해할 수 있다.

 

볼륨 쉐도우는

 

단순하고 정적인 Blocker가

 

복잡한 형태의 혹은 애니매이션 되는 대상에게 그림자를 드리울 때, 사용하면 가장 좋다!

 

왜? 볼륨쉐도우니까... 공부합시다!

[출처]
 Stencil buffer 사용하기|작성자 프라이드

'Gamebryo > Lecture' 카테고리의 다른 글

Stencil buffer 사용하기  (0) 2011.11.08
Mesh 만들기  (0) 2011.11.08
Mesh의 생성 ( Particle, 검궤적 등 )  (0) 2011.11.08
게임브리오 2D Line관련  (0) 2011.10.30
FrameRenderSystem에서.. 커스텀알파소터프로세스..  (0) 2011.09.18
무기잔상효과  (0) 2011.02.08
Posted by blueasa

댓글을 달아 주세요