-
[DirectX11] Lighting - diffuse/ambient/specular
Diffuse Lighting 빛이 거친 표면의 한 점을 비추면, 광선이 여러 방향으로 랜덤하게 산란되는데, 이를 diffuse reflaction이라 한다. 이는 눈의 위치와 상관없이 반사된 빛이 보이게 되며, 색상도 눈의 위치와 상관없이 동일하게 보인다. diffuse lighting을 계산하기 위해서 먼저 diffuse light color, diffuse material color를 구체화한다 diffuse material은 표면이 diffuse light를 반사하고 흡수하는 양을 나타내고, 예를 들어 diffuse material가 m_d = (0.5, 1.0, 0.75)이고 diffuse light가 l_d=(0.8, 0.8, 0.8)이면, 점에서 반사되는 빛의 양은 둘을 outer produ..
그래픽스(DirectX)
2023. 5. 21.
-
[Graphics] Ray와 물체의 충돌 판정 알고리즘(AABB/OBB)
AABB(Axis-Aligned Bounding Box) ray와 AABB의 충돌을 판단하는 알고리즘은 Cyrus-Beck Clipping 이라고도 한다. Clipping는 오린다, 자른다는 뜻이다. Box는 평행한 두 면의 쌍 3개로 이루어져 있다. 즉 xy, yz, zx 면이 2개씩 있다. 대표적으로 xy면을 보자. xy면은 두 개의 x값을 가지고 두 개의 y값을 가진다. 이 값을 따라서 평행하게 직선으로 이어본다. ray는 지나가면서 이 네 개의 직선, 즉 작은x값, 큰x값, 작은y값, 큰y값을 지나게 될 것이다. 아래와 같이 ray가 각 직선을 지나는 위치를 살펴본다. 아래의 경우 작은Y값, 큰Y값을 먼저 지난 후, 작은 X값, 큰 X값을 지났다. 즉 값을 비교하면 nearY < farY < ne..
그래픽스(DirectX)
2023. 5. 14.