본문 바로가기

DX

Rim Lighting 실습

Rim Lighting은 물체의 가장자리에 빛을 비추는 효과로, 실루엣에 빛나는 테두리처럼 보이게 만들어 형태를 강조하고 입체감을 살리는 데 사용한다.

 

구현 방법. 정점의 노멀 벡터와 카메라가 바로보는 방향벡터를 내적 했을 때 0에 가까울=수록 가장자리 부분이므로 이 성질을 이용해서 가장자리에만 추가 색을 부여한다.

 

 

 

색을 넣는 작업이기 때문에 PS 에서 적용한다.

cbuffer BasicPixelConstantBuffer : register(b0)
{
    float3 eyeWorld;
    bool useTexture;
    Material material;
    Light light[MAX_LIGHTS];
    float3 rimColor;
    float rimPower;
    float rimStrength;
    bool useSmoothstep;
};

 

 

PS 함수의 마지막에 Rim 효과 그대로 넣어주면 된다.

color += (1.f - dot(input.normalWorld, toEye)) * rimColor * rimStrength;

 

 

 

 

아래는 pow 와 smoothStep 을 이용해 가장자리를 더욱 선명하고 부드럽게 나타낸것이다. 그냥 pow 함수랑 smoothStep 함수 쓰면 됌

'DX' 카테고리의 다른 글

환경 매핑(반사 매핑)  (0) 2025.07.13
큐브 매핑  (0) 2025.07.13
구 매핑  (0) 2025.07.13
Subdivision  (0) 2025.07.12
구체 만들기  (0) 2025.07.12