프로그래밍 공부

프로그래밍 700

카테고리 설명
  • 이전부터 사용하던 빛 연산 렌더링 기술로, 카메라에서 뷰포트를 기준으로 씬의 모든 물체를 렌더링하기 전에, 각 빛과 물체의 상호작용을 전부 계산한다. 장점 빛과 제질의 복잡한 상호작용을 효과적으로 처리할 수 있으며, 다양한 그래픽 효과를 적용하기 용이함. 장면 내에 동적물체가 많은경우 효율적임 단점 대규모 씬 에서는 빛 연산의 복잡성으로 성능저하가 심할 수 있음. 그림자 광택 반사와 같은 복잡효과 처리시 성능저하가 심함 시간복잡도 = O(N*M) 물체 개수 = N 라이트 개수 = M

  • PointLight, DIrectionLight, SpotLight 각 라이트에 대한 Hlsl과 Buffer연산을 코드에 추가해야한다. 우선 각 라이트를 구현하기 위해 필요한 값을 하나하나 짚어보자. PointLight 빛의 좌표(Vector3 형태의 좌표) 객체(Vertice)의 위치(Vector3형태의 좌표) 감쇠계수(범위에 따른 감쇠값) Directional Light 빛의 방향벡터 ( 빛이 향하는 방향을 나타내는 Vector 보통 카메라에서 직교함) 표면의 법선 ( 좌표평면상의 수직된 법선데이터) SpotLight 빛의 위치(Vector3형태의 좌표) 객체(Vectice)의 위치(Vector3형태의 좌표) 빛의 방향벡터( 빛이 향하는 방향을 나타내는 Vector 빛의 위치에서 정면으로 직교함) 원..

  • 일반적으로 Point Light와 비슷하게 작동하나, 추가적으로 후레쉬의 특징인. 원뿔형 빛의 내부각도를 고려해서 계산해야한다. 위와같은 라이팅 각도가 있을때, 중앙과 외곽선의 각도를 측정해서 중앙부에서는 정방향의 빛이 적용되게 해놓은다음. 외곽부분의 각도에는 빛의 번짐을 적용하여. 빛의 감쇠를 제곱승으로 적용한다. 필요한 정보는 다음과 같다. 빛의 방향, 내부원뿔의 각도, 외부원뿔의 각도 위 수식을 사용해서. 내부의 각도에는 빛의 감쇠를 적용하지 않고. 외부각도에는 빛의 감쇠를 적용한다. 빛->Vertice 의 이동벡터를 계산한다음, Normalize해준다. SpotLight의 이동Vector를 계산한다. (SpotLight의 법선Vector).Normalize(); 이제. 그 Vector와 현재 Sp..

  • 무한히 멀리있는 광원으로부터 오는 전체적인 빛을 모방한다. 이러한 빛은 대부분 태양의 빛을 표현하는데 사용된다. 이 빛의 강도는 거리에 따라 변하지 않는다. 해당 빛은 특정 위치에 대한 계산이 필요하지 않음으로. Object의 Vertice의 평면상 수직으로 올라오는 법선과 빛의 진행방향에 따른 Cos각도를 계산하여 표면에 얼마나 많은 가중치가 곱해지는지 결정한다.

  • PointLIhgt는 특정 지점을 기준으로 모든 방향으로 동일한 세기의 빛을 쏘는 빛이다. 이는 전구와 같은 광원을 표현하기에 적합하고, 강도는 발광체의 거리의 제곱에 반비례함으로 빛이 멀어질수록 옅어지는 경향이 있다. 빛의 위치를 가져와 현재 위치와 함께 빛 벡터(빛의 방향)을 구한다. 빛의 위치와 현재 프래그먼트의 거리를 구한다(object Vertice와 Light Vector의 Scala) 그런다음, 정해진 감쇠항목에 따라 빛의 세기를 정하게 된다. 선형, 제곱 세제곱 을 사용하며. 각 상수(일반적으로 Color값을 사용) 에 곱하여 기본값에 사용해준다.

  • 우선 원래 만들었던 Scene이 아닌 새로운 Scene을 사용하여 새 게임을 제작한다. #pragma once class ShootingScene : public Scene { public: ShootingScene(); ~ShootingScene(); // Scene을(를) 통해 상속됨 void Update() override; void PreRender() override; void Render() override; void PostRender() override; void GUIRender() override; private: Terrain* terrain; ShootingPlayer* player; }; 이미 만들었던 Scene을 상속받고 가상함수 구현을 하면 알아서 구현해준다. Terrain은 ..