SlideShare une entreprise Scribd logo
1  sur  41
Texturering & Modeling
               a Procedual Approach



              김정근
Agenda

 INTRODUCTION
   –   PROCEDURAL TECHNIQUES AND COMPUTER GRAPHICS
         • What Is a Procedural Technique?
         • The Power of Procedural Techniques

   –   PROCEDURAL TECHNIQUES AND ADVANCED GEOMETRIC MODELING


 BUILDING PROCEDURAL Textures
   –   INTRODUCTION
         • Texture
         • Procedural Texture
         • Procedural versus Nonprocedural
         • Implicit and Explicit Procedures
         • Advantages of Procedural Texture
         • Disadvantages of Procedural Texture
         • The RenderMan Shading Language
         • What If You Don’t Use RenderMan?




                                                               2
Chapter 1

Introduction
Procedural Techniques and Computer Graphics


 역사적 흐름
  – 컴퓨터 그래픽의 역사와 함께 사용

  – 1980 년대 중반에서 후반 동안

     • 현실적인 질감(나무, 돌, 대리석 등)을 표현

     • 물, 연기, 증기, 행성

  – 렌더맨의 Shading언어의 개발로 절차적 기법의 사용이 확대

  – 현재 대부분의 상용 렌더링 및 애니메이션 시스템은 절차적 인터페이스도 제공




                                                4
Procedural Techniques and Computer Graphics




                        Programmable
      강력한 CPU             Graphics
                         Processors


         인터렉티브하고 복잡한 절차적 모델과 효과를
             구상하고 실현할 수 있는 시대




                                              5
What Is a Procedural Technique?




컴퓨터가 만든 모델이나 효과의 일부 특성을
 지정하는 코드 세그먼트 또는 알고리즘




                                    6
What Is a Procedural Technique?




                                  7
What Is a Procedural Technique?




                                  8
The Power of Procedural Techniques




       Abstraction
            (추상화)




                                     9
The Power of Procedural Techniques




                                     10
The Power of Procedural Techniques




                                     11
The Power of Procedural Techniques




                                     12
The Power of Procedural Techniques

 추상화가 가능하다
  –   적재적소에 만들어진 함수나 알고리즘을 평가한다.

 데이터를 줄일 수 있다
  –   디테일이 명시적 이진 않지만 암시적으로 절차적인 데이터를 얻을 수 있다

 파라미터를 컨트롤 할 수 있다
  –   파라미터의 추가로 디테일에 양을 늘릴 수 있다

 절차적 기술에 내제하는 뜻밖의 재미를 얻을 수 있다
  –   예기치 않은 동작 절차, 확률적 과정

 유연성을 제공한다
  –   물리학의 복잡한 법률에 제약되지 않고도 제작할 수 있다

 정확한 예술적인 효과를 자연 법칙을 시뮬레이션하여 제작할 수 있다


                                                13
Procedural Techniques and
                   Advanced Geometric Modeling

 advanced geometric modeling은 본질적으로 절차적

 Grammar-based models, graftals, L-systems 등 복잡한 모델을 시뮬레이션 할때 파라
   미터 규격을 가짐

 Implicit surface models (Meta-balls, Soft Object 등) 은 전통적인 기법으로 설명하기
   어려운 물체
    –   electron density clouds의 이미지를 생성하기 위해 Blinn에 의해 도입

    –   parametric surfaces보다 soft objects를 모델링하거나 애니메이팅할때 뛰어 난 유연성을 제공

    –   대표적인 예인 파티클 시스템의 생성, 위치, 소멸은 알고리즘에 의해 제어됨

 advanced geometric modeling이 책의 주 목적은 아니지만 더 나은 기법으로 진화하기
   위해서 이책에 설명되어 있는 기술과 결합할수 있음

 주요 초점은 절차적 Texture, 절차적 모델링, 절차적 애니메이션



                                                                          14
Chapter 2

Building Procedural Textures
Building Procedural Textures


 기하학적 계산이 절차적 텍스처링에선 필수적

 2D 및 3D Point, Vector, 데카르트 좌표시스템, 내적, 외적 및 homogeneous
   transformation matrices 등

 RGB의 표현, Simple Diffuse과 Specular Shading Models

 http://www.slideshare.net/tahersb/hearn-and-baker-2-d-transformations




                                                                          16
Introduction


 더 나은 렌더링을 하기위해 좀 더 나은 방법을 찾고 있으며 합성 영상의 리얼
  리즘을 향상시키기 위해 노력



 Shading
   –   사용자 지정 Surface 속성과 셰이딩 모델에서 픽셀이나 음영 샘플의 색상을 계산하는 과정




 Texturing
   –   Surface의 형상에 실제로 존재하지 않는 Surface의 세부 모양을 주기 위해 지점에서 지점으로
       Surface 성질을 변화하는 방법




                                                             17
Introduction


 Shading

   –   illumination models, lighting models, 또는 reflection models 등으로 불리는 재질과 빛의 상호

       작용을 시뮬레이션

   –   일반적으로 물리학을 기반으로 하지만 많은 단순한 가설을 만들어 냄

   –   완벽하게 세부적인 물리 모델은 가공하기 어려운 계산을 포함

   –   Diffuse(Lambertian ) shading : 컴퓨터 그래픽에 최초로 사용한 것

   –   Specular Reflection shading : Phong, Blinn, Cook and Torrance,

   –   Anisotropic shading : Kajiya

   –   1980년대 초반 대부분의 연구가 global illumination effects을 시뮬레이션하는 것으로 전환

   –   Reflection, refraction, scattering of light, Raytracing, radiosity
                                                                                  18
Texture


 Catmull(1974) : 최초의 컴퓨터 그래픽 이미지를 만듬 “Futureworld”
      서페이스는 파라미터 패치로 표현

   –   패치에 대한 U, V 지점의 파라미터 값은 텍스텨 이미지의 해당 픽셀의 위치를 계산하는데 사
       용

   –   Simple Point-Sampling 은 Aliasing artifacts의 확률이 높아짐 : 정교한 샘플링/ 필터링이 필요



 Edwin Catmull
   –   Z-buffering

   –   texture mapping

   –   subdivision surface

   –   the fast rendering of bicubic patches




                                                                            19
Texture


   Texture 맵핑의 초기부터 다양한 연구자들은 다양한 텍스처 이미지를 생성하는 대신 스캔하거나 그
    것을 그리는 데 합성 질감 모델을 사용



   Blinn 과 Newell (1976) Fourier 합성을 사용



   Fu and Lusy (1978) 는 문법 기반 Texture 생성 기법을 제안



   Schacter와 Ahuja (1979)와 Schacter 비행 시뮬레이터를 위한 Texture 이미지를 생성하는 각종 푸
    리에 합성 및 확률적 모델을 사용



   Blinn 과 Newell (1976) 은 mirrorlike Surface의 반사를 시뮬레이션 하기 위해 반사 Mapping을 도입
     –   environment mapping

     –   RayTracing의 단순화된 형태



                                                                            20
Texture


   Blinn 과 Newell (1976) 은 mirrorlike Surface의 반사를 시뮬레이션 하기 위해 Reflection Mapping을
    도입
     –    Environment mapping

     –    RayTracing의 단순화된 형태

     –    Normalized 된 vector R = (x,y,z) 의 Latitide 와 Longitude 각도를 사용하여 Texture 이미지에 억세스




                                                Surface Normal
                                                         Point toward The Viewer
Reflection Direction


                           R = 2(N ⋅ V)N – V
                       Reflection mapping 절차는 음영 처리되는 지점에
                       카메라 또는 보는 사람의 ray로 반사 방향 R을 계산

                                                                                     Cube mapped reflection example

                                                                                                                 21
Texture


   Blinn (1978) 은 Geometry의 수정 없이 Bump의 모양을 시뮬레이트 하기 위한 bump mapping 을 도
    입
     –   Normal의 결과가 Shading 계산에 사용될 때 Surface는 Bum와 indentations을 가짐

     –   실루엣에서 볼 수 있는 건 아닌 Shading Variations임



   Cook (1984)은 Displacement Mapping을 소개




                                                                        22
Texture


   Reeves, Salesin, Cook (1987) : Light Source의 Position에서 렌더링된 장면의 Depth Image를 기반
    으로 이미지 Texture를 사용하여 Anti-aliased shadows 를 생산하는 알고리즘을 제시
     –   Percentage Closer Filtering




 Gardner (1984, 1985) : 나무, 지형 그리고 구름의 모델에 Texture를 추가하는
    Sinusoidal Functions의 합계에 의해 생성된 Solid Textures를 사용

                                                                                  23
Texture


   Peachey 과 Perlin : 2D Texture의 대안으로 Solid Textures (Space-Filling Textures) 을 소개
     –   Solid Texture Mapping : 공간 속에 가상적인 공간을 만들어 그 속에 오브젝트를 담아 둔다는 개념




                                                                                       24
Texture


   Pelting (Piponi and Borshukov, 2000))
     –   임의 하위구분으로 surface model에 seamless texture mapping



   Pedersen(1995) Mapping의 왜곡을 최소화하는데 도움을 주며 상호작용하게 Surface에 Texture를
    Patch 할수 있게 함




                                                                   25
Texture


   Praun, Finkelstein, and Hoppe (2000) “lapped Textures”
     –   Swatches의 Orientation 과 Scale의 가이드에 의해 사용자 정의된 Vector Field 에 따라, Texture의 여러 작은 Swatches는 중복 방식
         의 Surface에 위치함




                                                                                                     26
Procedural Texture


 Texture 맵핑의 초기부터 다양한 텍스처 이미지를 생성하는 대신 스캔하거나 그것을
   그리는 데 합성 질감 모델을 사용



 Blinn 과 Newell (1976) Fourier 합성을 사용



 Fu and Lusy (1978) 는 문법 기반 Texture 생성 기법을 제안



 Schacter와 Ahuja (1979)와 Schacter 비행 시뮬레이터를 위한 Texture 이미지를 생성
   하는 각종 푸리에 합성 및 확률적 모델을 사용




                                                                  27
Procedural Texture


 Fournier, Fussell, and Carpenter (1982) and Haruyama and Barsky (1984)은 fractal을
   사용하여 Texture를 생성하는 방법을 제안




 Gagalowicz, Ma 1985; Garber 1981 는 Texture를 제현한 통계 Texture 모델을 개발




                                                                                28
Procedural Texture


 Cook (1984)은 Shader Tree를 소개 : 절차적 이미지를 생성하는 것에 가까운 첫번째
  시스템중 하나
   –   광원, atmosphere을 통한 감쇠 뿐 아니라 SurfaceSurface에 다른 Shading모델의 사용을 가능하게 함

   –   Shading모델에 대한 입력을 절차적으로 조절

   –   Color and transparency Textures, reflection mapping, bump mapping, displacement mapping, and Solid
       texturing 등등 모든 쉐이드 트리를 사용하여 구현할수 있음




                                                                                                           29
Procedural Texture


 Perlin (1985) 은 절차적 Texture를 제작하는 Language를 설명
   –   오늘날 사용하는 절차적 Texture의 더 대중적인 클래스의 토대를 마련

   –   노이즈를 기반으로 초기의 확률적 Texture를 제작



 Turk (1991)와 Witkin와 Kass (1991)은 동물의 껍질에서 착색 패턴을 만드는 생화확적
  프로세스에서 영감을 얻어 합성 질감 모델을 설명




                                                           30
Procedural versus Nonprocedural


 어떤 Texture가 절차적인가? :절차적인 Texture의 정의는 파악하기 힘들다

 데이터 구조를 설명하는 Entities 와 구별하기 위해 컴퓨터 과학에서 사용

 알고리즘을 변경하기 보다는 Parameters 나 Input 의 변경으로 이루어짐

 디지털이나 페인트 이미지가 아닌 프로그램 또는 모델로부터 합성 생성함

 때로는 디지털이나 페인트 이미지가 절차적 Texture 사이에 포함될 수 있음

 좋은 절차적 Texture는 이미지 Texture의 절차적 조합 수정 또는 왜곡을 기반으로 할수

  있음




                                                      31
Implicit and Explicit Procedures


               Implicit     Explicit
  특정 지점에 대한 Query 에         직접 모양을 이루는 지점을 생성
절차적인 Answers를 주는 방식

        Isocurve (in 2D)

       Isosurface (in 3D)




                                                32
Implicit and Explicit Procedures




   Unit Circle의 간단한 정의 = isocurve




                                    33
Implicit and Explicit Procedures


             Implicit      Explicit

             Ray tracers   Depth buffer renderers

                           * Texture 절차가 아닌 렌더러에 의해 결정




자연적인 돌 질감, 구름, 안개 등        polygons / parametric curves patches




                                                             34
Advantages of Procedural Texture




매우 compact 하다      고정 해상도가 없다.




고정 면적이 없다          파라미터를 가진다




                                   35
Disadvantages of Procedural Texture




Build 하고 Debug하기   결과를 예측하는 것이 어
   어려울 수 있음              렵다




저장된 Texture 이미지를
억세스하는 것보다 느릴         앨리어싱의 문제
     수 있다




                                      36
The RenderMan Shading Language


 Shading모델과 절차적 텍스처를 위한 프로그램 코드를 쓸 수 있는 특별한 용도의
  Shading언어

 Cook(1984)에 기술된 Shader Tree에서 유래한 것

 문법은 C와 같지만 Shading언어가 포함

 Shading언어는 렌더맨 Renderer에 의해 수행되는 음영계산을 프로그래밍할 수 있음




                                                       37
The RenderMan Shading Language




                                 38
What If You Don’t Use RenderMan?


 절차적 Texture에 관심이 있는 다양한 연령층을 대상

 렌더맨은 절차적 쉐이더를 표현할 수 있는 편리한 방법

 절차적 텍스처 빌딩 블록 함수 기능의 많은 C 언어 구현에 대해 설명

 이미지 텍스처에 액세스하는 기능을 제공

   –   다른 Renderer를 사용한다면 그것에 맞게 Texture 함수를 변환할 수 있어야 함




                                                           39
Q&A
감사합니다

Contenu connexe

Plus de CARROTCG

20120713 ch13
20120713 ch1320120713 ch13
20120713 ch13CARROTCG
 
20120713 ch12
20120713 ch1220120713 ch12
20120713 ch12CARROTCG
 
Procedural synthesis of geometry
Procedural synthesis of geometryProcedural synthesis of geometry
Procedural synthesis of geometryCARROTCG
 
120427 celluar texture
120427 celluar texture120427 celluar texture
120427 celluar textureCARROTCG
 
120413 making noises
120413 making noises120413 making noises
120413 making noisesCARROTCG
 
Texture Modeling a Procedual Approach Chater 2 : Building Procedural Textures
Texture Modeling a Procedual Approach Chater 2 : Building Procedural TexturesTexture Modeling a Procedual Approach Chater 2 : Building Procedural Textures
Texture Modeling a Procedual Approach Chater 2 : Building Procedural TexturesCARROTCG
 
Volumetric cloud modeling with implicit functions web
Volumetric cloud modeling with implicit functions webVolumetric cloud modeling with implicit functions web
Volumetric cloud modeling with implicit functions webCARROTCG
 
120216 ch 12_creating_elements
120216 ch 12_creating_elements120216 ch 12_creating_elements
120216 ch 12_creating_elementsCARROTCG
 
120119 ch 7_time_and_temporal_manipulations
120119 ch 7_time_and_temporal_manipulations120119 ch 7_time_and_temporal_manipulations
120119 ch 7_time_and_temporal_manipulationsCARROTCG
 
120106 ch 6_matte_creation_and_manipulation_web
120106 ch 6_matte_creation_and_manipulation_web120106 ch 6_matte_creation_and_manipulation_web
120106 ch 6_matte_creation_and_manipulation_webCARROTCG
 
120106 ch 5_basic image compositing_re
120106 ch 5_basic image compositing_re120106 ch 5_basic image compositing_re
120106 ch 5_basic image compositing_reCARROTCG
 
111118 ch 4_basic image manipulation_web
111118 ch 4_basic image manipulation_web111118 ch 4_basic image manipulation_web
111118 ch 4_basic image manipulation_webCARROTCG
 
111028 ch 3_the digital representation of visual information
111028 ch 3_the digital representation of visual information111028 ch 3_the digital representation of visual information
111028 ch 3_the digital representation of visual informationCARROTCG
 

Plus de CARROTCG (16)

20120921
2012092120120921
20120921
 
20120824
2012082420120824
20120824
 
20120810
2012081020120810
20120810
 
20120713 ch13
20120713 ch1320120713 ch13
20120713 ch13
 
20120713 ch12
20120713 ch1220120713 ch12
20120713 ch12
 
Procedural synthesis of geometry
Procedural synthesis of geometryProcedural synthesis of geometry
Procedural synthesis of geometry
 
120427 celluar texture
120427 celluar texture120427 celluar texture
120427 celluar texture
 
120413 making noises
120413 making noises120413 making noises
120413 making noises
 
Texture Modeling a Procedual Approach Chater 2 : Building Procedural Textures
Texture Modeling a Procedual Approach Chater 2 : Building Procedural TexturesTexture Modeling a Procedual Approach Chater 2 : Building Procedural Textures
Texture Modeling a Procedual Approach Chater 2 : Building Procedural Textures
 
Volumetric cloud modeling with implicit functions web
Volumetric cloud modeling with implicit functions webVolumetric cloud modeling with implicit functions web
Volumetric cloud modeling with implicit functions web
 
120216 ch 12_creating_elements
120216 ch 12_creating_elements120216 ch 12_creating_elements
120216 ch 12_creating_elements
 
120119 ch 7_time_and_temporal_manipulations
120119 ch 7_time_and_temporal_manipulations120119 ch 7_time_and_temporal_manipulations
120119 ch 7_time_and_temporal_manipulations
 
120106 ch 6_matte_creation_and_manipulation_web
120106 ch 6_matte_creation_and_manipulation_web120106 ch 6_matte_creation_and_manipulation_web
120106 ch 6_matte_creation_and_manipulation_web
 
120106 ch 5_basic image compositing_re
120106 ch 5_basic image compositing_re120106 ch 5_basic image compositing_re
120106 ch 5_basic image compositing_re
 
111118 ch 4_basic image manipulation_web
111118 ch 4_basic image manipulation_web111118 ch 4_basic image manipulation_web
111118 ch 4_basic image manipulation_web
 
111028 ch 3_the digital representation of visual information
111028 ch 3_the digital representation of visual information111028 ch 3_the digital representation of visual information
111028 ch 3_the digital representation of visual information
 

Texture Modeling a Procedual Approach #01

  • 1. Texturering & Modeling a Procedual Approach 김정근
  • 2. Agenda  INTRODUCTION – PROCEDURAL TECHNIQUES AND COMPUTER GRAPHICS • What Is a Procedural Technique? • The Power of Procedural Techniques – PROCEDURAL TECHNIQUES AND ADVANCED GEOMETRIC MODELING  BUILDING PROCEDURAL Textures – INTRODUCTION • Texture • Procedural Texture • Procedural versus Nonprocedural • Implicit and Explicit Procedures • Advantages of Procedural Texture • Disadvantages of Procedural Texture • The RenderMan Shading Language • What If You Don’t Use RenderMan? 2
  • 4. Procedural Techniques and Computer Graphics  역사적 흐름 – 컴퓨터 그래픽의 역사와 함께 사용 – 1980 년대 중반에서 후반 동안 • 현실적인 질감(나무, 돌, 대리석 등)을 표현 • 물, 연기, 증기, 행성 – 렌더맨의 Shading언어의 개발로 절차적 기법의 사용이 확대 – 현재 대부분의 상용 렌더링 및 애니메이션 시스템은 절차적 인터페이스도 제공 4
  • 5. Procedural Techniques and Computer Graphics Programmable 강력한 CPU Graphics Processors 인터렉티브하고 복잡한 절차적 모델과 효과를 구상하고 실현할 수 있는 시대 5
  • 6. What Is a Procedural Technique? 컴퓨터가 만든 모델이나 효과의 일부 특성을 지정하는 코드 세그먼트 또는 알고리즘 6
  • 7. What Is a Procedural Technique? 7
  • 8. What Is a Procedural Technique? 8
  • 9. The Power of Procedural Techniques Abstraction (추상화) 9
  • 10. The Power of Procedural Techniques 10
  • 11. The Power of Procedural Techniques 11
  • 12. The Power of Procedural Techniques 12
  • 13. The Power of Procedural Techniques  추상화가 가능하다 – 적재적소에 만들어진 함수나 알고리즘을 평가한다.  데이터를 줄일 수 있다 – 디테일이 명시적 이진 않지만 암시적으로 절차적인 데이터를 얻을 수 있다  파라미터를 컨트롤 할 수 있다 – 파라미터의 추가로 디테일에 양을 늘릴 수 있다  절차적 기술에 내제하는 뜻밖의 재미를 얻을 수 있다 – 예기치 않은 동작 절차, 확률적 과정  유연성을 제공한다 – 물리학의 복잡한 법률에 제약되지 않고도 제작할 수 있다  정확한 예술적인 효과를 자연 법칙을 시뮬레이션하여 제작할 수 있다 13
  • 14. Procedural Techniques and Advanced Geometric Modeling  advanced geometric modeling은 본질적으로 절차적  Grammar-based models, graftals, L-systems 등 복잡한 모델을 시뮬레이션 할때 파라 미터 규격을 가짐  Implicit surface models (Meta-balls, Soft Object 등) 은 전통적인 기법으로 설명하기 어려운 물체 – electron density clouds의 이미지를 생성하기 위해 Blinn에 의해 도입 – parametric surfaces보다 soft objects를 모델링하거나 애니메이팅할때 뛰어 난 유연성을 제공 – 대표적인 예인 파티클 시스템의 생성, 위치, 소멸은 알고리즘에 의해 제어됨  advanced geometric modeling이 책의 주 목적은 아니지만 더 나은 기법으로 진화하기 위해서 이책에 설명되어 있는 기술과 결합할수 있음  주요 초점은 절차적 Texture, 절차적 모델링, 절차적 애니메이션 14
  • 16. Building Procedural Textures  기하학적 계산이 절차적 텍스처링에선 필수적  2D 및 3D Point, Vector, 데카르트 좌표시스템, 내적, 외적 및 homogeneous transformation matrices 등  RGB의 표현, Simple Diffuse과 Specular Shading Models  http://www.slideshare.net/tahersb/hearn-and-baker-2-d-transformations 16
  • 17. Introduction  더 나은 렌더링을 하기위해 좀 더 나은 방법을 찾고 있으며 합성 영상의 리얼 리즘을 향상시키기 위해 노력  Shading – 사용자 지정 Surface 속성과 셰이딩 모델에서 픽셀이나 음영 샘플의 색상을 계산하는 과정  Texturing – Surface의 형상에 실제로 존재하지 않는 Surface의 세부 모양을 주기 위해 지점에서 지점으로 Surface 성질을 변화하는 방법 17
  • 18. Introduction  Shading – illumination models, lighting models, 또는 reflection models 등으로 불리는 재질과 빛의 상호 작용을 시뮬레이션 – 일반적으로 물리학을 기반으로 하지만 많은 단순한 가설을 만들어 냄 – 완벽하게 세부적인 물리 모델은 가공하기 어려운 계산을 포함 – Diffuse(Lambertian ) shading : 컴퓨터 그래픽에 최초로 사용한 것 – Specular Reflection shading : Phong, Blinn, Cook and Torrance, – Anisotropic shading : Kajiya – 1980년대 초반 대부분의 연구가 global illumination effects을 시뮬레이션하는 것으로 전환 – Reflection, refraction, scattering of light, Raytracing, radiosity 18
  • 19. Texture  Catmull(1974) : 최초의 컴퓨터 그래픽 이미지를 만듬 “Futureworld”  서페이스는 파라미터 패치로 표현 – 패치에 대한 U, V 지점의 파라미터 값은 텍스텨 이미지의 해당 픽셀의 위치를 계산하는데 사 용 – Simple Point-Sampling 은 Aliasing artifacts의 확률이 높아짐 : 정교한 샘플링/ 필터링이 필요  Edwin Catmull – Z-buffering – texture mapping – subdivision surface – the fast rendering of bicubic patches 19
  • 20. Texture  Texture 맵핑의 초기부터 다양한 연구자들은 다양한 텍스처 이미지를 생성하는 대신 스캔하거나 그 것을 그리는 데 합성 질감 모델을 사용  Blinn 과 Newell (1976) Fourier 합성을 사용  Fu and Lusy (1978) 는 문법 기반 Texture 생성 기법을 제안  Schacter와 Ahuja (1979)와 Schacter 비행 시뮬레이터를 위한 Texture 이미지를 생성하는 각종 푸 리에 합성 및 확률적 모델을 사용  Blinn 과 Newell (1976) 은 mirrorlike Surface의 반사를 시뮬레이션 하기 위해 반사 Mapping을 도입 – environment mapping – RayTracing의 단순화된 형태 20
  • 21. Texture  Blinn 과 Newell (1976) 은 mirrorlike Surface의 반사를 시뮬레이션 하기 위해 Reflection Mapping을 도입 – Environment mapping – RayTracing의 단순화된 형태 – Normalized 된 vector R = (x,y,z) 의 Latitide 와 Longitude 각도를 사용하여 Texture 이미지에 억세스 Surface Normal Point toward The Viewer Reflection Direction R = 2(N ⋅ V)N – V Reflection mapping 절차는 음영 처리되는 지점에 카메라 또는 보는 사람의 ray로 반사 방향 R을 계산 Cube mapped reflection example 21
  • 22. Texture  Blinn (1978) 은 Geometry의 수정 없이 Bump의 모양을 시뮬레이트 하기 위한 bump mapping 을 도 입 – Normal의 결과가 Shading 계산에 사용될 때 Surface는 Bum와 indentations을 가짐 – 실루엣에서 볼 수 있는 건 아닌 Shading Variations임  Cook (1984)은 Displacement Mapping을 소개 22
  • 23. Texture  Reeves, Salesin, Cook (1987) : Light Source의 Position에서 렌더링된 장면의 Depth Image를 기반 으로 이미지 Texture를 사용하여 Anti-aliased shadows 를 생산하는 알고리즘을 제시 – Percentage Closer Filtering  Gardner (1984, 1985) : 나무, 지형 그리고 구름의 모델에 Texture를 추가하는 Sinusoidal Functions의 합계에 의해 생성된 Solid Textures를 사용 23
  • 24. Texture  Peachey 과 Perlin : 2D Texture의 대안으로 Solid Textures (Space-Filling Textures) 을 소개 – Solid Texture Mapping : 공간 속에 가상적인 공간을 만들어 그 속에 오브젝트를 담아 둔다는 개념 24
  • 25. Texture  Pelting (Piponi and Borshukov, 2000)) – 임의 하위구분으로 surface model에 seamless texture mapping  Pedersen(1995) Mapping의 왜곡을 최소화하는데 도움을 주며 상호작용하게 Surface에 Texture를 Patch 할수 있게 함 25
  • 26. Texture  Praun, Finkelstein, and Hoppe (2000) “lapped Textures” – Swatches의 Orientation 과 Scale의 가이드에 의해 사용자 정의된 Vector Field 에 따라, Texture의 여러 작은 Swatches는 중복 방식 의 Surface에 위치함 26
  • 27. Procedural Texture  Texture 맵핑의 초기부터 다양한 텍스처 이미지를 생성하는 대신 스캔하거나 그것을 그리는 데 합성 질감 모델을 사용  Blinn 과 Newell (1976) Fourier 합성을 사용  Fu and Lusy (1978) 는 문법 기반 Texture 생성 기법을 제안  Schacter와 Ahuja (1979)와 Schacter 비행 시뮬레이터를 위한 Texture 이미지를 생성 하는 각종 푸리에 합성 및 확률적 모델을 사용 27
  • 28. Procedural Texture  Fournier, Fussell, and Carpenter (1982) and Haruyama and Barsky (1984)은 fractal을 사용하여 Texture를 생성하는 방법을 제안  Gagalowicz, Ma 1985; Garber 1981 는 Texture를 제현한 통계 Texture 모델을 개발 28
  • 29. Procedural Texture  Cook (1984)은 Shader Tree를 소개 : 절차적 이미지를 생성하는 것에 가까운 첫번째 시스템중 하나 – 광원, atmosphere을 통한 감쇠 뿐 아니라 SurfaceSurface에 다른 Shading모델의 사용을 가능하게 함 – Shading모델에 대한 입력을 절차적으로 조절 – Color and transparency Textures, reflection mapping, bump mapping, displacement mapping, and Solid texturing 등등 모든 쉐이드 트리를 사용하여 구현할수 있음 29
  • 30. Procedural Texture  Perlin (1985) 은 절차적 Texture를 제작하는 Language를 설명 – 오늘날 사용하는 절차적 Texture의 더 대중적인 클래스의 토대를 마련 – 노이즈를 기반으로 초기의 확률적 Texture를 제작  Turk (1991)와 Witkin와 Kass (1991)은 동물의 껍질에서 착색 패턴을 만드는 생화확적 프로세스에서 영감을 얻어 합성 질감 모델을 설명 30
  • 31. Procedural versus Nonprocedural  어떤 Texture가 절차적인가? :절차적인 Texture의 정의는 파악하기 힘들다  데이터 구조를 설명하는 Entities 와 구별하기 위해 컴퓨터 과학에서 사용  알고리즘을 변경하기 보다는 Parameters 나 Input 의 변경으로 이루어짐  디지털이나 페인트 이미지가 아닌 프로그램 또는 모델로부터 합성 생성함  때로는 디지털이나 페인트 이미지가 절차적 Texture 사이에 포함될 수 있음  좋은 절차적 Texture는 이미지 Texture의 절차적 조합 수정 또는 왜곡을 기반으로 할수 있음 31
  • 32. Implicit and Explicit Procedures Implicit Explicit 특정 지점에 대한 Query 에 직접 모양을 이루는 지점을 생성 절차적인 Answers를 주는 방식 Isocurve (in 2D) Isosurface (in 3D) 32
  • 33. Implicit and Explicit Procedures Unit Circle의 간단한 정의 = isocurve 33
  • 34. Implicit and Explicit Procedures Implicit Explicit Ray tracers Depth buffer renderers * Texture 절차가 아닌 렌더러에 의해 결정 자연적인 돌 질감, 구름, 안개 등 polygons / parametric curves patches 34
  • 35. Advantages of Procedural Texture 매우 compact 하다 고정 해상도가 없다. 고정 면적이 없다 파라미터를 가진다 35
  • 36. Disadvantages of Procedural Texture Build 하고 Debug하기 결과를 예측하는 것이 어 어려울 수 있음 렵다 저장된 Texture 이미지를 억세스하는 것보다 느릴 앨리어싱의 문제 수 있다 36
  • 37. The RenderMan Shading Language  Shading모델과 절차적 텍스처를 위한 프로그램 코드를 쓸 수 있는 특별한 용도의 Shading언어  Cook(1984)에 기술된 Shader Tree에서 유래한 것  문법은 C와 같지만 Shading언어가 포함  Shading언어는 렌더맨 Renderer에 의해 수행되는 음영계산을 프로그래밍할 수 있음 37
  • 38. The RenderMan Shading Language 38
  • 39. What If You Don’t Use RenderMan?  절차적 Texture에 관심이 있는 다양한 연령층을 대상  렌더맨은 절차적 쉐이더를 표현할 수 있는 편리한 방법  절차적 텍스처 빌딩 블록 함수 기능의 많은 C 언어 구현에 대해 설명  이미지 텍스처에 액세스하는 기능을 제공 – 다른 Renderer를 사용한다면 그것에 맞게 Texture 함수를 변환할 수 있어야 함 39
  • 40. Q&A