본문 바로가기

Graphics6

OpenGL - Viewing & Camera -2 OpenGL Camera default OpenGL의 카메라의 Default는 원점(origin)에 위치하고 -z방향을 바라봄 Camera Motion 1. Camera coordinate system Figure1에서 본 좌표와 같이 OpenGL의 coordinate system은 right-handed system으로 되어있다. 이와 달리 view (camera, eye) coordinate system은 어떻게 되어있을까 아래와 같이 설정 P : camera postion (COP) A : 카메라가 바라보고 있는 target position ( = at point ) V : up vector, 카메라의 머리 위쪽 방향을 나타내는 vector ( y direction in camera coordina.. 2022. 4. 7.
Viewing & Camera -1 이론 Vertex shader는 우리가 OpenGL program에서 설정한 space를 NDC로 transform하여 H/W로 보낸다. ( 이때, vertex shader의 gl_Position은 NCD coordintes를 가져야 한다. NDC : Normalized device coordinates : x,y,z의 각 coordinates 범위가 [-1, 1]이다. ) 그 과정을 살펴보자. Coordinate System 프로그램에서 Coordinates들 간의 변환은 위 그림과 같은 여러 단계로 걸쳐서 일어난다. Local space (Object space) : 하나의 object(건물, 나무, 꽃, 자동차 등)의 모델링을 위한 좌표계 \( \times \, MODEL \,\, MATRIX \, \r.. 2022. 4. 6.
Transformation in homogeneous coordinates https://h-mangoo.tistory.com/50 Homogeneous Coordinates (동차좌표) OpenGL을 다루다 보면, Shader 프로그램의 Vertex Shader에서 Homogeneous Coordinates를 사용하는 것을 볼 수 있다. 컴퓨터 그래픽 분야에서 동차좌표가 사용되는 이유를 동차좌표에 대해 자세히 공부하며 알 h-mangoo.tistory.com 이전 글에서 x, y, z축에 대한 rotation matrix에 대해 살펴보았다. 하지만 3D에서 회전축이 될 수 있는 vector는 무한히 많기 때문에 조금 더 일반화된 표현을 알아본다. Generalized Rotation matrix rotation matrix의 일반형은 위와 같다. 좌측 상단의 상자 안의 \( .. 2022. 4. 2.
Homogeneous Coordinates (동차좌표) OpenGL을 다루다 보면, Shader 프로그램의 Vertex Shader에서 Homogeneous Coordinates를 사용하는 것을 볼 수 있다. 컴퓨터 그래픽 분야에서 동차좌표가 사용되는 이유를 동차좌표에 대해 자세히 공부하며 알아본다. 동차좌표? Homogeneous는 "균일한" 이라는 뜻을 가지고 있다. 그렇다면 Homogeneous coordinates, 균일한 좌표라는 것이 무엇일까. 2D의 xy평면에서 직선의 방정식은 \( Ax + By + c = 0 \) 이다. 방정식의 x와 y 대신 각각 x/w, y/w로 치환하면, \( A(x/w) + B(y/w) + c = 0 \)으로 표현되며, 이 식의 양변에 w를 곱해주면 \( Ax + By + Cw = 0 \)이 된다. 2차 다항식에도 적용.. 2022. 4. 1.
OpenGL? 앞서 API에 대해 숙지한 것은 OpenGL에 대해 공부하기 위함입니다. OpenGL은 API의 specification입니다, API들의 스펙을 정의하는 것입니다. "OpenGL은 단지 function의 이름과 그 하는 일만을 정의한 specification입니다." 이렇게 설명하는게 좋을 것 같네요. OpenGL은 그래픽과 이미지를 다루는 많은 function들을 제공하고 있습니다. OpenGL은 Apple, Google, Inter, NVIDIA, Samsung 등에서 표준을 개발하고 유지되고 있습니다. OpenGL에서 function은 단지 이름과 하는 일만을 정의해주기 때문에 이를 구현하는 것은 개발자의 몫입니다. OpenGL을 프로그래밍 하는 mode는 크게 immediate-mode와 Cor.. 2022. 2. 28.
API ? API라는 단어를 볼 때 마다 "API란" 이란 타이틀로 구글링을 하여, 여태 수 십번은 했던 것 같네요.. 이젠 정리해서 머리에 망치질 해둬야겠습니다. API(Application Programming Interface) : 운영 체제나 프로그래밍 언어가 제공하는 기능을 / 응용 프로그램에서 사용할 수 있도록 / 제어할 수 있게 만든 인터페이스 (이렇게 맨날 읽고 넘어가니 기억에 안남을 수 밖에) UI? User Interface 이제는 보기힘든 홈버튼(UI)! 홈버튼을 누르면 홈화면으로 돌아갈 수 있는 편리한 방법입니다. 이는 UI를 통해 사용자와 사용자가 다룰 대상(하드웨어 or 소프트웨어)를 연결시켜 줍니다. 저는 위 UI와 같은 맥락으로 API는 프로그램과 또 다른 프로그램을 연결해주는 일종의 .. 2022. 2. 28.