OpenGL® Shadow Nedir?

Bir Open Graphics Library® (OpenGL®) gölgesi, bir gölgenin benzer aydınlatma koşullarında gerçek hayatta nasıl kullanılacağının üç boyutlu (3D) OpenGL® sahnesinde görsel bir yaklaşımdır. Gölgeler, OpenGL®'de uygulanacak karmaşık bir görsel özelliktir, çünkü büyük ölçüde bir sahnede gölgeler için doğuştan gelen bir destek yoktur. Bunun yerine, mevcut çeşitli tamponlar, gölgelendiriciler ve bazı durumlarda belirli grafiklerdeki özel özelliklere erişim sağlayan uzantılar gibi çeşitli araçlar kullanarak bir sahne içindeki nesnelerden ve geometriden gölgeler oluşturmak için kullanılabilecek çeşitli teknikler vardır. kartları. Çoğu durumda, OpenGL® gölge görüntülemenin kalitesi, doğruluğu ve hızı, bir bilgisayarda veya cihazda bulunan grafik donanımının işlem gücü ve belleği ile doğrudan ilgilidir. Bir OpenGL® gölgesi uygulamanın daha popüler yöntemlerinden bazıları gölge hacimleri, gölge haritalama ve ışın izlemedir.

OpenGL® gölge desteğine sahip bir uygulama oluşturmak matematiksel bilgi ve OpenGL®'in nasıl çalıştığını derinlemesine kavramanızı gerektirir. OpenGL® büyük ölçüde dinamik ve gerçek zamanlı olarak oluşturulan 3B sahneler oluşturmak için kullanılır, bu nedenle gölgeler oluşturmak için kullanılan algoritmalar yalnızca hız için optimize edilmemeli, aynı zamanda kaynakların tüketimi ve render için kullanılan grafik boru hattında neden olabilir. Bu sebeplerden dolayı, ışın izleme adı verilen gölge oluşturmanın en temel yöntemi, tam 3 boyutlu sahneler için genellikle pratik değildir, çünkü çok uzun zaman alabilir.

Işın izleme temel olarak kameranın görüntüleme düzleminden veya konumundan bir sahneye kadar bir nesnenin yüzeyine kadar hayali bir çizgiyi veya ışını izler ve daha sonra bir veya daha fazla ışık kaynağının ve diğer faktörlerin pozisyonuna dayanarak yüzeyin rengini hesaplar. 3B sahnenin iki boyutlu (2B) bir yüzeye çekildiği rasterleştirme işlemi sırasında, gösterilebilmesi için, çizilen her piksel üzerinde ve özellikle dokularla veya diğerleriyle ışın izleme işlemi gerçekleştirilmelidir. yüzey özellikleri, aynı pikselleri birkaç kez değerlendirmeniz gerekebilir. Bu, gerçek zamanlı ışın izleme anlamına gelir, ancak gölgeleri doğru bir şekilde oluşturacak olsa da, genellikle pratik değildir.

OpenGL® gölgesi oluşturmak için kullanılabilecek başka bir yöntem de gölge eşlemesi olarak bilinir. Bu yöntem, bir sahneyi ışık kaynağının açısından ışık kaynağından sahne içindeki farklı nesnelerin yüzeylerine bir dizi uzaklık olarak oluşturmak için derinlik veya şablon tamponunu kullanır. Sahne daha sonra, her pikselin tampon içinde belirli bir mesafe aralığında olup olmadığını kontrol ederek pikselin yandığını veya gölgeli olduğunu gösteren doğru bir bakış açısıyla ikinci kez oluşturulur. Gölge eşleştirmeyi kullanmak hafızayı yoğunlaştırabilir ve birden fazla ışık kaynağına sahip sahnelerle birden fazla açıdan birden fazla harita oluşturmayı içerebilir.

Gölge hacimleri, diğer bazı yöntemlerden daha doğru bir OpenGL® gölgesi oluşturmanın bir yoludur, ancak kendi sorunlarını sunar. Bir gölge hacmi temelde, bir nesnenin ışık yüzeyinden ışık kaynağından uzağa doğru genişleyen bir sahnede görünmez bir geometri parçasıdır. Bu cilt, sesin kaynaklandığı yüzeyin gölgesine düşüp düşmediklerini görmek için diğer nesnelere karşı kontrol edilebilir. Bu prosedür çok karmaşık olabilir ve sonuçta hız için optimize edildiğinde görsel eserler oluşturabilir.