본문 바로가기
반응형

컴공과44

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.
OpenGL 기본 틀 (4)_윈도우와 뷰포트 윈도우와 뷰포트 윈도우를 분할 그리기가 뷰포트(Viewport) 내부로 제한됨 왜곡 (Distortion) 뷰포트 미 설정시 기본값으로 윈도우 = 뷰포트 윈도우 크기조절에 따라 뷰포트 내부 그림도 자동으로 크기조절 별도 뷰포트 설정에 의해 왜곡 방지 (종횡비를 보존) 더보기 경우에 따라서는 주어진 윈도우의 일부만 사용하기도 함. 뷰 포트 (Viewport)는 윈도우 내부에 설정한 작은 창을 말함. 프로그래머가 별도로 뷰 포트를 정의하지 않으면 기본 설정에 의해 묵시적으로 현재 윈도우 전체가 하나의 뷰 포트로 간주됨. 이 경우 왜곡이 일어나기도 함. 예를 들어 사용자가 윈도우의 가로, 세로 길이를 바꿈으로써 윈도우(뷰 포트) 종횡비를 원래 장면의 종횡비와 달라지게 만들 수도 있음. 이때 뷰 포트는 변경된 .. 2023. 4. 9.
OpenGL 기본 틀 (2)_입력 모드 입력모드 메저와 트리거 메저(Measure): 응용프로그램에게 전달되는 입력값 트리거(Trigger): 전달하라는 신호 예) DIR 마우스 좌표와 클릭 선택된 메뉴 아이디와 클릭 메저 프로세스 운영체제 초기화시에 실행 항상 시스템 버퍼에 메저값이 저장되어 있음. 더보기 입력 장치와 응용 프로그램 사이에 어떤 방법으로 상호 작용이 일어나는지에 따라서 입력 모드(Input Modes)를 나눔. 메저(측정값, Measure) : 입력 장치가 응용 프로그램에 넘겨주는 값. 트리거(전달 신호, Trigger) : 메저를 가져가라는 신호로, 일종의 방아쇠 (Trigger)를 당기는 행위. 메저 프로세스 (Measure Process) : 메저를 인식하여 저장하는 과정으로서 일반적으로 장치를 초기화 (Initiali.. 2023. 4. 9.
OpenGL 기본 틀 (1)_그래픽 입력장치 물리적 입력장치 (Physical Input Devices) 마우스, 조이스틱, 트랙볼, 스페이스 볼 커서 이동 방향의 가지수를 자유도(DOF: Degree of Freedom) 조이스틱, 트랙볼(2차원 평면의 상하 좌우 4방향으로 움직임 : 자유도 4) / 스페이스 볼(3차원 공간에서 앞뒤로도 움직임 : 자유도 6) 태블릿, 스타일러스 펜 터치패널(Touch Panel) & 터치 스크린(Touch Screen) 3D 스캐너 물체 표면의 3차원 좌표를 측정 레이저 촬상소자 (CCD) 더보기 물리적 입력 장치는 상대 입력(Relative Input)과 절대입력(Absolute Input)에 의해 구분할 수 있음. 마우스, 조이스틱,트랙 볼 등 상대 입력 장치에서 입력 위치의 변화량(Increments)이 .. 2023. 4. 9.
OpenGL 소개 OpenGL Library with about 670 graphic commands All function names begin with "gl", for example, glClear(), glBegin() Graphics commands are passed to the graphics card (or more exactly to its driver) and are running on the hardware. OpenGL thus allows faster display of interactive 3D graphics than pure CPU programming The graphics commands are implemented by the graphics card driver and are there.. 2023. 4. 8.
반응형