함수 개념 정리 및 용어 정리 中.. (계속 추가)
D3DXCompileShader() -> HLSL로 작성한 셰이더 코드를 컴파일하거나 실패에 대한 문법 에러를 검사하는 함수.
D3DXCompileShaderFromFile() -> 파일에서 작성한 HLSL일때 사용하는 함수.
D3DXDeclaratorFromFVF() -> FVF를 사용한 정점 선언값을 채워 넣는 함수.
CreateVertexDeclaration() -> 정점 선언값으로 정점들 선언 정보 (LPDIRECT3DVERTEXDECLARATION9)을 생성하는 함수.
FVF(Flexible Vertex Format) -> 유연한 정점 포멧, 사용할 정점의 다양한 정보들을 사용자가 필요한 부분만 골라서 정의하여 유연하게 쓸 수 있는 방법
정점에는 많은 정보를 필요로 하지만 매번 모든 정보가 필요한 것이 아니기 때문에 사용자가 사용할 용도에 따라서 원하는 정보만 포함하여 정점을 구성하므로 용량 효율이 증가.
CreateVertexShader(), CreatePixelShader() -> 컴파일 한 결과를 메모리에 적재하기 위해 정점 셰이더 또는 픽셀 셰이더 객체를 생성한다.
SetRenderState() -> 랜더링 상태를 설정한다.
SetVertexShader(), SetPixelShader() -> 정점셰이더 또는 픽셀 셰이더 사용을 명시함으로써 프로그램 가능한 파이프라인 사용을 알린다. null값을 넣으면 객체 사용을 해제 하고 고정 파이프라인으로 돌아 온다.
SetVertexDeclaration() -> 정점들 선언 정보를 디바이스에 설정한다. null값을 넣으면 해제.
DrawPrimitive() -> 정점들을 이용하여 그린다.
D3DXMatrixIdentity() -> 단위 형랠로 초기화 해줌.
D3DXCreateTextureFromFile() -> 외부로 부터 이미지를 읽을때 사용, 이미지의 크기가 2의 제곱승 이여야 한다.
SetSamplerState() -> 기본적으로 텍스처는 스크린의 삼각형에 입혀질때, 텍스처 삼각형이 스크린 삼각형 보다 작다면 텍스처 크기를 확대하고, 크다면 텍스터 크기를 축소하여 크기를 마춘다 이 경우 왜곡이 발생할수도 있는데 이 왜곡을 줄이기위해서 이 함수를 사용하여 필터링을 한다.
(1. 첫번째 인자는 텍스쳐 스테이지.
2. 두번째 인자는 어떤 필터인지.
3. 세번째 인자는 필터링 방식을 지칭한다.
2. 필터 종류
D3DSAMP_MINFILTER - 확대 필터
D3DSAMP_MAGFILTER - 축소 필터
D3DSAMP_MIPFILTER - 밉맵 레벨간 사용하는 텍스처 필터
3.필터링 방식
D3DTEXF_POINT - 근접점 샘플링, 디폴트 방식이며 품질이 가장 떨어진다, 계산이 빠르다. 텍스처와 primitive 이미지의 크기가 비슷할때 가장 효과적, 크기가 다르면 확/축소 과정으로 인해 흐림,뭉침,alliasing 등의 현상 발생.
D3DTEXF_LINEAR - 선형 필터링, 보통 사용하는 필터링, 비교적 높은 품질, 실행속도 빠름.
D3DTEXF_ANISOTROPIC - 비등방성필터링, 가장 높은 품질의 결과물이 나오지만, 실행 속도가 느리다.)