공부중

[DirectX12]Hello Wolrd Sample - D3D12HelloTriangle - 7 (shader code) 본문

Programing/DirectX

[DirectX12]Hello Wolrd Sample - D3D12HelloTriangle - 7 (shader code)

곤란 2018. 5. 29. 22:07
반응형

그러고보니 깜빡하고 셰이더 코드를 안적어 놓은것 같다.

 

struct PSInput
{
	float4 position : SV_POSITION;
	float4 color : COLOR;
};

PSInput VSMain(float4 position : POSITION, float4 color : COLOR)
{
	PSInput result;

	result.position = position;
	result.color = color;

	return result;
}

float4 PSMain(PSInput input) : SV_TARGET
{
	return input.color;
}

 

shaders.hlsl 파일의 모든 내용이고 해당 파일 안에 VertexShader와 PixelShader가 같이 있다.

이전글 D3D12HelloTriangle - 3 글에서 VSMain의 인자가 어떻게 매칭되는지는 설명을 했었다.

 

그리고 코드 내용을 보면 상단의 PSInput 구조체 형으로 지역변수를 만들어서 

전달받은 위치(POSITION)과 컬러값(COLOR)을 그대로 넣어주는것 외에는 없다.

 

흔히 우리가 알고있는 C언어의 문법과 크게 다른점이 없다.

보면 쭉쭉 읽히는 대로이다.

 

그리고 하단의 PSMain부분이 PixelShader부분인데 VS에서 전달받은 PSInput에서 컬러값만 return 해주고 있다.

 

픽셀셰이더는 화면에 출력할 색상의 값을 결정하기 때문에 전달받은것중 컬러값만 리턴해주는 모습이다.

 

셰이더를 좀더 파고파다보면 이것보다 복잡한 코드가 나오겠지만 삼각형 하나띄우고 색상도 빛을 받아서 반사하고 뭐 기타등등

하는 형식의 복잡한 계산이 아니기 때문에 이런 간단한 셰이더 코드이다.

 

 

끗.

 

 

 

 

 

 

반응형