목록GameDevLog/Graphics (5)
코가손의 블로그
구에 빛이 들어갈 때, 총 2번의 굴절 일어남 const float ior = 1.5f; // 유리 float eta; // 굴절률 vec3 normal; // Air to Glass 1번째 굴절 if (glm::dot(ray.dir, hit.normal) sinθ1 > sinθ2 > cosθ2 순으로 구할 수 있음 m벡터 = -d 와 n..
선형보간 공식 무게중심 좌표 - 점 3개를 기준으로 선형보간 하는것 구현
Ambient 기본적인 간접 조명 Diffuse 난반사광 표면의 Normal 과 표면에서 빛으로 향하는 벡터의 각도 차이로 밝기 결정 - 반사지점 정점의 Normal벡터 & 물체에서 빛을 향하는 벡터를 내적 const vec3 dirToLight = glm::normalize(light.pos - hit.point); const float diff = glm::max(dot(dirToLight, hit.normal), 0.0f); Specular 정반사광 표면의 Normal 과 빛의 위치, 카메라 위치로 밝기 결정 표면에서 반사된 빛 & 카메라의 FrontVector 로 반사되는 빛의 양 계산 Reflection 벡터 유도과정 내적결과(스칼라) * 벡터 -> 벡터 - 반사벡터 & 바라보는 벡터의 내적 -..
구-직선 충돌 직선의 StartPoint, Dir Vector(Normalized) + 구의 위치, 반지름 알면 접점 구할 수 있음 x : 직선과의 충돌점 c : 구의 위치 o : 직선의 StartPoint d : u벡터의 크기 u : 직선의 방향벡터 nabla > 접점 없음 nabla == 0 >> 접점 1개 nabla > 0 >> 접점 2개(2개 중 StartPoint와 가까운 값 선택) 직선과 구의 접접을 거리에 따라 출력 참고자료 https://en.wikipedia.org/wiki/Line%E2%80%93sphere_intersection Line–sphere intersection - Wikipedia From Wikipedia, the free encyclopedia The thre..