OpenGL Performer - OpenGL Performer

OpenGL Performer, daha önce ... olarak bilinen IRIS Performer ve genellikle basitçe şöyle anılır Performans, ticari bir yardımcı program kodu kitaplığıdır. OpenGL etkinleştirmek amacıyla zor gerçek zamanlı görsel simülasyon uygulamaları. OpenGL Performer, SGI sürdürmeye ve geliştirmeye devam ediyor. OpenGL Performer, IRIX, Linux ve birkaç versiyonu Microsoft Windows. Her ikisi de ANSI C ve C ++ bağlamalar mevcuttur.

Tarih

Sanatçı, 1991 yılında SGI'lardan bir grubun Açık Mucit Daha sonra IRIS Inventor olarak bilinen proje, programlanabilirlik kolaylığından çok performansa odaklanmaya karar verdi. Inventor, kullanımı kolay nesneler ve bunlarla etkileşime girmek için çeşitli UI öğeleri sunarken, Performer bir sahne grafiği performans nedenleriyle anında yeniden düzenlenebilen bir sistem, bir işleme görevinin çeşitli geçişlerinin birden fazla paralel olarak gerçekleştirilmesine izin verir İş Parçacığı. Performer, sahnenin histerezis bantları ve solma yetenekleriyle ayrıntı düzeylerini tanımlamasına izin verdi. Çerçeve hızı ve istatistikler izlendi ve bir 'stres' faktörü hesaplandı. Bu, hedef kare hızını korumak için ayrıntıyı ortadan kaldırarak sahnedeki ayrıntı düzeyini daha da ağırlıklandırmak için kullanılabilir.

Performer'ın diğer temel özellikleri simetrik çoklu işleme yeteneklerinin kullanılması, çoklu grafik kanallarının desteklenmesi ve üst düzey sistemlerin ölçeklenebilir kaynaklarını kullanma becerisiydi. Bu bağlamda Performer, altta yatan karmaşıklık göz önüne alındığında aslında kullanımı basitti. Uygulama ayırma ve oluşturma, farklı fiziksel işlemcilere kilitlenmiş farklı iş parçacıklarında çalışıyor olabilir. Çok kanallı (çoklu grafik alt sistemleri) bir konfigürasyonda, her bir grafik borusuna işlem yapmak, özel bir iş parçacığına sahip olacak ve benzer şekilde ayırma da özel bir işlemciye sahip olacaktır. Veritabanı sayfalama, doku sayfalama ve nokta ışık kaynağı yönetimi (uçuş simülasyonu için) gibi gelişmiş özellikler ve kavşak testi için çarpışma algılama ayrıca özel işlemcilere sahip olacaktı. eşzamansız G / Ç ve grafik performansını olumsuz yönde etkilemeden işlemenin gerçekleşmesi. Bu karmaşıklığın çoğu, iş parçacıkları ve süreçler arası iletişimi kurmak için yapılabilecek nispeten yüksek seviye yapılandırma çağrılarına sahip daha basit bir sahne grafiği API'sinin altında gizlendi.

Gerçekleştiricinin yerel bir dosya biçimi yoktu, yalnızca aşağıdaki gibi 3. taraflardan eklenti yükleyicileri MultiGen OpenFlight format yükleyici. Benzer şekilde, varsayılan çalışma zamanı yoktu, örnek kod vardı ve sıklıkla kullanılan ve sıklıkla değiştirilen 'mükemmel' örnek uygulama. Bu muhtemelen kullanımı zor olduğu için ününe katkıda bulunmuştur.

1990'ların ortalarında, Inventor ve Performer'ın birleştirilememesi için hiçbir neden olmadığı ortaya çıkmaya başladı. Bu yol açtı Cosmo 3D SGI'nın hem Inventor hem de Performer'ı inşa etmeyi planladığı proje (şimdi esasen API şimleri SGI platformunda gelecekteki çalışmalar için yeni ve daha yüksek düzeyde standartlaştırılmış bir API olarak tanıtmanın yanı sıra. Ancak Cosmo 3D'nin ilk beta sürümünden sonra SGi, Intel ve IBM (ve sonra ARALIK ) yaratmak OpenGL ++, aslında Cosmo'nun temizlenmiş bir sürümü. Bu proje, SGI, dikkatini neredeyse aynı projeye çevirdiğinde öldü Microsoft olarak bilinir Fahrenheit aynı zamanda öldürüldü. Bugün Inventor ve Performer ayrı ürünler olmaya devam ediyor ve birleşik versiyonların hiçbiri gün ışığını görmedi.

Özellikleri

Yürütücü esas olarak iki kitaplıktan oluşur: alt düzey libpr ve üst düzey libpf. libpr kütüphane, bir kavramına dayalı olarak yüksek hızlı oluşturma işlevlerine nesne yönelimli bir arayüz sağlar. pfGeoSet ve bir pfGeoState. Bir pfGeoSet çokgenler veya çizgiler gibi grafik temel öğelerinden oluşan bir koleksiyondur. Bir pfGeoState Aydınlatma, şeffaflık ve doku oluşturma gibi belirli bir pfGeoSet ile ilgili özellikleri kapsüller.

libpf kütüphane, hiyerarşik sahne grafikleri, sahne işleme (simülasyon, kesişim, ayırma ve çizim görevleri), ayrıntı düzeyi yönetimi, eşzamansız veritabanı sayfalama, dinamik koordinat sistemleri, ortam modelleri, ışık noktaları ve benzerlerinin oluşturulması ve manipülasyonu için işlevler içerir. üzerinde. Bu kitaplık aynı zamanda birden çok grafik işlem hattına yayılmış birden çok görünüm penceresi için şeffaf destek sağlar.

Diğer Sanatçı kitaplıkları -libpfutil, libpfdb, libpfui, vb. - optimize edilmiş geometri, veri tabanı dönüştürme, cihaz girişi oluşturma (harici cihaz girişi gibi sinek kutuları ve MIL-STD-1553 mux veri yolları), hareket modelleri, çarpışma modelleri ve aşağıdaki gibi yaygın veri formatlarını destekleyen formattan bağımsız bir veritabanı arayüzü Açık Mucit, OpenFlight, Tasarımcının Tezgahı, Medit, ve Wavefront.

Dış bağlantılar