본문 바로가기

Computer Science/Computer Graphics 22

Transformation in 2D Transformation Geometric transformation(기하 변환)이란 기하학적인 구조를 가진 집합을 one-to-one mapping을 통해 옮기는 것으로, 쉽게말해서 점들의 집합을 이동시키는 것이다. Vector space S에 있는 임의의 input vector v을 S에서 T로 옮기는 것으로, 다음과 같이 나타낼 수 있다. $S \rightarrow \{ T(v) | v \in S \}$ 평행이동(translate), 회전(rotate), 확대/축소(scale), 전단(shear), 대칭(reflect) 등이 있다. 그래픽 movement, image/object manipulation, viewing, projection transform 등에 사용된다. Linear Transf.. 2021. 3. 16.
[GLFW] Input handling GLFW Input Handling glfw.poll_events() 이미 들어와있는 이벤트들을 처리하고 바로 return 한다. 처리란? 각 이벤트들에 대해 사용자가 등록해놓은 callback 함수를 호출한다. 이벤트 종류와 Callback using Event type Callback using 키보드 눌림 Key input glfw.set_key_callback() 마우스 움직임 Mouse cursor position glfw.set_cursor_pos_callback() glfw.get_cursor_pos() : 현재의 마우스 커서 위치를 반환해줌 움직일때마다 사용하는 것이 아니라 필요할 때마다 받아서 사용할 수 있음. 마우스 버튼 Mouse button glfw.set_mouse_button_c.. 2021. 3. 13.
[OpenGL] Vertex의 기본 Vertex 기본적인 기하적 구조를 나타내기 위해(무언가를 그리기 위해) vertex를 사용한다. glVertex*() 안에는 vertex의 좌표가 들어간다. 주의사항 vertetx의 사용은 glBegin(primitive_type)과 glEnd()사이에 위치해야 한다. 정상적으로 앞면을 보기 위해서는 반시계 방향으로 vertex를 그려야 한다. 만약 시계방향으로 그리게 된다면 그건 뒷면을 보는 것이다. → 보이는 건 같더라도 엄연히 다른 것이다. 사용 예시 glBegin(GL_TRIANGLES) glVertex2f(0.0, 1.0) glVertex2f(-1.0, -1.0) glVertex2f(1.0, -1.0) glEnd() 함수 사용 방법 glVertex*, glColor* 등 이 함수의 뒤의 * 부.. 2021. 3. 12.
[OpenGL] OpenGL이란? OpenGL이란? Open GL OpenGL이란 Open Grahpics Library로, Graphics 프로그래밍을 위한 API이다. (이름과 다르게 Library가 아닌 API이다.) OS는 OpenGL 인터페이스를 제공하고, GPU는 OpenGL implementation인 그래픽 카드 드라이버를 제공한다. 예를 들어, windows에서는 opengl32.dll을 제공하고, GPU는 Nvidia driver 등을 제공한다. 참고 : Library vs API Library Collection of functions, pre-compiled routines or reusable components of code => 코드 그 자체를 모아 놓은 것 코드의 반복을 줄이고 재사용을 할 수 있게 한다. 프.. 2021. 3. 10.
[GLFW][실습] import GLFW 에러 해결 방법 (Failed to load GLFW3 shared library.) 실습 환경은 다음과 같다. Mac OS Big Sur (Apple M1, 2020) GLFW import 에러 수업을 듣기 위해 파이썬 가상환경을 구축하였다. 그런데 import glfw만 하면 계속 오류가 발생하였다. 오류 내용 : ImportError: Failed to load GLFW3 shared library. 아마 pip3 install glfw을 통해서 설치를 했지만 GLFW3 라이브러리가 없기 때문에 발생한 듯 하다. (정확한 이유는 잘..) 해결 방법 라이브러리 디렉터리에 GLFW3 라이브러리를 넣어주면 해결된다. 우선, glfw 라이브러리 다운로드 페이지(클릭)으로 가서 macOS binaries를 다운받는다. 다운받은 파일의 압축을 풀면 아래와 같이 각 환경별 라이브러리가 존재한다... 2021. 3. 9.