opengl(5)
-
<자료구조> 큐(queue),덱(deque)
queue First in First Out 지하철 엘리베이터를 타면 먼저 탄 사람이 먼저 나올 수 있는 구조인데 이게 first in first out구조이다. queue를 사용하기위한 조건 #include 를 작성한다 queue 선언 queue 변수명; quque 추가 queue.push(value); queue 데이터 삭제 queue.pop(); queue 첫번째 데이터 변환 queue.front(); queue 사이즈 변환 queue.size(); queue 비어있는지 확인 queue.empty() 비어있으면 1 안 비어있으면 0 deque(double ended queue) = stack + queue 양쪽에서 삽입,삭제가 가능하다는 점이 특징이다. #include deque도 queue와 마찬..
2023.06.01 -
[OpenGL] LearnOpenGL 정리본 6~7
shader GPU에서 동작하는 프로그램 이 프로그램은 그래픽 파이프라인의 특정 부분을 각자 맡아서 실행한다. shader는 입력값을 출력값으로 변환시키는 프로그램 그 자체이다. 또한 shader은 아주 독립적이기 때문에 서로 의사소통이 안된다. 유일한 의사 소통은 입력값과 출력값을 통해서 하는 것 뿐이다. GLSL shader은 c언어와 비슷하게 생긴 GLSL로 작성됨. 그래픽과 함께 쓰일 수 있도록 만들어 졌고, 특히 vector와 matrix를 조작하는데에 유용한 기능들을 가지고 있다. shader은 항상 버전 선언으로부터 시작합니다. 그 다음으로는 입력 변수와 출력 변수들이 나오게 됩니다. 그리고 uniform이 나오고 그 후에는 main함수로 감싸져 있다. shader의 시작하는 지점은 main..
2022.07.30 -
[OpenGL] LearnOpenGL 정리본 4~5
OpenGL에서 모든 것은 3D 공간 안에 있다. 그렇지만, 윈도는 2차원 픽셀 배열이다. 3D -> 2D 로 바꾸는 작업이 필요함 이 작업을 그래픽 파이프라인이 관리함. 그래픽 파이프라인은 크게 두 부분으로 나뉜다. 1. 3D 좌표를 2D 좌표로 변환하는 것이다. 2. 2D 좌표를 실제 색이 들어간 픽셀로 변환하는 것이다. 좌표와 픽셀의 차이 좌표는 정확하지만 픽셀은 정확하게 보이는 것이다. Shaders: 파이프라인의 각 단계에서 GPU위에 작은 프로그램들을 병렬로 실행시킴으로써 데이터를 빠르게 처리하기 위해 여러 개의 작은 프로세싱 코어를 가지고 있는데 이 작은 프로세싱 코어(프로그램)들을 뜻함. Shader는 여러게의 종류가 있다. OpenGL Shading Language (GLSL)으로 작성되..
2022.07.23 -
[OpenGL] LearnOpenGL 정리 본 (1~4)
OpenGL이란 무엇인가? 각 함수들의 결과/ 아웃풋에 대한 내용을 명시해둔 것. 구체적으로 말하자면 2,3, 차원 아웃풋에 대한 내용을 명시해둔 것으로 표준 API 규격이다. 내부적 구현은 안됨 -> 내부적 구현은 누가 하나? 그래픽카드 제조업체에서 한다. 유용한 기술이 나오면 바로 사용이 가능하다. 새로운 버전이 나올 때까지 기다리는 것이 아닌 그래픽 카드를 바꾸면 바로 사용이 가능하다. OpenGL은 state machine이다. state machine이라는 것은 무엇인가? 쉽게 말해 상태 머신이란, 어떻게 OpenGL이 동작할 건지에 대해서 사전에 정의되어 있는 변수들의 모음이다. => GL_POINTS, GL_TRIANGLES처럼 OpenGL을 사용할 때 우리는 각종 옵션에 말만 해주면 사전에..
2022.07.18 -
그래픽스 스터디
#include "Viewer.h" #include "GL/freeglut.h" #include #include #include #include #include void pares(const std::string& str, std::vector& values, std::string& delimiter) { std::string::size_type Fpos = str.find_first_not_of(delimiter, 0); std::string::size_type Lpos = str.find_first_of(delimiter, Fpos); while (std::string::npos != Fpos || std::string::npos != Lpos) { values.push_back(str.substr(..
2022.07.12