프로그래밍 공부

프로그래밍 700

카테고리 설명
  • 베트남의 생물정보학자인 부이투옹퐁이 만든 조명모델로, 컴퓨터가 생성한 그림을 위한 조명모델 이라는 제목으로 소개되었다. 퐁 셰이딩은 3차원 공간에서 오브젝트에 반사되는 빛의 강도를 측정할 수 있게 해주는 기술이다. 이 기술은 객체 표면의 각 픽셀에 대해 법선 벡터를 계산하게 이루어져있다. 퐁셰이딩은 다음과 같은 단계로 이루어져있다. 환경설정 빛의 위치와 색상 카메라의 위치 그리고 물체의 재질속성을 설정한다(반사율, 굴절율 등) 법선 벡터 계산 각 픽셀에 대해 법선 벡터를 계산한다. 법선 벡터는 물체의 표면에서 수직으로 향하는 벡터로. 빛이 어떻게 반사되는지를 결정한다. 빛의 강도 계산 법선 벡터와 빛의 방향을 사용하여 각 픽셀에서의 빛의 강도를 계산한다. 색상 결정 빛의 강도와 물체의 uv맵에 따라 최종..

  • 난반사 란? 빛이나 다른 전자기파가 물체 표면과 상호작용할 때, 난잡한 방향으로 흩어지는 현상을 이야기한다. 흩어지는 빛이 다방향으로 발산함으로, 물체의 표면에서 나오는 빛이 여러 방향으로 퍼져서 관측자에게 모든 각도에서 물체를 볼 수 있도록 한다. 이러한 현상은 물체가 투명하지 않고, 불규칙적인 표면을 가질 때 발생한다. 난반사는 물체를 뿌옇게 보이게 한다. 빛이 물체포면의 미세한 불규칙특징(미세구조, 입자 등) 과 상호작용하여 발생한다. 이러한 표면특징은 다양한 각도로 빛을 반사시키도록 하는데, 이것이 난반사로 작용하게 된다. 이 과정은 빛의 방향이 물체의 표면에서 흩어져 나가게 한다.

  • 먼저 카메라의 움직임을 구현하기 전에 먼저 카메라의 위치값과 이동을 확인하기 위해 배경지식이 필요하다. 각각 코사인 제1법칙, 제2법칙. 그리고 벡터의 내적 외적을 알아야 한다. 이러한 벡터의 내적과 외적계산을 통해 더 쉽게 카메라의 움직임을 구현할 수 있다. camera Header #pragma once class Camera : public Transform { public: Camera(); ~Camera(); void Update(); void GUIRender(); void SetView(); private: void FreeMode(); private: MatrixBuffer* viewBuffer; Matrix view; float moveSpeed = 50.0f; float rotSpeed..

  • 벡터의 외적은 벡터 A와 벡터 B의 두 벡터에 수직이면서 그 크기가 두 벡터와 그 사잇갓 에 비례하는 새로운 벡터를 생성하는 연산이다. 벡터의 외적은 다음과 같이 정의된다. $\overrightarrow{A} = (a_{1}, a_{2}, a_{3})$ $\overrightarrow{B} = (b_{1}, b_{2}, b_{3})$ $\overrightarrow{A} * \overrightarrow{B} = (a_{2}b_{3}-a_{3}b_{2}, a_{3}b_{1}-a_{1}b_{3}, a_{1}b_{2}-a_{2}b_{1})$ 위 공식을 응용해서 사잇각을 구해보자. $\overrightarrow{A} = (3, 2, 1)$ $\overrightarrow{B} = (1, 2, 3)$ $\left\| ..

  • 벡터의 내적(Dot Product)는 $\overrightarrow{a} =\left \overrightarrow{b} =\left$가 정의될때 $ \overrightarrow{a}\cdot\overrightarrow{b} = a_{1}b_{1} + a_{2}b_{2}$ 으로 정의한다. 벡터 내적은 교환법칙이 성립하고, 벡터합에 대한 결합법치과 스칼라곱 에 대한 결합법칙이 성립한다. 그리고 다음정리가 사용된다. 정리1 $ \overrightarrow{a}, \overrightarrow{b}$ 가 이루는 각의 크기를 $\Theta $ 라고 한다면, $ \overrightarrow{a}\cdot \overrighta..

  • 삼각비의 계산근거의 수식기준은 cos sin 의 경우. 각 빗변 / 밑변, 각 빗변 / 높이 기준으로 계산되기때문에. cos(세타) = 밑변/빗변. sin(세타) = 높이/빗변. 여기서 세타의계산근거 $1^{o} = (\pi / 180)$ 즉, 1도당 위 수식이 나타남으로. 각 수식의 각마다 곱해주면된다. 45도 일때는 $(\pi / 180) * 45$ 이런식으로