림 라이트란, 역광을 의미한다.
밝은 빛을 등지고 서있으면 물체의 테두리가 밝게 빛나는 현상을 우리는 현실에서도 자주 볼 수 있다.
컴퓨터 그래픽스 - Rim Light (역광) (tistory.com)
컴퓨터 그래픽스 - Rim Light (역광)
사진 출처 : What is Rim Lighting? - NYIP Photo Articles 위의 사진을 보면, 동물의 테두리 부분이 밝게 빛나는 것을 볼 수 있다.이처럼, 광원을 등지고 있을 때 물체의 테두리가 밝게 빛나는 것을 림라이트
yuu5666.tistory.com
위의 게시글에 림라이트에 관한 글을 정리해놓았다.
해당 게시글의 내용을 토대로 림라이트를 적용하였다.
struct ERimLight
{
DirectX::SimpleMath::Vector3 RimColor = { 1.0f, 1.0f, 1.0f };
float RimPower = 3.0f;
float RimStrength = 3.0f;
DirectX::SimpleMath::Vector3 Padding;
};
먼저, RimLight의 정보를 담은 구조체를 선언해주었다.
CreateConstantBuffer(EShaderType::PSShader, L"PixelTest.hlsl", RimLightData);
그리고 상수버퍼를 쉐이더에 연결해주었다.
float Rim = (1 - dot(EyeDir, _Input.WorldNormal));
Rim = pow(abs(Rim), RimLightPower);
float3 RimLight = Rim * RimLightStrength * RimLightColor;
Color.rgb += RimLight;
쉐이더에 블린 퐁 쉐이딩을 모두 적용한 뒤, 림라이트를 계산하여 물체의 색상에 더해주었다.
결과는 아래와 같다.
구현 자체가 까다로운 효과가 아니다 보니, 쉽게 적용할 수 있었다.
'프로젝트 > Direct X 그래픽스' 카테고리의 다른 글
프로젝트 : DirectX를 활용한 그래픽스 (18 - 환경매핑) (0) | 2024.05.15 |
---|---|
프로젝트 : DirectX를 활용한 그래픽스 (17 - 큐브매핑) (0) | 2024.05.14 |
프로젝트 : DirectX를 활용한 그래픽스 (15 - 3D 모델링 파일 로드) (0) | 2024.05.13 |
프로젝트 : DirectX를 활용한 그래픽스 (14 - 구조 수정) (0) | 2024.05.12 |
프로젝트 : DirectX를 활용한 그래픽스 (13 - 조명 추가 (2) ) (0) | 2024.05.11 |