그래픽스 4

텍스처

텍스처? 텍스처 매핑이란 물체의 표면에 컬러를 입히는 기법이다. 픽셀 쉐이더에서 텍스처의 값을 참조해 물체 표면을 표현하는 픽셀의 최종 컬러에 영향을 준다. 대역폭(병목) 텍스처가 병목인 경우는 주로 메모리 대역폭이 모자란 경우이다. 대역폭이란 프로세서가 메모리에 있는 데이터를 가져올 때 최대로 가져올 수 있는 크기를 말한다. PC의 경우에 메모리 대역폭이 문제가 되는 경우는 적지만 모바일 환경의 경우는 다르다. 모바일의 경우에는 성능보다 전력 효율이나 발열등을 신경써야 한다. 메모리도 나름 발열과 전력소비를 많이 하는데 따라서 모바일 하드웨어의 메모리 대역폭은 상당히 작게 설계되는 편이다. 이런 메모리 이슈에는 GPU가 CPU 메모리에서 데이터를 가져오는 경우도 해당한다. 텍스처는 메모리를 많이 사용하..

이론/그래픽스 2022.01.22

병목(Bottleneck)

최적화 게임의 성능 최적화를 위해서는 다음의 작업들을 고려할 수 있다. 메시의 버텍스 줄이기 텍스처 크기 줄이기 가벼운 쉐이더 사용 드로우콜 줄이기 게임 로직 최적화 물리 연산 줄이기 기타 등등 그러나 위 작업들을 수행하기 전에 어디서 병목이 일어나는지를 알아야 한다. 왜냐면 병목이 일어나는 곳 외에서 최적화를 해봤자 전반적인 수행 속도는 크게 바뀌지 않기 때문이다. 목표 설정 게임의 최적화 목표를 설정할 때 60FPS냐 30FPS냐를 정하는 것을 목표로 삼을 수 있다. 그러나 먼저 기준이 되는 하드웨어 스펙을 정해야 한다. 예를 들어 만드는 게임이 퍼즐게임이라면 가능한 다양한 기기에서 이용 가능하도록 해야 할 것이다. 또한 더 좋은 디바이스라고 해서 병목이 덜 발생할 것이라고 생각할 수 있지만 사실은 ..

이론/그래픽스 2021.11.03

렌더링 파이프라인

GPU 원래 렌더링은 CPU로만 처리하고 있었는데 GPU가 추가되면서 이를 이용한 하드웨어 가속이 가능해졌다. 동시에 렌더링 파이프라인이라는 개념이 쓰이게 됐고 이는 여러 Graphics API의 기반이 된다. CPU가 GPU에 명령을 보내어 각각 자신의 일을 병렬적으로 처리한다. GPU에는 VRAM이라는 전용 메모리가 존재하는데, 여기에는 텍스쳐나 메시 데이터 혹은 이중 버퍼링등에 쓰이는 버퍼가 저장된다. 기기별로 하나의 물리적인 RAM을 CPU+GPU가 나눠서 쓰기도 한다. 렌더링 파이프라인 래스터(raster) : 화상 정보를 표현하기 위해 이미지를 2차원 배열 형태의 픽셀로 구성하여 표현하는 것. 즉, 연속된 픽셀들의 집합. 렌더링 파이프라인 : 3차원 이미지를 2차원 래스터 이미지로 표현하기 위..

이론/그래픽스 2021.10.26

곡선(Curve) & 스플라인(Spline)

곡선 곡선을 표현하기에 앞서, 두 정점 (A, B) 사이에 있는 점 P를 다음과 같이 표현할 수 있다. 또한 곡선은 t에 대한 방정식(P(t))으로 표현할 수 있다. 베지에 곡선(Bézier Curves) n차 베지에 곡선은 n+1개의 점으로 얻을 수 있는 베지에 곡선이다. 1차(Linear) 베지에 곡선은 앞서 말한 점 A,B 사이에 있는 점 P의 집합으로 표현할 수 있다. 말이 곡선이지, 사실상 A-B를 잇는 선분이다. 2차(Quadratic) 베지에 곡선은 아래와 같다. 2차 베지에 곡선은 A와 B를 잇는 1차 베지에 곡선 위에 있는 한 점 AB(t)와 B와 C를 잇는 1차 베지에 곡선 위의 한 점 BC(t)사이에 있는 한 점 P(t)의 집합으로 볼 수 있다. 식으로 표현하면 다음과 같을 것이다. ..

이론/그래픽스 2021.07.11