CS/Computer Graphics
-
그래픽 장치의 종류와 차이점(래스터, 벡터) + 래스터화CS/Computer Graphics 2023. 4. 23. 15:46
- 래스터 그래픽 장치 픽셀(화소)을 통해 그래픽을 출력하는 장치이다. 픽셀은 R,G,B로 구성된 인점이며, 그 정보들은 프레임버퍼에 저장한다. 픽셀로 표현하다보니 부동소수좌표를 정수좌표로 저장하는 래스터화가 필수적이며, 이에 따라 물체를 정확히 표현하는데에는 계단현상(Alias)이 존재한다. 픽셀이 많아지고 정교해지면(해상도의 증가) 오차는 줄어들겠지만 벡터 그래픽 장치처럼 해상도를 무한대로 할 수는 없다. *래스터화(Rasterization): 정점, 선분, 다각형 내부 등을 표현하기 위해 어떤 화소를 선택해야하는지 결정하는 작업이다. 물체좌표에서 화면 좌표로 바꾸고, 부동소수 좌표를 정수좌표로 바꾸는 작업을 한다. - 벡터 그래픽 장치 전자빔이 닿는 곳을 밝히는 방식으로서 고해상도로 정밀하게 선을 ..
-
그래픽스 구성요소, 그래픽 시스템CS/Computer Graphics 2023. 4. 23. 15:38
컴퓨터 그래픽스란? 컴퓨터를 사용해 그림을 생성하는 기술. 캐드, PPT, VR, 미술, 애니/게임, 교육 훈련 등 다양한 곳에 응용된다. 그래픽스의 2가지 구성요소 - 모델링: What to Draw. 장면 내부 물체를 정의하는 작업을 말한다. 선분의 끝점, 다각형의 정점을 정의하는 작업에 해당한다. - 렌더링: How to Draw. 정의될 물체를 어떻게 그려낼 것인가에 해당한다. 와이어 프레임 렌더링이나 솔리드 렌더링 등 서로 다른 예시들이 있다. 그래픽 시스템 1. 그래픽 컨트롤러(=그래픽카드. GPU, Graphic Memory) 2. 출력장치(모니터, 프린터...) 3. 입력장치(키보드, 마우스, 컨트롤러...) 4. 워크스테이션(=메인컴퓨터? 그래픽처리, 작업 컴퓨터가 별도로 개발됨.
-
[Graphics Study] 변환 - 3DCS/Computer Graphics 2022. 11. 9. 14:31
- Scaling 2차원의 축소확대인자 Sx, Sy에 Z좌표 개념 Sz를 추가해준다. Sx * X, Sy * Y를 했던 것처럼 Sz * Z를 해주면 된다. 3D에서의 폴리건메쉬를 구성하는 모든 정점에 변환을 적용해주기만 하면 된다. - Rotation 2차원에서 회전은 '점'을 중심으로 이루어 졌다. 3차원에서는 '축'을 중심으로 한다.(x, y, z축) + 축 중심의 회전에서는 해당 축이 나를 가리킨다고 생각하고 정면으로 바라본다고 상상하면 편하다. 예를 들어 x축 회전은 x축이 내 눈앞에서 나를 가리키고있고, 저 뒤편에 y, z가 반시계 방향으로 회전한다고 생각하면 쉽다. * Z축을 중심으로 회전, Rz(θ) z축을 기준으로 회전하면 x좌표는 당연히 그대로이고 x, y 만 이동할 것이다. 즉 z' =..
-
[Graphics Study] 변환 - 2DCS/Computer Graphics 2022. 11. 9. 12:40
1. 변환의 종류 - Scaling(축소, 확대) 2D에서는 축소확대인자(Sx,Sy)사용 예를들어 (x,y)를 축소/확대 할 때 x방향 인자, y방향 인자를 각각 곱해주면 됨. => (Sx*X, Sy*Y) * 다만 그래픽스에서는 행렬의 곱셈으로 나타내므로 (Sx 0 ) (x) = (Sx X) (0 Sy) (y) (Sy Y) - Rotation(회전) (x') =(cosθ - sinθ) (x) (y') (sinθ - cosθ) (y) 로 나타낼 수 있다. 여기서 θ: 회전하고 싶은 각도 *이건 반시계방향의 회전 기준이다. 시계방향으로 회전하려면 -θ를 대입한다. - Translation(이동) (x) + (dx) = (x + dx) (y) (dy) (y+dy) Translation의 경우 Scailing이..
-
[Graphics Study] 모델링CS/Computer Graphics 2022. 10. 17. 15:26
모델링은 그래픽스 개발 단계에서 첫 단계에 해당하며, 렌더링 할 물체를 만드는 것을 의미한다. (mesh를 만드는 것) 1. 컴퓨터에서 모델링 개념 예를 들어 구를 모델링하려면 중점, 반지름을 통해 (x-Cx)^2+(y-Cy)^2+(z-Cz)^2=r^2과 같은 음함수로 표현을 할 것이다. 그런데 GPU는 음함수 처리에 적합하지는 않다. 그러므로 구의 표면의 점들을 sample한 후 서로 이어준다. 그럼 뭐가 될까요? polygun mesh~( GPU는 폴리건 메시에 최적화 돼 있다.) 가장 보편적이고 단순한 것은 Triangle Mesh(Open GL도 Triangle Mesh만 처리한다.) 대체로 삼각형의 개수는 꼭짓점 개수의 2배정도 된다. 3Ds Max나 Maya에서는 사각형 메시를 많이 쓴다. 그..
-
[Graphics Study] 수학 기초CS/Computer Graphics 2022. 10. 17. 13:13
컴퓨터 그래픽스는 선형대수(행렬, 벡터)가 기본이므로.. 1. 간단히 행렬에 대한 복습 1. square matrix(정사각 행렬) m x n matrix에서 m=n 2. 행렬 곱 A행렬의 열과 B행렬의 행이 같을 때 즉, A가 l x m, B가 m x n일 때만 가능. (l x m matrix) A와 B를 곱하려면 A의 행 성분, B의 열의 대응하는 곱을 하나씩 곱. 3. Row vector, Column vector Direct 3D는 row vector, OpenGL은 column vector사용. 4. Identify matrix(단위행렬) 어떤 행렬과 곱하더라도 그 행렬을 유지. (1, 0) (1, 0, 0) (0, 1) or (0, 1, 0) 처럼 대각선만 1이고 나머지는 0 인 경우 (0, ..
-
[Graphics Study] 컴퓨터 그래픽스CS/Computer Graphics 2022. 10. 15. 11:25
고려대학교 컴퓨터학과 한정현 교수님의 강의를 듣고 나름대로 정리를 해보려고 한다. https://www.youtube.com/watch?v=Jvz0XPSRbx4&list=PLYEC1V9tJOl03WLDoUEKbiYW_Xt4W6LTl&index=1 1. 3D Computer Graphics 3차원 물체를 입력 받아 2차원 영상(Frame)으로 출력. 프레임을 얼마나 빨리 만드느냐에 따라 실시간 그래픽, 비실시간 그래픽으로 나뉜다. - 실시간 그래픽: Game, AR/VR, UIs. 초당 30frame이상 - 비실시간 그래픽: 영화 특수효과. photorealistic image를 목표 2. 개발 단계 실시간, 비실시간 그래픽 각각에 사용되는 알고리즘은 다를지라도, 개발단계는 공통된다. Modeling ->..