삼각형 렌더링

반응형

전의 삼각형 렌더링 예제에서는 정점쉐이더가 입력정점의 위치좌표를 그대로 리턴하였는데
이는 정점의 위치가 이미 클립공간에서의 위치일 경우에만 유효하다.
일반적으로 입력정점의 위치가 로컬공간이므로 정점쉐이더에서 이를 클립공간으로 변환해 주어야 한다.

D3DXMATRIX matProjection;
ID3D10EffectMatrixVariable* pkmatProjectionVariable = NULL;

D3DXMatrixPerspectiveFovLH( &matProjection, (float)D3DX_PI * 0.5f, (float)SCREEN_WIDTH / (float)SCREEN_HEIGHT, 1.0f, 1000.0f );

 // 상수버퍼 변수들을 얻는다.
 pkmatProjectionVariable = pkEffect->GetVariableByName( "matProjection" )->AsMatrix();

 // 상수버퍼에 행렬값을 지정한다.
 pkmatProjectionVariable->SetMatrix( (float*)&matProjection );

fx.
matrix matProjection;

float4 VS( float4 pos : POSITION ) : SV_POSITION
{
 return mul(pos, matProjection);
}

float4 PS( float4 pos : SV_POSITION ) : SV_Target
{
 return float4( 0.0f, 0.0f, 1.0f, 1.0f );
}

technique10 Render
{
 pass P0
 {
  SetVertexShader( CompileShader( vs_4_0, VS() ) );
  SetGeometryShader( NULL );
  SetPixelShader( CompileShader( ps_4_0, PS() ) );
 }
}

'Study > Directx 10' 카테고리의 다른 글

Depth Stencil ( orbit )  (0) 2010.05.05
육면체 렌더링  (0) 2010.05.05
sprite 출력  (0) 2010.05.02
폰트 출력  (0) 2010.05.02
2d 점찍기  (0) 2010.05.02
TAGS.

Comments