DirectX Graphics 프로그래밍 가이드 프로그래밍 가능한 파이프라인 픽셀 셰이더 텍스처에 관한 고려사항   [목차열람] [주소복사] [슬롯비우기]
텍스처에 관한 고려사항
 
Microsoft DirectX 9.0

텍스처에 관한 고려사항


픽셀 셰이더는, Microsoft® DirectX® 6.0 및 7.0 의 멀티 텍스처 애플리케이션 프로그래밍 인터페이스 (API)로 정의되고 있는 픽셀 혼합 기능, 특히 D3DTSS_COLOROP ,D3DTSS_COLORARG1 ,D3DTSS_COLORARG2 ,D3DTSS_ALPHAOP ,D3DTSS_ALPHAARG1 ,D3DTSS_ALPHAARG2 텍스처 스테이지 스테이트에 의해 정의되는 처리나 관련하는 인수와 수식자에 완전하게 대신하는 것이다. 수속형 픽셀 셰이더를 설정 하면, 이러한 스테이트는 무시된다.

텍스처 스테이지와 샘플러 스테이지

픽셀 셰이더가 처리되고 있을 때, 다음의 텍스처 스테이지 스테이트는 계속해 보관 유지된다. 이것들은, 다음 표에 나타나듯이 버전에 따라서 다르다.

텍스처 스테이지 스테이트버전
D3DTSS_BUMPENVMAT00 1_1 - 1_4
D3DTSS_BUMPENVMAT01 1_1 - 1_4
D3DTSS_BUMPENVMAT10 1_1 - 1_4
D3DTSS_BUMPENVMAT11 1_1 - 1_4
D3DTSS_BUMPENVLSCALE 1_1 - 1_3
D3DTSS_BUMPENVLOFFSET 1_1 - 1_3
D3DTSS_TEXCOORDINDEX 1_1 - 1_3. 고정 기능 정점 처리에만 유효.
D3DTSS_TEXTURETRANSFORMFLAGS 1_1 - 1_3. 고정 기능 정점 처리에만 유효.

픽셀 셰이더가 처리되고 있을 때, 다음 샘플러 스테이트는 계속해 보관 유지된다.

샘플러 스테이트버전
D3DSAMP_ADDRESSU 모두
D3DSAMP_ADDRESSV 모두
D3DSAMP_ADDRESSW 모두
D3DSAMP_BORDERCOLOR 모두
D3DSAMP_MAGFILTER 모두
D3DSAMP_MINFILTER 모두
D3DSAMP_MIPFILTER 모두
D3DSAMP_MIPMAPLODBIAS 모두
D3DSAMP_MAXMIPLEVEL 모두
D3DSAMP_MAXANISOTROPY 모두
D3DSAMP_SRGBTEXTURE 모두
D3DSAMP_ELEMENTINDEX 모두
D3DSAMP_DMAPOFFSET 정점 셰이더만 (디스플레이스먼트 맵핑)

이러한 텍스처 스테이지 스테이트는 픽셀 셰이더의 일부에서는 없기 때문에, 셰이더의 컴파일시에는 사용하지 못하고, 드라이버는 그것들을 따라가고 되는 상정도 할 수 없다. 예를 들어, 드라이버는 그 시점에서는, 바이리니어 필터링과 트라이 리니어 필터링을 구별할 수 없다. 애플리케이션은, 현재 바인드 되고 있는 셰이더를 재생성하지 않아도, 이러한 스테이트를 자유롭게 변경할 수 있다.

픽셀 셰이더와 텍스처 샘플링

축소, 확대, 밉필터링, 랩 어드레싱모드에 대해서는, 텍스처 샘플링 및 필터링 처리는 표준 텍스처 스테이지 스테이트에 의해 제어된다. 더 자세한 정보는, 「텍스처 스테이지 스테이트」를 참조할것. 이 정보는 셰이더의 컴파일시에 드라이버에 제공되지 않기 때문에, 이 스테이트가 바뀌어도 셰이더는 처리를 속행할 수 있다. 애플리케이션은, 픽셀 셰이더가 필요로 하는 적절한 타입의 텍스처 (이미지 맵, 큐브 맵, 볼륨 맵등)를 설정할 필요가 있다. 잘못한 타입의 텍스처를 설정 하면, 예기치 않은 결과가 발생하는 일이 있다.

셰이더 후의 픽셀 처리

포그(안개:fog) 혼합, 스텐실 처리, 렌더링 타겟 혼합등의 그 외의 픽셀 처리는, 셰이더의 실행 후에 행해진다. 렌더링 타겟 혼합의 구문은, 이 주제로 해설하도록(듯이), 새로운 기능을 지원 하기 위해서 갱신되고 있다.

픽셀 셰이더 입력

픽셀 셰이더 버전 ps_1_1 ~ ps_2_0 에서는, 디퓨즈색 및 스펙큐러색은, 셰이더가 사용하기 전에, 셰이더에의 유효한 입력 범위인 0 ~ 1 의 범위에서 포화 (고정)한다.

픽셀 셰이더에 입력되는 색값은, 퍼스펙티브 보정이다고 보여진다. 다만, 모든 하드웨어로 이것이 보증되고 있는 것은 아니다. 주소 셰이더에 의해 텍스처 좌표로부터 생성된 색은, 항상 퍼스펙티브 보정의 방법으로 보간 된다. 그러나, 이것들은 보간의 사이에 0 ~ 1 의 범위에서 고정한다.

픽셀 셰이더 출력

픽셀 셰이더 버전 ps_1_1 ~ ps_1_4 에서는, 픽셀 셰이더에 의해 출력되는 결과는, 레지스터 r0 의 내용이다. 셰이더의 처리가 종료한 시점에서 이 레지스터에 저장 되고 있는 데이터는, 항상 포그(안개:fog) 스테이지 및 렌더링 타겟 블렌더에 송신된다.

픽셀 셰이더 버전 ps_2_0 이상에서는, 출력색은 oC0 ~ oC4 로부터의 출력이다.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP