163535/A25002 컴퓨터 그래픽스 Chap 6. Shading Copyright ⓒ 2001 N Baek.

Slides:



Advertisements
Similar presentations
1 Chapter 2 Basic Physics of Semiconductors  2.1 Semiconductor materials and their properties  2.2 PN-junction diodes  2.3 Reverse Breakdown.
Advertisements

인공지능 소개 부산대학교 인공지능연구실. 인공 + 지능 인공지능이란 ? 2.
Reverse Engineering (RapidForm). 실습 일정 및 프로그램  얻어낸 공간 위치 데이터를 RapidForm (Analysis software) 을 이용하여 3D 객체 생성 후 제출  시간 : 4/11 ( 수요일 ) 오후 6: 30, 오후 9:00.
The Beginning Of Light Skeaker mgun
학습목표 10장. 조명과 음영 조명과 음영의 차이점을 이해한다. 지역 조명모델과 전역 조명모델의 차이점을 이해한다.
SAR 영상자료를 이용한 해양 파라미터 추출 기법 연구
Sources of the Magnetic Field
Mathematics for Computer Graphics
영상 기반 표현 (image Based Representation)
OpenGL Programming (III) 1. Drawing in 3D 2. Manipulating 3D Space
컴퓨터 그래픽스 연구회지 2000년 5월 발표자 : 이영건 날짜 :
Chapter 10. Illumination Models and Surface-Rendering Methods
10장. 조명과 음영 학습목표 조명과 음영의 차이점을 이해한다. 지역 조명모델과 전역 조명모델의 차이점을 이해한다.
Deferred Shading (지연 세이딩)
학습목표 10장. 조명과 음영 조명과 음영의 차이점을 이해한다. 지역 조명모델과 전역 조명모델의 차이점을 이해한다.
Chapter 5. 라이팅(Lighting)
Nondestructive Material Testing with Ultrasonics
축산 인식개선을 위한 농협의 추진 사례 ( ) 농협중앙회 축산지원단장 박인희.
음 영 (Shading).
Mesh Saliency 김 종 현.
Chapter 12. Color Models and Color Applications
Chapter 12. Color Models and Color Applications
분자 동역학 컴퓨팅 전승준 (고려대학교 화학과).
Application of Acoustic Sensing and Signal Processing for PD Detection in GIS 20003년 05월 10일 이 찬 영.
제 6 장 데이터 타입 6.1 데이터 타입 및 타입 정보 6.2 타입의 용도 6.3 타입 구성자 6.4 사례 연구
Internet Computing KUT Youn-Hee Han
OpenGL Programming (II) 3D Graphics Fundamentals
분자 동역학 컴퓨팅 전승준 (고려대학교 화학과).
기초 이론.
Numerical Analysis - preliminaries -
Sang Il Park Sejong University
그래픽스 시스템과 모델.
음영법 최 수 미
8장. 가시성 판단 학습목표 후면제거의 정의와 처리방법을 이해한다. 절단작업의 정의와 처리방법을 이해한다.
10 Three-Dimensional Object Representations  고려대학교 컴퓨터학과 김 창 헌.
Lecture #9 제 6장. 음영법(Shading).
Chapter 13. Computer Animation
Realistic Projectile Motion
4. OpenGL 상태들과 기본 도형들.
1장 그래픽스 시스템과 모델-이미지 형성, 모델, 구조
Ambient Occlusion 발표자 : 정광일 일 시 :
Kyoungju Park Computer Graphics Kyoungju Park
렌더링.
Hanyang University Jungsik Park
(Interpolation Values)
자동제어 영남대학교 기계공학부 정 병 묵.
OpenGL PROJECT 우광식 성기영 서창수 이인주.
GPU Gems 3 Chapter 13. Volumetric Light Scattering as a Post-Process
Matrix 및 Rendering 파이프라인
학습목표 13장. 고급 렌더링 그림자를 구현하기 위한 세 가지 방법을 이해한다. 레이트레이싱의 정의와 구현방법을 이해한다.
스케줄링 (Scheduling) 시스템 내부시간(time in the system): 스케줄링 문제
핸드폰 시뮬레이션 김 형 도 송 미 경.
adopted from KNK C Programming : A Modern Approach
Draw the basic Geometry Objects
재료의 광학적 성질 : 빛 ⇔ 재료 빛 : 때로는 전자기파, 때로는 입자(photon)처럼 거동.
Introduction to Programming Language
빛의 반사 Mount Hood reflected in Mirror Lake, Oregon
Term project ‘Maya를 이용한 얼굴 근육과 표정변화와의 관계 애니매이션’
게임수학 제 7 장 조명.
3D Shapes 3개 핵심 Properties가 존재 1.Material 표면의 재질을 설정합니다.
6. Video Effects.
Signature, Strong Typing
Signature, Strong Typing
Signature, Strong Typing
스케줄링 (Scheduling) 시스템 내부시간(time in the system): 스케줄링 문제
Rendering Lecture 따라하기 제작:이경복(한밭대학교).
New Themes in Computer Graphics
HCI 입문 강의 계획 2005년2학기 김 창 헌
Ray Casting 발표자 : 박 경 와
Chapter 4. Energy and Potential
Presentation transcript:

163535/A25002 컴퓨터 그래픽스 Chap 6. Shading Copyright ⓒ 2001 N Baek

Shading realistic computer graphics 의 첫 걸음 gradation of colors 색상이 부드럽게 변해 가야 what is needed ? light : 광원 matter (= material) : 물체 표면의 특성 optics (광학) or physics Copyright ⓒ 2001 N Baek

6.1 Light and Matter

Light and Matter Light representation in computer graphics based on three color theory : Red, Green, Blue Matter material properties determine which wavelengths are absorbed or reflected to some extent in real world in computer graphics

Rendering Equation computer graphics 에서의 종합적인 rendering 방법 J. T. Kajiya, “The Rendering Equation”, SIGGRAPH ’86, pp.143–150, (1986). computer graphics 에서의 종합적인 rendering 방법 optics 이론의 approximation rendering equation의 다양한 해석 가능 다양한 illumination model light source, matter, 기타 정보 rendering equation pixel 값의 결정

Illumination Model = shading model, lighting model a method to calculate the intensity of light at a given point on the surface of an object Light-Material interactions material 특성에 따라… specular surface 정반사 diffuse surface 난반사 translucent surface 굴절

6.2 Light Sources

Light Sources light 관점에서의 물체 표면에서는 self-emission : 실제로 빛을 발생 (광원) reflection : 빛을 반사 light source (광원 光原) 광의 : 모든 물체는 광원 협의 : 빛을 발생하는 물체만 illumination function I(x, y, z, , , ) point (x, y, z) 에서 (, ) 방향으로 가는 파장이 인 빛의 세기  

Light Sources additive behavior of light 물체의 표면 색 : integral of all lights color : R, G, B 각각 따로 계산 four types of light sources ambient lighting point light source spotlight distant light

Ambient Light uniform lighting (typically in the room) the combination of light reflections from various surfaces 여러 물체들의 난반사에 의한 균일한 밝기의 light 예 : 실내 전체가 균일하게 밝은 경우 ambient light 가 가해지면, 모든 물체는 대응되는 밝기를 가짐 ambient illumination : a scalar value Ia 모든 방향에서 동일한 밝기로 들어오는 빛

Point Light Sources ideal point light source 점 p0 에서 모든 방향으로 균일한 양을 방사 emits light equally in all directions light received from the point light source 거리에 반비례

Point Light Sources point light source in real world 대표적인 예 : 백열전구 ideal point light source 와의 차이점 not point, but area light source 그림자에서 차이 umbra : (진짜) 그림자 penumbra : 희미한 그림자

Spotlights cone 형태로 emit 되는 빛 ps : apex (정점) Is : light direction  : angle point light source :  =180 more realistic case 중심축과의 각도  빛의 세기  cose    –   –  cos  cose 

Distant Light Sources = parallel light source 빛이 일정한 방향으로 평행하게 들어오는 경우 예: 태양 광선 장점 : 계산이 훨씬 간단하다 in homogeneous coordinate, point light source parallel light source

6.3 The Phong Reflection Model

Phong Reflection Model Bui-T. Phong, “Illumination for Computer Generated Pictures”, Comm. ACM, 18(6):311–317, (1975). local illumination model 계산을 빠르게 하기 위해서, 물체 표면에서의 방향 관계만 따진다. 그림자는 계산 불가능 ! ambient term diffuse term specular term normal vector 물체 표면에 수직 view direction 눈의 방향 light direction 광원 방향 reflection 정반사 방향

Phong Reflection Model reflection on the surface ambient illumination indirect reflection을 approximate diffuse illumination 난반사 specular illumination 정반사

Ambient Reflection ambient reflectoin Ia 왜 필요한가? a surface that is not exposed directly to a light source still will be visible if nearly objects are illuminated La : 현재 광원에서 나오는 ambient light 의 세기 ka : 물체 표면의 ambient reflection coefficient La

Diffuse Reflection 난반사 (亂반사) 물체 표면이 거칠면, 모든 방향으로 빛을 반사 Lambertian surface : 빛을 모든 방향으로 고루 반사 Id = kd Ld cos = kd(l  n)Ld kd : diffuse reflection coefficient Ld : intensity of light source n : unit normal vector of surface l : unit light direction vector attenuation form : 거리(d)를 감안 a, b, c : constants  d cos

Specular Reflection 정반사에 의한 highlight 생성 거울 : perfect specular reflection Is = ks cosa Ls = ks(r  v)aLs ks : specular reflection coefficient Ls : intensity of light source r : unit reflection vector v : unit view direction vector  : shineness coefficient attenuation form : 거리(d)를 감안 a, b, c : constants highlight

Phong Reflection Model ambient, diffuse, specular term 모두를 합성

6.4 Computation of Vectors

Normal Vector Phong shading model n : surface normal vector polygonal model surface equation

Normal Vector implicit equation : 미분으로 계산 예 : unit sphere

Normal Vector parametric equation : 미분으로 계산 normal vector

Normal Vector in OpenGL void glNormal3f(float x, float y, float z); void glNormal3fv(float v[3]); use the normal vector for a vertex example glBegin(GL_QUADS); glColor3f(1.0, 1.0, 1.0); glNormal3f(0.0, 1.0, 1.0); glVertex3f(1.0, 1.0, 1.0); … glEnd(GL_QUADS); normal vector: (0, 1, 1) color: white position: (1, 1, 1)

Reflection Vector light direction l: 광원 방향 reflection vector r: 정반사 각도 l, n, r 모두 normalize i r

Halfway Vector specualr reflection : Is = ks cosa Ls = ks(r  v)aLs J. Blinn, “Models of Light Reflection For Computer Synthesized Pictures”, SIGGRAPH’77, 192–198, (1977). specualr reflection : Is = ks cosa Ls = ks(r  v)aLs halfway vector h : 빠른 계산을 위해서… (r  v)a  (n  h) 이 되도록,  값을 조절 approximation 이지만, 오차가 별로 크기 않음 계산 속도는 빨라짐  

Transmitted Light 굴절(refraction) 시에 사용 유리, 물의 표현에 필수적 Snell’s law : 빛의 굴절 법칙 l, t : index of refraction (굴절률) l t

6.5 Polygonal Shading

Polygon Shading polygonal object 를 shading 하는 방법 계산량의 증가에 따라, flat shading Gouraud shading Phong shading 부드러운 물체도 polygonal mesh 로 표현

Flat Shading = constant shading 가정 1: flat polygon n = constant 가정 2: distant viewer v = constant 가정 3: distant light l = constant, r = constant 결론적으로, 같은 polygon 내에서는 같은 shading 결과 사용 가능

Flat Shading shading 값 계산 시는 Phong model 사용 in OpenGL glShadeModel(GL_FLAT); 문제점: Mach band effect polygon 경계에서 계단 효과

Gouraud Shading = interpolative shading Mach band effect 를 줄이는 방법? vertex normal은 인접한 face들의 normal들을 평균해서 계산 face 내는 vertex 에서의 shading 결과를 bi-linear interpolation n1 n4 bi-linear interpolation n2 n3

Gouraud Shading in OpenGL glShadeModel(GL_SMOOTH); 문제점 vertex normal 을 계산하기 위한 data structure 필요 주로, linked list 구조

Phong Shading Gouraud shading 의 문제점 vertex 에서의 shading 결과를 interpolate highlight 계산 불가능 Phong shading : normal vector를 interpolate shading 결과는 각 pixel에서 다시 계산 계산 속도는 당연히 느려짐 bi-linear interpolation Nv normal vector만 있으면, Phong model 로 pixel 값 계산 가능 NA NB

Rendering Options 일반적인 graphics package 에서는 선택 사항 quality vs. speed 의 trade-off wireframe edge 만 표시 flat-shading face 전체를 같은 색으로 Gouraud shading Phong shading mixed shading non-specular object : Gouraud shading specular object : Phong shading

Wire-frame

Ambient Illumination Only

Flat-Shading

Gouraud Shading

Phong Shading

6.6 Approximation of a Sphere

Unit Sphere implicit equation  polygonal approximation f(x, y, z) = x2 + y2 + z2 – 1 = 0 recursion 으로 구현 시작: tetrahedron 각 face를 subdivision

Unit Sphere pseudo code c ac bc a b ab void triangle(vertex a, vertex b, vertex c, int level) { if (level >= limit) { draw_triangle(a, b, c); return; } vertex ab = normalize( (a + b) / 2 ); vertex bc = normalize( (b + c) / 2 ); vertex ac = normalize( (a + c) / 2 ); triangle(a, ab, ac); triangle(ab, b, bc); triangle(c, ac, bc); triangle(ab, bc, ac); c ac bc a b ab

6.7 Light Sources in OpenGL

Light Sources in OpenGL Phong shading model at most 8 light sources GL_LIGHT0, …, GL_LIGHT7 glEnable(GL_LIGHTING); // light source 사용 glEnable(GL_LIGHT0); // light source #0 on

Light Sources in OpenGL void glLightf(GLenum light, GLenum name, GLfloat value); void glLightfv(GLenum light, GLenum name, GLfloat* values); light source position (or direction) glLightfv(GL_LIGHT0, GL_POSITION, light0_pos); point light source, spotlight : position GLfloat light0_pos[ ] = { 1.0, 2.0, 3.0, 1.0 }; distant light source : direction vector GLfloat light0_pos[ ] = { 1.0, 2.0, 3.0, 0.0 };

Light Sources in OpenGL the amount of ambient, diffuse, specular light GLfloat ambient_0[ ] = {1.0, 0.0, 0.0, 1.0}; // RGBA rep. glLightfv(GL_LIGHT0, GL_AMBIENT, ambient_0); glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse_0); glLightfv(GL_LIGHT0, GL_SPECULAR, specular_0); global ambient light (if necessary) glLightModelfv(GL_LIGHT_MODEL_AMBIENT, global_ambient);

Light Sources in OpenGL distance attenuation model glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, a); glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, b); glLightf(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, c);

Light Sources in OpenGL spot light glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 30.0F); glLightf(GL_LIGHT0, GL_SPOT_EXPONENT, e); glLightfv(GL_LIGHT0, GL_SPOT_DIRECTOIN, vector);  –   cose 

Light Sources in OpenGL viewer location default: infinite position (방향은 COP 방향) COP 에서 보는 것으로 설정 가능 큰 차이는 없지만, shading 계산시의 v 값 변화 glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, GL_TRUE); two-side shading back face도 shading 시킬 때 glLightModeli(GL_LIGHT_MODEL_TWO_SIDED, GL_TRUE);

6.8 Specification of Materials in OpenGL

Materials in OpenGL material functions 이후의 모든 face 가 정해진 값을 사용 void glMaterialf(GLenum face, GLenum name, GLfloat value); 이후의 모든 face 가 정해진 값을 사용 face = GL_FRONT, GL_BACK, GL_FRONT_AND_BACK GLfloat ambient[ ] = {0.2, 0.2, 0.2, 1.0} glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, ambient); glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse); glMaterialfv(GL_BACK, GL_SPECULAR, specular);

Materials in OpenGL shininess self-emission surface 자체가 빛을 내는 경우 glMaterialf(GL_BACK, GL_SHINESS, 100.0); self-emission surface 자체가 빛을 내는 경우 GLfloat emission[ ] = {0.0, 0.3, 0.3, 1.0}; glMaterialf(GL_FRONT_AND_BACK, GL_EMISSION, emission);

Materials in OpenGL color tracking set the materials parameters by tracking the colors set by glColor*( ) glEnable(GL_COLOR_MATERIAL); glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE); glColor4fv(color); 자동 설정 glMaterialfv(GL_FRONT, GL_AMBIENT, color); glMaterialfv(GL_FRONT, GL_DIFFUSE, color);

6.9 Shading of the Sphere Model

Unit Sphere Shading 2가지 shading model 선택 가능 flat shading glShadeModel(GL_FLAT); Gouraud shading glShadeModel(GL_SMOOTH); 자세한 코드는 교재 참고 sphere.c

6.10 Global Rendering

Local and Global Illumination local illumination : Phong shading model 그림자, 반사광 등의 처리가 힘들다 global illumination Ray Tracing : specular, 굴절, 그림자 처리 능력 Radiosity : diffuse 처리가 완벽 global illumination local illumination

Ray Tracing forward ray tracing : 실세계 광원  물체  카메라 backward ray tracing 계산량을 줄이려면, 역추적 카메라  픽셀  물체  광원

Ray Tracing 실제 ray를 trace 하는 효과가 있으므로, 다양한 기능 A. Glassner, An Introduction to Ray Tracing, Academic Press, (1989). 실제 ray를 trace 하는 효과가 있으므로, 다양한 기능 shadow rays 그림자 처리 가능 mirror effect 거울 처리 가능 refraction & reflection 투명한 물체 처리 가능

Ray Tracing screen 상의 pixel 을 지나가는 ray 를 하나씩 발사 construct a binary ray-tracing tree left branch : reflected ray path right branch : transmitted ray path limit depth 까지 계속 추적 tree를 역추적하면서, 최종 pixel 값 계산

Ray Tracing 결과

Radiosity C. Goral, et al., “Modelling the Interaction of Light Between Diffuse Surfaces”, SIGGRAPH’84, 212–222, (1984). Basic idea thermal-engineering models for the emission and reflection of radiation conservation of light energy in a closed environment 주로 실내 환경에서만 적용 energy equilibrium

Radiosity real diffuse effect ? 모든 surface 들 간의 light interaction으로 modeling 모든 surface 들 끼리 서로 반사광을 주고 받음 patch : 계산의 기본 단위 모든 surface들을 작은 patch 로 분할 각 patch 마다 diffuse term을 따로 계산 form factor : pacth 1개에서 다른 patch 로 가는 energy

Radiosity form factors

Radiosity energy equilibrium equation radiosity Bj : the rate of energy leaving the surface j emission Ej : the rate of energy emitted from surface j reflectivity j : the fraction of the light incident on a surface j which is reflected back into the environment form-fraction Fij : the fraction of energy leaving the surface i and landing on surface j

Radiosity 결과

Global Illumination ray tracing : specular effect 에 최적 radiosity : diffuse effect 에 최적 hybrid approach : 2개 모두 적용 문제점 ? 수행 시간! video card level에서 구현 불가능 보통 몇 시간 정도의 처리 시간 필요 구현 자체도 상당히 까다로움