[면접대비] 그래픽스
댓글 0
댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요.
컴퓨터를 이용해 이미지를 생성하고 표현하는 기술입니다.
렌더링은 3D 공간의 객체, 카메라, 조명 등의 정보를 계산하여 최종 2D 화면을 생성하는 과정입니다
3D 데이터를 최종 화면의 픽셀로 변환하는 일련의 과정입니다. 정점처리 → 레스터라이제이션 → 픽셀처리 → 최종 화면 출력 순서로 진행됩니다
Vertex 처리 → Rasterization → Fragment 처리 → Frame Buffer
정점과 정점들을 연결하는 삼각형 등의 정보로 3D 물체의 형태를 표현한 데이터입니다
Primitive는 GPU가 렌더링하는 기본적인 기하 도형으로 Point, Line, Triangle 등이 있습니다. Triangle은 세 점이 항상 하나의 평면을 결정하고 복잡한 형태도 조합하여 표현할 수 있기 때문에 3D 그래픽스에서 주로 사용합니다
정점들로 만들어진 Triangle과 같은 도형을 화면상의 Fragment들로 변환하는 과정입니다. 이후 Fragment Shader가 각 Fragment의 최종 색상을 계산합니다
Frame Buffer는 렌더링 결과를 저장하는 화면 출력용 버퍼들의 집합입니다
일반적으로 Local Space → World Space → View Space → Clip Space → NDC → Screen Space 순서로 좌표가 변환됩니다
Local Space는 객체 자신의 원점을 기준으로 한 좌표계이고, World Space는 게임 월드의 공통 원점을 기준으로 한 좌표계입니다
View Space는 카메라를 기준으로 표현한 좌표공간입니다 World 좌표에 View 행렬을 적용하여 카메라가 원점에 있는 것처럼 좌표를 변환합니다
Clip Space는 Projection 행렬을 적용한 뒤 클리핑에 사용되는 좌표 공간입니다. 이후 좌표를 w로 나누는 Perspective Divide를 수행하면 NDC가 되고 이를 화면 좌표로 변환합니다
Model 행렬은 Local → World, View 행렬은 World → View, Projection 행렬은 View → Clip Space로 좌표를 변환합ㄴ디ㅏ
이동, 회전, 크기 변환을 하나의 수학적 형태로 표현하고 여러 변환을 하나의 행렬로 결합할 수 있기 때문입니다. GPU 에서도 이러한 행렬 연산을 효율적으로 병렬 처리할 수 있습니다
원근 투영은 멀리 있는 물체가 작게 보이는 원근감을 표현합니다
직교 투영은 거리에 관계없이 물체 크기가 일정하게 표현됩니다
Projection 변환 이후 Clip Space의 x, y, z 값을 w로 나누어 NDC 좌표로 변환하는 과정입니다
각 픽셀 위치에서 카메라와 가장 가까운 Fragment의 깊이 값을 저장하는 버퍼입니다. 새로운 Fragment의 깊이를 기존 값과 비교하여 앞에 있는 물체가 뒤의 물체를 가리도록 처리합니다
서로 가까운 두 표면의 Depth 값 차이를 Depth Buffer가 정확하게 구분하지 못하면서 화면이 깜빡이는 현상입니다
카메라를 향하지 않는 삼각형의 뒷면을 렌더링 대상에서 제외하는 최적화 기법입니다.
카메라의 시야 영역인 View Frustum 밖에 존재하는 객체를 렌더링하지 않는 기법입니다. 화면에 나타날 가능성이 없는 객체의 렌더링을 제거하여 성능을 개선합니다
Shader는 GPU에서 실행되어 정점의 위치나 픽셀의 색상 등 렌더링 결과를 계산하는 프로그램입니다
Normal Vector는 표면이 향하고 있는 방향을 나타내는 벡터입니다. 주로 빛의 방향과 비교하여 표면이 얼마나 빛을 받는지 계산하는 조명 연산에 사용됩니다
두 벡터의 내적을 이용하면 두 방향이 얼마나 같은 방향을 향하고 있는지 알 수 있기 때문입니다.
Ambient는 전체적으로 적용되는 간접적인 기본 조명, Diffuse는 표면의 방향에 따라 달라지는 난반사광, Specular는 빛이 반사되어 생기는 하이라이트와 같은 정반사광을 표현합니다
Alpha값을 이용하여 현재 Fragment의 색상과 이미 그려진 화면의 색상을 혼합하여 투명도를 표현하는 방법입니다.
3D 모델의 표면에 2D 이미지인 Texture를 대응시켜 색상이나 표면 정보를 표현하는 기법입니다. 일반적으로 UV 좌표를 이용하여 Texture의 어느 부분을 사용할지 결정합니다
3d 모델의 각 정점과 2D Texture의 위치를 연결하기 위한 지표입니다
원본 Texture를 미리 여러 단계의 작은 해상도로 만들어 저장해 두는 기술입니다. 멀리 있는 물체에는 작은 Texture를 사용하여 캐시 효율과 성능을 높이고 Texture가 깜빡이는 등의 샘플링 문제도 줄일 수 있습니다
Texture를 화면에 매핑할 때 텍셀 사이의 값을 어떻게 샘플링할지 결정하는 방식입니다. 대표적으로 Point, Bilinear, Trilinear Filtering 등이 있으며 품질과 연산 비용에 차이가 있습니다
객체지향 면접대비
네트워크 면접 대비
데이터 베이스 면접 대비