본문 바로가기
DirectX11/코드정리

[DirectX11] 7장 연습문제

by 마두식 2022. 11. 25.
반응형

※  아래의 내용들은 DirectX 11을 이용한 3D 게임 프로그래밍 입문 책의 내용을 바탕으로 작성된 것입니다.

 

 

1. 조명 예제를 지향광원은 빨간 빛, 점광원은 녹색 빛, 점적광원은 파란 빛만 방출하도록 수정하라.

-  각 광원의 주변광, 분산광, 반영광의 색상을 모두 직접 설정해주면 간단하게 해결이 가능하다.

 

 

2. 이번 장의 조명 예제를, 표면의 광택도를 제어하는 반영 지수를 여러가지로 변경해서 실행해보라.

왼쪽에서부터 mSpotLight.Spot = 8, 64, 512

-  조명의 변화를 확실히 알아보기 위해 연습문제 1번에서 설정한 조명 색상을 그대로 사용하였다.

-  위의 결과에서 보면 알 수 있듯이 Spot 값이 커질수록 조명의 범위가 점점 좁아진다.(7.11절 325p)

 

 

3. 분산광 세기 조절 계수와 반영광 세기 조절 계수 값을 조절하여 예제에 카툰 렌더링 효과를 적용해보라.

왼쪽이 기존 예제 결과, 오른쪽이 카툰 렌더링 효과를 적용한 결과

-  LightHelper.fx 코드에서 구해두었던 각 조명별 조명 모형 함수에서 분산광과 반영광을 구하는 부분을 위의 코드로 모두 교체하면 된다.(3개의 함수 모두 위와 같이 변경해 주어야 한다.)

=>  카툰 렌더링(cartoon rendering)을 위한 조명의 주된 특징 하나는, 표면의 색이 한 색조에서 다른 색조로 매끄럽게 전이되는 것이 아니라 갑자기 변한다는 것이다.

=>  따라서 위의 주석처럼 분산광과 반영광 세기를 조절하는 계수를 이산 함수로 변환해서 적용한 것이다.(통상적인 방식)

 

 

4. 조명 예제를, 점적광 원뿔의 각도가 사용자의 키보드 입력에 따라 증가하거나 감소하도록 수정하라.

-  LitSkull 에서 보았던 키 입력 방식을 그대로 적용하면 간단하게 해결할 수 있다.

 

-  현재 기본 설정이 프로그램 시작시 윈도우 창이 나오도록 되어있으므로, std::cout과 같은 콘솔 출력은 WinMain 함수에 위와 같이 코드를 추가해주어야 한다.

 

 

 


 

 

 

개인적으로 이해한 내용을 바탕으로 작성하였기 때문에 틀린 내용이 있을 수 있습니다. 참고하실 때 주의 해주세요.

틀린 부분이나 이상한 부분이 있으면 댓글로 편하게 지적해주세요.

감사합니다!

반응형

'DirectX11 > 코드정리' 카테고리의 다른 글

[DirectX11] 8장 텍스처 연습문제  (0) 2022.12.02
[DirectX11] 텍스처 예제  (0) 2022.11.29
[DirectX11] 조명 예제  (0) 2022.11.25
[Directx11] 6장 연습문제(2)  (0) 2022.11.22
[Directx11] 6장 연습문제(1)  (0) 2022.11.17

댓글