Chapter 10. Illumination Models and Surface-Rendering Methods 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Illumination Models and Surface-Rendering Methods illumination model (lighting model 혹은 shading model): visible surface에 빛의 효과를 줌 물체 표면 위의 한 점을 볼 수 있게 하는 빛의 intensity 계산에 이용된다. surface-rendering algorithm illumination model로부터 intensity 계산을 하여 모든 surface의 투영된 픽셀위치를 위한 light intensity를 결정 illumination model(light model): a single surface의 light intensity를 계산하기 위한 모델을 의미 surface rendering: light model을 모든 surface positions에 적용하여 pixel intensity를 구하는 프로시듀어를 의미 Photorealism in computer graphics을 위해 accurate representations of objects good physical descriptions of lighting effects light effects: light reflections, transparency, surface texture, shadows 등 포함 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Illumination model에 영향을 미치는 요인 object type (opaque materials, transparency, shiny or dull surfaces, surface-texture patterns) object position relative to light source and other objects light-source conditions (shapes, colors, positions 에 따라 다름) viewing plane의 위치와 방향 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods Light Sources total reflected light는 light source 로부터의 빛과 다른 반사하는 surfaces로부터의 빛의 합으로 나타냄 a luminous object a source of illumination for a scene light source와 light reflector point light source source position으로부터 광선이 방사선의 경로를 따름. 위치와 색을 주어 하나의 점 광원을 정의 Infinitely distant light sources 태양의 경우와 같이 장면으로부터 멀리 떨어진 경우 point light source와 비슷하나 방향에 따른 효과의 차이가 거의 없다. 먼 거리 light source 의 경우엔 한 방향으로만 비춘다. 하나의 color value 와 광선의 고정 방향을 지정하여 이 light source 를 정의 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods Radial Intensity Attenuation Light source로부터 방사된 에너지는 source로부터의 거리 dl 의 경우 1/dl2 만큼 약화됨 실제적으로는 point source의 감쇠인자(attenuation factor)가 항상 사실적인 그림을 생성하는 것은 아님 Light source에 가까이 있는 물체에 대해선 많은 intensity variation 이 있는 반면, 멀리 있는 물체의 경우엔 변화가 거의 없다. 보다 사실적인 디스플레이를 위해 dl의 inverse quadratic function 으로 light intensity 를 약화시킴 1 fradatten(dl) = a0 + a1dl + a2dl2 a0, a1, a2 를 변화시켜 다양한 효과를 냄 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods Point source 가 무한의 위치에 있을 경우에는 앞의 식을 적용 못함 이 경우엔 장면 내 모든 점들이 거의 동일한 거리에 있게 됨 Remote and local light sources 를 다 적용하기 위한 intensity attenuation function: 1.0 if source is at infinity Fl,radatten = 1 if source is local a0 + a1dl + a2dl2 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods Directional light sources and spotlight effects Light source 의 방향 제한 바깥에 있는 물체는 조명을 제외시킴 Directional light source 정의: position, color 외에 vector direction and angular limit 로 정의 vlight Light direction vector l Light source Figure 10-3 directional point light source 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods vlight: light-source direction의 unit vector vobj: light position부터 object position 방향의 unit vector vlight • vobj = cos : light direction vector부터의 물체까지의 angular distance light cone 각도의 범위를 0 < l <= 90 로 제한하면 cos >= cosl 면 object 가 spotlight 내에 있고 vlight • vobj < cosl 면 물체는 light cone 바깥에 있다. 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods To object vertex Cone axis vector l Light source Figure 10-4 An object illuminated by a directional point light source 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods Angular intensity attenuation 각도에 의한 intensity attenuation Cone axis 를 따라 가장 강한 intensity 를 주고 각도가 커질수록 intensity 를 약화시킴 f angatten() = cosal 0 <= <= al : attenuation exponent, some positive value 1.0 if source: not spotlight f angatten = 0.0 if vobj • vlight = cos < cos l (object is outside the spotlight cone) (vobj • vlight) al, otherwise 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Surface Lighting Effects 빛이 불투명한 표면에 입사(투사)하면 일부는 반사하고 일부는 흡수된다. 표면에서 반사하는 입사광선의 양은 물질의 타입에 따라 다르다. diffuse reflection 거친 surface 경우엔 반사된 빛이 모든 방향으로 흩어져서 surface는 모든 시선에 대해 균등하게 밝게 나타난다. 물체의 color는 입사광선의 diffuse reflection의 color를 말한다. specular reflection highlight or bright spot 생성 shiny surface에서 나타남 background or ambient light light source에 직접 드러나지 않더라도 조명을 받은 가까운 물체로부터 반사된 light 때문에 눈에 보임 (background lighting effect) 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Basic Illumination Models light는 surface의 광학적 성질(glossy, matte, opaque, transparent 등), 배경 빛의 조건, light source의 종류(point source를 기본으로 함, a coordinate position과 intensity value로 나타냄)를 기본으로 계산된다. ambient light (background light) light source에 직접 드러나지 않는 surface의 경우 가까이에 있는 물체가 빛을 발하면 visible하다. 여러 surface들의 light reflection을 결합하여 계산 각 물체의 ambient light는 모든 surface의 모든 방향에 대해 일정하다: Ia로 나타냄. viewing direction이나 표면의 방향과 무관하지만, 각 면에 대해서 반사되는 빛의 intensity는 표면의 광학적 성질에 따라 다르다. 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods Diffuse reflection ambient-light reflection은 global diffuse lighting 효과에 접근하는데 비해, diffuse reflection은 viewing direction에 무관하게 각 면에 대해 일정하다. 입사광선 중에서 확산하여 반사되는 부분적인 양은 각 면에 대해 parameter Kd (diffuse reflection coefficient 혹은 diffuse reflectivity)로 설정됨 Kd는 면이 가지는 반사 성질에 따라 다른 0 - 1사이의 상수임. highly reflected surface이면 Kd가 1에 가까움 - reflected light의 intensity가 입사광에 가까운 밝은 면을 나타냄 입사광선을 대부분 흡수하는 surface의 경우에는 Kd가 0에 가까운 값으로 함 실질적으로는 Kd는 surface color의 함수이나, 여기에서는 Kd를 하나의 상수로 가정한다. surface가 ambient light만 받을 경우에는 surface의 각 point에서의 diffuse reflection intensity는 Iambdiff = KdIa 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods ambient light는 각 면에 대해 편평하고 재미없는 빛을 제공하므로, ambient light 만으로 rendering 되지는 않으며 적어도 viewing position에서의 point source로서 하나의 light source가 포함된다. 표면으로부터의 diffuse reflection은 viewing direction에 관계없이 모든 방향으로 같은 intensity로 확산된다. 이러한 표면을 ideal diffuse reflector 혹은 Lambertian reflector라고 함, 표면의 한 점으로부터 방사되는 빛의 에너지가 Lambert의 cosine 법칙을 따르므로. Lambert's cosine law: surface normal 에 대한 φN의 방향에서의 어떠한 작은 surface area 인 dA 에 대해서도 방사되는 에너지의 양은 cosφN 에 비례한다. light intensity는 모든 시선에 대해 같은 값을 갖는다. Radiant energy per unit time 을 radiation direction 의 projection area로 나눈 값으로 나타냄 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods Lambert’s cosine law Radiant energy per unit time Intensity = Projected area cosφN = constant dA cosφN 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 완전한 diffuse reflector로부터 모든 방향으로 확산되는 빛이라도 표면의 밝기는 light source에 대한 면의 방향에 따라 다르다. surface normal과 light source의 방향사이의 각도가 클수록 입사광선이 표면 위에 떨어지는 양이 적다. surface 의 밝기는 light source에 대한 surface의 방향에 따라 다르다 - cosθ 에 비례 Radiant energy per unit time Intensity = Projected area cosφN dA cosφN = constant 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods surface위의 한 point에서의 diffuse reflection equation은 Il,diff = Kd Il cosθ Il: point light source의 intensity 입사각이 0°에서 90°사이에서는 point source에 의해 조명된다. cosθ 가 음수이면 light source는 면의 뒤에 존재하는 것이다. N: surface unit normal vector L: surface 의 한 position에서 point light source로의 unit direction vector이면 cosθ = N · L이므로 single-point source illumination의 diffuse reflection 식은 Il,diff = Kd Il (N · L) point-source illumination의 reflection은 shearing and perspective projection이 적용되기 전에 world coordinates 혹은 viewing coordinates에서 계산된다. 이들 변환이 normal vector의 방향을 바꿀 수 있기 때문에. 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods ambient와 point source intensity를 결합하여 전체 diffuse reflection을 계산 ambient-reflection coefficient Ka를 이용하여 ambient-light intensity Ia값을 수정한다. Idiff = Ka Ia + Kd Il (N · L) Ka와 Kd는 면의 재질에 따라 다르며, 0-1 사이의 값을 가짐 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Specular reflection and the Phong Model high light or bright spot 표시 집중적으로 한 지역에 입사광선이 반사각 주위로 반사하는 경우에 발생 거울반사각(specular reflection angle) 은 입사광선의 각도와 같음 N: unit normal surface R: ideal specular reflection 방향의 unit vector V: surface position에서 viewer를 향하는 unit vector perfect mirror의 경우엔 입사광선이 specular-reflection 방향으로만 반사되며 이 경우에는 V와 R이 일치할 때 반사광선을 보게 됨 ideal reflector 이외의 경우에는 R주위로 한정된 범위의 specular reflection을 나타냄 specular-reflection coefficient: W(θ) specular reflection의 intensity는 surface 의 재질과 입사각도에 따라 다르다. W(θ)로 단색의 specular intensity variation을 나타냄. θ=90도에서 W(θ)=1이고 모든 입사광선이 반사된다. 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods Phong model: specular reflection의 intensity를 cosnsφ 에 비례하도록 함 φ는 0도-90도 사이의 값 ns: specular-reflection parameter로 surface type에 따라 결정됨 광택이 있는 표면은 100이상의 값으로 하고 둔탁한 표면의 경우엔 작은 값 (1까지) 이용 specular reflection의 intensity는 surface material의 성질과 입사각에 따라 다르다. Phong specular model Ispec = W(θ ) Il cosnsφ W(θ): specular-reflection coefficient, 재질, 입사각 등의 영향을 받음. W(θ)는 material에 따라 0도에서 90도의 범위에서 변화하며 90도이면 W(θ )가 1이 됨 입사각이 증가하면 W( θ)도 증가한다. Il: light source의 intensity φ : specular-reflection 방향인 R에 대한 viewing angle 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 투명한 물질(glass)은 θ가 90도에 접근할 때 specular reflection이 나타남. θ가 0이면 glass surface 입사광선의 4%만 반사됨. 대부분의 범위에서 반사된 intensity는 입사된 intensity의 10%이하이다. 불투명한 물체의 경우에 specular-reflection은 모든 입사각에 대해 거의 constant하고 이값을 Ks로 함. W(θ)대신 Ks 사용. Ks 는 0과 1사이의 상수이며 V, R은 viewing and specular-reflection 방향의 단위벡터이므로 cosΦ 는 dot ptoduct V · R로 구해진다. Ispec = Ks Il (V · R)ns Phong model을 간단히 하면 L과 V의 중간 벡터인 H를 이용하여 Phong model V·R을 N · H로 바꿈 L + V H = | L + V | 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Combined Diffuse and Specular Reflection with Multiple Light Source a single point light source의 경우 surface내 한 점의 intensity는 I = Idiff + Ispec = KaIa + Kd Il (N• L) + KsIl(N •H) ns multiple light sources n I = Iambdiff + [Il,diff + Il, spec] l=1 = kaIa + Il[Kd(N• L) + KsIl(N •H)] 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods Color considerations diffuse reflection coefficient vector는 (KdR, KdG, KdB) component를 가짐 blue surface인 물체의 경우 I = KaB IaB + f(di)IlBi[KdB(N ∙ Li) + KsB(N ∙ Hi)ns ] f(di): radial attenuation function n i 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods Transparency transparent surface: reflected and transmitted light 생성 intensity 식은 surface를 통과하는 빛에 대한 계산이 포함되어야 한다. 통과된 빛은 surface의 뒤에서 물체를 반사하여 생성된다 사실적인 투영 효과를 위해 빛의 굴절 이용하여 모델링 빛이 투명한 surface에 입사하면 일부분은 반사되고 일부분은 굴절된다. 굴절각은 surface 를 구성하는 물질의 굴절율과 입사각의 방향에 의한 함수로 나타낼 수 있다 (책 참고). i sinr = sini : Snell’s Law r 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods Fig. 10-30 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 굴절 방향 θr로의 unit transmission vector T는 Snell’s law 및 (그림 10-30)으로 부터 N: unit surface normal L: light source의 unit vector 계산을 단순화하여 보통 굴절율의 변화를 없애서 굴절각과 입사각이 항상 같도록 처리하여 속도를 향상시킴 transparent object를 통한 background object의 intensity는 I = (1-Kt) Irefl + Kt Itrans Kt: transparency coefficient 0과 1사이, background light가 얼마만큼 통과했는지를 나타냄 (1-Kt): opacity factor i i T = ( cosi - cosr ) N - L r r 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods Shadows hidden-surface method를 이용하여 광원으로부터 보이지 않는 면을 알아낼 수 있으며 이러한 면들이 shadow area가 됨 모든 광원으로부터의 shadow area가 결정되면 surface pattern으로 처리됨 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Displaying Light Intensities illumination model에 의해 계산된 intensity value는 특정 그래픽스 시스템이 허용하는 intensity level로 바꾸어주어야 함 모니터의 intensity는 equal intensity interval을 갖도록 0과 1사이에서 고르게 분포되어 있다. 같은 간격으로 밝기의 차이를 인지할 수 있도록 하기 위해서는 연속된 두 intensity의 비율이 일정해야 한다. = = ... = = r Ik = rk I0 r = 1/n 이므로 Ik = I0(n-k)/n I1 I2 In I0 I1 In-1 1 I0 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods color system의 경우엔 intensity level을 각 RGB component에 대해 적용시킨다. 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods Gamma Correction intensity value는 linear 값을 갖는 반면 모니터는 nonlinear이기 때문에 electron gun의 전압을 linear pixel value에 비례하도록 조정하는 일이 필요. -> video lookup table이용 I = aVγ I: Intensity V: Input voltage a, γ : 모니터의 특성에 따라 다르게 주어짐 1/γ V = -> intensity value I 로 디스플레이 하기 위해서는 voltage value 값을 구함 -> gamma correction 이라고 함 모니터의 gamma 값은 보통 1.7 – 2.3의 범위에 있다. - NTSC (National Television System Committee) signal standard : γ = 2.2 I a 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Haftone patterns and dithering techniques output device의 intensity range가 한정되어 있는 경우 복수 개 픽셀 위치를 결합하여 각 intensity value를 display하도록 해서 이용 가능한 intensity 수를 증가시킬 수 있음 여러 개 pixel positions으로 구성된 작은 지역을 볼 때, 우리의 눈은 전체 intensity를 합치거나 평균내는 경향이 있다. halftoning이라는 프린팅 처리를 이용하여 신문, 잡지, 책 등에서 continuous-tone photographs를 재생산 흑백 사진에서는 각 intensity area가 흰색 배경에 검정색 원들로 구성하는데, 각 원의 직경은 그 intensity region에 필요한 어두운 정도에 비례한다. 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Halftone approximations 컴퓨터 그래픽스에서는 halftone reproduction을 위해 halftone patterns 혹은 pixel patterns라고 부르는 사각형 픽셀 영역을 이용한다. intensity level의 수는 사각형 그리드에 얼마나 많은 픽셀을 포함시키나, 한 시스템이 얼마나 많은 level을 display 가능한가에 달려있다. bilevel system의 각 그리드가 n X n 픽셀을 이용하면 n2 + 1의 intensity levels을 표현할 수 있다 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Figure 10-39 2 x 2 pixel grid patterns To display 5 intensity levels on a bilevel system 0.0<= I <0.2 0.2<= I < 0.4 0.4<= I < 0.6 0.6<= I < 0.8 0.8<= I < 1.0 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods Dithering Techniques dithering 의미 pixel-grid pattern에서와 같이 해상도를 줄이지 않고 halftone을 재생산하는 기술을 말하기도 하고, pixel grids를 이용한 halftone-approximation 혹은 color halftone approximation을 의미하기도 함 경계선을 없애기 위해 pixel intensity에 추가되는 random value는 dither noise라고 부름 Ordered-dither methods 장면내 각 포인트를 display pixels로의 1대1 mapping 으로 intensity variations 생성 n2 intensity levels을 얻기 위해, 0 ~ (n2-1) 의 정수 값을 가지는 n by n dither matrix Dn 설정 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 예를 들어 four intensity level은 nine intensity level bilevel system에서는 input intensity와 matrix element를 비교하여 display intensity value를 결정 각 input intensity가 0 <= I <= n2으로 스케일됨 I > Dn(i, j)이면 (x, y) position 값으로 됨, 아니면 무시됨. i = (x mod n) + 1, j = (y mod n) + 1 1 0 2 2 6 0 1 3 8 5 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Polygon-rendering methods 보통 scanline algorithm을 이용한 polygon surface rendering 각 polygon이 a single intensity값을 갖거나 interpolation 방법을 이용하여 각 점에서의 intensity를 구함 Constant intensity shading flat shading 각 polygon에 대해 single intensity를 준다. 즉 polygon 내 모든 점들은 같은 intensity로 디스플레이된다. flat shading 의 조건 polyhedron으로 구성된 물체로 곡면으로 되어 있지 않은 경우 광원이 충분히 먼 거리에 있는 경우 viewing position이 먼 거리에 있는 경우 위 조건이 아니더라도 작은 폴리곤 면을 이용하여 폴리곤 중앙에서 intensity를 계산한 flat shading으로 surface-lighting 효과를 잘 낼 수 있다. 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods Gouraud Shading intensity-interpolation scheme: surface전체의 intensity values를 linear interpolation에 의해 구함 각 polygon의 intensity value를 common edge를 따라 이웃하고 있는 polygon과의 intensity value와 일치시킴 Gouraud Shading 계산방법 1) 각 polygon vertex에서 average unit normal vector를 구함 Nv = n Nk k=1 n Nk k=1 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 2) vertex normal로부터 lighting model을 이용하여 vertex의 intensity를 구함 3) polygon edge를 따라 intensity를 interpolation: 각 scan line에 대해 scan line과 polygon edge간의 intersection에서의 intensity는 edge의 끝점에서의 intensity들을 보간하여 얻어짐 y4 - y2 y1 - y4 I4 = I1 + I2 y1 - y2 y1 - y2 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 4) 한 scan line의 양끝 경계점의 intensity를 구한 뒤에는 내부 포인트의 intensity는 양끝점(포인트4와 5)의 intensity로부터 보간된다. 5) scan line 간의 연속적인 edge의 intensity value를 구하거나 한 scan line을 따라 연속적인 intensity를 구하기 위해서는 incremental calculation을 이용 - edge position (x, y) 은 다음과 같이 보간된다. x5 - xp xp - x4 Ip = I4 + I5 x5 - x4 x5 - y4 y - y2 y1 - y I = I1 + I2 y1 - y2 y1 - y2 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 다음 scan line인 y-1 에서의 intensity는 다음과 같이 계산된다. I2 - I1 I = I1 + y1 - y2 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 3 1 p 4 5 2 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods Phong shading normal vector interpolation shading: normal vector를 interpolation한 후에 illumination model에 적용한 후에 각 surface point의 intensity를 구함 more accurate and more realistic highlights on a surface Phong shading방법 1) 각 polygon vertex에 대해 average unit normal vector를 구함 2) polygon surface에 전체에 걸쳐 vertex normal을 interpolation함 3) scanline을 따라 illumination model로 pixel intensity를 계산함 y - y2 y1 - y N = N1 + N2 y1 - y2 y1 - y2 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods Ray-Tracing Methods ray casting의 개념을 확장하여 각 픽셀에 대해 visible surface만 찾는 것이 아니고 광선이 여러 방향으로 진행하면서 영향을 미치는 intensity도 처리 global reflection and transmission 효과를 얻기 위한 간단하고 강력한 렌더링 기술이며, visible surface detection, shadow effects, transparency, multiple light source illumination 제공 Basic Ray-tracing algorithm 각 픽셀 광선에 대해 물체의 각 surface가 교차하는지를 테스트 교차된 면이 있으면 픽셀로부터 교차점과의 거리를 구한다. 최소거리를 갖는 면을 visible surface로 정한다. visible surface에 대해 반사 광선을 처리한 뒤에 투명한 면일 경우에 광선을 굴절시켜 보낸다. -> 반사광선과 굴절광선을 secondary rays라고 함 secondary rays에 대해 위의 프로시듀어를 반복한다. 물체와의 intersection test를 하고 secondary ray path상의 가장 가까운 surface가 다음 번의 반사 및 굴절 경로를 만드는데 이용된다. 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 픽셀로부터의 광선과 만나는 surface들을 차례로 ray-tracing tree 에 첨가시켜 나간다. left branch 는 reflection path를 나타내고 right branch는 transmission path를 나타냄 ray-tracing tree의 maximum depth는 유저 옵션이나 이용가능한 storage 양으로 정해짐 각 픽셀의 intensity는 ray-tracing tree의 terminal node로부터 출발하여 관련된 모든 intensity를 더하여 구해짐 각 노드의 surface intensity는 parent surface의 거리에 따라 약화되어 parent surface의 intensity에 더해진다. pixel intensity는 root node에서 약화된 intensity들의 합으로 된다. 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Ray-Surface Intersection Calculations initial position P0와 unit vector u 로 나타냄. 광선상의 한 점 P의 좌표치는 다음의 ray equation으로부터 구해짐 P = P0 + s u s: P0로부터의 거리 P0는 projection plane상의 한 픽셀의 위치로 초기화되거나, projection reference point로 설정됨 Unit vector u 는 광선이 통과하는 픽셀 위치와 projection reference point로부터 구해진다. u ray path p0 Ppix - Pprp u = Ppix - Pprp 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 각 교차된 면에서 ray-surface intersection point에서 2차 광선을 위해 P0와 u가 업데이트된다. 2차 광선에 대해 u의 반사 방향은 R이고 통과 방향은 T이다. Ray-Sphere Intersections Ray tracing 물체 중 가장 간단한 것은 구(sphere) 반경 r이고, 중심이 Pc인 구의 경우에 표면상의 점 P는 다음의 구 방정식을 만족해야 함. |P - Pc|2 - r2 = 0 위의 광선의 식으로 치환하면 |P0 + su - Pc|2 - r2 = 0 △P = Pc - P0 이라고 하면 다음의 방정식을 얻는다. s2 - 2(u•△P)s + (|△P|2 - r2) = 0 이 방정식의 해는 다음과 같다: s = u•△P ± (u•△P)2 - |△P|2 + r2 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Figure 10-60 Ray-Sphere Intersection Pc x z 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods polyhedra의 경우는 surface intersection을 찾는데 더 많은 처리 시간을 요구하므로 초기 교차점 계산은 bounding volume 에서 함 polyhedra가 구로 둘러싸여 있을 때 광선이 구를 교차하지 않으면 그 polyhedra에 대해 더 이상의 교차 테스트를 하지 않는다. 광선이 구를 교차하면 다음의 식으로 front faces를 찾는다. u N < 0 위 식을 만족시키는 polyhedra에 대해 다음의 평면 방정식을 푼다. N P = -D 여기에서, N = (A, B, C)이고 D는 다른 하나의 파라미터임 P는 그 평면과 광선에 동시에 있어야 하므로 N (P0 + su) = -D 처음의 광선의 위치로부터 평면까지의 거리는: D + N P0 S = - N u 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods Reducing Object-Intersection Calculations ray-surface intersection 계산은 ray tracer의 95% 정도의 시간을 쓴다. 이러한 계산 시간을 줄이기 위해 인접하고 있는 물체의 집합을 하나의 bounding volume(구 혹은 육면체)로 묶어서 ray intersection을 bounding volume과 처리 이것을 확장시켜서 bounding volume들의 계층구조를 정의해서 계층적으로 교차 테스트를 실시함. 처음에는 가장 바깥의 bounding volume으로 하고, 필요하면 안쪽의 bounding volume으로 진행해 감 N2 Pin N1 Pout Pixel ray N3 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Space-Subdivision Methods Intersection 계산을 줄이기 위한 다른 방법으로 한 장면을 하나의 정육면체(cube)로 둘러싼 뒤에 계속하여 cube를 분할하여 각 셀이 미리 정한 면의 수 이상 포함하지 않도록 한다. 예를 들어 한 셀이 1개 이상의 surface 를 포함하지 않도록 한다. Cube의 space division은 octree혹은 binary-partition tree에 저장된다. 광선추적을 cube의 각 셀에 대해 수행하여, 면들을 포함하는 셀에서만 intersection test를 한다. Cube의 앞면에서의 교차점을 계산하고 나서 cell boundary positions에 대한 교차점의 좌표치를 첵크하여 첫 번째 cell intersection을 정한다. 다음 과정으로는 광선을 진행시켜서 각 셀에 대해서 entry 와 exit 위치를 구해나간다 N2 Pin N1 Pout N3 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods ray direction이 u 이고 ray entry position이 Pin일 때, exit face는 다음에 의해 결정된다. u Nk > 0 각 셀의 면들의 normal vector가 좌표축과 동일하다면 (±1, 0, 0) Nk = (0, ±1, 0) (0, 0, ±1) 세 개 candidate exit planes을 결정하는 u 의 각 성분의 부호를 첵크할 필요가 있다. 각 candidate plane상의 exit position은 다음의 광선 식으로부터 얻어진다. Pout,k = Pin + sk u sk는 광선을 따라 Pin으로부터 Pout,k에 이르는 거리 N2 Pin N1 Pout N3 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 이 광선의 식을 각 셀의 면을 위한 평면 방정식으로 치환하면 Nk Pout,k = -Dk 각 candidate exit face와 광선과의 거리는 -Dk + Nk Pin Sk = Nk u 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Antialiased Ray Tracing ray-tracing algorithm에서 antialiasing을 위한 두 기술: supersampling과 adaptive sampling 픽셀은 single point가 아니라 a finite square area 로 처리됨 supersampling: 각 픽셀 영역에 복수개의 등간격의 광선들을 이용 adaptive sampling: 픽셀 영역의 어떤 부분에서 같은 간격이 아닌 광선들을 이용, 예를 들어 물체의 선분 가까이에서는 더 많은 광선을 이용하여 픽셀의 intensity를 좋게 함 픽셀당 복수개 광선을 이용할 경우에는 픽셀 광선의 intensity는 평균하여 얻어짐 Projection reference point 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Distributed Ray Tracing 광선을 illumination model의 여러 파라미터에 따라 랜덤하게 분산시키는 stochastic sampling method. illumination parameter에는 픽셀 영역, 반사 및 굴절 방향, 카메라 렌즈 영역, 시간 등이 포함됨. 픽셀 영역에 걸쳐 여러 광선을 랜덤하게 분산시켜서 픽셀 샘플링을 수행함 광선 위치는 랜덤하게 선택되며 픽셀 영역의 작은 부분에 광선이 모이도록 하고, 픽셀의 많은 부분은 샘플링되지 않도록 한다. 한 픽셀 영역에서 광선 분산을 위한 보다 좋은 방법은 등간격 서브펙셀 그리드에서 지터링(jittering) 을 이용 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Radiosity Lighting Model 방사에너지가 조명을 받은 장면 내로 전달된다는 물리적 법칙을 고려 빛의 양자 모델에서 방사에너지는 각 양자에 의해 전달되며, monochromatic light radiation 에너지는 다음으로 계산됨 E phonton,f = hf f: frequency (herz), light 색으로 결정됨 h: Planck’s constant 단위시간당 전달되는 방사에너지 양(radiant flux or radiant power) 는 dE = dt 면에 대한 lighting effect 단위 영역당 면을 떠나는 방사에너지로 계산 Radiosity d B = dA 단위: watts (joules per sec) 단위: watts per meter2 Intensity 값으로 나타내기도 함 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods Environment Mapping 전체 라이트를 모델링하는 다른 방법으로 단일 물체 혹은 여러 물체를 둘러싸는 환경을 기술하는 intensity values 배열을 정의 Environmental array 를 뷰잉 방향의 물체에 매핑하는 방법 Environmental mapping 혹은 reflection mapping 이라고 함 물체를 둘러싸는 공간 영역의 면들에 환경 맵을 정의 환경맵의 정보로는 광선의 intensity values, 하늘, 배경 물체 등이 포함된다. Spherical Environment Map 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods Texture Mapping 기하모델에 텍스처 패턴을 매핑시킴 텍스처패턴이란 컬러값의 배열 혹은 물체의 색을 수정하기 위한 프로시듀어로 정의 텍스처는 1차원, 2차원, 3차원 패턴이 있음 텍스처함수에 의해 패턴 내 각 위치에 대해 컬러 구성요소의 수를 주게 됨 4 RGBA, 3 RGB, 하나의 intensity value, color table index 등으로 주어짐 Linear Texture Patterns 1차원 텍스처패턴으로 컬러값을 1차원 배열로 나타냄 텍스처 공간이 하나의 s-coordinate 값으로 참조됨 RGB 컬러에서 s=0.0 은 배열내 첫번째 RGB 컬러 s=1.0은 배열내 마지막 RGB컬러를 나타냄 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Surface Texture Patterns 사각형 텍스처 패턴으로 정의되고 텍스처공간의 각 위치는 2차원 (s, t) coordinate values 로 참조됨 텍스처 패턴의 각 컬러값은 배열의 3개 첨자로 저장됨. RGB 컬러로. s, t 각각이 0.0 에서 1.0 까지 값을 가짐 텍스처 패턴의 네 개 코너의 (s, t) 텍스처 공간의 좌표치가 장면내 4개 공간 위치에 할당되고, 선형 변환에 의해 컬러값들이 투영된 픽셀 위치로 매핑된다. Texture-surface transformation u = u(s, t) = aus + but + cu v = v(s, t) = avs + bvt + cv Object-to-Image space transformation Viewing and projection transformation 으로 이루어짐 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Figure 10-104 Coordinate reference systems Texture Space (s, t) Coordinates Object Space (u, v) Surface Parameters Image Space (x, y) Pixel Coordinates Texture-Surface Transformation Viewing and Projection Transformation 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Volume Texture Patterns 3차원 공간의 각 위치에 컬러를 지정: volume texture patterns 혹은 solid textures 라고 함 3차원 texture-space coordinates (s, t, r) 로 참조 Unit cube 내에 정의하고 texture coordinates 범위는 0 ~ 1.0 A volume texture pattern: four-subscript array 로 저장 Row, column, depth 특정 컬러 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Texture reduction patterns 애니메이션 등 응용에서는 물체의 크기가 변화할 때 texture pattern 으로 디스플레이 시킨 물체의 texture mapping 차원이 변경되어야 함 즉, textured object 가 축소될 때는 texture pattern 이 작은 지역으로 적용되어 texture distortion 이 발생함 물체의 디스플레이된 크기가 작아질 때 texture reduction pattern을 사용 Reduction pattern은 바로 전 pattern의 ½ 크기로 축소됨. 예를 들어 2차원 16x16 pattern 의 경우에는 reduced size가 8x8, 4x4, 2x2, 1x1 의 추가 패턴을 구성할 수 있음 이미지 왜곡을 최소화하기 위해 적절한 reduction pattern 사용 MIP maps 혹은 mip maps 라고 부름 라틴어의 “multum in parvo” 의 약어 (작으나 내용이 알참) Much on a small object 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods
Chapter 10. Illumination Models and Surface-Rendering Methods 2010-1학기 Chapter 10. Illumination Models and Surface-Rendering Methods