Software Development/Graphics 47

컴퓨터 그래픽스 이론 정리 - 정규좌표와 화면좌표

파이프라인 변환 프로세스를 따라가면서 기준 좌표계가 바뀌고, 그때마다 새로운 좌표계를 기준으로 정점 좌표가 바뀐다. 이변환과정은 다음과 같다.1) 모델 좌표 : 물체별로 모델링에 편하게 설정된 좌표계 2) 전역 좌표 : 개별 물체를 모았을 때 한꺼번에 아우를 수 있는 좌표계 3) 시점 좌표 : 물체를 바라보는 시점을 기준으로 표현 4) 정규 좌표 & 화면좌표 : 최종적으로 그림을 화면에 뿌리는 단계* 모든 3차원 물체는 렌더링 결과 2차원 화면에 그려져야 한다. 3차원 좌표에서 2차원 변환이 필요하다. 먼저 정규좌표로 변환을 한 뒤, 화면 좌표로 변환된다. 정규좌표(NDC : Normalized Device Coordinate) : 1을 기준으로 하는 2차원 좌표- 정규화(Normalization) : ..

컴퓨터 그래픽스 이론 정리 - 더블버퍼링(Double Buffering)

더블버퍼링- 일반적인 비디오 카드에서 Frame Buffer는 2중 포트(Dual Port) 구조 - 한쪽은 GPU, 다른 한쪽은 Video Controller. - GPU는 그려질 화면을 프레임버퍼에 쓰는 일을, Video Controller는 프레임버퍼에 그려진 화면을 출력하는 일을 한다. * GPU가 프레임버퍼에 쓰는 작업은 비디오 컨트롤러가 프레임 버퍼를 읽는 속도에 비해 훨씬 느리다. - Flickering(깜빡거림) 현상은 이러한 속도차로 발생하는 문제로, Frame Buffer에 완전히 정보가 저장되지 않은 상태에서 불완전한 내용의 버퍼를 화면에 그리면서 발생한다. => Flickering(깜빡거림) 현상을 해결하기 위해 더블 버퍼링을 사용한다. 더블 버퍼링(Double Buffering) ..

컴퓨터 그래픽스 이론 정리 - 컬러이론, 컬러모델

책 OpenGL로 배우는 3차원 컴퓨터 그래픽스를 기반으로 작성.1. 컴퓨터 그래픽스(Computer Graphics) 1) 컴퓨터를 사용하여 그림을 생성하는 기술(게임, 애니메이션, VR, AR ..._) * 영상 처리(Digital Image processing) : 기존에 존재하는 그림을 개선/인식하는 기술 (Photoshop..) 2) 그래픽스 구성요소 - 모델링(Modeling) + 렌더링(Rendering) - 모델링 : What to draw, 그래픽으로 표현하고 자하는 장면(Scene) 내부의 물체(Object)를 정의하는 작업 - 렌더링 : How to Draw, 모델링에 정의된 물체를 어떻게 그릴 것인가. (조명을 어떻게 할지, 관찰자의 위치는 어디인지, 3차원의 물체를 어떻게 2차원으..

게임을 움직이는 수학과 물리 4장 - 2차원

게임을 움직이는 수학과 물리 4장 - 2차원 4.1 차원- 차원 : 공간을 표현하는 한가지 지표. 3차원이란 차원이 3개란 의미인데 가로, 세로, 높이를 가리킨다. 2차원이란 가로와 세로로 구성된 차원으로 일반적으로 평면 디스플레이에서 사용한다.4.2 좌표- 좌표 : 화면에서의 위치를 나타낸 것-좌표의 이동 : (5,2)->(1,4)로 이동하는 것은 x는 5->1, -4만큼 움직이고 y축은 2->4, 2만큼 움직인다. 결국 (-4, 2)만큼 움직인 것이다. (-4, 2)가 이동량이 되는데 이 이동하는 정보를 벡터(vector)라고 한다.4.3 좌표와 벡터 - 위치를 나타내는 것은 좌표, 이동량을 나타내는 것은 벡터 모두 (x,y)형태로 표기한다. 좌표는 어느 지점을 가르키는 위치 정보이고, 벡터는 이동량..

OpenGL SuperBilbe Chapter3, 파이프라인을 마치며..

새해초, 1월이 되면서 그래픽스 공부를 시작하기로 마음 먹었다. OpenGL Superbible을 통해 공부를 시작했고, 1월 한달간 챕터1~3까지 공부하며 블로그에 공부한 내용을 정리했다. 처음부터 블로그에 정리하면서 공부하는 것을 목표로 해서 시간이 좀더 오래 걸렸지만, 필요할때마다 두고두고 보기엔 더 나을거같아 남겨두기로 마음먹었다. (보통 한챕터 정리하는데 별거 아닌거같아도 두어시간은 쓰게된다...)OpenGL Super Bible 그래픽스 공부하기 - 1. OpenGL 기본개념이해 OpenGL Super Bible 그래픽스 공부하기 - 2. 첫번째 OpenGL 프로그램 OpenGL Super Bible 그래픽스 공부하기 - 2-3. 처음 그리는 삼각형 OpenGL Super Bible 그래픽스 ..

OpenGL Super Bible 그래픽스 공부하기 - 3. 파이프라인 따라가기 - 5) 프래그먼트 쉐이더~프레임버퍼

OpenGL Super Bible 그래픽스 공부하기 - 1. OpenGL 기본개념이해 OpenGL Super Bible 그래픽스 공부하기 - 2. 첫번째 OpenGL 프로그램 OpenGL Super Bible 그래픽스 공부하기 - 2-3. 처음 그리는 삼각형 OpenGL Super Bible 그래픽스 공부하기 - 3. 파이프라인 따라가기 - 1) 쉐이더간 데이터 전달 OpenGL Super Bible 그래픽스 공부하기 - 3. 파이프라인 따라가기 - 2) 테셀레이션 OpenGL Super Bible 그래픽스 공부하기 - 3. 파이프라인 따라가기 - 3) 지오메트리 쉐이더 OpenGL Super Bible 그래픽스 공부하기 - 3. 파이프라인 따라가기 - 4) 프리미티브 어셈블리, 클리핑, 래스터라이제이션..

OpenGL Super Bible 그래픽스 공부하기 - 3. 파이프라인 따라가기 - 4) 프리미티브 어셈블리, 클리핑, 래스터라이제이션

OpenGL Super Bible 그래픽스 공부하기 - 1. OpenGL 기본개념이해 OpenGL Super Bible 그래픽스 공부하기 - 2. 첫번째 OpenGL 프로그램 OpenGL Super Bible 그래픽스 공부하기 - 2-3. 처음 그리는 삼각형 OpenGL Super Bible 그래픽스 공부하기 - 3. 파이프라인 따라가기 - 1) 쉐이더간 데이터 전달 OpenGL Super Bible 그래픽스 공부하기 - 3. 파이프라인 따라가기 - 2) 테셀레이션 OpenGL Super Bible 그래픽스 공부하기 - 3. 파이프라인 따라가기 - 3) 지오메트리 쉐이더Part 3 파이프라인 따라가기 - 4) 프리미티브 어셈블리, 클리핑, 래스터라이제이션 3.5 프리미티브 어셈블리, 클리핑, 래스터라이제..

OpenGL Super Bible 그래픽스 공부하기 - 3. 파이프라인 따라가기 - 3) 지오메트리 쉐이더

OpenGL Super Bible 그래픽스 공부하기 - 1. OpenGL 기본개념이해 OpenGL Super Bible 그래픽스 공부하기 - 2. 첫번째 OpenGL 프로그램 OpenGL Super Bible 그래픽스 공부하기 - 2-3. 처음 그리는 삼각형 OpenGL Super Bible 그래픽스 공부하기 - 3. 파이프라인 따라가기 - 1) 쉐이더간 데이터 전달 OpenGL Super Bible 그래픽스 공부하기 - 3. 파이프라인 따라가기 - 2) 테셀레이션 Part 3 파이프라인 따라가기 - 3) 지오메트리 쉐이더 3.4 지오메트리 쉐이더 - 래스터라이저 스테이지 이전 단계에 위치, 개념적으로 마지막 쉐이더 스테이지 - 프리미티브당 한 번 수행되며, 수행되는 프리미티브를 구성하는 모든 버텍스에 ..

OpenGL Super Bible 그래픽스 공부하기 - 3. 파이프라인 따라가기 - 2) 테셀레이션

OpenGL Super Bible 그래픽스 공부하기 - 1. OpenGL 기본개념이해 OpenGL Super Bible 그래픽스 공부하기 - 2. 첫번째 OpenGL 프로그램 OpenGL Super Bible 그래픽스 공부하기 - 2-3. 처음 그리는 삼각형 OpenGL Super Bible 그래픽스 공부하기 - 3. 파이프라인 따라가기 - 1) 쉐이더간 데이터 전달Part 3 파이프라인 따라가기 - 2) 테셀레이션 3.3 테셀레이션(Tessellation) - 고차 프리미티브(OpenGL에서는 패치)를 더 작고, 단순한 여러 개의 렌더링 가능한 프리미티브(삼각형)으로 분할하는 작업 - 사각형, 삼각형, 선들을 더 많고 더 작은 점, 선, 삼각형 등으로 분할 3.3.1 테셀레이션 컨트롤 쉐이더(Tesse..

OpenGL Super Bible 그래픽스 공부하기 - 3. 파이프라인 따라가기 - 1) 쉐이더간 데이터 전달

OpenGL Super Bible 그래픽스 공부하기 - 1. OpenGL 기본개념이해 OpenGL Super Bible 그래픽스 공부하기 - 2. 첫번째 OpenGL 프로그램 OpenGL Super Bible 그래픽스 공부하기 - 2-3. 처음 그리는 삼각형 Part 3 파이프라인 따라가기 - 1) 쉐이더간 데이터 전달 - OpenGL 파이프라인의 각 스테이지가 하는 일 - 작성한 쉐이더를 고정 함수 파이프라인 스테이지에 연결하는 방법 - 그래픽스 파이프라인의 모든 스테이지에서 동시에 사용하는 프로그램을 만드는 방법 3.1 Vertex Shader에 Data 전달하기 - Vertex Shader : 첫번째 프로그래밍 가능 스테이지, 유일한 필수 스테이지 실행 전 버텍스 페칭/버텍스 풀링(정점 풀링)이라는..