2D 컴퓨터 그래픽스

2D computer graphics

2D 컴퓨터 그래픽은 대부분 2차원 모델(2D 기하학적 모델, 텍스트, 디지털 이미지 등)과 그것들에 특정한 기법에 의해 컴퓨터 기반의 디지털 이미지 생성이다.그것은 그러한 기법을 구성하는 컴퓨터 과학의 분야나 모델 자체를 지칭할 수 있다.

래스터 그래픽프린트(왼쪽) 및 마스크

2D 컴퓨터 그래픽은 타이포그래피, 지도그래피, 기술도면, 광고 등 원래 전통적인 인쇄도면 기술을 기반으로 개발된 응용 분야에 주로 사용된다.그러한 애플리케이션에서, 2차원 이미지는 단순히 실제 물체를 표현하는 것이 아니라 의미적 가치가 추가된 독립적인 인공물이다. 따라서 3D 컴퓨터 그래픽보다 이미지를 더 직접적으로 통제하기 때문에 2차원 모델이 선호된다.

데스크톱 출판, 엔지니어링비즈니스와 같은 많은 도메인에서, 2D 컴퓨터 그래픽 기법을 기반으로 하는 문서에 대한 설명은 해당 디지털 이미지보다 훨씬 작을 수 있으며, 종종 1/1000 또는 그 이상이다.이 표현은 또한 다른 출력 장치에 적합하도록 다른 해상도로 렌더링될 수 있기 때문에 더 유연하다.이러한 이유로 문서와 삽화는 종종 2D 그래픽 파일로 저장되거나 전송된다.

벡터 그래픽 장치를 기반으로 한 2D 컴퓨터 그래픽은 1950년대에 시작되었다.이것들은 다음 수십 년 동안 래스터 기반 장치로 대체되었다.포스트스크립트 언어와 X 윈도 시스템 프로토콜은 그 분야의 획기적인 발전이었다.

기술

2D 그래픽 모델은 기하학적 모델(벡터 그래픽이라고도 함), 디지털 이미지(래스터 그래픽이라고도 함), 유형 집합(내용, 글꼴 스타일과 크기, 색상, 위치 및 방향에 따라 정의됨), 수학 함수방정식 등을 결합할 수 있다.이러한 요소들은 번역, 회전, 스케일링과 같은 2차원 기하학적 변환에 의해 수정되고 조작될 수 있다.객체 지향 그래픽에서 이미지는 임의 알고리즘에 의해 이미지 픽셀에 색상을 할당하는 절차인 자기 렌더링 방법을 부여받은 객체에 의해 간접적으로 설명된다.복잡한 모델은 객체 지향 프로그래밍의 패러다임에서 더 단순한 객체를 결합함으로써 구축될 수 있다.

번역은 주어진 방향으로 그림이나 공간의 모든 점을 같은 양만큼 움직인다.
첫 번째 축과 평행한 두 번째 축에 대한 반사가 뒤따르는 축에 대한 반사는 총 운동인 번역이다.

유클리드 기하학에서 번역은 모든 점을 지정된 방향으로 일정한 거리로 이동시킨다.번역은 경직된 움직임으로 묘사될 수 있다: 다른 경직된 동작은 회전과 반사를 포함한다.번역은 또한 모든 점에 일정한 벡터를 더하거나 좌표계원점을 이동시키는 것으로 해석될 수 있다.A translation operator is an operator such that

v가 고정 벡터인 경우 번역 Tv Tv(p) = p + v로 작동한다.

T가 번역이라면, T함수 아래 부분집합 A이미지A by T번역이다.Av by T에 의한 번역은 A + v로 표기되는 경우가 많다.

유클리드 공간에서는 어떤 번역도 등위법이다.모든 번역의 집합은 공간 자체에 이형화된 번역 그룹 T유클리드 그룹 E(n)의 정상 하위 그룹을 형성한다.E(n ) by T의 몫 그룹직교 그룹 O(n )에 대해 이형이다.

E(n ) / TO(n ) .

번역

번역은 부속 변환이지만 선형 변환은 아니기 때문에, 균일한 좌표는 보통 행렬에 의한 번역 연산자를 나타내기 위해 사용되며 따라서 선형 변환을 위해 사용된다.따라서 우리는 4개의 동종 좌표y w = (wx, w, w)로 사용하여z 3차원 벡터 w = (wx, wy, w, w)를 w = (w, w, wz, 1)로 쓴다.[1]

벡터 v로 객체를 번역하려면 각 균질 벡터 p(동질 좌표로 작성됨)에 다음과 같은 변환 매트릭스를 곱해야 한다.

아래와 같이 곱셈은 예상 결과를 제공한다.

변환 행렬의 역행렬은 벡터의 방향을 반대로 하여 얻을 수 있다.

마찬가지로, 번역 매트릭스의 산물은 벡터를 추가함으로써 주어진다.

벡터의 추가는 역행적이기 때문에 번역 매트릭스의 곱셈도 역행적이다(임의 매트릭스의 곱셈과는 달리).

회전

선형대수학에서 회전행렬유클리드 공간에서 회전을 수행하는 데 사용되는 행렬이다.

xy-Cartesian 평면의 점을 반시계방향으로 회전시켜 데카르트 좌표계의 원점에 대한 각도 θ를 통과한다.회전 행렬 R을 사용하여 회전을 수행하려면 각 점의 위치가 점의 좌표를 포함하는 열 벡터 v로 표시되어야 한다.회전 벡터는 행렬 곱셈 Rv를 사용하여 얻는다.행렬 곱셈은 제로 벡터(즉, 원점 좌표)에 영향을 미치지 않기 때문에 회전 행렬은 좌표계의 원점에 대한 회전을 설명하는 데만 사용할 수 있다.

회전 행렬은 그러한 회전에 대한 간단한 대수적 설명을 제공하며 기하학, 물리학컴퓨터 그래픽의 계산에 광범위하게 사용된다.2차원 공간에서는 회전각 θ으로 간단하게 회전을 설명할 수 있지만, 2행 2열 회전 행렬의 4개 항목으로도 표현할 수 있다.3차원 공간에서 모든 회전은 단일 고정 회전 축에 대해 주어진 각도에 의해 회전하는 것으로 해석될 수 있으며( 오일러의 회전 정리 참조), 따라서 3개의 항목으로 간단히 각도와 벡터로 설명할 수 있다.단, 3행 3열 회전 행렬의 9개 항목으로도 나타낼 수 있다.회전이라는 개념은 일반적으로 3보다 높은 차원에서는 사용되지 않는다; 매트릭스로 나타낼 수 있는 회전 변위라는 개념이 있지만 연관된 단일 축이나 각도는 없다.

회전 행렬은 실제 항목이 있는 정사각형 행렬이다.좀 더 구체적으로, 그것들은 결정인자 1을 갖는 직교 행렬로 특징지어질 수 있다.

= - , = 1 .

그러한 n 크기의 모든 행렬 집합은 그룹을 형성하며, 특수 직교 그룹 SO(n)로 알려져 있다.

2차원으로

θ 각도를 통과하는 벡터의 반시계방향 회전.벡터는 처음에 x축과 정렬된다.

2차원에서 모든 회전 행렬은 다음과 같은 형태를 가진다.

( )=[ - cos cos sin ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ]

다음과 같은 행렬 곱셈을 통해 열 벡터를 회전시킨다.

.

회전한 후 그래서 그 지점의 좌표(x',y의)(x, y): 있다.

X′)x 못 말리겠고 ⁡ θ − ysin ⁡ θ{\displaystyle x'=x\cos -y\sin \theta)\theta,},.
Y′)x sin ⁡ θ+y못 말리겠고 ⁡ θ{\displaystyle y'=x\sin\theta +y\cos \theta),}.

만약 θ 것은 긍정적인(예를 들어 90도), 시계 방향으로 만약 θ은 음수(예를 들어 -90°)벡터 회전 부분의 방향 counterclockwise 있다.

R(− θ))[못 말리겠고 ⁡ θ sin ⁡ θ − sin ⁡ θ 못 말리겠고 ⁡ θ]{\displaystyle R(-\theta)={\begin{bmatrix}\cos\theta&\sin\theta \\-\sin \theta&\cos \theta \\\end{bmatrix}}\,}.

좌표계의 비표준 방향

각도 θ을 통해 비표준 축을 가진 회전.

만약 표준 시계 방향의 데카르트 좌표계, 오른쪽에 있는 x축과 y축을, R(θ)시계 반대 방향으로 있으면, 회전이 함께 사용됩니다.만약 왼손잡이 데카르트 좌표계 x 오른쪽으로 지시하지만 y을 지시했다 사용된다, R(θ)시계 방향으로 있다.이러한 비표준 방향 거의 수학으로 건조하지만 종종 왼쪽 위 코너에 있는 기원과 화면이나 페이지를 y 축이 2차원 컴퓨터 그래픽에서도 흔히 사용된다.[2]

회전 행렬에 의해 생성되는 회전 감각을 변화시킬 수 있는 다른 대체 규약은 아래를 참조하십시오.

공통 회전

90° 및 180° 회전 시 행렬이 특히 유용하다.

)=[ - 1 시계 반대 방향으로 90° 회전)
( )=[- - R양방향 180° 회전 - 반회전)
( )=[ 0 - R시계 방향으로 90° 회전하는 것과 동일)

유클리드 기하학에서 균일한 스케일링(등방성 스케일링,[3] 균질확장, 균질확장, 균질화)은 모든 방향에서 동일한 스케일 팩터로 객체를 확대(증가)하거나 축소(감소)하는 선형 변환이다.균일한 스케일링의 결과는 (기하학적 의미에서는) 원본과 유사하다.일반적으로 스케일 팩터가 1로 허용되므로, 합치된 모양도 유사한 것으로 분류된다.(일부 학교 교과서에서는 사각형이나 원을 직사각형에서 제외하는 것과 같이, 특히 이러한 가능성을 배제한다.)

보다 일반적인 것은 각 축 방향에 대해 별도의 축척 계수를 사용하여 스케일링하는 것이다.균일하지 않은 스케일링(비등방성 스케일링, 비균형 확장)은 스케일링 요인 중 하나 이상이 다른 요소와 다를 때 얻는다. 특별한 경우는 방향 스케일링 또는 스트레칭(한 방향으로)이다.균일하지 않은 스케일링은 물체의 모양을 변화시킨다. 예를 들어, 사각형의 면이 스케일링 축에 평행하지 않을 경우 사각형으로 변화하거나 평행사변형으로 변화할 수 있다(축에 평행한 선 사이의 각도는 보존되지만 모든 각도는 보존되지 않는다).

스케일링

스케일링 매트릭스는 스케일링 매트릭스로 표현될 수 있다.벡터 v = (vx, v, vy, vz)로 객체를 스케일링하려면 각 p = (px, py, p)를z 스케일링 매트릭스와 곱해야 한다.

아래와 같이 곱셈은 예상 결과를 제공한다.

그러한 스케일링은 스케일인자 사이의 인자에 의해 물체의 직경을 변화시키고, 두 스케일인자의 가장 작은 제품과 가장 큰 제품 사이의 면적을 변화시키며, 세 가지 스케일인자 모두의 곱에 의한 부피를 변화시킨다.

스케일링 계수가 같은 경우에만(vx = vy = v = vz) 스케일링이 균일하다.한 척도계수를 제외한 모든 척도가 1이면 방향 스케일링이 있다.

vx = vy = vz = v = k인 경우, 스케일링을 요인 k에 의한 확대 또는 확장이라고도 하며, 면적을2 k 인수에 의한 증가, 부피를 k3 인수에 의한 증가시킨다.

가장 일반적인 의미에서 스케일링은 대각선으로 가능한 매트릭스를 가진 아핀 변환이다.스케일링의 세 방향이 수직이 아닌 경우를 포함한다.하나 이상의 척도계수가 0(투영)과 같은 경우(투영), 하나 이상의 음의 척도계수의 경우도 포함된다.후자는 적절한 스케일링과 일종의 반사의 조합에 해당한다. 특정한 방향의 선을 따라 우리는 수직이 될 필요가 없는 평면과의 교차점에서 반사를 취한다. 따라서 평면의 일반적인 반사보다 더 일반적이다.

균일한 좌표 사용

컴퓨터 그래픽에 자주 사용되는 투영 기하학에서 점들은 균일한 좌표를 사용하여 표현된다.벡터 v = (vx, vy, v, vz)로 객체를 스케일링하려면 각 균일한 좌표 벡터 p = (px, py, pz, 1)에 이 투영적 변환 매트릭스를 곱해야 한다.

아래와 같이 곱셈은 예상 결과를 제공한다.

균일한 좌표의 마지막 구성요소는 다른 세 구성요소의 분모로 볼 수 있으므로, 공통 인자 s에 의한 균일한 스케일링(균일 스케일링)은 이 스케일링 매트릭스를 사용하여 수행할 수 있다.

각 벡터에 p 위해)우리는(px, py, pz, 1)을 것이다.

연관된 균질 것이다.

다이렉트 페인팅

편리한 방법은 복잡한 영상을 만들기 위해 빈"캔버스"래스터 지도(픽셀의 배열, 또한 비트 맵으로 알려져)어떤 통일된 배경 색과,"페인트"또는 그 위에 색의 단순한 패치"페이스트", 적절한 순서대로" 그리"으로 가득 찬 시작하는 것이다.특히 컴퓨터 표시하기 위해 캔버스를 수 있는 프레임 버퍼.

일부 프로그램으로 바로 전달되지만, 대부분의 일반적으로 다음 작업을 구현하는 일부 2D그래픽 라이브러리나 기계의 그래픽 카드 의존할 것입니다:픽셀 색 설정할 것이다.

  • 붙여 넣기 주어진 이미지는 지정된 캔버스 위에 오프셋에;.
  • 주어진 위치와 각도에서, 문자의 지정된 글꼴을 다른 문자열을 써라.
  • 그림판 간단한 기하학적 모양, 삼각형 세 모서리로 정의되거나 주어진 중심지와 반지름으로 원과 같은;.
  • 선 세그먼트, 아크, 또는 주어진 폭의 가상 펜으로 간단한 곡선을 그리세요.

확장된 색상 모델

텍스트, 모양과 선이 client-specified 색으로 만들고 있다.많은 도서관과 카드 smoothly-varying 배경, 그림자 효과 등(참고 항목 고러드 채색)의 세대에게 유용한 색 그라데이션을 제공한다.픽셀 색들도 또한 질감에서, 예를 들어는 디지털 이미지(따라서 rub-on screentones이 유일하게 만화에서 이용 가능하게 되는 데 사용되는 그 전설적인 인물인 체커 페인트 똑같이 해)를 취할 수 있다.

주어진 색과 픽셀 색칠하기는 보통 그것의 이전 색을 대체한다., 이는 이전의 픽셀 값을 투명하고 반투명한 색, 하지만, 많은 시스템 지원 그림이다.두 색깔도 또한 더 복잡한 방식으로, 내에. 그들의 비트 배타적 or을 계산하여 결합될 수 있다.이 기술inverting 색 색깔이나 역전고 종종 그래픽 사용자 인터페이스에서부터 같은 색과 똑같은 모양 re-painting은 원래의 픽셀 값 복원할 계획이라고 마지막 그림이고, 기타 휘발성 painting—를 강조하기 위해, 사용되는 것으로 알려졌다.

레이어

레이어를 사용하여 3D 배경으로 구성된 2D 애니메이션 캐릭터.

2D 컴퓨터 그래픽에 사용되는 모델은 보통 3차원 형상이나 조명, 그림자, 반사, 굴절 등의 3차원 광학적 현상을 제공하지 않는다.그러나, 그들은 대개 특정 순서로 쌓인 여러 층(개념적으로 잉크, 종이 또는 필름; 불투명, 반투명 또는 투명)을 모델링할 수 있다.순서는 일반적으로 단일 숫자(층 깊이 또는 뷰어와의 거리)로 정의된다.

레이어드 모델은 때때로 "2"라고 불린다.½-D 컴퓨터 그래픽".그들은 절단이나 붙여넣기와 같은 필름과 종이에 기초한 전통적인 제도 및 인쇄 기술을 모방할 수 있게 하고, 사용자가 다른 사람들에게 영향을 주지 않고 어떤 층도 편집할 수 있게 한다.이러한 이유로, 그것들은 대부분의 그래픽 편집기에서 사용된다.레이어드 모델은 또한 복잡한 도면의 더 나은 공간적 안티앨리어싱을 가능하게 하고, 미세한 관절이븐 오드 규칙과 같은 특정 기법에 대한 사운드 모델을 제공한다.

레이어드 모델은 또한 사용자가 문서를 보거나 인쇄할 때, 예를 들어 지도에서 도로나 철도, 통합 회로 다이어그램에서 특정 프로세스 레이어 또는 비즈니스 서신에서 주석과 같은 원하지 않는 정보를 억제하는 데 사용된다.

레이어 기반 모델에서, 대상 이미지는 각 레이어를 가상 캔버스에 깊이를 감소시키기 위해 "페인팅" 또는 "붙여넣기"로 생성된다.개념적으로, 각 레이어는 먼저 스스로 렌더링되어 원하는 해상도의 디지털 이미지를 산출하며, 캔버스 위에 픽셀 단위로 그려진다.물론 계층의 완전한 투명 부분은 렌더링할 필요가 없다.렌더링과 도장은 병렬로 할 수 있다. 즉, 렌더링 절차에 의해 생성되는 즉시 각 레이어 픽셀을 캔버스에 칠할 수 있다.

복잡한 기하학적 객체(텍스트폴리선 등)로 구성된 레이어는 단순한 요소(각각 샤랙터 또는 선 세그먼트)로 분해될 수 있으며, 이 요소들은 이후 어떤 순서로 별도의 레이어로 도색된다.그러나 이 솔루션은 두 요소가 동일한 픽셀과 겹치는 경우 바람직하지 않은 앨리어싱 아티팩트를 생성할 수 있다.

휴대용 문서 형식#레이어도 참조하십시오.

하드웨어

현대의 컴퓨터 그래픽 카드에는 벡터 그래픽 하드웨어에 비해 래스터 기반 비디오 하드웨어의 비용이 상대적으로 저렴하기 때문에 스크린을 직사각형 그리드로 나눈 래스터 기법이 거의 압도적으로 사용된다.대부분의 그래픽 하드웨어는 블리팅 작업이나 스프라이트 도면에 대한 내부 지원을 가지고 있다.블리팅 전용 코프로세서블리터 으로 알려져 있다.

1970년대 후반부터 1980년대까지 8비트 ~ 16비트 초반에 사용된 고전적인 2D 그래픽 칩과 그래픽 처리 장치, 아케이드 게임, 비디오 게임 콘솔가정용 컴퓨터에는 다음이 포함된다.

소프트웨어

MacOS, Microsoft Windows 또는 X Window 시스템을 포함한 많은 그래픽 사용자 인터페이스(GUI)는 주로 2D 그래픽 개념을 기반으로 한다.그러한 소프트웨어는 컴퓨터와 상호작용을 위한 시각적 환경을 제공하며, 일반적으로 사용자가 다른 응용 프로그램을 개념적으로 구별할 수 있도록 도와주는 어떤 형태의 윈도우 관리자를 포함한다.개별 소프트웨어 애플리케이션 내의 사용자 인터페이스는 일반적으로 2D로, 마우스와 같은 대부분의 일반적인 입력 장치가 2차원의 이동에 제약을 받기 때문이다.

2D 그래픽은 프린터, 플로터, 시트 커팅 기계 등과 같은 제어 주변장치에서 매우 중요하다.그것들은 또한 대부분의 초기 비디오 게임에도 사용되었다; 그리고 여전히 카드 게임과 카드 게임, 카드 게임, 체스, 마작 게임 등에도 사용된다.

2D 그래픽 편집기 또는 그리기 프로그램은 2D 컴퓨터 그래픽 원형의 직접 조작(마우스, 그래픽 태블릿 또는 유사한 장치를 통해)에 의한 이미지, 다이어그램 및 그림을 생성하기 위한 응용 프로그램 레벨 소프트웨어다.이러한 편집자들은 일반적으로 디지털 이미지뿐만 아니라 기하학적 원시 요소도 제공하며, 일부 편집자는 절차적 모델도 지원한다.그림은 대개 내부적으로는 레이어드 모델로 표현되며, 편집이 더욱 편리하도록 계층 구조로 표현되는 경우가 많다.이러한 편집기는 일반적으로 계층과 원시 요소가 원래 형태에서 별도로 보존되는 그래픽 파일을 출력한다.1984년에 Macintosh 컴퓨터 라인과 함께 도입된 MacDraw는 이 클래스의 초기 사례였다; 최근의 예로는 상업용 제품인 Adobe IllustratorCorelDROW, 그리고 xfigInkscape와 같은 무료 편집기가 있다.전기, 전자, VLSI 다이어그램, 지형도, 컴퓨터 글꼴 등 특정 유형의 도면에 특화된 2D 그래픽 에디터도 많다.

이미지 편집기는 주로 자유 도장/도장 및 신호 처리 작업을 통해 디지털 이미지 조작에 특화되어 있다.그들은 일반적으로 사용자가 가상의 캔버스에 페인트를 칠하기 위해 가상 펜, 브러시 및 기타 자유손 예술 도구를 제어하는 직접 페인팅 패러다임을 사용한다.일부 이미지 편집기는 다중 레이어 모델을 지원하지만, 각 레이어를 흐리게 하는 것과 같은 신호 처리 작업을 지원하기 위해 일반적으로 디지털 이미지로 표현된다.따라서 편집자가 제공하는 모든 기하학적 원형은 즉시 픽셀로 변환되어 캔버스에 그려진다.래스터 그래픽 편집기라는 명칭은 벡터 그래픽을 다루는 일반 편집기와 이 접근방식을 대조하기 위해 가끔 사용된다.첫 번째 인기 있는 이미지 편집자 중 한 명은 맥 드로우의 동반자인 애플맥페인트였다.현대적인 예로는 무료 KIMP 에디터와 상업용 제품 포토샵페인트샵 프로가 있다.이 세분류는 의학, 원격 감지, 디지털 사진 의 전문 편집자도 많이 포함한다.

개발 애니메이션

2D 애니메이션의 부활과[4]: 8 함께, 무료 및 독점 소프트웨어 패키지는 아마추어와 전문 애니메이터들에게 널리 보급되었다.2D 애니메이션의 주요 이슈는 노동 요구 사항이다.[citation needed]RETAS UbiArt FrameworkAdobe After Effects와 같은 소프트웨어로 색칠과 합성 작업을 더 짧은 시간에 할 수 있다.[citation needed]

디지털 2D 애니메이션의 진행을 돕고 속도를 높이기 위한 다양한 접근법이 개발되었다[4]: 38 .예를 들어, 예술가는 Adobe Flash와 같은 도구에서 벡터 아트워크를 생성함으로써 소프트웨어 기반 자동 컬러링과 중간색을 사용할 수 있다.

블렌더와 같은 프로그램은 사용자가 소프트웨어에서 3D 애니메이션, 2D 애니메이션을 하거나 둘 다 결합하여 실험을 여러 형태의 애니메이션으로 할 수 있게 해준다.[5]

참고 항목

참조

  1. ^ 1981년 Richard Paul, Robot 조작자: 수학, 프로그래밍 제어 : 로봇 조작자의 컴퓨터 제어, MIT Press, Cambridge, MA
  2. ^ W3C recommendation (2003), Scalable Vector Graphics -- the initial coordinate system
  3. ^ Durand; Cutler. "Transformations" (PowerPoint). Massachusetts Institute of Technology. Retrieved 12 September 2008.
  4. ^ a b Pile Jr, John (May 2013). 2D Graphics Programming for Games. New York, NY: CRC Press. ISBN 978-1466501898.
  5. ^ Foundation, Blender. "blender.org - Home of the Blender project - Free and Open 3D Creation Software". blender.org. Retrieved 2019-04-24.