이번 포스트에서는 Texture Mapping에 대해 다루겠다. Texture Mapping이란? : 세부 사항이 미세하고 복잡해질수록 다각형이나 다른 기하학적 원형을 사용한 명시적 모델링은 덜 실용적이다. 따라서 디지털화되거나 합성된 이미지를 표면에 매핑을 한다. 이것을 Texture Mapping이라고 부른다. Bump Mapping : Texture Mapping 기법 중의 하나로써 사실감을 표현하는 데 유용함. 위쪽으로 기울어진 표면은 밝은 빛을 띠는 경향이 있다. 아래쪽으로 기울어진 표면은 어두운 경향이 있다. 밝은 비트는 위쪽을 향한다. 어두운 비트는 아래쪽을 향한다.
이번 포스트에서는 음영 처리 기법에 대해 다루겠다. Constant Shading 가장 간단함 면단위로 처리함 광원이 무한대인 경우에만 유효함 시야가 무한대인 경우에만 유효함 다각형이 모델링 되는 실제 표면을 나타내며 곡면에 대한 근사치가 아닌 경우에만 유효함 Interpolated Shading 정점에 대해 결정된 값들로부터 삼각형을 가로질러 선형 보간함 Gouraud는 해당 기법을 임의의 다각형으로 일반화함 span의 끝점에 대해 계산된 보간된 z 값에서 span에 걸쳐 이미 z 값을 보간하는 스캔 라인 알고리즘에 특히 쉬움 Polygon-Mesh Shading 각 다각형 면이 개별적으로 음영 처리되면 방향이 다른 이웃들과 쉽게 구별되며, 면모(faceted) 있는 모습을 만들어냄 인접한 면들 사이의..
이번 포스트에서는 거울 반사에 대해 다루겠다. 거울 반사란? : 밝게 빛나는 표면에서 일어나는 빛의 반사 현상이다. 즉 거울 반사는 반사각 주변의 집중된 영역에서 입사광의 전체 또는 전체와 근사한 반사의 결과이다. N: 직각 벡터 L: 빛의 방향 θ: 입사각, 반사각 R: 빛의 반사 방향 V: 관측자가 보고 있는 방향 α: V와 R이 이루는 각도 거울 반사인경우, 입사각과 반사각의 크기가 거의 같다. α의 값이 적을수록 범위가 좁아지고 빛의 세기가 커진다. 즉 n의 값이 커질수록 범위가 좁아지며 빛의 세기가 커진다. (아래 그림 참조) 최종적으로 Phong 모델의 수식은 다음과 같다. 해당식을 적용한 결과물은 다음과 같다. 위에서부터 아래로 k값이 점점 커진다. 즉, k값이 클수록 거울 반사가 더 강하게..
이번 포스트에서는 조명에 대해 다루겠다. Surface Rendering (표면 묘사) : 사물의 투시 투영을 생성하고 가시적인 표면에 자연 조명 효과를 적용하면 장면의 사실적인 표시(Realistic displays)를 얻을 수 있습니다. 컴퓨터 그래픽의 포토리얼리즘(Photorealism)은 사물의 정확한 표현과 장면의 조명 효과에 대한 적절한 물리적 묘사를 포함한다. Light Sources Viewer은 Light Source로부터 나오는 빛을 볼 때 다음과 같이 본다. 불투명하고 비광택한 객체로 인해 반사된 직접 반사 빛 다른 사물로 인해 반사된 간접 반사 빛 Point Source (점 광원) & Distributed Light Source (확산 광원) : 이 둘은 정하는 절대적인 기준은 없..
이번 포스트에서는 z-Buffer 알고리즘에 대해 다루겠다. z-Buffer 알고리즘이란? : 디스플레이 화면의 각 픽셀에 대한 표면 깊이를 비교하는 알고리즘이다. view-plane인 (x, y)에서는 가장 작은 깊이를 가진 표면 S1만이 보인다. z-Buffer 알고리즘은 아래 두 개의 버퍼가 요구된다. frame buffer : 객체 표면에 있는 각 픽셀의 색상 값을 저장하는 버퍼 z-buffer : 객체 표면에 있는 각 픽셀의 z값을 저장하는 버퍼 숫자는 z값, 프레임은 음영으로 나타내고 있다. z값이 클수록 관찰자와 가까운 거리에 있다는 듯이고, 즉 보여지게 되는 픽셀이다. z값은 깊이의 일관성을 이용하여 구할 수 있다. 한 스캔라인의 임의의 픽셀에 대한 z값은 다음의 공식을 통해 구할 수 있다..
이번 포스트에서는 객체 공간법의 대표적인 알고리즘인 Back-Face Culling에 대해 다루겠다. Back-Face Culling 알고리즘이란? : 도형의 뒷면을 정의하는 빠르고 간단한 객체 공간법 알고리즘이다. 평면 방정식 표현식 : Ax + By + Cz + D = 0 Normal vector (직각 벡터) N = Cartesian components (A, B, C) V : Viewing direction N : Normal vector V • N > 0 or VzC >0이면, 뒷면
이번 포스트에서는 가시 표면의 결정에 대해 다루겠다. 가시 표면을 결정하는 알고리즘 : Image-Precision(이미지 정밀도), Object-Precision(객체 정밀도) Image-Precision (이미지 정밀도) : 투영 프로세스의 일부로 작업하고 각 프로젝터의 물체 지점 간의 관계를 픽셀 단위로 파악한다. 투영 표면의 각 픽셀 위치에서 포인트 별로 결정된다. 대부분의 가시 표면에 활용 Object-Precision (객체 정밀도) : 객체단위로 객체 전체 또는 일부분을 비교하여 어떤 화면에 표시되어야하는지를 결정한다. 와이어 프레임에서 일반적으로 가시 선을 정의하는 데에 활용 대부분의 가시 표면 알고리즘은 sorting와 coherence를 활용하여 성능을 향상시킨다. Sorting (정렬..
이번 포스트에서는 곡선의 형태에 대해 다루도록 하겠다. 곡선의 세그먼트는 3차 다항식으로 정의가 됩니다. 3차 다항식의 계수가 총 4개(Qt = at3 + bt2 + ct + d)로 나타냅니다. 이 4개의 계수를 결정할 때에는 4가지의 제약 조건이 필요하다. 이 4가지의 제약 조건을 만들 때는 다음 사항들을 고려한다. endpoint tangent vectors continuity 위에 제시된 사항들은 크게 3가지의 주요 타입을 가진 곡선을 만들 수 있다. Hermite curve Bezier curve Splines Hermite curve : 2개의 end points 및 2개의 tangent vectors 사용 end points : P1, P4 tangent vectors : R1(오른쪽으로), ..
이번 포스트에서는 parametric cubic curves를 좀 더 심화적으로 다루도록 하겠다. 곡선을 나타내는 데 사용하는 다항식의 차수는 3차다. 그러기 위해 여러개의 3차 다항식을 연결하는 데 joined 포인트를 사용하게 되는데, 이때, 보다 부드럽게 연결하기 위한 조건은 다음과 같다. Parametric Continuity Condition Geometric Continuity Condition Parametric Continuity Condition : Zero-order Parametric Continuity(0차, C0) : 단순히 2개의 곡선 조각이 연결점에서 만나면 된다. First-order Parametric Continuity(1차, C1) : 연결점에서 접선(tangent li..
이번 포스트에서는 parametric cubic curves(3차 곡선, 곡면)의 기초에 대해 다루도록 하겠다. 3D 곡선 및 곡면을 나타내는 방법 : 다항식을 활용한 방법 : 고차원의 방정식을 요구하는 문제점 존재 사용자가 지정해주는 데이터 포인트를 활용한 방법 : 새로운 모양을 정의, 도면을 디지털화, 애니메이션 경로 설계에 사용 2D Parametric Curve Segments : 우측 상단 (x(t), y(t)) : (t, y(t))와 (x(t), t)를 묶어서 표현한 결과 각각 3차, 3차로 쪼개서 중간의 joined 포인트로 부드럽게 연결한다. 보간 곡선 (Interpolation Splines) : 제시된 데이터 포인트들은 반드시 시작점에서부터 제시된 데이터 포인트를 정확히 관통하여 곡선을..