강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

이동민님의 프로필 이미지
이동민

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12

Deferred Rendering

빛이 여러개 중첩되는 상황이 궁금합니다

작성

·

370

1

강사님께서 올려주신 코드에서
SceneManager::LoadTestScene()

에서 PointLight 를 그대로 2개 복사하여 총 3개를 만들었습니다. 빛의 중첩이 효과가 있는지를 확인하기 위해서 였습니다.

저는 사실 이렇게 할 경우 효과가 없을 줄 알았습니다. 왜냐하면

Point Light 가 3개일 경우 lighting.fx 의 PS_PointLight 에서
Deffered Rendering 에서 만들어 낸  g_tex0(Position RT) 와 g_tex1(Normal RT) 으로 1번 Point Light 의 빛을 계산한 후 Light shader 의 Render Target 인 DiffuseLightTarget 와 SpecularLightTarget 으로 출력하고,

그 다음에 2번째 Point Light 의 PS_PointLight 가 실행될 때 위의 과정을 거쳐 DiffuseLightTarget 와 SpecularLightTarget 에다가 그 결과를 덮어씌우고,

마지막 3번 째 Point Light 역시 DiffuseLightTarget 와 SpecularLightTarget 에 결과를 덮어씌워서 결과적으로

하나의 Point Light 를 사용한 결과가 나올 줄 알았습니다.

 

왜냐하면 위의 3개의 Point Light 의 결과물을 더해주는 과정이 어디있는지 찾을 수 없어서 입니다;;

 

혹시 이 더해주는 과정들이 BLEND_TYPE::ONE_TO_ONE_BLEND 

이것을 지정해 줌으로서 shader 에서 알아서 계산을 해주는 것인가욥??

그게 아니라면 위와 같은 상황에서 어떻게 3번의 빛이 중첩이 되는 걸까욥?ㅜㅜ 궁금합니다ㅠㅠ

 

항상 강의 잘 보고 있습니다 감사합니다

퀴즈

원근 투영과 정투영의 가장 큰 차이점은 무엇일까요?

원근 투영은 UI에 주로 사용되고 정투영은 3D 장면에 사용된다.

정투영은 물체의 거리에 상관없이 화면 크기가 일정하다.

정투영은 원근 투영보다 수학적 계산이 복잡하다.

원근 투영은 시야각(FOV)이 없고 정투영은 시야각이 있다.

답변 1

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

네 맞습니다.
Blending 옵션을 바꿔서 테스트를 해보시면 확실히 알 수 있습니다.

이동민님의 프로필 이미지
이동민

작성한 질문수

질문하기