CubeMap Mapping
카테고리: Graphics
태그: DirectX
홍정모님의 그래픽스 새싹코스 강의를 듣고 정리한 내용입니다.
🐥 CubeMap Mapping
Cube Map | Mapping |
---|---|
// CubeMapping Pixel Shader
TextureCube g_textureCube0 : resister(t0);
SamplerState g_sampler : resister(s0);
float4 main(PixelShaderInput input) : SV_TARGET
{
return g_textureCube0.Sample(g_sampler, input.posWorld.xyz)
}
큐브맵 매핑은 이전 Ray Tracing에서 다룬 내용과 동일하다. 다만 Rasterization을 이용한 큐브맵 매핑은 큐브맵만을 위한 별도의 Shader를 이용해 렌더링한다. 이때 중요한 것은 큐브맵을 위한 데이터 타입, TextureCube 가 있다는 것이다.
🐥 Enviroment Mapping (Reflection Mapping)
// Basic Pixel Shader
Texture2D g_texture0 : resister(t0);
TextureCube g_textureCube0 : resister(t0);
SamplerState g_sampler : resister(s0);
float4 main(PixelShaderInput input) : SV_TARGET
{
// ...
reflection = g_textureCube0.Sample(g_sampler, reflect(-toEye, input.normalWorld));
// ...
}
- 물체를 바라보는 방향과 normal 벡터를 이용하여 환경(반사)처리를 해주면 훨씬 좋은 퀄리티의 렌더링을 할 수 있다.
- 물체를 렌더링하는 pixel shader에 큐브맵 텍스쳐를 보내주고, hlsl의 reflect method를 이용하면 쉽게 구현 가능
🐥 Results
댓글 남기기