본문 바로가기
반응형

컴그16

프레임 버퍼(Frame Buffer Object) Frame Buffer Objects OpenGL allows to read off the pixel data from the framebuffer, for example, to use them as an input for a second rendering pass To this end, in addition to the original frame buffer (which is typically controlled by the window manager) a custom framebuffer object (FBO) is created and defined as a new render target (off-screen rendering) An FBO may include the following 2D ra.. 2023. 5. 28.
텍스처 (3)3D 텍스쳐 GLEW 설치 GLEW(The OpenGL Extension Wrangler Library)는 여러 종류의 컴퓨터 플랫폼(Cross Platform) 환경에서 작동 가능한 오픈소스 형태의 C/C++ 확장 라이브러리임 GLEW는 효율적인 실시간(run time) 메커니즘을 제공하는데, 이 메커니즘은 사용자의 플랫폼(Window, Mac 등…)에 적합한 OpenGL 기능들을 결정함 GLEW는 다양한 운영체제를 지원 (GLEW에서지원하는 OS: Windows, Linux, Mac OS X, FreeBSD, Irix, Solaris) 3D Textures 3D Textures 3D textures are raster graphics with three dimensions Such volumetric data i.. 2023. 5. 28.
OpenGL 기본 틀 : 정점배열 정점배열 육면체 그리기 GLfloat MyVertices[8][3] = {{-0.25, -0.25, 0.25}, {-0.25, 0.25, 0.25}, {0.25, 0.25, 0.25},{0.25, -0.25, 0.25}, {-0.25, -0.25, -0.25}, {-0.25, 0.25, -0.25}, {0.25, 0.25, -0.25}, {0.25, -0.25, -0.25}}; GLfloat MyColors[8][3]={{0.2, 0.2, 0.2}, {1.0, 0.0, 0.0}, {1.0, 1.0, 0.0}, {0.0, 1.0, 0.0}, {0.0, 0.0, 1.0}, {1.0, 0.0, 1.0}, {1.0, 1.0, 1.0}, {0.0, 1.0, 1.0}}; 정점 0, 3, 2, 1으로 구성된 면 (반.. 2023. 4. 11.
OpenGL 기본틀 : Callback 프로그래밍 (2)Menu Callback, Idle Callback, Timer Callback Menu Callback Menu Callback #include GLboolean IsSphere = true; //IsSphere 변수 선언하고 True로 초기화 : 메뉴에서 선택된 도형을 결정하는데 사용 void MyDisplay() {//화면에 도형을 그리는 함수 glClear(GL_COLOR_BUFFER_BIT);//컬러버퍼 초기화 glColor3f(0.5, 0.0, 0.5);//그릴 도형의 색상 지정 if (IsSphere)//IsSphere가 참이면 구 그리기 glutWireSphere(0.2, 15, 15); else//거짓이면 도넛을 그리기 glutWireTorus(0.1, 0.3, 40, 20); glFlush();//그리기 명령 실행 } void MyMainMenu(int entryI.. 2023. 4. 11.
OpenGL 기본틀 : Callback 프로그래밍 (1)Reshape Callback, Keyboard Callback, Mouse Callback Reshape Callback #include void MyDisplay() {//사각형을 그리기 위한 함수 glClear(GL_COLOR_BUFFER_BIT); //컬러버퍼에 초기화 색을 가함 glColor3f(0.5, 0.5, 0.5); //그리는 도형의 색상 설정 : 회색 (R,G,B가 같으면 회색) glBegin(GL_POLYGON); //도형을 그리기 위한 시작 지점 설정, 사각형 그리기 glVertex3f(-0.5, -0.5, 0.0); //좌하단 좌표 (첫 번째 꼭짓점) glVertex3f(0.5, -0.5, 0.0); //우하단 좌표 (두 번째 꼭짓점) glVertex3f(0.5, 0.5, 0.0); //우상단 좌표 (세 번째 꼭짓점) glVertex3f(-0.5, 0.5, 0.0); //.. 2023. 4. 10.
OpenGL 기본 틀 (5)_더블 버퍼링 Dual-Port 프레임 버퍼 2중 포트 구조 Read Port, Write Port 버퍼를 읽어서 화면에 뿌리는 것은 거의 동시 버퍼에 기록하는 것은 상대적으로 느림 애니메이션에서 문제가 됨 더보기 프레임 버퍼랑 양쪽으로 연결된 2중 포트 구조. 그래픽 프로세서가 프레임 버퍼에 물체 영상을 쓰고, 비디오 컨트롤러는 쓰인 내용을 읽어서 화면에 뿌림. 한쪽 버퍼에는 화면에 보여지는 내용을 저장하고, 다른 한쪽 버퍼는 그림을 그리는 데 사용된다는 개념 이때 두 개의 속도차가 발생함. 비디오 컨트롤러가 읽는 속도 ≫ 그래픽 프로세서가 쓰는 속도 이로 인해 깜빡거림 등의 문제가 발생함. 이를 해결하기 위한 것 "더블 버퍼링" 애니메이션시의 문제 (아래 그림) 아직 새로운 내용이 완전히 기록되지 않는 도중에 비디.. 2023. 4. 9.
반응형