specular2 48. Light, Material_Light 통합 Ambient, Diffuse, Specular, Emissive를 합쳐서 만드는 코드를 작업한다. 1. 13. Lighting.fx, 16. LightingDemo 클래스를 만들고 각각 LightingDemo::Init, Main에서 세팅하기 Shaders폴더에 12. Lighting_Emissive.fx를 복제해서 이름을 13. Lighting.fx로 한다. Client/Shaders/Week2에 넣는다. 모든 라이팅을 합쳐서 작업할 Light.fx라는 쉐이더를 만들 것이다. Client폴더의 15. EmissiveDemo클래스를 복제해서 16. LightingDemo 클래스를 만든다. 코드를 수정한다. void LightingDemo::Init() { RESOURCES->Init(); _shader.. DirectX 2024. 2. 15. 46. Light, Material_Specular Diffuse랑 비슷한데 다른 부분이 있다. Diffuse에서는 normal 벡터와 Light의 각도가 핵심이었다. Specular는 반사된 빛과 눈이 바라보는 방향 사이의 각도가 핵심이다. 마찬가지로 이 각도가 0도 가 되어서 일치가 된다면 눈부실 것이다. 각도가 커질 수록 금속에서 보이는 흰색으로 보이는 반사 부분이 옅어진다. 반사된 빛의 벡터를 어떻게 구할 수 있을까? normal 벡터와 Light벡터의 내적을 해서 크기를 구한 다음에 그 크기 만큼을 두번 위로 이동하는 효과를 나타낼 수 있으면 된다. 물체에서 눈까지 가는 방향벡터를 구하려면 어떻게 해야 할까? 물체의 위치는 안다고 가정을 한다. 카메라의 위치가 결국엔 눈의 위치니까 월드좌표에서 카메라의 위치를 알면 카메라에서 물체의 위치 벡터의 .. DirectX 2024. 2. 13. 이전 1 다음