Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 06. 기하학, 셰이딩, 텍스처.

Similar presentations


Presentation on theme: "Chapter 06. 기하학, 셰이딩, 텍스처."— Presentation transcript:

1 Chapter 06. 기하학, 셰이딩, 텍스처

2 색상 표현 RGB 색상 모델 R - Red , G - Green , B - Blue
우리가 흔히 사용, 접하고 있는 색상 모델. R, G, B 삼원색의 혼합을 통해 색상을 표현. 색상의 밝기는 혼합되는 색상 성분의 총량을 변경하여 만들어 진다.

3 벡터로서의 색상 R : (1, 0, 0) G : (0, 1, 0) B : (0, 0, 1)

4 색상들에 대한 연산 R + G : (1, 0, 0) + (0, 1, 0) = (1, 1, 0)
LUMINANCE = R G B A・b = ab = (arbr , agbg , abbb) 색상 필터링 (1, 0.2, 0.2) : R 색은 보존하고 G, B 는 20% 수준으로 감소 (1, 1, 1) : 색상을 그대로 보존, 투명한 유리

5 색상 연산의 활용

6 색상 범위 한계 RGB 색상 공간은 이론적으로는 한계가 없음. 물리적 디스플레이 장치는 색상 공간에 확실한 한계가 존재.
세 개의 축상으로 각각 최소, 최대 밝기를 갖는다. RGB 공간의 최소, 최대 점으로 검은색k 와 흰색w 가 일반적이다. (0, 0, 0) k , (1, 1, 1) w (r, g, b) ➝ (kr + r(wr - kr), kg + g(wg - kg), kb + b(wb - kb))

7 RGB 공간은 각 색상 성분이 0 ~ 1 로 정규화된 색상 입방체로 정의된다.
단위 입방체 안에 들지 않는 색상들의 값을 제한 하기 위한 쉬운 방법으로 색상을 절삭하는 방법을 사용한다. safe(c) = ( clamp(r), clamp(g), clamp(b) ) clamp(x) = max(min(x, 1.0), 0.0) safe(c) = ( max(r, 0) , max(g, 0), max(b, 0) ) / ( max(r, g, b, 1) ) a (1, 1, 0) , b (10, 5, 0) ➝ a (1, 1, 0) , B(1, 0.5, 0) : B 가 더 어두워 진다.

8 COLOR CLAMPED COLOR RESCALED

9 알파값 네 번째 색상 성분 혼합된 색상이 다른 색상들과 어떻게 상호작용하는지를 정의하는데 사용.
알파가 최소값(0.0) 이면 RGB 색상은 무시되고, (0.5) 이면 RGB 색상의 50% 를 반영한다.

10 색상 저장 형식 현재 상황과 맞지 않는 내용... Pass ! 세월이 많이 흘렀음..

11 포인트와 정점 정점의 속성 위치 색상 법선 텍스처 좌표

12 버텍스 형식에 대한 열거형 갑을 제공 버텍스 형식에 대한 유연성 제공 크로스 플렛폼 지원

13 표면 표현 삼각형 실시간 그래픽스 시스템에서 3D 표면을 표현하는 가장 흔한 방법
삼각형으로 표면을 근사하거나, 테셀레이션 이라고 부르는 기법을 적용 삼각형을 렌더링 하기 위한 방법 정점마다 지정 - 데이터의 중복, 하지만 간단하다. 정점을 공유 - 정점간 인덱스를 구성. 후면 제외 - 뷰 절두체에 의해 제외되지 않은 많은 수를 제외 가능

14 정점과 카메라를 잇는 벡터와 삼각형의 법선 벡터를 이용하여 가시성 판별

15

16

17

18 Rendering Geometry 기하 정보 출력을 위한 마지막 단계.  적절한 정보를 API 에 넘겨 주면 됨.
draw call 에 입력 되는 정보는 최소한 다음을 포함. 버텍스 배열, 인덱스 배열, 기하 배열의 타입(type of primitive – list, strip, etc), 물체 외양을 정의한 rendering state API 에 따라서 추가로 normal, position 등을 요구할 수도 있음. example  renderer.Draw(kTriangleListPrim, vertexBuffer, indexBuffer);

19 Rendering Pipleline Primitive Processing Per-Vertex Operations
Triangle Assembly Triangle Clipping Viewport Transform Fragment Generation Fragment Processing Output Processing

20 Fixed Function vs Programmable Pipeline
전통적인 방식의 Rendering Pilpeline 으로는 원하는 만큼의 유연한 표현력을 낼 수 없음 OpenGL 2.0 , Direct3D DX8 부터 프로그래밍 가능한 Pipeline 이 지원되기 시작 : ‘Shader’ 코드. per-vertex operations , fragment processing 부분에서 조작이 가능해짐 : vertext shader, pixel shader 초창기의 shader 코드는 어셉블리어에 가까웠으나 Cg, HLSL, GLSL 등 보다 다루기 쉬운 고수준의 언어 형태를 갖추게 됨.

21 glShadeModel(GL_FLAT) glShadeModel(GL_SMOOTH)
플랫 셰이딩 고로 셰이딩 glShadeModel(GL_FLAT) glShadeModel(GL_SMOOTH)

22 무게중심 좌표(s,t) 로의 매핑 무게 중심 좌표(동차 점) 에서 RGB 색상 공간으로의 아핀 변환 s t 1 Color(O, T, (s,t)) = [ (Cv1 – Cv3) (Cv2 – Cv3) Cv3 ]

23 임의의 변에서 색상 도함수 안에 불연속성이 존재
고로 셰이딩, 동적 조명에 대한 자세한 사항은  7,8 장

24 텍스처 매핑 화면이 픽셀을 갖는 것처럼, 텍스처는 텍셀들을 갖는다. 텍셀 좌표 x : 좌에서 우로 증가
y : opengl 은 아래에서 위로 증가, directx 는 위에서 아래로 증가 but.. CBC 이미지 포멧에 따라 달라질 수 있음. OpenGL 에서의 호출 glEnable(GL_TEXTURE_2D) , glDisable(GL_TEXTURE_2D) glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,width,height,0,GL_RGBA,GL_UNSIGNED_ BYTE,texels)

25

26 텍스처가 뒤집히고 쪼그라드는 문제  첫번째 정점의 복제

27 텍스처 타일링 텍스처 절삭

28 텍스처링 단계 s (u1 – u3) (u2 – u3) u3 t u (v1 – v3) (v2 – v3) v3 1 v =
절삭 또는 포장 텍셀 좌표에 따라 텍스처의 이미지에 따라 색상 정보로 사상


Download ppt "Chapter 06. 기하학, 셰이딩, 텍스처."

Similar presentations


Ads by Google