본문 바로가기
728x90

Computer Graphics/OpenGL3

[OpenGL] 모델 행렬, 원근투영행렬 구현 및 적용 ■ 모델 행렬 먼저 모델 행렬(Model Matrix 혹은 World Transform Matrix라고 칭함)은 아래와 같이 구성되어있다. 위 T, R, S는 순서대로 이동(Translation), 회전(Rotation), 크기(Scale) 변환 행렬을 뜻한다. 위 조합으로 만들어낸 모델 행렬은 모델 공간에 위치한 정점들의 위치를 월드 좌표 기준의 위치로 변환해준다. 1. 크기 변환 행렬 (S) 2. 회전 변환 행렬 (R) 3. 이동 변환 행렬 (T) 위 세 개의 행렬들을 조합하여 나온 모델링 행렬은 아래와 같다. 4. 모델 행렬(M) 이를 토대로 코드를 구현해봤다. 원근투영행렬과 이동행렬은 전북대 교수님 강의를 따라 코드를 작성하며 이해를 한 뒤 다시 처음부터 제작해봤고 크기와 회전변환 행렬은 이전에 .. 2024. 1. 7.
[Computer Graphics] OpenGL, 더블 버퍼링 ■ 더블 버퍼링 요즈음 대부분의 GUI 프로그래밍에선 일반적으로 사용자에게 연속적인 이미지를 보여주기 위해 더블 버퍼링을 사용한다. 구성은 프론트(Front) 버퍼, 백(Back Buffer)가 있는데 프론트에서는 현재 프레임(마지막프레임)의 버퍼를 보관해주고 백에서는 이후에 (다음프레임) 보여줄 버퍼를 보관하고있다. [원리] 그러므로 CPU에서 GPU에게 그래픽 데이터를 전달해주면은 GPU에서는 BackBuffer에다가 해당 데이터에 맞게 객체를 그려준다음 SwapBuffer 등을 통하여 FrontBuffer와 BackBuffer를 교체하여 디스플레이에 띄워준다. [이유] 이렇게 까지 하는 이유는 무엇인가? 먼저 렌더링에는 (1) 내가 원하는 것을 그려줘 와 (2) 니가 그린 것을 보여줘의 두 가지 신.. 2023. 11. 16.
[Computer Graphics] 공부 시작 및 목표 ■ Computer Graphics 3차원 물체를 보여준다는 것은, 기반이 되는 것은 3차원이지만 사진을 찍으면 2차원으로 변하는 것처럼, 우리 눈에 3차원 물체를 2D로 보여주는 것이다. 그래서 3D Computer Graphics라고 하고 렌더링 파이프라인 과정을 거쳐서 계산 후 나오는 결과 이미지를 '프레임 (fps; Frames Per Second)'이라고 한다. 컴퓨터 그래픽스의 종류는 크게 두 가지인데 내가 공부하고자하는 (1) 실시간 [온라인] 컴퓨터 그래픽스 와 (2) 비실시간 [오프라인] 컴퓨터 그래픽스이다. 종류 특징 실시간 컴퓨터그래픽스 시간으로 초당 30프레임 이상을 그려내야하기 때문에 작업을 간략화하고 GPU에서 집중해서 병렬처리를 하는 것이다. 이와 같은 실시간 그래픽스가 필요한.. 2023. 11. 16.
728x90