Featured image of post 셰이더 프로그래밍 기본공부 1

셰이더 프로그래밍 기본공부 1

그래픽쪽은 디렉팅만 하고 있으니 … 올릴게 없다.
이제 곧 학원이나 다시 다녀야지.

그리고 회사에서는 언제나 쉐이더 공부 .

이번에는 맥스의 쉐이더 공부 쌩기초를 들어갔다.

float4x4 WorldViewProj : WORLDVIEWPROJ;
// 4*4 메트릭스 생성. 월드와 뷰와 프로젝션을 곱해서 생성한다.

void VS(
 in float4 iPos : POSITION,
 out float4 oPos : POSITION)
{
 oPos = mul( iPos, WorldViewProj );
}

// 버텍스 쉐이더 설정을 한다.
// 들어가는 것은 일단 포지션이 들어간다. 포지션은 xyzw 라서 float4.
// 들어갔으면 나와야지. 역시 포지션이 나온다. float4
// 이제 들어갈게 나왔다면, 어떻게 나왔냐를 결정해 준다.
// 방법은 행렬곱하기. 아웃 포지션은, = 인풋에다가 월드뷰 프로젝션을 행렬곱하기 해준다.

void PS(
 out float4 oColor : COLOR)
{
 oColor = float4(0, 0, 0, 1);
}

//픽셀 쉐이더 설정이다.
rgba의 아웃 칼라를 정해준다. oColor는 변수이므로 맘대로. COLOR라는 설정을 : 뒤에 써야 칼라인줄 안다.
oColor의 계산 공식은 현재 어디서 받아오는 것도 없이, 강제로 정해줬다. 
oColor 는 float4의 0,0,0,1 로 강제로 넣어줬으니, 이것은 검정색의 색으로 나올 뿐이다.

technique JPCorp1
{
 pass P0
 {
        VertexShader = compile vs_1_1 VS();
        PixelShader  = compile ps_1_1 PS();
 }
}

//테크닉 쓰고 이름 만들어 준다.
//pass 하고 이름은 아무거나 (p0)
//버텍스 쉐이더와 픽셀 쉐이더 버전을 써 준다. 이것이 기본.

//그럼 나오는 그림은 아래와 같다.

Hugo로 만듦
JimmyStack 테마 사용 중