본문 바로가기

728x90

ComputerScience/Computer Graphics

(27)
CG - 11. shader programming 1. CPU, GPU - CPU는 복잡한 연산자를 지니고 있고 빠른 캐쉬를 사용하며 복잡한 프로그램을 잘 수행한다. - 반대로 GPU는 아주 작은 수천개의 ALU 코어들로 구성되어있다. 따라서 동일한 작업을 많은데이터에 병렬적으로 적용하고 싶을때 사용한다. - 옛날에는 왼쪽처럼 고정된 PIPE라인으로 VERTEX, fragment작업을 수행했지만 지금은 프로그래밍이 가능한 shader program을 직접 만들고 각각 작업을 수행할 수 있도록 발전하였다. 2. Vertex processor - 각각의 vertex마다 input을 받아서 output을 만들어낸다. - 색, 노멀벡터, 좌표, texture coord등 vertex마다의 데이터가 입력, input으로 주어진다. - 그 외에도 texture d..
CG - 10. Triangle Mesh 1. Triangle Mesh - 가장 널리 쓰이는 modeling 기법중 하나인 triangle mesh를 깊게 알아보자. - rendering 이외의 다른 operation이 필요할 수 있다. 예를들면 인접한 mesh들을 탐색하는 경우가 이에 해당한다. - 이런 여러 operation에 용이한 mesh의 data structure은 어떻게 생겨야 할까? - 첫째, compactness : 최소한의 storage로 정보를 저장할 수 있어야 한다. - 둘째, generality : 다양한 operation들이 필요한 정보들을 얻을 수 있어야 한다. - 셋째, computation : 더 효율적이 연산이 가능해야 한다. - traingle이 특히 많이 쓰이는 이유는 항상 하나의 평면을 구성하기 때문이다. ..
CG - 9. Modeling 1. Modeling - scene을 구성하는 물체를 만드는 것 - 물체는 크게 두가지로 정의 된다. - 하나는 Geometry of shape(Structural description), 다른 하나는 질감 등의 appearance와 light(surface)이다. 2. Geometry - 70-80년대에는 spline curve로 surface를 구현했다. - 표면의 곡률 등을 계산해서 spline patch들을 polynomial 함수로 구현했다. - 90년대부터 triangle mesh를 생성하는 방법이 등장했다. - 물체 표면에 lazer를 쏴서 물체 표면의 모든 점들의 3차원 좌표들을 알아내는 기법으로 사실적 모델을 생성하기 시작했다. - Stanford bunny 는 69451개의 삼각형으로 ..
CG - 8. Texture filtering 1. Filtering 1) frame buffer에 있는 픽셀의 texture coordinate을 구한다. 2) 그 위치를 가지고 texture image에서 근접한 네개의 texel을 interpolation하여 texture color를 꺼내온다. - 위 경우는 magnification에 해당하여 interpolation으로 처리된다. 즉 여러 pixel을 interpolation하여 image의 픽셀을 채운다. - 하지만 만약 frame buffer의 image 픽셀이 texture pixel의 크기보다 크다면 interpolation이 아니라 여러 texel을 평균내서 하나의 image pixel을 구하게 된다. 이를 Minification: Averaging이라고 한다. - 하지만 minif..
CG - 7. Texture 1. texture - color의 경우 vertex들의 interpolation으로 속을 채운다고 했다. - 질감도 마찬가지로 특정한 무늬 패턴들의 vertex를 잡아서 interpolation을 수행한다. - 모양이 복잡하면 복잡할수록 triangle수가 많아지고 따라서 rendering time이 늘어난다. - texture이미지를 3차원 모델에 mapping 시켜서 구현한다.. - 정육면체의 12개의 삼각형에 다음과 같은 질감을 surface에 mapping하는 것이다. 2. Texel - texture에 각각의 pixel을 texel이라고 한다. 각각 2차원의 (u,v) coordinate으로 되어있다. [0.0, 1,0]으로 normalize되어있다. - 결국 3D trianglemesh에 2..
CG - 6. Surface Rendering 1. 최종 색 결정 - 결국 픽셀의 최종 색을 결정할 때, 픽셀마다 phong illumination을 적용하여 값을 도출한다. * illumination의 값은 (R,G,B)로 구성된 vector이다. - 만약 이게 계산량이 너무 많다면 특정 부분들(예를 들면 vertex 혹은 특정 구역의 pixel들)에서 phong illumination을 적용하고 그 중간 픽셀들은 interpolation등의 approximate를 수행한다. - 그럼 특정 구역의 픽셀 혹은 vertex를 선택하냐에 따라 계산의 시간과 결과물이 달라진다. - 여러 methods에 대해 알아보자. 2. Ray casting - 눈으로 보게될 화면의 픽셀들로 ray를 쏜다고 생각하자. - 그럼 그 ray들이 물체에 맺히는 지점들에 대해..
CG - 5. Lighting 1. Illumination - 3D 물체를 2D로 rasterize하는 과정에서 물체의 현실감을 부여하기 위해서는 depth cue, illumination이 반영되어야 한다. - 광원에서 빛이 얼마나 흡수되고 반사되는지 물체의 성질도 반영이 되어야 한다. - illumination model : 광원을 고려한 모델의 색을 결정 - surface rendering method : illumination model을 활용하여 픽셀의 색을 결정 - 만약 여러 물체가 있다면 각 물체에서 반사되어 나온 빛, 광원, 이 모든 관계를 고려해서 물체의 최종색을 구해야 한다. 매우 사실적인 illumination이고 이를 global illumination이라고 한다. 하지만 이 방법은 graphics pipleli..
CG - 4. Viewing System 1. Viewing System - 컴퓨터 그래픽스란 결국 실세계에 있는 물체들의 사진을 찍는 것과 같다. - 삼차원 모델이 이루는 scene을 2D화면에 projection하는 것이다. 2. Coordinates Transform Pipeline Model Transform - 가장 먼저 가상의 scene에 올려놓을 물체들을 모델링한다. 그리고 가상의 공간(world space)의 x,y,z 축에 물체들을 올려둔다. 이때 transformation 계산이 필요하다. View Transform - scene이 완성되었다면 가상의 카메라의 좌표를 정의한다. 즉 veiwplane을 정의하는 것이다. - 계산상 편의를 위해 world coordinate을 카메라를 기준(view coordinate)으로 x,y..

728x90