본문 바로가기

전체 글84

[Graphics] 노멀매핑 & 탄젠트 공간 인터넷에서 오브젝트 파일을 받게 되면 텍스쳐 맵이 세 장이 나온다. Diffuse와 Specular는 이미 알고 있지만 Normal 맵이라는 텍스쳐 맵이 나오는데 이건 무엇일까? 오브젝트는 수많은 정점들로 이뤄져 있다. 각 정점에 텍스쳐 맵을 매핑해서 어떤 텍스쳐를 출력할 것인지 값을 넘겨 받는다. 이 중 노멀 맵은 이미 매핑된 텍스쳐 위에 출력하는 것으로 좀 더 퀄리티가 있어 보이게 하는 기법을 위해 사용된다. 왼쪽에 있는 것이 기본 메쉬의 폴리곤이다. 약 사백 만 개의 폴리곤으로 이뤄진 객체의 위에 500개 정도의 폴리곤으로 구성된 노멀 맵을 매핑시켜 만든 결과물이 오른쪽이다. 텍스쳐 한 장 만으로는 음영의 효과를 사실적으로 주기가 어렵기 때문에 노멀 매핑을 사용한다. 노멀 매핑은 일반적으로 푸른색으.. 2023. 6. 24.
[Graphcis] 스키닝 애니메이션 스켈레탈 본은 객체를 구성하는 뼈대이다. 각 본에는 메시가 매치되어 피부를 형성하는데, 이때 메쉬 내부의 정점이 하나의 뼈에 대응한다고 하면 애니메이션을 출력할 때, 부자연스러운 움직임이 나타난다. 가령 관절 부분이 끊어져 움직이는 현상 같은 것이 발생하는데, 이를 방지하기 위한 기법이 바로 스키닝 애니메이션이다. 사람의 관절은 뼈가 움직여 피부의 길이가 늘어나도 되게끔 긴 피부가 관절의 각도에 따라 펼쳐지거나 접히거나 한다. 스키닝 혹은 정점 블렌딩이라고 하는 기법도 이에 착안한 방법이다. 각 뼈(스켈레탈 본)가 메시를 구성하는 각 정점에 얼마나 영향을 주는지에 대해 블렌딩 가중치라는 값을 주어 구분하고 이에 따라 상황에 맞게 정점이 블렌딩 된다. 여기에는 소프트웨어 스키닝과 하드웨어 스키닝 기법으로 .. 2023. 6. 22.
[Data Structure]그래프(Graph) 그래프란, 오일러가 만들어 낸 연결 관계를 단순화하여 표시한 도구이다. 정점(Vertex)와 간선(Edge)로 이뤄져 있으며 시각화하면 다음과 같다. 정확하게 정의하면 그래프는 '정점의 모음'과 이를 잇는 '간선의 모음'의 결합이다. 위 사진처럼 간선을 통해 서로 이웃된 각 정점은 그래프 안에서 경로를 형성한다. 이 경로는 한 정점에서 다른 정점으로 이동할 수 있는 길을 의미하고, 위처럼 정점 사이의 이동은 간선을 통해서만 가능하다. 또한 어느 한 경로가 정점 하나를 두 번 이상 거치도록 되어 있다면 그 경로를 일컬어 '사이클'을 형성한다고 말한다. 경로는 방향성을 가지기도 한다. 방향성이란, 두 정점 간의 이동 방향을 의미하며 한 쪽으로만 방향이 정해져 있으면 반대로는 이동이 불가능하고 이런 방향성을 .. 2023. 6. 21.
[CS] SIMD(Single Instruction Multiple Data) SIMD 한국어로 번역하면 단일 명령 다중 데이터를 의미한다. 하나의 명령으로 여러 데이터를 동시에 처리하는 병렬 컴퓨팅의 일종으로 CPU의 종류에 따라 한 번에 64비트(MMX), 128비트(SSE), 256비트(AVX)의 데이터를 동시에 처리가 가능하다. 위 메모리들은 기본적으로 메모리 정렬이 되어 있어야 하며, SIMD 명령어를 통해 데이터를 처리할 수 있다. MMX 1997년에 공개된 인텔의 SIMD형 확장 명령어 세트로 총 56개의 명령어를 포함한다. x87FPU 레지스터를 이용하여 하나의 명령으로 동시에 여러 정수 연산을 처리한다. 한 번에 64비트씩 처리가 가능하고 기존 범용 레지스터보다 훨씬 더 효율적으로 연산을 처리하지만, 프로그램에서 MMX를 사용하도록 프로그램 되어 있지 않으면 MMX.. 2023. 6. 19.