본문 바로가기

전체 글330

24. Multi Render Target - 멀티 렌더타겟은 CCTV같이 화면 안에 화면을 표현할 때 주로 사용되는 기술이다. - 하나 더 주요한 기능은 텍스쳐에 정보를 저장할 수 있다는 것인데, - 원래 기존에 픽셀 쉐이더의 결과물이 단순히 색상값이었다면, - 멀티 렌더타겟을 통해 텍스쳐에 픽셀 쉐이더의 결과를 저장하면 이후에 이 텍스쳐를 통해 그 정보를 재사용할 수 있다. - 어떤 이점이 있는가? - A라는 정보를 B, C, D라는 텍스쳐에 적용하고 싶은데 각각 적용하려면 전부 렌더링파이프라인을 처음부터 거쳐서 하나 하나 처리해야 한다. - 그런데 텍스쳐에 저장해놓으면 한 번 계산된 값을 돌려쓸 수 있는 장점이 생겨서 성능 향상에 도움이 된다. - 이런 기법을 Deferred Rendering 기법이라고 하고, 기존에 우리가 사용한 방법은 .. 2023. 2. 4.
23. Orthographic Projection 직교투영은 원근투영과 다르게 깊이 값에 대해 크기를 보정해주지 않는다. UI와 같은 고정된 화면을 만들 때 유용하게 사용된다. *NDC 좌표계는 x(-1~1), y(-1~1), z(0~1)로 되어 있다. - x, y만 봤을 때 가운데가 (0, 0)이고 우상단은 (1, 1)이 되어야 함 - 실제 크기인 width, height를 대입해보면 좌표는 우상단이 w/2, h/2이므로 이 값을 1, 1로 만들어 주어야 한다. - 그러려면 x = 2x/w로 계산하고, y = 2y/h로 계산해야 한다. - (x는 x를 (w/2)로 나눈 값이고, y는 y를 (h/2)로 나눈 값이다.) - z는 비교적 조금 더 까다롭다. - z = z / (f - n) - n / (f - n) 이 식에 z를 대입하여 계산해면 된다. - .. 2023. 2. 2.
22. Quaternion - 개념과 사용 방법 - 사원수라고도 부르며, Vector4와 같이 float4개로 이루어진 단위 - 행렬에 비해 빠르고, 메모리를 적게 차지한다 - 그리고 짐벌락 현상을 막을 수 있다. 쿼터니언 q는 xi + yj + zk + w로 이루어져 있으며, xi + yj + zk를 허수부, w를 실수부로 표현한다. i, j, k는 서로 다른 공간에 존재하며, 아래와 같은 식을 만족한다. i² = j² = k² = -1 ij = -ji = k jk = -kj = i ki = -ik = j 각 요소의 제곱은 -1이지만 각각 요소에 대한 곱은 다른 차원으로 이동된다. xi + yj + zk + w 로 이루어진 구성은 Vector4에서 x, y, z, w의 구성과 비슷함을 알 수 있다. 따라서 3차원 벡터 v(x, y, z)를 4차원 벡.. 2023. 2. 1.
21. Quaternion - 로드리게스 회전 로드리게스 회전이란? - 회전 축과 각도가 주어진 공간에서 벡터를 회전시키는 효율적인 알고리즘 - 벡터 v를 방향벡터 a를 중심으로 𝜽만큼 회전시켜서 벡터 v'를 구하는 방법에 대한 내용 - 벡터 v는 수직을 향하는 성분(v ㅗa)과 수평을 향하는 성분(v lla)으로 나눠질 수 있다. - ①에 해당하는 축의 길이는 vsinα가 된다. - ①에 해당하는 축을 𝜽만큼 회전시키면 ②가 되는데 각도만 바꾼 것이므로, 크기는 같다. - 따라서 ②의 크기도 vsinα가 된다. - ③에 해당하는 축은 v와 a의 내적의 결과로 얻을 수 있다. - 외적의 결과는 v * a * sinα로 구해지는데, - a는 단위벡터이므로 결과는 vsinα로 위의 ②와 동일한 크기임을 알 수 있다. 결과적으로 v'은 아래와 같은 요소들.. 2023. 1. 31.