ZBUFFER, ALPHABLENDENABLE, ALPHATESTENABLE정의

 

ZBUFFER의 정의
 
TEXTURE VECTOR 정보를 화면에 출력할 경우 출력하는 화면의 Z값의 위치정보를 디바이스 정보를 CLREAR시 입력됐던 ZBUFFER 최대치 값을 배경에 입력한다.

 
사용법 Ex)
  
g_pd3dDevice->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER,D3DCOLOR_XRGB(250, 0, 200),                                                  ZBuffer의 최대치값 설정, 0);

 
입력된 최대값은 Device 화면을 생성될 때 배경화면의 각 Pixel에 대한 ZBuffer 값 모두 Clear시 입력된 ZBuffer의 최대값으로 설정된다. 입력된 ZBuffer 값은 Projection 시 입력된 정보에 따라 비율로 계산된다.

 


ALPHABLENDENABLE 정의

      이미지가 가지고 있는 제외 색의 수치값을 지정하여 그것에 대한 정보를 투영화가 가능하다.

      Alpha 값을 이용하여 제외 색에 관하여 투영화 수치를 서서히 변경할 수 있다.

      단점으로는 ZBuffer을 이용하여 화면에 텍스처를 출력 시 ZBuffer 상으로 앞에 있는 Front라는 텍스처와 그 뒤에 있는 B라는 텍스처가 있을 시 ALPHABLENDENABLE을 한Front 텍스처를 출력하고 Back텍스처를 출력 시 Back텍스처의 일부분이 나타나지 않는다.




Ex)  

      위와 같이 Front텍스처는 나오지만 Back텍스처에 나오는 정보는 나타나지 않게 된다이유는 Front텍스처를 출력 시에 화면에서 기존에 가지고 있는 정보를 투영 후에 투영된 부분을 윈도우 배경색으로 변환출력 되기 때문이다. Back 텍스처가 Front 투영된 부분에 대에서 나오게 하기 위해서는ZBuffer를 사용하지 않고 화면에 출력하면 된다.

 




Ex) 

하지만, ZBuff를 사용하지 않을 시위와 같은 형상이 일어나게 된다텍스처를 출력 순간과 상관없이 입력된 좌표만으로 화면에 출력하기 위해서는 ALPHATESTENABLE을 사용하여야 한다.


 




Ex) 

위와같이 나오기 위해서는, Back텍스처를 먼저 출력 후에 Front텍스처를 출력하면 Back텍스처가 이미 화면에 출력되어 있기 때문에 다시 Front텍스처 정보를 출력 시 투영된 곳에 배경에 뿌려진 정보를 ZBuffer에 담기 때문에 출력이 되기 때문에 우리가 원하는 정보를 얻을 수 있다하지만텍스처 순서를 일일이 다 확인할 수 없기 때문에 그 방법을 사용하지 않고ALPHATESTENABLE를 사용하여 출력하면 Front 텍스처를 나중에 출력한 효과를 얻을 수 있다.

 


ALPHATESTENABLE 정의

Alpha값과 비교되는 Alpha REF정보 ( 0x00000000 ~ 0x000000FF 또는 0 ~ 255 )를 입력한다.


사용법 

Ex) m_pd3dDevice->SetRenderState(D3DRS_ALPHAREF, 0x00000088);

 

입력된 ALPHAFUNC Plag값은 이용하여 입력된 비교방식을 설정한다.



사용법 

Ex) m_pd3dDevice->SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_GREATER);

 

      입력된 정보 정보와 Alpha채널의 정보를 비교하여 결과 참인 것은 ZBuffer에 입력하고 그렇지 않은 것은 ZBuffer에 입력하지 않는다.

 

      이럴 경우텍스처 입력순서와 상관없이 ZBuffer의 순서대로 데이터가 입력이 가능하며투영화 작업이 이루어진다.

 

, ALPHATESTENABLE의 경우 입력된 수치만 ALPHA값에 투영화하기 때문에 서서히 사라지도록 투영화를 설정할 수 없다.



출저:노력은행복 돈은인생 지식은힘

이 글을 공유하기

댓글

Designed by JB FACTORY