※ 아래의 내용들은 DirectX 11을 이용한 3D 게임 프로그래밍 입문 책의 내용을 바탕으로 작성된 것입니다.
1. 조명 예제를 지향광원은 빨간 빛, 점광원은 녹색 빛, 점적광원은 파란 빛만 방출하도록 수정하라.


- 각 광원의 주변광, 분산광, 반영광의 색상을 모두 직접 설정해주면 간단하게 해결이 가능하다.
2. 이번 장의 조명 예제를, 표면의 광택도를 제어하는 반영 지수를 여러가지로 변경해서 실행해보라.




- 조명의 변화를 확실히 알아보기 위해 연습문제 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 |
댓글