CubeMap Mapping

Date:     Updated:

카테고리:

태그:

홍정모님의 그래픽스 새싹코스 강의를 듣고 정리한 내용입니다.


🐥 CubeMap Mapping

Cube Map Mapping
cubemaps_skybox cube_map2


// 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)

Ect-53


// 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

ezgif com-crop (1)



맨 위로 이동하기

Graphics 카테고리 내 다른 글 보러가기

댓글 남기기