본문 바로가기

기타/컴퓨터 그래픽스 & OpenGL

(19)
[OpenGL] 리셰이프 콜백 / 2022.10.23 * 출처 : OpenGL로 배우는 3차원 컴퓨터 그래픽스, 한빛아카데미 리셰이프 이벤트는 1. 처음 윈도우를 열 때 2. 윈도우 위치를 옮길 때 3. 윈도우 크기를 조절할 때 발생한다 아래 코드는 원래 뷰 포트의 중심과 변경된 뷰 포트의 중심을 일치시키면서도 물체 크기와 종횡비를 그대로 유지하는 방법이다. 1. 흰색 바탕에 회색 사각형을 그리는 프로그램을 통해 설명해보자 #include #include #include void MyDisplay() { glClear(GL_COLOR_BUFFER_BIT); // 컬러 버퍼에 초기화 색을 가함 glColor3f(0.5, 0.5, 0.5); //회색 glBegin(GL_POLYGON); //사각형 glVertex3f(-0.5, -0.5, 0.0); glVert..
[OpenGL] 백색 사각형 그리기 / 2022.10.22 * 출처 : OpenGL로 배우는 3차원 컴퓨터 그래픽스, 한빛아카데미 1. 흑색 바탕에 백색 사각형 그리기 #include #include #include void MyDisplay() { glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POLYGON); // 4개의 정점으로 이루어진 다각형 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); glEnd(); glFlush(); // 현재까지 쌓인 명령어 모두를 프로세서에 전달 } int main() { glutCreateWindow("OpenGL Drawing Example"); ..
벡터 그래픽 / 2022.10.22 * 출처 : OpenGL로 배우는 3차원 컴퓨터 그래픽스, 한빛아카데미 1. 벡터 그래픽 장치 - 벡터 그래픽 장치 (Vector Display, Calligraphic Display, Stroke Display, Random Display) - 화소 개념이 없음 -> 해상도 무한대 -> 에일리어싱이 일어나지 않음 - 화면 전체에 인이 칠해져 있어 래스터 장치처럼 화면 면적 단위로 밝혀지는 것이 아니라 전자총이 닿는 부분마다 밝혀지게 됨 - 벡터 그래픽 장치는 화소 개념이 없기 때문에 프레임 버퍼를 사용하지 않고 디스플레이 리스트라는 메모리에 해당 물체를 그리기 위한 명령어를 저장함 -> 용량 면에서 훨씬 유리하다 2. 래스터 그래픽 대 벡터 그래픽 래스터 그래픽 : https://cow-kite24.t..
래스터 그래픽 / 2022.10.22 * 출처 : OpenGL로 배우는 3차원 컴퓨터 그래픽스, 한빛아카데미 1. 컴퓨터 모니터의 기본 원리 - 필라멘트 : 일종의 전자총, 필라멘트에 전류가 흐르면 전자가 방출됨 - 진공관 모니터는 유인된 전자가 쉽게 가속할 수 있도록 음극선관 내부를 진공으로 만듬 -> 공기 분자의 저항이 줄어듬 - 제어 그물 : 전자총에서 비롯된 연속적인 전자흐름의 양 조절 -> 화면에 보이는 밝기 조절 - 집속 양극 : 정확히 가운데로 향하지 않는 전자빔들을 차단하는 역할 - 수직 편향판, 수평 편향판 : 전자빔의 방향을 각각 상하, 좌우로 휘는 데 사용함 2. 래스터 그래픽 장치 2-1) 컬러 모니터 - 모니터 크기는 화면의 대각선 길이를 기준으로 19인치, 27인치 등으로 나타냄 - 화면 종횡비 (Aspect Rat..
컴퓨터 그래픽스 / 2022.10.22 * 출처 : OpenGL로 배우는 3차원 컴퓨터 그래픽스, 한빛아카데미 1. 컴퓨터 그래픽스의 응용 컴퓨터 그래픽스 (Computer Graphics) 란? - 컴퓨터를 사용하여 그림을 생성하는 기술 - 과거의 수작업에서 벗어나 신속하고 경제적인 비용 - 아무런 입력이 없는 상태에서 새로운 그림을 만들어 낼 수 있음 영상 처리 (Digital Image Processing) 이란? - 기존의 존재하는 그림을 개선하거나 인식하는 분야 1-1) 캐드 (CAD : Computer Aided Design) - 건물, 자동차, 비행기, 선박 등의 설계에 이용하는 소프트웨어 - 설계에 필요한 인력이나 시간, 노력 등을 단축하여 설계 효율을 높여줌 - 설계된 부품이 제대로 작동하는지를 미리 시뮬레이션 해볼 수 있음 ..
OpenGL로 배우는 3차원 컴퓨터 그래픽스 연습문제 8장 / 2022.10.19 1) 정규화 벡터의 방향은 원래 벡터와는 반대다. False 2) 두 벡터가 수직이면 이들 벡터의 내적은 0이다. True 3) 벡터 내벅은 벡터이며, 벡터 외적은 스칼라다. False 4) 지엘의 법선 벡터 방향은 명시된 정점 순서에 왼손 법칙을 가해 정의된다. False 5) 시점 벡터와 법선 벡터의 내적의 값이 양이면, 해당 면은 후면이다. False 6) 2x-y+z-10=0으로 표시되는 면이 있다. 이 면에서 시점을 향한 벡터를 (4, 2, 1)이라 할 때 이 면은 후면이다. False 7) 서더런드-핫지먼 알고리즘에서 정점이 내부에서 내부로 이동할 때는 교차점을 계산할 필요가 없다. True 8) 웨일러-애서톤 알고리즘은 오목 다각형에 절단을 가할 수 있다. True 9) 지엘의 절단은 3차원..
OpenGL로 배우는 3차원 컴퓨터 그래픽스 연습문제 7장 / 2022.10.18 1) 축측 투상에서는 한 그림에 한 개의 면만 볼 수 있다. True 2) 동일한 길이의 선분에 원근 변환을 가하면 길이가 달라질 수 있다. True 3) 지엘의 카메라는 기본적으로 +z 방향을 바라본다. False 4) 평행 투상의 가시 부피는 잘린 사각뿔 모습이다. False 5) 정규화 가시 부피는 가로, 세로, 높이 2인 부피다. True 6) 시점 좌표계의 z방향과 절단 좌표계의 z방향은 정반대다. True 7) 동차 좌표를 기준으로 판단하면, 원근 변환은 비선형 변환이다. False 8) 전방 또는 후방 절단면을 물체 내부로 가져가면 물체는 잘려나간다. True 9) glFrustum() 함수의 시선은 가시 부피의 중심을 통과한다. False 10) 시점 좌표계의 z 방향으로 동일한 간격으로 ..
OpenGL로 배우는 3차원 컴퓨터 그래픽스 연습문제 5장 / 2022.10.18 1) 전기 패널에 의한 터치 스크린에서는 화면 표면의 막을 세게 누르지 않아도 위치가 감지된다. False 3) 지엘에서 콜백 함수를 등록하는 명령어는 서로 순서가 바뀌어도 된다. True 5) 윈도우 운영체제의 화면 좌표계와 GLUT 화면 좌표계는 완전히 일치한다. True 7) 왜곡이 일어나는 이유는 화면의 종횡비가 유지되지 않기 때문이다. True 9) glViewport 함수에 의해 뷰 포트를 별도로 설정하지 않으면, 뷰 포트는 항상 자동적으로 현재 윈도우와 일치한다. True 11) 보류 모두에서는 물체를 화면에 그림과 동시에 물체 생성과 관련된 모든 정보를 파기해버린다. False 13) 오른손 법칙을 사용하여 순서대로 정점을 나열할 때 시점은 엄지손가락 방향에 존재한다. True 15) 빛의..