Reporting Date: October. 20, 2024
벡터 그래픽 장치에서 디스플레이 리스트의 역할에 대해 다루고자 한다.
목차
01 벡터 그래픽 장치 (Vector Graphics)
좌표 기반의 이미지 표현.
전자총이 닿는 부분마다 밝혀지게 된다.
좌표와 이를 움직이게 하는 명령어로 이미지를 표현하며,
이것은 선, 곡선, 도형 등으로 이루어져 있다.
(1) 명령어 (Logo code)
//Logo code
loop:
moveto (10, 10)
lineto (40, 30)
lineto (40, 10)
lineto (10, 10)
goto loop
1. moveto
시작점을 설정하여 커서를 이동시킨다.
실제로 그래픽을 그리지 않고, 단지 그리기 시작할 위치를 지정한다.
2. lineto
현재 위치에서 지정한 좌표까지 직선을 그린다.
3. goto
프로그램 흐름에서 특정 위치로 이동시킨다.
그래픽 관련 명령어보다는 주로 제어 흐름에서 사용된다.
(2) 실습 사이트
Logo Interpreter
www.calormen.com
Turtle Academy - new program
A cool Logo program made on Turtle Academy
turtleacademy.com
위 사이트에서는 moveto 언어를 인식하지 못하는 것 같아서
다른 방식으로 직각 삼각형을 그려보았다.
//Logo code
FORWARD 90 ; 높이 그리기
RIGHT 120 ; 오른쪽으로 120도 회전
FORWARD 180 ; 빗변 그리기
RIGHT 150 ; 왼쪽으로 150도 회전
FORWARD 155 ; 밑변 그리기
HIDETURTLE ; 거북이 숨기기
1. FORWARD
직선으로 이동하는 역할을 한다.
피타고라스 공식을 이용하여, 높이, 빗변, 밑변을 순서대로 그렸다.
90과 155의 제곱합에 루트를 적용하면 179.2345이므로
빗변의 길이를 180으로 설정하였다.
2. RIGHT
오른쪽으로 회전시키는 역할을 한다.
90도, 60도, 30도인 직각 삼각형으로 설정하였다.
즉, RIGHT 120도는 내각이 아니라 외각을 의미한다.
3. HIDETURTLE
거북이는 사용자가 입력한 명령어에 맞춰 움직여주는 역할을 한다.
중앙에 위치한 거북이가 방해된다면 이 명령어로 숨기면 된다.
이러한 명령어를 저장하는 장치를 디스플레이 리스트라고 한다.
02 디스플레이 리스트 (Display List)
그래픽스를 그릴 때, 여러 그래픽 명령들을
저장하여 효율적으로 실행할 수 있게 하는 기법.
주로 3D 그래픽스와 GUI 시스템에서 사용되며,
한번 생성된 디스플레이 리스트는 여러 번 호출되므로, 성능을 향상시킬 수 있다.
(1) 오실로스코프 (Oscilloscope)
1950-60년대에 컴퓨터 그래픽을 출력하려면 화면에 벡터를 그릴 수 있는 장치가 필요했다.
그 당시의 기술로는 오실로스코프를 활용해 벡터 이미지를 그릴 수 있었다.
이 장비는 주로 전자 회로의 동작을 분석하거나,
신호의 진폭, 주기, 위상 등의 특성을 확인하는 데 유용하다.
컴퓨터가 생성한 전기 신호가 오실로스코프의 입력으로 들어가면,
그 전압 신호에 따라 화면에 선으로 표시하는 장치였으며,
이 특성을 활용하여 2D 벡터 이미지를 그릴 수 있었다.
(2) 컴퓨터 그래픽의 발전
초기 벡터 그래픽 디스플레이 장치는 오실로스코프처럼 작동하여,
전기적 신호에 따라 화면에 선을 그려 화면에 이미지를 표시했다.
이러한 방식은 픽셀 기반의 화면을 사용하는 대신
직선적인 선을 그리는 방식이었기에, 벡터 그래픽이라고 불렸다.
이러한 기술은 고해상도 출력 장치가 도입되기 전까지
컴퓨터 화면에서 그래픽을 나타내는 주요 방법 중 하나였으며,
CAD(컴퓨터 지원 설계), 컴퓨터 애니메이션 등에서 중요한 역할을 했다.
(3) 활용
1960년대 후반, 칼 세이건 등의 과학자들이
MIT와 같은 연구소에서 오실로스코프를 사용해
우주 관련 데이터를 시각화하거나, 공학적 분석을 수행할 때
벡터 그래픽 방식의 초기 화면 출력을 사용했다.
전자빔의 크기
보통 마이크로미터(㎛) 단위로 측정된다.
CRT(음극선관) 디스플레이에서 전자빔이 형성하는
점의 크기는 대략 50 ㎛ ~ 200 ㎛ 정도이며, 이 값은 0.05 ㎜ ~ 0.2 ㎜ 에 해당된다.
이 크기의 범위가 얼마나 작은지 미생물과 비교해보도록 하겠다.
원생생물
아메바 (Amoeba): 약 10 ~ 600 ㎛
짚신벌레 (Paramecium): 약 50 ~ 300 ㎛
03 벡터 그래픽의 장단점
(1) 장점
1. 무한 해상도
위 사진에서 보여지는 것처럼, 전자빔은 매우 작다.
벡터 그래픽을 화면에 표시할 때는, 화면의 픽셀로 근사하여 표현하는데,
이때, 화면의 해상도에 따라 매우 작은 빈 공간이 발생할 수 있지만,
사람의 눈으로는 인식할 수 없을 정도로 작기 때문에, 사실상 무한 해상도처럼 보인다.
그러므로, 레스터 그래픽에서 흔히 볼 수 있는 계단 현상 없이 선명하게 이미지를 표현할 수 있으며,
이론적으로 무한히 확대하거나 축소해도 품질 손실없이 선명하게 유지된다.
2. 적은 메모리 요구량
프레임버퍼에 비해 적은 메모리 용량을 사용한다.
프레임버퍼는 화면의 모든 픽셀에 대한 정보를 저장해야 하지만,
벡터 그래픽 장치는 이미지를 그리기 위한 명령어만 저장하면 되므로
메모리 사용량이 상대적으로 적습니다.
(2) 단점
복잡한 벡터 그래픽은 이를 표현하는데 여러 가지 제약이 있으며,
또한, 기본적으로 높은 비용이 요구된다.
1. 복잡한 이미지 표현에 어려움
세밀한 디테일이나 복잡한 텍스처를 표현하는 데 한계가 있다.
선, 다각형, 곡선 등을 기본으로 하므로,
자연스러운 색상 변화나 그라디언트, 텍스처와 같은 복잡한 이미지 표현이 어려울 수 있다.
사진처럼 세밀한 색상 차이와 복잡한 패턴을 표현하는 데는
래스터 그래픽(JPEG, PNG)이 더 유리하다.
2. 복잡한 색상 표현의 한계
한 지점에서 다른 지점으로 매끄럽게 색상이나 톤이 변하는 그라디언트(Gradient),
3D 모델이나 2D 그래픽에서 물체의 명암을 표현하는 음영 처리(Shading)가 기본적으로 어렵다.
이를 표현하려면, 여러 개의 벡터 오브젝트나 다양한 색상 변화를 추가해야 하므로,
자연스러운 그라디언트 효과를 적용하기 어려울 수 있다.
램프 효과나 그림자 같은 효과는 벡터 기반의 방식으로 표현하기 힘들며,
래스터 그래픽처럼 자유롭게 색을 혼합할 수도 없다.
3. 파일 크기 문제
매우 복잡한 벡터 그래픽은 파일 크기가 커질 수 있다.
특히 많은 수의 경로(paths)나 세밀한 조정이 포함된 경우,
파일이 너무 커져 처리 속도가 느려지거나 불편할 수 있으며,
이는 래스터 파일보다 오히려 더 큰 용량을 차지할 수 있다.
4. 성능 문제
복잡한 벡터 그래픽을 렌더링하는 데 시간이 오래 걸릴 수 있다.
특히 고해상도나 복잡한 경로들이 많은 경우, GPU나 CPU의 처리 능력에 큰 부담을 줄 수 있다.
웹이나 모바일 환경에서 벡터 그래픽을 사용할 때, 복잡한 애니메이션이나
인터랙티브 기능을 구현하면 성능 저하가 발생할 수 있다.
5. 소프트웨어 호환성 문제
다룰 수 있는 소프트웨어가 제한적이다.
Adobe Illustrator나 CorelDRAW와 같은 벡터 그래픽 편집 프로그램이 필요하며,
몇몇 그래픽 편집 프로그램에서는 벡터 파일을 다루기가 어려운 경우가 많다.
(3) 활용
이 방식은 주로 로고, 아이콘, 폰트와 같은 그래픽 작업에 사용되며,
심장 박동 그래픽 🫀이나 단백질 구조도 와 같이
다양한 크기에서도 고해상도를 유지해야 하는 분야에서 활용된다.
'2024 - 2학기 > OpenGL' 카테고리의 다른 글
2.5 그래픽 프로세서 (12) | 2024.12.24 |
---|---|
2.4 그래픽 출력 장치 (2) | 2024.12.24 |
2.2 래스터 그래픽 장치 (15) | 2024.10.20 |
2.1 래스터 그래픽 장치 (6) | 2024.10.19 |
1.2 컴퓨터 그래픽스 (12) | 2024.10.18 |