교제는 셰이더 프로그래밍 입문 / 저자 : 포프킴
(렌더몽키 사용)
<Vertex Shader>
struct VS_INPUT // 입력받을 구조체
{
float4 mPosition : POSITION; // POSITION 는 테그 같은 것
};
struct VS_OUTPUT // 출력받을 구조체
{
float4 mPosition : POSITION;
};
// 랜더 몽키에서 행열의 값은 미리 선언 해둔다
float4x4 gWorldMatrix;
float4x4 gViewMatrix;
float4x4 gProjectionMatrix;
// vs_main 함수 이름
// VS_OUTPUT 반환 형태
// vs_main 함수의 인자는 VS_INPUT형태의 Input
VS_OUTPUT vs_main(VS_INPUT Input)
{
// 반환할 구조체 선언
VS_OUTPUT Output;
// 들어온 Input 값에 gWorldMatrix곱해 월드 위치로 이동
Output.mPosition = mul(Input.mPosition, gWorldMatrix);
// 월드 위치에서 뷰 위치로 이동
Output.mPosition = mul(Output.mPosition, gViewMatrix);
// 프로젝션 위치로 이동 (투시도법 적용 같은것)
Output.mPosition = mul(Output.mPosition, gProjectionMatrix);
return Output;
}
<Pixel Shader>
// ps_main 은 함수 이름
// 매개변수를 받지 않음
// 반환형은 float4
// 100%로 환선한 color값으로 처리
float4 ps_main() : COLOR
{
float4 color = float4(1.0f, 0.0f, 0.0f, 1.0f); // R, G, B, A
return color;
}
'Shader > HLSH Shader 공부' 카테고리의 다른 글
Lighting - Specular (0) | 2014.05.28 |
---|---|
Lighting (0) | 2014.05.22 |
TextureMapping (0) | 2014.05.22 |