COM337 Bilgisayar Grafiği. OpenGL ile Grafik Programlama. Dr. Erkan Bostancı

Benzer belgeler
COM337 Bilgisayar Grafiği. OpenGL ile Grafik Programlama. Dr. Erkan Bostancı

COM337 Bilgisayar Grafiği. OpenGL ile Grafik Programlama. Dr. Erkan Bostancı

Digital Görüntü Temelleri Görüntü Oluşumu

BÖLÜM ÜÇ BOYUTLU NESNELERİ KAPLAMA VE GÖLGELENDİRME

Bilgisayar Grafikleri

CAPTİVATE İLE ETKİLİ SUNUM HAZIRLAMA ADOBE CAPTİVATE CS5 PROGRAMI DEĞERLENDİRME SORULARI

12 TBT / WEB TASARIM ve PROGRAMLAMA ( Not 3 )

Object-oriented Graphics Rendering Engine (OGRE)

Digital Görüntü Temelleri Görüntü Oluşumu

ÖNDER BİLGİSAYAR KURSU. 3D Studio Max Eğitim İçeriği

DirectX ile FPS Oyunu

Ekle sekmesindeki Tablolar grubundaki Tablo seçeneği ile tablo oluşturulur.

Frame Çerçeveler Web sayfasını birden fazla html sayfa ile oluşturmaya imkan tanır. html örnekler\örnek17.html. örnek17.html

Yrd. Doç. Dr. Caner ÖZCAN

Pürüzlü Yüzey Üretimi

Bilgisayarla Görüye Giriş

Uzaktan Algılama (3) Yrd. Doç. Dr. Özgür ZEYDAN Renk Teorileri

Karakter Modellemeye Giriş 2 Halil Türker 20 Ekim 2010 SAMSUN

Skecher (Çizim) Komutları

ÜÇ BOYUTLU ÇİZİME GİRİŞ YÜZEY VE KATILARIN BİRLEŞTİRİLMESİ,ÇIKARILMASI,ARA KESİTLERİNİN ALINMASI:

V-RAY FRAME BUFFER. Switch to RGB chanel: Alpha chanel görüntüden hızlı bir şekilde RGB görüntüye geçilir.

Robot İzleme (Robot Tracing)

Çizim Yapma. Renk. Boyama

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

Grafik Tasarım Serkan AKSU Photoshop CS Araçlar

BÖLÜM-II ERDAS IMAGINE TEMEL KISIM1: IMAGINE VIEWER 1

Aaraçlar Menüsünden Seçeneklerden Görünüm

BodyPaint Bir Ayran Kutusunu Kaplamak Halil Türker 02 Nisan 2010 SAMSUN

WEB TASARIMININ TEMELLERİ

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR SİSTEMLERİ LABORATUARI PÜRÜZLÜ YÜZEY ÜRETİMİ

Rasterize işlemi: Aynı işlem shapeler için de geçerlidir.

Global Mapper da bir haritanın koordinat sistemine bağlanması

BİL-142 Bilgisayar Programlama II

Eyüp Ersan SÜLÜN Photoshop CS4 Kullanım Kursu ADOBE PHOTOSHOP KATMAN HARMANLAMA (KARIŞTIRMA) MODLARI

Bilgisayarla Görüye Giriş

EĞİTİM - ÖĞRETİM YILI 10. SINIF MATEMATİK DERSİ DESTEKLEME VE YETİŞTİRME KURSU KAZANIMLARI VE TESTLERİ

Windows form uygulamalarından alışık olduğumuz sabit piksel koordinatları, WPF ile son buldu. WPF uygulamaları farklı çözünürlüklerde çalışsalar bile

Akademik Uygulamalar ve Linux. Fatih Mehmet AVCU İnönü Üniversitesi Enformatik Bölümü

Koordinat Referans Sistemleri

Bilgisayar Grafiği. Volkan KAVADARLI

Dr. Fahri Vatansever GRAFİK. 6. Hafta GRAFİK MODU. x x (0,0) (x,y) piksel (pixel) EKRAN. (Xmax,Ymax)

BCA611 Video Oyunları için 3B Grafik. Zümra Kavafoğlu

Görünmeyen Yüzey ve Arkayüz Kaldırma

Metin Tabanlı İçerik Oluşturma Araçları

Sadece kabloda sıcaklığın 100º Fahrenheit düşmesine bağlı olarak oluşan mesnet reaksiyonlarını ve yer değiştirmeleri belirleyiniz.

Görüntü İşleme. Dijital Görüntü Tanımları. Dijital görüntü ise sayısal değerlerden oluşur.

Command: zoom [All/Center/Dynamic/Extents/Previous/Scale/Window] <real time>: a

CAEeda TM OM6 KANADI MODELLEME. EDA Tasarım Analiz Mühendislik

Öğrenim Kazanımları Bu programı başarı ile tamamlayan öğrenci;

MOD419 Görüntü İşleme

a) Çıkarma işleminin; eksilen ile çıkanın ters işaretlisinin toplamı anlamına geldiğini kavrar.

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI)

MAYA ile 3D Modelleme

ÖNDER BİLGİSAYAR KURSU. Microsoft Office Kursu Eğitim İçeriği

KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR GRAFİKLERİ LABORATUARI. OpenGL Uygulamaları

Şekil1. Koordinat verileri

Yıldız Teknik Üniversitesi Fen Bilimleri Enstitüsü Bilgisayar Mühendisliği Bölümü. Bilgisayarla Görme. Final

Şekil1. Tüm berileri projeme indirip ilgili tabakalara yerleştirdim.

2 TEMEL ÇİZİM KOMUTLARI

Masa Örneği (standard primitives)

OpenGL Uygulamaları. 1. Giriş. 2. OpenGL. Deney 2

Ağaç (Tree) Veri Modeli

New Project. User guide

TASARI GEOMETRİ SINAV SORULARI

PÜRÜZLÜ YÜZEY ÜRETİMİ

Matlab da 2-boyutlu Grafik Çizimi. Arş. Gör. Mehmet Ali ÜSTÜNER

GÖRÜNTÜ İŞLEME HAFTA 1 1.GİRİŞ

OBJECT GENERATOR 2014

Bilgisayarla Görüye Giriş

Tasarım Aşaması. Eksiksiz Fonksiyonel Tanımlamalar

Görüntü İyileştirme Teknikleri. Hafta-8

BÖLÜM 04. Çalışma Unsurları

Eğitsel Oyun Projesi Raporu. ÖĞRENEREK EĞLENİYORUM Berkay Bekaroğlu

Genel Programlama II

MatLab. Mustafa Coşar

contourf, imagesc, surf, pcolor imagesc patch patch

3-D. İzometrik snap/grid ayarı. İzometrik çizim. İzometrik çizim. Geometrik Modeller. 3-D ye başlangıç. İzometrik çemberler. İzometrik ölçülendirme

4.1. Grafik Sihirbazını kullanarak grafik oluşturma

Revit 2012 Construction Modeling Araçları

TEMEL ÇĐZĐM VE OBJE OLUŞTURMA ĐŞLEMLERĐ

Uzaktan Algılama (3) Öğr. Gör. Dr. Özgür ZEYDAN Renk Teorileri

CAEeda TM GENEL TANITIM. EDA Tasarım Analiz Mühendislik

1 PHOTOSHOP CC YE GİRİŞ

Yüzey Doldurma Teknikleri

Gama ışını görüntüleme: X ışını görüntüleme:

B düğüm noktasında aşağıya doğru 1'' lik yer değiştirme nedeniyle oluşacak mesnet reaksiyonlarını hesaplayınız.

MODÜL BİLGİ SAYFASI. Kursiyer, aşağıdaki performans ölçütlerini yerine getirecektir.

MATEMATİK BİLİM GRUBU III KURS PROGRAMI

BĐLGĐSAYARDAN BAĞIMSIZ YAZDIRMA ĐŞLEMĐ

MODÜL BİLGİ SAYFASI : MAKİNE TEKNOLOJİLERİ : AUTOCAD İLE KATI MODELLEME VE GÖRSELLEŞTİRME

MATEMATİK BİLİM GRUBU II KURS PROGRAMI

geometrik şekillerin birleşmesinden meydana gelen karmaşık yapılardır. Not: Bütün karmaşık grafikler basit şekillerin birleşmesinden oluşur.

SİDRE 2000 ORTAOKULU EĞİTİM-ÖĞRETİM YILI 7. SINIFLAR MATEMATİK DERSİ ÜNİTELENDİRİLMİŞ YILLIK PLAN

Kalıtım (Inheritance)

AMAÇ Araçlardaki Kamera Sistemleri

1 JAVASCRIPT NEDİR? 1

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Seçmeli () Ders Detayları

ÖĞRENME FAALİYETİ 4 ÖĞRENME FAALİYETİ 4

Transkript:

COM337 Bilgisayar Grafiği OpenGL ile Grafik Programlama Dr. Erkan Bostancı

İçerik Işık Resim ve Metin Görüntüleme Texture-mapping

Işık (1/3) OpenGL de bir sahne 8 farklı ışık kaynağı kullanabilir. İlk ışık kaynağı için specular ve diffuse parametreleri öntanımlıdır. Işığın çalışması için glshademodel ve glenable(gl_lighting) çağrılarının yapılması gerekir. Işık kaynakları her yönde (omnidirectional) ışık saçar ama spot ışık olarak da kullanılabilir. Renk değerlerindeki 4. parametre alpha ya da opaklık değeridir. Bu sayede transparan veya ışığı geçiren materyaller oluşturulabilir. Örnek 9

Işık (2/3) RGBA modunda her pikselin bir opaklık değeri vardır. Opaklık değerinin 0 olması o pikseli transparan yapar. Opaklık anti-aliasing de kullanılır. Kenar (edge) içeren bir piksel in bir kısmı alpha değerinde tutulur.

Işık (3/3) Örnek 11

Pikseller, imgeler ve metin OpenGL de bir pencerede bir imge göstermek için şu anki çizim yapılacak konumu ilgili dörtgenin sol alt tarafına getirip pikselleri çizeriz. Metin çizmek için, yine ilgili konuma gidip, tek tek karakterleri çizeriz. OpenGL hem bitmap fontları, hem de stroked fontları destekler. Stroke fontlar çizgilerden oluşur ve bunlara dönüşümler (scale, vs.) uygulanabilir. Metin çizerken, ışıkları kapatmak önemlidir, aksi takdirde OpenGL metinlere de gölgelendirme vermeye çalışır. Bir nedenden dolayı 3B koordinat sisteminizi pencere koordinatlarıyla eşleştirmek isterseniz, örnekteki reshape callback i bunu yapar. Örnek 12

Görüntüleme pipeline ını ters çevirmek Bazı uygulamalarda ekrandaki bir noktaya tıkladığınızda o noktanın 3B uzayda karşılığını bulmak istersiniz. Bu aslında projeksiyondan dolayı eksik tanımlı (ill-defined) bir problemdir ve ters projeksiyon net değildir. Fakat penceredeki (x,y) değerleriyle birlikte bir z değeri de belirtirsek, modelview ve projection matrislerinin tersinin alınmasını sağlayabiliriz. Bu z değeri yakın ve uzak kırpma düzlemleri arasında olmalıdır. gluunproject (winx, winy, winz // window position + z-value modelmatrix, // 16-element modelview matrix projmatrix, // 16-element projection matrix objx, objy, objz) // pointers for object-space position

Texture-mapping (1/7) Bir nesneye yapılan doku ataması (texture-mapping) o nesneyi görsel anlamda zenginleştirir. OpenGL 1, 2, 3 boyutlu texture ları destekler. Texture-mapping yalnızca RGBA modunda çalışır. Bu modda her pikselin bir opaklık değeri vardı. Örnek 13

Texture-mapping (2/7) OpenGL de doku ataması yaparken 3 adım vardır: 1. Öncelikle texture olarak kullanılacak imgeyi belirlememiz gerekli. Örnekte, init fonksiyonun içindeki 2 for döngüsü bir satranç tahtası texture ını oluşturuyor. 2. Ardından, OpenGL texture ı nasıl uygulayacağını belirten parametreleri tanımlıyoruz. 3. Son olarak da, noktalar için texture koordinatlarını tanımlıyoruz. Bu poligonların oluşturulduğu display callback i içinde yapılır ve texture koordinatları poligon un köşe koordinatları ile ilişkilendirilir.

Texture-mapping (3/7) Texture ın kendisini oluşturmanın yanı sıra, bütün parametre ayarlamaları init in içinde yapılıyor. glgentextures ve glbindtexture bir imge için texture nesnesi oluşturur. Önemli olan çağrı glteximage2d (GL_TEXTURE_2D, 0, GL_RGBA, WIDTH, HEIGHT, 0, GL_RGBA,GL_UNSIGNED_BYTE, image); İmgeyi texture map a dönüştürür.

Texture-mapping (4/7) Fonksiyonun parametreleri: 1. GL_TEXTURE_2D: 2 boyutlu texture kullandığımızı belirtir. 2. 0: texture map in derecesin en üst derece yapar. Bu mip-mapping de kullanılır. 3. GL_RGBA: imge verisi hem RGB kanallarını hem de alpha kanalını içerir. 4. WIDTH ve HEIGHT: imgedeki column ve row sayısı. 2 nin bir üstü olmalıdır. 5. 0: Texture map in hiç kenarının olmadığını belirtir. 6. GL_RGBA: kullanılacak texel türünü belirtir. 7. GL_UNSIGNED_BYTE: piksellerin veri türünü belirtir. 8. image: asıl imge verisini içeren pointer.

Texture-mapping (5/7) display callback inde texture mapping açılıyor (enable) ve gltextenvf yüzeydeki herhangi renk bilgisinin yerine texture olacağını belirtiyor. display in içinde 2 tane dörtgen çiziliyor ve her köşe için tanımlanacak texel köşe noktasından önce tanımlanıyor. glbegin (GL_QUADS); gltexcoord2f (0.0, 0.0); glvertex3f (-2.0, -1.0, 0.0); gltexcoord2f (0.0, 1.0); glvertex3f (-2.0, 1.0, 0.0);... Texture mapping nasıl yapılacağını söyleyen parametreleri de anlatacak olursak, init in içindeki gltexparameteri fonksiyonu bu işi yapıyor.

Texture-mapping (6/7) OpenGL de texture map in indeksleri s ve t olarak adlandırılır. Aşağıdaki çağrılar bu indekslerin 0-1 aralığından çıktığında ne yapılması gerektiğini söyler: gltexparameteri (GL_TEXTURE_2D,GL_TEXTURE_WRAP_S, GL_REPEAT); gltexparameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); Burada texture ı tekrarlatmasını söylüyoruz. Bir texel in boyutunun oluşan görüntüdeki bir piksel ile tam olarak eşleşmesi her zaman olmaz. Geometriye göre bazen bir texel birden çok pikseli kaplar (magnification), bazen de bir piksel birden çok texel i kaplar (minification).

Texture-mapping (7/7) OpenGL texture-mapping i her pikseli, texture uzayındaki bir noktaya atarken her köşe ile ilgili değerleri interpolate eder. Bu performans açısından hızlıdır ama görüntü açısından sorunlar yaratabilir. Bu nedenden dolayı OpenGL bize filtreleme imkanı sunar. Nearest-neighbour Two-by-two average Programın hızlı çalışmasını istediğimizden nearest-neighbour kullandık: gltexparameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); gltexparameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);

Aliasing (1/2) Texture-mapping nasıl çalışır? Yüzey render edilirken, frame buffer a yazılacak olan yüzey pikselleri texture map in indekslerine çevrilir. Scaling ve perspektif etkilerin kullanıldığı yüzeyler, orijinal texture map in scale inden farklı görünür. Bu da aliasing oluşturur. Bu sorun hareketli yüzeylerde daha fazla göze çarpar.

Aliasing (2/2) Çözüm: Farklı scale lerde kullanılacak farklı texture lar kullanmak. Mip-mapping Daha düşük çözünürlüklü texture lar kullanmak. Herbiri bir üst seviyenin yarı boyutunda. 32x32, 16x16, 8x8, 4x4, 2x2, 1x1 piksel boyutlarında.