본문 바로가기
컴퓨터과학[4-1]/컴그래픽스

그래픽스 - 출석시험 자료

by boolean 2017. 3. 7.
728x90

그래픽스 - 출석시험 자료

아래와 같이 힌트내역을 주셨던 부분에 대해 정리한 내역입니다.

1. 비디오카드의 구성요소

1) GPU

2)비디오 BIOS

3)비디오 메모리

4)RAMDAC

5)출력

- VGA

- DVI

- VIVO

- HDMI

- 디스플레이포트

- S-비디오

2.벡터그래픽스 와 레스터그래픽스 중 하나가 출제된다고 합니다.(문제출제가 백터 인지 래스터인지 모르기 때문에 둘다 암기)

컴퓨터 그래픽스 기법은 두 가지로 분류된다. 레스터그래픽스 와 벡터그래픽스 기법이다.

-래스터그래픽스 영상은 사각형 격자 좌표형태로 픽셀이나 색상을 표현하는 자료구조이다. 래스터 영상은 스크린에 표시되는 영상과 픽셀 대 픽셀로 대응한다. 확대하면 각이 져서 보여지는 단점이 있다.

-벡터 그래픽스 영상은 수학방정식을 기반으로 점, 지건, 곡선, 다각형과 같은 물체를 표현한다. 시작점과 끝점의 정보만 저장하여 작은 용량으로도 표현가능 하나의 도형을 한 가지 색으로만 표현할 수 있기 때문에 정교한 색상을 사용하는 곳에선 적절하지 않음 수학적 표현이기 때문에 크게 확대하여도 화질이 떨어지지 않는 장점이 있다.

3.여러가지 색 모델 3가지 중 한 가지가 출제된다고 합니다.

1) RGB 색 모델

- 빨강 초록 파랑을 삼원색으로 하는 색 모델로서 삼원자극이론에 근거한 색모델 가산색 모델이라고 함

(1 ,0 ,0) 식으로 색의 세 성분의 값을 적절한 비율로 섞어 원하는 색을 만든다. (빨, 녹 , 파)를 합치면 하얀색이 나옴

2)CMY 색 모델

감산색 모델이며 프린트등 출력장치에 사용되는 색상이며 모든 색을 다 합치면 검정색이 된다.

3)HSV 색 모델

RGB나 CMY 색 모델이 출력장치를 고려한 삼원색을 사용하여 색을 표현하는 모델이라면 HSV 모델은 사람이 생각할 수 있는

직관적인 개념에 보다 더 근접한 모델이다. 색조 , 채도 ,명도를 이용하여 색을 표현한다.

4.에일리어싱을 보정하는 방법

높은 해상도가 필요한 그림을 이보다 낮은 해상도로 표현할 때 해상도 차이로 인한 정보 손실은 막을 수 없지만 정보의 왜곡을 방지하여 에일리어싱을 줄이는 기법을 안티 에일리어싱이라고 한다. 이 기법에는 3가지가 있다.

-전 필터링

물체가 차지하는 픽셀 면적을 기준으로 픽셀의 밝기를 조절하는 방법으로서 영역 샘플링이라고도 한다. 픽셀중첩 영역들은

물체의 경계가 개별 픽셀 경계와 어디에서 교차하는가에 따라 구한다.

-슈퍼 샘플링

신호를 너무 적은 횟수로 표본화를 하기 때문에 발생하는 에일리어싱 효과를 감소시키기 위한 방법으로

높은 해상도로 물체를 표본화한 결과를 더 낮은 해상도로 디스플레이 하는 것을 슈퍼 샘플링이라고 한다.

-후 필터링

후 필터링에서 디스플레이 픽셀은 이웃하는 샘플들의 가중치 평균으로 계산된다. 가중치는 매스크 또는 윈도 함수로 구현되며

,가운데 샘플에 가중치가 많이 주어진다.

5. 소스 관련 문제

#include <GL/glut.h>

#pragma comment(linker, "/SUBSYSTEM:WINDOWS")

#pragma comment(linker, "/ENTRY:mainCRTStartup")

void init (void)

{

glClearColor (1.0, 1.0, 1.0, 0.0); // 디스플레이 윈도우 색을 흰 색으로 지정

glMatrixMode (GL_PROJECTION);

gluOrtho2D (0.0, 200.0, 0.0, 150.0);

}

void drawingRtn(void)

{

glClear(GL_COLOR_BUFFER_BIT);

glColor3f (1.0, 0.0, 0.0);

glBegin(GL_LINE_LOOP);

glVertex2i(40,40);

glVertex2i(160,40);

glVertex2i(160,110);

glVertex2i(40,110);

glEnd();

glFlush ();

}

void main(int argc, char** argv)

{

glutInit(&argc , argv); // glut 초기화

glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);

glutInitWindowPosition (50, 100);

glutInitWindowSize (400, 300);

glutCreateWindow ("An Example OpenGL Program");

init ();

glutDisplayFunc(drawingRtn);

glutMainLoop();

}

'컴퓨터과학[4-1] > 컴그래픽스' 카테고리의 다른 글

컴퓨터그래픽스 - 기초  (1) 2017.03.12

댓글