개발/Graphics 47

OpenGL VBO로 큐브 그리기

SDL을 이용한 OpenGL 샘플로 기본적인 SDL 세팅 및 코드 사용법은 아래를 참고하세요. (SDL 코드 설명 및 shader 생성 및 사용에 대한 설명) *여기SDL+Cube 샘플은 아래에서 받을 수 있다. *샘플코드 VBO(Vetex Buffer Object)- 버텍스(정점)에 대한 정보를 저장해두는 정점들의 집합 버퍼 - 데이터의 위치정보, 색 정보, normal 정보 등등... - 버텍스 정보가 저장된 버퍼를 GPU memory에 올려두고 사용 *일반적인 3D 오브젝트는 3D 공간상의 (x,y,z)좌표로 이루어져 있다. 이 정보를 메모리에 올려두고 gl을 통해 그리도록 명령한다. 이 샘플에선, 색 정보(rgb)와 위치 정보(xyz)를 다루는 버퍼를 생성 후 데이터 저장, 그리는 과정을 설명한다..

개발/Graphics 2018.07.07

호도법(Radian)

일반적인 각도를 표시하는 단위로 '도'를 사용하는 각도법(Degree)을 사용한다. 각도를 표현하는 데 매우 익숙한 단위이나 컴퓨터에서는 각도를 인식시킬 때는 각도법을 사용하지 않고 호도법을 사용한다.각도법(60분법)과 호도법 각도법(60분법) 호도법 정의 직각을 90등분한 것 반지름과 호의 길이의 비율 어떤 분석에 유용하나? (평면) 도형 분석 회전 운동 분석 호도법(Radian)- 회전 각도를 나타내는 표현으로, 각도를 표현할 때 원의 호의 길이로 각도를 표현하는 방법 -> 원의 크기와는 관계없이 호의 길이와 반지름의 길이의 비가 일정하다는 원리를 이용하여, 이 비를 통해 각의 크기를 나타내는 방법 우선 원주의 길이를 구하는 식을 보면,원주의 길이 = 2x(원주율)x(반지름)이 된다.*원주율 : 원주..

개발/Graphics 2018.07.07

컴퓨터 그래픽스 이론 정리 - 삼각함수 기초

삼각함수 기초 - 삼각형의 세 각 중 하나가 수직인 삼각형을 직각삼각형이라고 하는데, 삼각함수는 직각삼각형일 때만 성립힌다. sin = y(대변) / l(빗변) cos = x(밑변) / l(빗변) tan = y(대변) / x(밑변) sin과 cos- 0도와 90도일 경우, 삼각형이라기보다 직선이 된다. 이 경우에도 삼각함수는 적용될 수 있다.- 0도일 경우, 대변이 0이고 밑변과 빗변이 같다. sin0' = (대변) / (빗변) = 0 / (빗변) = 0 cos0' = (밑변) / (빗변) = 1 / 1 = 1- 90도일 경우, 밑변이 0이 되고 대변과 빗변이 같다. sin90' = 대변 / 빗변 = 1 / 1 = 1 cos90' = 밑변 / 빗변 = 0 / 빗변 = 0-> 0 또는 1인 결과가 나온다...

개발/Graphics 2018.06.24

gluLookAt() 함수 구현 설명

gluLookAt() : view transform matrix를 정의 - 시점 좌표계를 정의하는 함수로, (eyeX, eyeY, eyeZ)에 있는 카메라가 (centerX, centerY, cneterZ)에 있는 초점을 바라보는 것이다. - (upX, upY, upZ)는 카메라 상향 벡터이다.123456789101112void gluLookAt( GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ, GLdouble centerX, GLdouble centerY, GLdouble centerZ, GLdouble upX, GLdouble upY, GLdouble upZ); cs Parameters - eyeX, eyeY, eyeZ : 눈의 위치(카메라의 위치) - centerX,..

개발/Graphics 2018.06.24

컴퓨터 그래픽스 이론 정리 - 후면제거, 표면과 이면

후면제거1. 후면제거- 위 그림에서 화살표 방향은 원구 표면에서 다각형의 법선 벡터를 의미한다. - 시점은 왼쪽에 위치, 원구를 반으로 잘랐을 경우 오른쪽 B에 있는 면들은 실제로 보이지 않게 된다.위와 같이 보이지 않는 면을 후면(Back-Facing Polygon), 법선 벡터가 시점을 향한 면을 전면(Front-Facing Polygon)이라 한다.*후면제거(Backface Culling, Backface Removal) : 후면을 판단하고 제거하는 과정, 후면은 단지 시점의 위치와 해당 면이 서있는 방향만으로 판단. - V1 : 면 A의 시점 벡터 - N1 : 면 A의 법선 벡터 - V2 : 면 B의 시점벡터 - N2 : 면 B의 법선 벡터--> 후면 여부는 법선 벡터와 시점 벡터의 내적에 의해 ..

개발/Graphics 2018.06.09

컴퓨터 그래픽스 이론 정리 - 벡터, 평면 표현

벡터(1) 정규화 벡터 - 벡터의 크기 또는 절댓값은 벡터를 나타내는 선분의 길이를 말한다. 그림 (a)의 벡터 p의 길이는 밑변(6-2), 높이(4-1)인 삼각형의 빗변이므로, 아래와 같이 나타낸다. *정규화 벡터(Normalized Vector)는 원래 벡터와 방향은 동일하지만 크기가 1이 되도록 변형한 것을 말한다. 위 벡터 p=(4,3)을 정규화하려면 각 성분을 벡터의 크기(5, 위 수식으로 계산)로 나눠주면 된다. (2) 벡터의 내적과 외적 벡터의 곱셈은 내적(Inner Product, Dot Product)과 외적(Outer Product, Cross Product)로 나뉜다.두 벡터의 크기를 곱한 것에 두 벡터가 이루는 각의 코사인을 곱한 것이 내적이다. 1) 위 그림에서 벡터 t의 끝점(3..

개발/Graphics 2018.06.09

컴퓨터 그래픽스 이론 정리 - 투상 파이프라인, 절단좌표

시점좌표*투상행렬 = 절단좌표, 시점 좌표계에서 절단 좌표계로의 이동 ->투상 행렬은 가시 부피를 정의하고, 가시 부피를 정규화 가시 부피로 변환하기 위한 것이다. (glOrtho(), glFrustum(), gluPerspective()등은 현 투상 행렬의 내용을 지정하는 함수) *실제의 투상변환에는 투상 범위를 제한, 제한된 크기의 뷰 윈도우에 모든 물체의 영상이 맺히게 할 수 없기 때문* 가시 부피(View Volume) : 투상범위 * 전방 절단면(Near Clipping Plane, Near Plane, Front Plane, Hither) : 투상선에 수직으로 놓인 평면 중, 시점에 가까운 쪽 * 후방 절단면(Far Clipping Plane, Far Plane, Back Plane, Yon)..

개발/Graphics 2018.05.28

컴퓨터 그래픽스 이론 정리 - 투상(Projection)

*모델변환, 시점변환 결과물체 좌표는 시점을 기준으로 표시. 이후에 이어지는 변환이 투상변환과 뷰포트 변환이다.투상변환은 3차원 물체를 2차원 자막에 맺히도록 하기 위한 기본 작업 정확도를 강조하려면 평행투상, 원근감을 강조하려면 원근 투상을 사용투상결과 물체에 대해 절단 작업이 가해진 후 최종적으로 뷰 포트 변환에 의해 2차원 화면으로 사상 *투상 (Projection) - 3차원 물체를 2차원 투상면으로 사상하기 위한 작업(=가시변환, Viewing Transform) - 투상중심(COP, Center of Projection) : 관찰자 위치(View Point, Eye Position, Camera Position)인 시점 좌표계 원점 - 투상선(Projectors) : 투상 중심으로부터 물체 곳..

개발/Graphics 2018.05.22

컴퓨터 그래픽스 이론 정리 - 동족(Affine)좌표와 동차(homogeneous)좌표

동족 좌표(Affine space) : 벡터에 점을 추가한 것, 벡터와 점을 같은 좌표로 본다.ex) (x,y,z) = (1,2,3)의 좌표가 존재할 때, 이 좌표는 점일수도, 원점에서 (1,2,3)을 향하는 벡터일 수도 있다.이렇게 표현하면 점인지 벡터인지 구분할 수 없어 이 둘을 구분하기 위해 사용하는 것이 동차좌표이다.동차좌표(homogeneous space), - 좌표계 차원을 n이라할때, n개로 이루어진 좌표만으로 표현못하는 요소가 있어, 이를 해결하기 위해 n+1로 표현한 좌표계를 동차좌표계라 한다. (3차원상의 점과 벡터를 3개가 아닌 4개의 요소로 표현)- 마지막 요소가 0이면 벡터를, 1이면 점을 의미한다.(1,2,3,0) --> 3차원 벡터 (1,2,3,1) --> 3차원 점---> 동..

개발/Graphics 2018.05.06

컴퓨터 그래픽스 이론 정리 - 좌표계

모델 변환과 시점 변환 - 좌표계좌표계 (1) 3차원 물체의 표현 - 3차원 물체를 표현하는 방법은 물체 표면만 표현하는 방법과 물체 내부까지 표현하는 방법, 두가지 존재 - 그래픽스에서는 주로 물체 표면만 표현하는 방법을 사용, 이를 경계면 표현(Boundary Surface Representation)이라 한다.* 경계면 표현(Boundary Surface Representation) - 물체의 표면을 표현하는 방법으로 주로 평면 다각형(Planar Polygon)의 집합으로 표현 - 곡면을 표현하는 평면 다각형 하나하나를 메시(Mesh), 표면 메시(Surface Mesh), 다각형 메시(Polygon Mesh), 표면 다각형(Polygon Mesh), 표면 다각형(Surface Polygon), ..

개발/Graphics 2018.05.06
반응형