본문 바로가기

전체 글339

9. SRT 변환 행렬 행렬을 배우는 이유는 벡터를 변환시키기 위한 것 벡터 변환의 종류는 아래 3가지가 있다. S(Size) : 크기 R(Rotation) : 회전 T(Translation) : 이동 벡터와 행렬을 곱함으로써 원하는 변환이 가능하다 1. 이동 행렬 (Translation Matrix) - 이동하려면? x, y, z에 값을 더해줘야 한다 - 그런데 행렬곱의 계산 과정은 x, y, z 각각의 요소에 다른 요소들도 같이 묶여 있다 - 그래서 4차원 요소 w를 추가한다 *동차 좌표계 - 벡터의 3요소 (x, y ,z)에 w를 추가한다. - w를 추가함으로써 4차원 벡터가 되고, 다른 축에 관여받지 않는 값을 추가할 수 있다. 임의의 벡터 (x, y, z, 1)에 (a, b, c) 만큼 이동하려면? - 위와 같이 행렬.. 2023. 1. 21.
8. 행렬 빨간 포탈, 초록 포탈, 파란 포탈이 있고 별이 있다. 별이 빨간 포탈에 들어가면 크기가 커지고, 초록 포탈에 들어가면 위치가 변경되고, 파란 포탈에 들어가면 회전한다 포탈은 행렬의 개념을 빗대어 표현한 것이고 별은 벡터를 표현한 것이다. 포탈(행렬)은 합쳐짐으로써 가진 속성들이 합쳐지고 별이 합쳐진 포탈에 들어가면 포탈들 각각의 효과를 다 받는다 ->합쳐진다는 것은 행렬곱을 의미 - 행렬은 쉽게 생각하면 2차원 배열 1. 행렬의 스칼라곱 2. 행렬의 덧셈, 뺄셈 -> 행렬을 더하거나 빼려면 두 행렬의 포맷이 같아야 한다 -> 그리고 같은 위치에 있는 요소끼리 계산하면 된다. 3. 행렬의 곱셈 -> 행렬의 곱셈도 정해진 포맷이 있다. -> m x n = n x p이어야 한다 -> 즉 행렬 A의 열과 행렬.. 2023. 1. 19.
230118_ConstantBuffer 삼각형 각각의 점 순서 점 순서(배열의 순서)를 지정할 때 그 위치가 그리려는 도형의 시계방향이냐 아니냐가 중요하다 레스터라이저단계에서 앞면 혹은 뒷면을 판단하고, 백페이스컬링 이라고 해서 뒷면을 제거하는데 벡터 외적의 결과에 따라 앞면, 뒷면이 결정되고 벡터 외적을 구하는 과정에서 시계방향, 반시계방향이 중요하기 때문 *버텍스쉐이더에서 픽셀쉐이더로 넘어갈 때 레스터라이저에서 보간된 값이 넘어간다 상수 버퍼란? GPU에 값을 넘겨줄 수 있는 버퍼를 상수 버퍼라고 한다 인덱스 버퍼 사용 시 주의 할 점? 인덱스 버퍼를 사용하면 렌더타겟에 그릴 때 Draw가 아닌 DrawIndexed 함수를 사용해야 한다 쉐이더란? 물체를 어떤 방식으로 그릴건지 모은 집합을 쉐이더라고 한다 2023. 1. 18.
7. Component 유니티에서 보면 컴포넌트 개념이 있다 ex) Box Collider, Camera, Cube 등 유니티에서 Cube란 여러 컴포넌트들을 합쳐서 만들어진 무언가 -> 아무것도 없는 GameObject에 컴포넌트를 쌓아서 Cube를 만들 수 있음 일례로 행동을 정의하려면 MoveBehaviour를 상속받고 여기에 Update에서 움직임을 정의한다 -> MoveBehaviour는 한마디로 스크립트라고 해석됨 컴포넌트패턴은 부품을 다 조립해서 결과물을 만드는 것 이것이 유니티가 언리얼과 차별화된 부분 유니티는 빈 깡통에서 시작한다면, 언리얼은 기본적으로 메쉬 자체를 가지고 있다. - 컴포넌트의 종류 Transform : 현재 오브젝트의 위치를 나타내는 컴포넌트 MeshRenderer : Material과 Mes.. 2023. 1. 18.