OpenGL® Toplama Nedir?

Bilgisayar programlamasında OpenGL® toplama, üç boyutlu (3B) bir sahne içindeki hangi nesnenin sahne oluşturulduktan sonra ekranda belirli bir noktada bulunacağının belirlenmesi işlemidir. Aynı zamanda bir noktada veya bir kutunun içindeki birden fazla nesneyi bulmaya da işaret edebilir. Çoğu zaman, OpenGL® toplama, bir kullanıcının fare imleci ile ekranda seçmeye çalıştığı 3B nesnesini belirlemek için kullanılır. Bu işlem basit gibi görünse de, OpenGL®'in onu oldukça karmaşık hale getirebilecek bir sahneyi nasıl oluşturduğuna dair birkaç incelik var. Ek olarak, bazı grafik kartlarında ve OpenGL® toplama işlevinin başarısız olmasına ve yanlış sonuçlar vermesine neden olabilecek sürücülerde içsel aksaklıklar vardır.

Bir kullanıcı bilgisayar monitöründe bir 3D sahneye bakarken, ortaya çıkan görüntü sahnenin görüntülenmesi olarak bilinir. Sahnesi aslında kendileri sadece sahnenin alanı içerisinde 3B noktaların koleksiyonları olan ilkel şekiller veya çokgenler topluluğu olarak bellekte saklanır. Bilgisayar, sahnedeki nesneleri işleyen çoğu temel işlevi gerçekleştirmek için bazen mutlak koordinatlar olarak adlandırılan dünya koordinatlarını kullanır. Çoğu uygulamada, kullanıcı sahnenin görüntüsünü farklı açılardan yönetebilir, böylece nesneler farklı açılardan görülebilir. Sahnede kullanıcının sanal konumuna kamera açısı veya kamera konumu denir.

OpenGL® toplama işleminin karmaşıklığı, farenin iki boyutlu (2B) ekran üzerindeki konumunu kameradaki olası bir konum ve açıyla olası bir konum ve açıdan belirlemekten gelir. Ek olarak, insan izleyicinin perspektifinden görüntü oluşturma işlemi gerçekten 2B olduğundan, kullanıcının sahnenin içine fare tıklaması derinliğini sağlaması mümkün değildir. OpenGL® toplama işlevi bu karmaşık sorunu iki şekilde çözer.

Birincisi, izleyicinin soyut olduğu yeri çevirmek için bir dizi ayrı hesaplama yapmak yerine, ardından oluşturma penceresinde bir nesneyi bulmak yerine, işlev aslında sahneyi normalde çalışırken olduğu gibi işleme tabi tutmasıyla oluşturuyor. seçim görüntülenmiyor, yalnızca nesnelerin doğru konumlarını hesaplamak için kullanılır. Aradaki fark, kullanıcının görebileceği tüm alanı oluşturmak yerine, yalnızca farenin bulunduğu alanı oluşturmasıdır. Bu, oluşturulan nesnelerin teknik olarak fare işaretçisinin bulunduğu noktada olduğu anlamına gelir.

Seçilen alanın derinliğini belirtmek için hiçbir yolu olmayan ikinci sorun, sahnede fare koordinatları altındaki tüm nesnelerin döndürülmesiyle çözülür. OpenGL® toplama işlevi, bir dizideki tüm nesneleri, izleyicinin konumundan ne kadar uzakta olduklarıyla birlikte döndürür. Bu, bir programın istenirse en yakın nesneyi hızla bulmasını sağlar.

OpenGL® toplama işlemini görselleştirmenin bir yolu, bazen 3D programlamada ışın olarak da adlandırılan, fare işaretçisinin konumundan sahneye ve izleyicinin konumundan uzağa hareket eden bir çizgi hayal etmektir. Bu ışının temas ettiği her nesne, görüntüleyiciden ne kadar uzakta olduğu ile birlikte bir dizi nesneye eklenir. Bu, bir OpenGL® toplama şeklinin nasıl çalıştığının çok basit bir açıklamasıdır.

OpenGL®'de bir nesne toplama yöntemi, bir nesneyi renge göre konumlandırmayı içerir ve önemli ölçüde daha hızlı olabilir. Bu yöntem sahneyi oluşturur, ancak nesnelere ışıklandırma ve doku uygulamak yerine, tek ve sade bir renkle oluşturulur. Her nesne veya nesne grubunun kendine özgü bir rengi vardır. Sahne yalnızca bellekte oluşturulur ve görüntülenmez, bu nedenle kullanıcının gördüğü şeyi etkilemez. Nesneler arasında 3B çarpışmalar aramak yerine, fare imlecinin konumundaki renk yerine döndürülür ve bu renk belirli bir nesneyle ilişkilendirilir.