Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Üç Boyutlu Görüntüleme

Benzer bir sunumlar


... konulu sunumlar: "Üç Boyutlu Görüntüleme"— Sunum transkripti:

1 Üç Boyutlu Görüntüleme
Dr. Aybars UĞUR 2006

2 Üç Boyutlu Görüntüleme
Üç boyutlu bir sahnenin bilgisayarda görüntülenmesi için izlenen adımlar, fotoğraf çekme sırasındaki işlemlere benzer : Nesne ölçeklendirme ve döndürme Nesnenin yerini değiştirme Bakış noktasının orijine taşınması Bakış yönünün z eksenine alınması İzdüşüm alınması Görünen Yüzeylerin Belirlenmesi Gerçek koordinatlardan araç koordinatlarına dönüşüm Nesnelerin ekranda görüntülenmesi

3 Screen/Window coordinates
3D Graphics Pipeline WORLD SCENE/OBJECT Modelling coordinates: - world coordinate system, - object coordinate system 3D MODELLING VIEWING 3D CLIPPING Camera coordinates PROJECTION Screen/Window coordinates RASTERIZATION Device coordinates 2D PIXELMAP DISPLAY

4 Nesne Modelleme B-Representation Sweep Representation CSG
Blobby Objects Octree Representation Voxels Parametric Surface (x=sin4θ, y=cos2θ) Implicit Surface

5 Modelleme Dönüşümleri
Taşıma, Ölçeklendirme, Döndürme, Kamera Dönüşümleri ve 3D Kırpma (Clipping) Kameranın görüntüleme alanı dışındaki nesneler kırpılır.

6 İzdüşüm (Projection) Uzayda boyut azaltma işlemidir. (Bilgisayar grafiklerinde 3D->2D). İki ana bölümde incelenir : Paralel İzdüşüm Perspektif İzdüşüm

7 İzdüşüm çeşitleri Paralel İzdüşüm :
Görüntü düzlemindeki koordinat noktaları, görüntü düzlemine paralel doğrular çizilerek belirlenir. p2 p2’ p1’ p1 Görüntü Düzlemi Perspektif İzdüşüm : Doğrular, izdüşüm merkezi (bakış noktası) adı verilen noktaya yakınsar. p2 p2’ p1’ Bakış Noktası p1 Görüntü Düzlemi

8 Paralel İzdüşümler Orthographic Parallel Projection
İzdüşüm, görüntü düzlemine dik alınır. Oblique Parallel Projection İzdüşüm, görüntü düzlemine dik değildir.

9 Paralel İzdüşüm : Örnek
y Genelde z=a (xy düzlemi veya paralelleri) üzerine alınır. P1(10,10,10) P2(20,20,20) P1’(10,10) P2’(20,20) p2 p2’ x p1’ p1 z Görüntü Düzlemi

10 Perspektif İzdüşümler
Consider a perspective projection with the viewpoint at the origin and a viewing direction oriented along the positive -z axis and the view-plane located at z = -d a similar construction for xp  d y yp -z divide by homogenous ordinate to map back to 3D space

11 Windows and Viewports (wxmax,wymax) (vxmax,vymax) (vx,vy) (wx,wy)
(vxmin,vymin) (wxmin,wymin)

12 Window to Viewport Mapping
Yatay oranların korunumu : wx wxmin vx vxmin wxmax - wxmin vxmax - vxmin = So, solving for vx: vx = (wx - wx min) * vxmax - vxmin vxmin wxmax - wxmin vy can be solved for similarly.

13 Say we want to map this to a 640x480 viewport
0.4 0.3 -0.4 -0.2 Say we want to map this to a 640x480 viewport 480 640

14 Wx=-.2 Vxmax=640 Wy=.3 Vxmin=-0 Wxmax=0 Vymax=0 Wxmin=-0.4 Vymin=480
Wymax=0.4 Wymin=0 Vx= (-.2-(-0.4))*(640-0) = 320 0-(-0.4) Vy= (.3-0)*(0-480) = 120 Vxmax=640 Vxmin=-0 Vymax=0 Vymin=480 320 120

15 Rasterization: Her pikselin rengi ne?
Rasterization: Geometrik şekillerden, piksel değerlerinin elde edilmesi adımlarının tümü: Hidden Surface Removal, Projection, Window to Viewport Transformation, Shading, Polygon Filling… Rasterization: Her pikselin rengi ne?

16 Transformations and OpenGL®
Vertex Geometry Pipeline MODELVIEW matrix PROJECTION matrix perspective division viewport transformation original vertex final window coordinates normalized device coordinates (foreshortened) 2d projection of vertex onto viewing plane vertex in the eye coordinate space

17 Görünen Yüzeylerin Belirlenmesi
Görünen Yüzeylerin Belirlenmesi (Visible-Surface Detection Methods) veya Görünmeyen Yüzeylerin Elenmesi. Görünen yüzeyleri belirlemek için kullanılan algoritmalarda başlıca iki yaklaşım vardır : 1) Nesne Uzayı Yöntemleri (object-space methods) : Nesnelerin görünürlüğünü, yüzeyleri, diğer nesne ve yüzeylerle karşılaştırarak tanımlandıkları uzayda belirler. 2) Görüntü Uzayı Yöntemleri (image-space methods) : Görüntü uzayı algoritmaları, nesnelerin ve yüzeylerin görünürlüğünü piksel piksel izdüşüm düzleminde belirler. Algoritmaların çoğu görüntü uzayı yöntemlerini kullanır.

18 1) Arka Yüzeylerin Belirlenmesi
Yüzey Normalinin z bileşeni negatif olan arka yüzeydir. Yüzey Denklemi : Ax + By + Cz + D = 0 Yüzey Normali : N = (A,B,C) C<=0 , Arka yüzeydir. N = (0,0,1) y y x x z

19 2) Derinlik Arabelleği Yöntemi Depth-Buffer Method
En çok kullanılan yöntemlerdendir. Bir Image-Space yöntemidir. Çokgen yüzeyindeki her (x,y,z) konumu, nesne tanımlamalarından izdüşüm koordinatlarına çevrildiğinde, görüntü düzleminde (x,y) olur. S1, görüntü düzlemine en yakın nokta olduğu için, o yüzeyin (ilgili bölümünün) rengi ve yoğunluk değerleri kaydedilir. x,y noktasında yüzey derinliği, formülü ile hesaplanır. y (x,y) x z

20 2) Depth-Buffer Method The Z-buffer Algorithm
x y z2 z1 B A initialize all depth(x,y) to 0 and refresh(x,y) to background for each pixel compare evaluated depth value z to current depth(x,y) if z > depth(x,y) then depth(x,y)=z refresh(x,y) = Isurface(x,y)

21 Diğer Bazı Yöntemler A-Buffer Method : Depth-Buffer geliştirilerek oluşturulmuştur. Lucasfilm tarafından geliştirilmiştir. Geçirgen yüzeylere uygulanabilmektedir. Scan-Line (Tarama Hattı) Method : Bkz. Ders kitabı. Depth-Sorting (Derinlik Sıralaması) Method : Görüntü ve Nesne Uzayı yöntemlerinin her ikisini de kullanır. Painter’s algorithm (ressamın algoritması) olarak da geçer. Yüzeyler derinliklerine göre sıralanır. En derinden başlanarak çizdirilir. BSP-tree (binary space-partitioning) Method : Bkz. Ders kitabı. Area-Subdivision (Alan Bölümleme) Method : Bkz. Ders kitabı. Octree (8’li Ağaç) Methods : Bkz. Ders kitabı. Ray-Casting (Işın gönderme) Method : Bkz. Ders kitabı.

22 Aydınlatma Modelleri ve Yüzey Kaplama Yöntemleri (Illumination Models and Surface Rendering Methods)
Dr. Aybars UĞUR 2006

23 Aydınlatma Modelleri ve Yüzey Kaplama Yöntemleri
Gerçekçi görüntüler, nesnelerin perspektif izdüşümleri alınarak ve görünen yüzeylerine doğal aydınlatma etkileri uygulanarak elde edilirler. Aydınlatma Modeli : Bir nesnenin bir noktasında ışık yoğunluğunu hesaplamak için kullanılan bir modeldir. Yüzey Kaplama : Sahnedeki tüm yüzey izdüşüm konumlarının piksel yoğunluklarını aydınlatma modelini kullanarak hesaplayan prosedüre, yüzey kaplama adı verilir.

24 Aydınlatma Modelleri illumination model is used to calculate the intensity of light that we see at a given point on the surface of an object surface rendering algorithm uses intensity calculations to determine light intensity for all projected pixel positions for the various surfaces in the scene. Either… performed at every point interpolated across key points

25 Işık Kaynakları - I Saydam olmayan ve ışık saçmayan bir nesneye bakıldığında, nesnenin yüzeylerinden yansıyan ışık görülür. Toplam yansıyan ışık, tüm ışık kaynaklarının ve ortamdaki diğer yansıtıcı yüzeylerin katılımının toplamına eşittir. Bir ışık kaynağından, doğrudan ışık almayan nesneler de görülebilir. Parlak Nesne ışığın çoğunu yansıtır. Donuk Nesne emer. Saydam Nesne, kısmen geçirir.

26 Işık Kaynakları – II ve Yansıma
Nokta Işık Kaynağı – Dağıtık Işık Kaynağı Ambient Light - Background Light (Ortam - arka plan ışığı) : Tüm nesneler için tüm yönlerde sabittir. Diffuse Reflection (yayılmış yansıma) : Bakış yönünden bağımsız olarak tüm nesneler için sabittir. Specular Reflection (aynaya özgü yansıma) : Elmadaki parlak noktalar gibi etkileri vermek için kullanılır. Bazı nesnelere belirli yönlerden bakıldığında belli bölümler parlar. Refraction (Kırılma) Shadows (Gölgeler)

27 Reflection characteristics of surfaces
Ambient reflection I = Ia Ka Ia = Intensity of ambient light Ka= Fraction reflected, 0<= Ka<=1 Diffuse (Lambertian) reflection Typical of dull matte surfaces Independent of viewer position Dependant of light source position (in this case a point source again a non-physical abstraction)

28 Diffuse reflection Lamberts Cosine Law
I Sin (θ) ‾N I Cos (θ) θ ‾L Lamberts Cosine Law I = Ipkd cos θ I = Ip kd (‾N . ‾L ) Ip = intensity of the point light source kd = diffuse reflection coefficient; specifies fraction of Ip reflected Add an ambient term I = Ia Ka + Ip kd (‾N . ‾L )

29 Diffuse Light Örneği

30 Mirror (Specular) Reflection
Lighting highlights for shiny surfaces. The result of (near) total reflection of the incident light in a concentrated region around the specular-reflection angle We see reflected light only when V and R concide Non-ideal Reflectors

31 Specular Light Örneği

32 Ambient, Diffuse, Specular
I = KaIa + Kd L ( L . N ) + Ks L ( R . V )n V light source N L R eye surface

33 Kırılma (Refraction)

34 Çokgen Kaplama Yöntemleri
Constant Intensity Shading Gouraud Shading (Intensity Interpolation) Phong Shading (Vector Interpolation)

35 Flat Shading

36 Gouraud Shading

37 Phong Shading

38 Diğer Işın İzleme Yöntemleri Yüzey Ayrıntıları Texture Mapping
Environment Mapping Bump Mapping Both bump mapping and environment mapping concepts are due to Jim Blinn

39 Marble Texture

40 Bump Mapping Kabartı Kaplama
Basic Idea: Simulate small but macroscopic bumps on the surface Perturb the surface normal

41 How Does It Work? Looking at it in 1D: original surface P(u)
bump map b(u) add b(u) to P(u) in surface normal direction, N(u) new surface normal N’(u) for reflection model

42 Environment Mapping

43 Renk Modelleri RGB HSV HLS CMY …. Birbirlerine dönüştürülebilirler.

44 Animasyon Canlandırma, hareketli resim
Storyboard (resimli senaryo) Object dfn.s Key-frame specifications In-between frames Key Frame (Anahtar çerçeve) : Hareketin uç noktalarında seçilen animasyon karesi. In-betweens : Anahtar çerçeveler arasındaki kareler. Morphing : Biçim değiştirme.

45 Hareket Tanımlamaları
Kinematik Tanımlama : Hareket parametreleri (konum, hız ve ivme) verilerek yapılan animasyondur. Inverse Kınematics : Belirlenen zamanlarda nesnenin ilk ve son konumları verilir. Hareket parametreleri sistem tarafından hesaplanır. Dynamic Descriptions : Hıza ve ivmeye neden olan kuvvetleri belirtir. F=ma, elektromanyetik, çekim, sürtünme, …

46 Ders Değerlendirmesi İki ve Üç Boyutlu Grafikler İçeren Yazılım Geliştirme Etkileşim, Animasyon İki Boyutlu Arayüzler (C# GDI +, Java 2D) Üç Boyutlu Arayüzler (OpenGL) Gerçekçi Görüntü Oluşturma (~Photorealistic Rendering): POV RAY Matematiksel Konular (Dönüşümler, Eğriler, …) Algoritmik Konular ve Veri Yapıları Seminerler

47 Düşünülen Final Sınavı İçeriği
50 Puan Klasik, 30 Puan Çoktan Seçmeli Test, Ders Notları, Tahtaya Yazılanlar, Anlatılanlar + Sunumlar (seminerlerden test sorusu) Ağırlıklı Konular Tanımlar, Bilgi, Genel Kültür Bir konunun Anlatımı, Karşılaştırma Ders kitabından ilgili konular okunmalı OpenGL programı yazmak, Dönüşümler ve Nesne Oluşturma Ağırlıklı Olmayanlar : C# GDI+ / Java2D / POVRAY programı yazmak Main içindeki ilk OpenGL ayarlamaları Spline Formüllerinin ezberlenmesine gerek yok, Formül olarak Bezier mantığı bilinmeli. Fraktallerin ne olduğunun bilinmesi yeterli Bileşik Dönüşüm Matrisi hesaplaması Ders Kitabı’ndan (Hearn&Baker) Computer Graphics with OpenGL Ağırlıklı olarak okunacaklar : 1. A Survey of Computer Graphics. 5. Geometric Transformations. 6. Two-Dimensional Viewing. 7. Three-Dimensional Viewing. 8. Three-Dimensional Object Representations. 9. Visible-Surface Detection Methods Illumination Models and Surface-Rendering Methods Computer Animation. Aşağıdaki konulara göz gezdirilmesi yeterli : 2. Overview of Graphics Systems. 3. Graphics Output Primitives. 4. Attributes of Graphics Primitives. Aşağıdaki konular final kapsamında değil : 11. Interactive Input Methods and Graphical User Interfaces Color Models and Color Applications Hierarchical Modeling Graphics File Formats


"Üç Boyutlu Görüntüleme" indir ppt

Benzer bir sunumlar


Google Reklamları