Bilgisayar Grafiği (Computer Graphics)

OpenGL ile sis (FOG)

Yazan : Şadi Evren ŞEKER Bilgisayar grafiklerinde uzakta olan objelerin, uzaklık hissinin arttırılması için puslu gösterilmesi mümkündür. Buradaki amaç şekillerin renklerinin daha gri tonlara yakın gösterilmesi ve bu sayede uzaklık hissinin oluşturulmasıdır. Aynı zamanda dumanlı ortamların modellenmesi için de kullanılabilir. Sis etkisi oluşturmak için aşağıdaki OpenGL kodlarından faydalanılabilir: glEnable(GL_FOG); { GLfloat fogColor[4] = {0.5, 0.5, [...]

Şadi Evren ŞEKER tarafından, 17/12/2008 tarihinde yazıldı. | Bilgisayar Grafiği (Computer Graphics) | A yorum var

OpenGL ile Arkayüz (Opengl Backface)

Yazan : Şadi Evren ŞEKER Bu yazının amacı OpenGL ile arkaplanda olan şekillerin gösterilmesi ve gizlenmesidir. Şekillerin arkaplan görüntüsünün gizlenmesinin ve gösterilmesi aşağıda gösterilmiştir. İki şekil arasındaki fark birinci şekilde arkaplanda görüntülenen yüzlerin, ikinci şekilde görüntülenmemesidir. Bu işlemi yapan temel fark aşağıda verilen parametrelerdir. Öncelikle gösterilecek olan polygon mod’unu ayarlamamız gerekiyor: GLPolygonMode(GL_FRONT_AND_BACK, GL_LINE); Yukarıdaki satır [...]

Şadi Evren ŞEKER tarafından, 16/12/2008 tarihinde yazıldı. | Bilgisayar Grafiği (Computer Graphics) | A yorum var

Derinlik Vurgusu ( Depth Cueing )

Yazan : Şadi Evren ŞEKER Bilgisayar grafiklerinde derinlik hissinin oluşturulması amacıya uzaktaki imgeciklerin (pixel) donuklaştırılmasını hedefleyen yöntemdir. kabaca en uzak imgeciğin (pixel) 1.0 ve en yakın imgeciğin 0.0 değeri alabileceğini düşünürsek: fderinlik(m) = (dazami-d)/(dazami-dasgari) Yukarıda verilen bu derinlik fonksiyonu verilen mesafe için bir oran elde etmektedir. Bu fonksiyondan elde edilen katsayı ile imgeciğin değeri çarpılmaktadır. [...]

Hat Tarama Algoritması (ScanLine Algorithm)

Yazan : Şadi Evren ŞEKER Bilgisayar grafiklerinde görünen yüzeylerin belirlenmesi için kullanılan algoritmanın ismidir. Scan Line Rendering olarak da isimlendirilmektedir. Yukarıdaki şekilde de görüldüğü üzere iki doğru taraması yapılmış ve bu doğruların hangi yüzeyleri gördüğü nokta nokta olarak kodlanmıştır. Algoritma aşağıdaki adımlardan oluşmaktadır: 1. Yatay hatlarda tarama yapıldığı için x değeri arttırılarak görüntülenmesi gereken kenarları [...]

A-Hafızalama (A-Buffer)

Yazan : Şadi Evren ŞEKER Bilgisayar grafiklerinde birden fazla yüzün aynı nokta üzerine görüntüsünün düşmesi (projection) durumunda hangi yüzün görüntüleneceğine karar vermekte kullanılan yöntemdir. Derinlik hafızalama yönteminin şeffaf yüzleri göstermedeki yetersizliği üzerine geliştirilmiştir. Buradaki amaç bir noktadan bakıldığında birden fazla yüzün görünmesi halinde nasıl bir görüntü oluşturulacağını belirlemektir. A-Hafızalama yöntemi veri yapısı olarak bağlı liste [...]

Derinlik Hafızalama (Depth Buffering , z-buffer)

Yazan : Şadi Evren ŞEKER Bilgisayar Grafiklerinde bir görüntünün oluşturulması sırasında aynı noktaya düşen birden fazla yüz (polygon) bulunuyorsa bu yüzlerden hangisinin nasıl görüntüleceğini belirleyen hafıza yönetimidir. Bu durumu aşağıdaki şekil üzerinden anlaşılabilir: Şekilde bir görüntü düzlemindeki bir noktanın (x,y) oluşması için etkili olan 3 yüzey gösterilmiştir. Aslında bu yüzeylerin herbirisi ayrı ayrı ele alındığında [...]

Arka Yüz Algılama (Back Face Detection)

Yazan : Şadi Evren ŞEKER Bilgisayar grafiklerinde bir şeklin herhangi bir yüzünün görüntülenip görüntülenmeyeceğine karar verilmesi işlemidir. Aşağıdaki şekli ele alalım: Yukarıdaki şekilde Görüntü vektörü (V view) ve piramiti oluşturan yüzlerden birisinin Normal vektörü verilmiştir. Bir yüzün (polygon) görüntülenip görüntülenmemesi: Ax + By + Cz < 0 veya  V . N > 0 formülü sağlanıyorsa [...]

OpenGL ile Perspektif

Yazan : Şadi Evren ŞEKER OpenGL kullanılarak perspektif değerlerinin 3 boyutlu uzayda uygulanması için aşağıdaki verilerin belirlenmesi gerekir: kameranın konumu kameranın açısı (Baktığı yön) perspektif şekli ve katsayıları Yukarıdaki maddelerden ilki opengl ortamında, glLookAt fonksiyonu ile programlanmaktadır. glLookAt(eyex, eyey, eyez, atx, aty, atz, upx, upy, upz); Yukarıdaki değerleri verilen fonksiyonun kullanımı aşağıdaki şekilde gösterilmşitir: Buna [...]

Şadi Evren ŞEKER tarafından, 02/12/2008 tarihinde yazıldı. | Bilgisayar Grafiği (Computer Graphics) | 2 yorum var

OpenGL ve Kamera Görüntüsü (Camera Viewing)

Yazan : Şadi Evren ŞEKER OpenGL kütüphanesi ile uzayda istenilen bir noktaya kamerayı koymak ve bu noktadan istenilen bir yöne istenilen açı ile bakmak mümkündür. Bu işlemin 3 öğesi bulunur: Kameranın bulunduğu koordinatlar Kameranın baktığı yöndeki noktanın koordinatları Kameranın bu eksen üzerindeki açısı Kısaca bu durum aşağıdaki şekilde görüntülenmiştir: Yukarıdaki şekilde de gösterildiği üzere kamera [...]

Şadi Evren ŞEKER tarafından, 19/11/2008 tarihinde yazıldı. | Bilgisayar Grafiği (Computer Graphics) | A yorum var

Şev Yansıması (Oblique Projection)

Yazan: Şadi Evren ŞEKER Bilgisayar grafiklerinde şev veya eğri izdüşümü olarak geçen yansıma şekline göre bir şeklin sanki bir ışık kaynağından gölgesi düşüyormuş gibi yansımadıdır. Buna göre şekil yansıdığı düzlem üzerine eğilmiş olduğu için bu izdüşümüne şev izdüşümü adı verilir. Yukarıdaki şekilde (x,y,z) noktasının düzlemle  açısı yapan çizginin düzlem üzerinde oluşturduğu izdüşüm gösterilmiştir. Buna göre [...]

Şadi Evren ŞEKER tarafından, 17/11/2008 tarihinde yazıldı. | Bilgisayar Grafiği (Computer Graphics)

İzometrik İzdüşüm (Isometric Projection)

Yazan : Şadi Evren ŞEKER Bilgisayar grafiklerinde, bir paralel izdüşüm çeşidi olan dik izdüşümün alt çeşidi olan eksensel izdüşümün özel bir halidir. Buna göre bir izdüşüm düzleminin bütün eksenleri kesmesi durumudur: Yukarıdaki şekilde izdüşümün alındığı düzlem bütün eksenler ile kesişmiştir. Bu kesişim sonucunda eksensel izdüşümlerden farklı olarak yansıma alınır. 147 views

Eksensel İzdüşüm (Axonometric Projection)

Yazan : Şadi Evren ŞEKER Bilgisayar grafiklerinde kullanılan bir izdüşüm yöntemidir. Paralel izdüşümün bir çeşidi olan dik izdüşümün (orthonogal projection) bir çeşididir. Buna göre bir objenin eksenlere olan yansıması alınır. Yani iz düşümün alınacağı düzlem iki ekseni kesen ve bir eksene paralel olarak duran bir düzlemdir. Şekilde de görüldüğü üzere eksenlerdeki izdüşümleri alınmıştır. 136 views

Dik İzdüşüm (Orthogonal, Orthographic Projection)

Yazan : Şadi Evren ŞEKER Bir düzleme şeklin diklemesine olarak yansıtılmış halidir. Paralel izdüşümün (Parallel Projection) özel bir halidir.  Aşağıda bu izdüşüm şekli tasvir edilmiştir: Yukarıdaki izdüşüm şeklinde de görüldüğü üzere nesnenin eksenlere izdüşümü gösterilmiştir. Bu izdüşüm şekline eksnelere paralel izdüşüm olduğu için, dik izdüşümün bir alt çeşidi olan eksensel izdüşüm (axonometric) ismi de verilmektedir. [...]

Paralel İzdüşüm (Parallel Projection)

Yazan : Şadi Evren ŞEKER İzdüşüm (Projection) şekillerinden brisidir. Buna göre bir şeklin bir düzlem üzerine izdüşümü bulunurken o şeklin düzleme paralel olan yapısı esas alınır. Yukarıdaki şekilde bir çizginin bir düzleme izdüşümü gösterilmiştir. Görüldüğü üzere bu çizginin düzlemle paralel olan izdüşümü alınmıştır. Bu düzlemle yapılan açının sıfırlanması ve trigonometrik olarak izdüşümünün alınması olarak da [...]

İzdüşüm (Projection)

Yazan : Şadi Evren ŞEKER Bilgisyar grafiklerinde bir görüntünün izdüşünün hesaplanması için kullanılan başlığın adıdır. Kısaca aşağıdaki izdüşümlerden herhangi birisini karşılamak için kullanılıyor olabilir. Paralel İzdüşüm (Parallel) Dik İzdüşüm (Orthogonal) Eksensel İzdüşüm (Axonometric) İzometrik İzdüşüm (Isometric) İki eksenli (Dimetric) Üç Eksenli (Trimetric) Şev İzdüşüm (Oblique) Süvari İzdüşümü (Cavalier) Kabin İzdüşümü (Cabinet) Perspektif İzdüşüm (Perspective) Yukarıda, [...]

çoklu şekil değiştirmeler (multiple transformations)

Yazan : Şadi Evren ŞEKER OpenGL üzerinde şekil değiştirme işlemleri ilgili yazılarda açıklanmıştır. Bu yazının amacı şekil değiştirme işlemlerinin birden fazla olması durumunda kullanılabilecek OpenGL fonksiyonlarını açıklamaktır. Öncelikle OpenGL içerisinde anlık olarak tek bir matris aktiftir. Şekiller basılmadan önce bu masfuf(matrix) ile çarpılarak transform olup ekrana basılırlar. Herhangi bir anda bu matirisin temizlenmesi için birim [...]

Şadi Evren ŞEKER tarafından, 11/11/2008 tarihinde yazıldı. | Bilgisayar Grafiği (Computer Graphics) | A yorum var

OpenGL Şekil Değiştirme İşlemleri (Transformations)

Yazan : Şadi Evren ŞEKER Bu yazının amacı opengl kütüphanesi kullanılarak şekil değiştirme işlemlerinin nasıl yapıldığını açıklamaktır. Temel olarak 3 tip şekil değiştirme işlemi vardır: Taşıma (Translate) Döndürme(Rotate) Ölçekleme (Büyültüp küçültmr, Scaling) Bu işlemlerin hepsi için OpenGL kütüphanesinde hazır fonksiyonlar bulunmaktadır. Aşağıda her işlem için kullanılan fonksiyonlar ve bu fonksiyonların açıklaması bulunmaktadır. Ayrıca birden fazla [...]

Cohen-Sutherland Doğru Kesme Algoritması (Line Clipping Algorithm)

Yazan : Şadi Evren ŞEKER Bu algoritmanın bilgisayar grafiklerindeki kullanımı, görüntülen alan dışına uzanan doğruların kesilmesidir. Yani büyük bir uzayda sadece kısıtlı bir alan gösterilmektedir. Bu algoritma sayesinde gösterilmeyen yerlerde bulunan çizgiler (doğrular) hesaplanmadan sadece gösterilen alan için hesaplama yapılarak performans arttırımı olabilmektedir. Algoritmanın çalışması bir doğrunun verilen bir düzlem içerisinde olup olmamasını hesaplamaya dayanmaktadır. [...]

Homojen Koordinatlar (Homogenous Coordinates Form)

Yazan : Şadi Evren ŞEKER Homojen koordinat formunda kısaca aşağıda gösterilen 4×4 matrisin şekil değiştirmede (transformation) kullanılmasıdır. Bu matris kullanımı sırasında üç boyutlu bir ortam için (x,y,z) koordinatlarından oluşan Kartezyen uzayın her eksendeki dönüşümünü göstermek mümkündür. Bu ortak dönüşüm matrisinden ve her eksenin birbirine dönüşümünün kolaylığından dolayı homojen koordinat formu ismin almış olan dönüşüm matrisine [...]

OpenGL Geometrik Nesneler (Geometric Objects)

Yazan : Şadi Evren ŞEKER OpenGL’in araç kutusu olarak adlandırılabilecek GLUT grafik kütüphanesi araç kutusu (Graphics Library Utility Kit) içinde tanımlı olan geometrik nesneler aşağıda sıralanmış ve redbook üzerindeki bağlantıları verilmiştir: 11.1 glutSolidSphere, glutWireSphere 11.2 glutSolidCube, glutWireCube 11.3 glutSolidCone, glutWireCone 11.4 glutSolidTorus, glutWireTorus 11.5 glutSolidDodecahedron, glutWireDodecahedron 11.6 glutSolidOctahedron, glutWireOctahedron 11.7 glutSolidTetrahedron, glutWireTetrahedron 11.8 glutSolidIcosahedron, glutWireIcosahedron [...]

Şadi Evren ŞEKER tarafından, 10/11/2008 tarihinde yazıldı. | Bilgisayar Grafiği (Computer Graphics) | A yorum var

Ölçeklendirme (Scaling)

Yazan : Şadi Evren ŞEKER Bilgisayar grafiklerinde şekil değiştirme işlemlerinden birisidir. Bu işlemin amacı bir şekli mevcut konumu ve yönü bozulmadan büyültmek ve küçültmektir (Zoom in , Zoom out). Aşağıdaki örnekte gösterilen ölçekleme işleminin formülü verilmiştir: Yukarıdaki ölçekleme işlemi için : x’ = x . sx y’ = y . sy formülleri kullanılabilir. Buradaki sx [...]

Şadi Evren ŞEKER tarafından, 04/11/2008 tarihinde yazıldı. | Bilgisayar Grafiği (Computer Graphics) | 2 yorum var

2 Boyutlu Döndürme (2D Rotation)

Yazan: Şadi Evren ŞEKER Bilgisayar grafiklerinde şekil değiştirme işlemlerinden birisidir. Bu işlemin amacı bir şekli mevcut konumunu ve şeklini bozulmadan bir eksen etrafında döndürmektir. Aşağıdaki örnekte gösterilen döndürme işleminin formülü verilmiştir: x’ = r.cos(Φ+Θ) y’ = r.sin(Φ+Θ) Yukarıdaki bu formülasyonu aşağıdaki matris ile ifade etmek mümkündür: cos Φ    -sin Φ sin Φ     cos Φ Bu [...]

2 Boyutlu Şekil Dönüşümleri (2D Transformations)

Yazan : Şadi Evren ŞEKER Bilgisayar grafiklerinde temel olarak 3 tip şekil hareketinden bahsedilebilir. Bunun dışındaki bütün şekil değiştirmeler de bu 3 tipin birleşimine indirgenebilir. Bu 3 tip şekil değişimi: Taşıma (Translation) Döndürme (Rotation) Ölçekleme (Scaling) Yukarıdaki bu 3 tip şekil hareketine karşılık şeklin yapısal değişimi de 2 tiptir: Yansıma (Reflection) Eğme (Shearing) Yukarıdaki bu [...]

2 boyutlu Taşıma (2D Translation)

Yazan : Şadi Evren ŞEKER Bu işlemin amacı bir şekli mevcut konumundan bozulmadan farklı bir konuma taşımaktır. 2 boyulu aşağıdaki doğruyu ele alalım: Yukaıdaki şekilde başlangıç noktası olan noktanın (x,y) koordinatlarından (x’,y’) koordinatlarına taşınması tasvir edilmiştir. Bu işlemi basitçe aşağıdaki denklemle yazabiliriz: x’ = x + Δx y’ = y + Δy Yukarıdaki bu gösterime [...]

OpenGL ile menülerin tasarımı

Yazan: Şadi Evren ŞEKER OpenGL ve bağlantılı olduğu GLUT kütüphanesi sayesinde ekranda açılır menüler elde etmek mümkündür. Bunun için main fonksiyonu altında menü tanımı yapılmalıdır. bu işlem için glutCreateMenu fonksiyonu kullanılır. Bu fonksiyonun dönüş değeri int’tir. Aldığı parametre ise bir fonksiyon göstericisidir. Örneğin aşağıda bir menu oluşturulmuş ve menuden bir öğenin seçilmesi sonucunda çağırılacak fonksiyon [...]

Şadi Evren ŞEKER tarafından, 03/11/2008 tarihinde yazıldı. | Bilgisayar Grafiği (Computer Graphics) | A yorum var