Graphics/기본
-
The Structure BufferGraphics/기본 2020. 9. 4. 00:33
Foundation of game engine development에서는 Structure Buffer 를 소개합니다. 이 책에서는 Structure Buffer라고 이름 붙여서 그 뒤 과정에서 이 버퍼를 계속 그렇게 부릅니다. 이름이 DirectX의 Structured Buffer 기능과 혼동 될 수 있지만 신경쓰지 마시고, 이 Buffer를 통해 여러가지 효과를 구현하는데 활용하는데에 집중해주세요. 오늘은 Structure Buffer가 무엇인지 어떻게 구성했는지에 대해 알아봅시다. Structure Buffer에는 메인씬을 그릴때 쓰기위해서 카메라 공간에서의 깊이 값을 저장합니다. 렌더링 패스 초기에 DepthBuffer와 Structure Buffer 둘을 모두 채워주고 이 후에 여러가지 용도로 ..
-
Smooth Min (IQ's polynomial smooth minimum)Graphics/기본 2020. 7. 17. 00:48
개요 메타볼 기능을 구현하려고 알아보던 참에 재미있는 식을 발견하여 정리한 것입니다. Smooth Min는 두 함수가 일정 값 범위 내에 들어오면 그때부터 보간을 수행하는 함수입니다. 또한 이름처럼 보간된 부분이 부드럽게 이어지도록 해줍니다. 이 정리는 여기의 공식 해석을 기반이며, 원글을 조금 더 풀어서 설명하는 것을 목표로 합니다. 내용 Smooth Min 함수는 아래와 같습니다. 이제 이 공식에 숨어있는 의미를 알아봅시다. // https://iquilezles.org/www/articles/smin/smin.htm // Polynomial smooth minimum by iq float smin(float a, float b, float k) { float h = clamp(0.5 + 0.5*(a..
-
Tangent Space, Tanget Vector 생성Graphics/기본 2020. 3. 28. 00:58
Normal map을 사용하기 위해서는 텍스쳐 공간에서 오브젝트 공간으로의 공간변환이 필요합니다. Tangent vector(접선 벡터)는 Normal에 수직인 평면에 존재하는 벡터입니다. 이 평면을 Tangent plane 이라 부릅니다. 또한 Tangent plane에 위치하면서 Tangent vector와 수직인 벡터를 Bitangent vector라고 부릅니다. (Binormal 로도 부릅니다.) 텍스쳐에 있는 Normal을 오브젝트의 표면에서 사용하려면, 텍스쳐 공간에서 오브젝트 공간으로의 공간변환이 필요합니다. 변환 방법은 아래와 같습니다. Tangent space 로 공간변환 TBN Matrix Tangent vector 생성 삼각형을 이루는 반시계 방향의 점 3개 P0, P1, P2 가 있..