2d 점찍기

반응형

창생성, 삼각형그리기에 이어 점찍기라니...
다시 시작한다는 마음으로 ㅎㅎㅎ.

ID3D10EffectScalarVariable* vpWidthVariable  = NULL;
ID3D10EffectScalarVariable* vpHeightVariable = NULL;
이펙트 파일의 스칼라 값에 접근 하기 위해 위와 같은 인터페이스를 쓴다.

vpWidthVariable = pkEffect->GetVariableByName( "vpWidth" )->AsScalar();
vpHeightVariable = pkEffect->GetVariableByName( "vpHeight" )->AsScalar();
vpWidthVariable->SetFloat( (float)SCREEN_WIDTH );
vpHeightVariable->SetFloat( (float)SCREEN_HEIGHT );

점을 찍기 위해 위상정보를 수정한다.
pkDevice->IASetPrimitiveTopology(D3D10_PRIMITIVE_TOPOLOGY_POINTLIST);


effect file
cbuffer cbViewport     상수 버퍼
{
 float vpHeight;
 float vpWidth;
};

struct VS_Input {
 float3 pos : POSITION;
 float4 color : COLOR;
};

struct PS_Input {
 float4 pos : SV_POSITION;
 float4 color : COLOR;
};
 
PS_Input VS( VS_Input input )
{
 PS_Input output = (PS_Input)0.0;
 output.pos.x = (input.pos.x / (vpWidth/2.0)) - 1;
 output.pos.y = -(input.pos.y / (vpHeight/2.0)) + 1;
 output.pos.z = input.pos.z;
 output.pos.w = 1.0f;
 output.color = input.color;
 return output;
}

float4 PS( PS_Input input ) : SV_Target
{
 return input.color;
}

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

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

sprite 출력  (0) 2010.05.02
폰트 출력  (0) 2010.05.02
dx10 사각형 그리기  (0) 2010.04.28
dx10 창생성  (0) 2010.04.21
ID3D10InputLayout  (2) 2010.02.07
TAGS.

Comments