728x90

※ 제 개인 공부이므로 풀 소스 코드는 작성하지 않습니다.

※ 생략 되어 있는 부분이 많습니다.

 

 

삼각형을 그리기 위한 셋팅들은 전 글인

 

2. 노란 삼각형을 그려보자..(외부 fx파일, 전역, 지역 변수 핸들 개념 등등..) 와 모두 같다.

 

이번엔 uniform이라는 키워드를 알아보기 위한 조금 달라진 shader.fx 파일을 본다.

 

*shader.fx*

 

void VtxPrc( in  float3 iPos: POSITION, out float4 oPos: POSITION, out float4 oD0 : COLOR,

float4 Dif)

{
     Dif = float4(0,1,1,1); //청록색
     oPos = float4(iPos, 1);
     oD0  = Dif;
}

 

Vtxprc 인수중 빨간색으로 되어있는 float4 Dif 부분으로 인해 이 셰이더파일을 컴파일할 때 에러가 발생한다. Vtxprc 함수가 void형 이기 때문에 인자들 앞에 입/출력을 명시적으로 지정해줘야하는데 Dif는 그렇게 작정 되지 않았기 때문이다.

 

uniform float4 Dif 와 같이 앞에 uniform이라는 키워드를 붙여주면 컴파일러가 Dif라는 변수를 상수 레지스터에 저장된 데이터라 여기게 되고 컴파일이 성공하게 된다.

 

uniform 키워드는 지역 변수에는 사용 불가 하고 전역, 함수의 인자에 사용이 가능하다.

 

uniform 키워드는 주로 전역 변수등에 선언하고, varing라는 키워드가 있는데 이 키워드는 위치, 색상, 법선 등의 입력 값에 주로 사용한다고 한다.

 

(예전엔 그런거 같은데 지금 이 글을 쓰는 시점에서는 잘 쓰지 않는 키워드들인듯 하다.)

728x90
Posted by 정망스
,


맨 위로
홈으로 ▲위로 ▼아래로 ♥댓글쓰기 새로고침