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 |