Yazılım oluşturma - Software rendering

Bir cihazda çalışan yazılım oluşturucu GPU.

Yazılım oluşturma bilgisayar yazılımı aracılığıyla bir modelden görüntü oluşturma işlemidir. Bağlamında bilgisayar grafiği oluşturma, yazılım oluşturma, bağımlı olmayan bir oluşturma sürecini ifade eder grafik donanımı ASIC'ler, gibi grafik kartı. Oluşturma tamamen İşlemci. Her şeyi (genel amaçlı) CPU ile işlemek, grafik donanımının (sınırlı) yetenekleriyle sınırlı olmaması gibi temel avantaja sahiptir, ancak aynı hızı elde etmek için daha fazla yarı iletkene ihtiyaç duyulması dezavantajına sahiptir.

Rendering; mimari, simülatörler, video oyunları, filmler ve televizyon görsel efektlerinde ve tasarım görselleştirmede kullanılır. Rendering, bir animasyon sürecindeki son adımdır ve gölgeleme, doku haritalama, gölgeler, yansımalar ve hareket bulanıklaştırma gibi görsel efektlerle modellere ve animasyona son görünümü verir.[1] Oluşturma iki ana kategoriye ayrılabilir: gerçek zamanlı oluşturma (çevrimiçi oluşturma olarak da bilinir) ve ön işleme (çevrimdışı oluşturma olarak da bilinir). Gerçek zamanlı oluşturma, bir sahneyi etkileşimli olarak oluşturmak için kullanılır. 3D bilgisayar oyunları ve genellikle her kare birkaç milisaniye içinde oluşturulmalıdır. Çevrimdışı işleme, her karenin tamamlanması saatler veya günler sürebilen gerçekçi görüntüler ve filmler oluşturmak veya programcılar tarafından karmaşık grafik kodlarında hata ayıklamak için kullanılır.

Gerçek zamanlı yazılım oluşturma

Gerçek zamanlı işleme için odak performans üzerindedir. En eski doku eşlemesi yapılan PC'ler için gerçek zamanlı yazılım oluşturucular, 3B geometri yanılsamasını yaratmak için birçok numara kullandı (gerçek 3D daire ile sınırlıydı veya Gouraud gölgeli çokgenler esas olarak istihdam uçuş simülatörleri.) Ultima Underworld örneğin, sınırlı bir yukarı ve aşağı bakmaya, eğimli zeminlere ve odaların üzerinde odalara izin verdi, ancak Sprite tüm detaylı nesneler için. Bu oyunlarda kullanılan teknoloji şu anda şu şekilde sınıflandırılmıştır: 2.5D.

Mimari olarak modern 3B oyunlara benzeyen ilk oyunlardan biri 6DoF, oldu İniş, öne çıkan 3B modeller tamamen bitmapten yapılmıştır dokulu üçgen çokgenler. Voksel tabanlı grafikler, hızlı ve nispeten ayrıntılı arazi oluşturma için de popülerlik kazandı. Delta Force ama popüler sabit işlevli donanım sonunda kullanımını imkansız hale getirdi. Deprem etkili bir yazılım oluşturucuya sahiptir. Michael Abrash ve John Carmack. Popülerliği ile, Deprem ve o zamanın diğer poligonal 3B oyunları, grafik kartları ve daha fazla oyun donanım kullanmaya başladı API'ler sevmek DirectX ve OpenGL. Yazılım oluşturma, birincil oluşturma teknolojisi olarak düşmüş olsa da, 2000'li yılların sonundaki birçok oyunda, yedek olarak bir yazılım oluşturucu vardı. Gerçek dışı ve Gerçekdışı Turnuva örneğin, o dönemin CPU'larında keyifli kalite ve performans üretebilen yazılım oluşturuculara sahiptir. Sonlardan biri AAA oyunları donanım oluşturucu olmadan Outcast, gelişmiş voksel teknolojisine sahip olmakla birlikte aynı zamanda doku filtreleme ve çarpma eşleme grafik donanımında olduğu gibi.

İçinde video Oyun konsolu ve arcade oyunu Piyasalarda, 3D'nin evrimi daha ani oldu, çünkü her zaman büyük ölçüde tek amaçlı yonga setlerine güvendiler. 16 bit konsollar gibi oyunlarda RISC hızlandırıcı kartuşlar kazandı. Yıldız tilki ve Virtua Yarışı uyarlanmış komut setleri aracılığıyla yazılım oluşturmayı uygulayan. Jaguar ve 3DO 3D donanımla birlikte gönderilen ilk konsollardı, ancak Oyun istasyonu bu tür özellikler çoğu oyunda kullanılmaya başlandı.

1990'ların sonlarından 2000'lerin başlarına kadar çocuklar ve sıradan oyuncular için oyunlar (eski sistemleri veya sistemleri kullanan) tipik olarak bir geri dönüş olarak bir yazılım oluşturucu kullanıyordu. Örneğin, Oyuncak Hikayesi 2: Kurtarmaya Buzz Işık Yılı oyunu oynamadan önce donanım veya yazılım oluşturmayı seçme seçeneğine sahipken, diğerleri Yarı ömür varsayılan olarak yazılım moduna geçer ve Seçenekler menüsünde OpenGL veya DirectX kullanmak üzere ayarlanabilir. Bazı 3B modelleme yazılımlarında ayrıca görselleştirme için yazılım oluşturucular bulunur. Ve nihayet öykünme ve doğrulama Donanımın bir parçası da bir yazılım oluşturucu gerektirir. İkincisine bir örnek, Direct3D referans rasterleştirici.

Ancak üst düzey grafikler için bile, yazılım oluşturma 'sanatı' tamamen ortadan kalkmadı. İlk grafik kartları, yazılım oluşturuculardan çok daha hızlıyken ve başlangıçta daha iyi kaliteye ve daha fazla özelliğe sahipken, geliştiriciyi 'sabit işlevli' piksel işleme ile sınırladı. Hızla oyunların görünümlerinin çeşitlendirilmesine ihtiyaç duyuldu. Yazılım oluşturmada herhangi bir kısıtlama yoktur çünkü keyfi bir program yürütülür. Böylece grafik kartları, her biri için küçük programları çalıştırarak bu programlanabilirliği yeniden tanıttı. tepe ve başına piksel /parça, Ayrıca şöyle bilinir gölgelendiriciler. Gölgelendirici dilleri, örneğin Üst Düzey Gölgelendirici Dili (HLSL) DirectX veya OpenGL Gölgeleme Dili (GLSL), C - gölgelendiriciler için benzer programlama dilleri ve (keyfi işlev) yazılım oluşturma ile bazı benzerlikler göstermeye başlar.

Gerçek zamanlı işleme için birincil araç olarak grafik donanımının benimsenmesinden bu yana, CPU performansı her zamanki gibi istikrarlı bir şekilde arttı. Bu, yeni yazılım oluşturma teknolojilerinin ortaya çıkmasına izin verdi. Donanım oluşturmanın performansı büyük ölçüde gölgede bırakılsa da, bazı modern gerçek zamanlı yazılım oluşturucular, uzmanlık alanlarını kullanarak geniş bir özellik kümesini ve makul performansı (bir yazılım oluşturucu için) birleştirmeyi başarır. dinamik derleme ve gibi gelişmiş komut seti uzantıları SSE. Günümüzde donanım oluşturmanın yazılım oluşturmaya üstünlüğü, benzersiz performans, özellikler ve sürekli yenilik nedeniyle tartışılmaz olsa da, bazıları CPU'ların ve GPU'lar şu ya da bu şekilde birleşecek ve yazılım ile donanım oluşturma arasındaki çizgi azalacaktır.[2]

Yazılım geri dönüşü

Donanım arızası, bozuk sürücüler, öykünme, kalite güvencesi, yazılım programlama, donanım tasarımı ve donanım sınırlamaları gibi çeşitli nedenlerle, bazen CPU'nun bir grafik işlem hattındaki bazı veya tüm işlevleri üstlenmesine izin vermek yararlı olabilir.

Sonuç olarak, mevcut bir donanım grafik hızlandırıcısını değiştirebilen veya genişletebilen bir dizi genel amaçlı yazılım paketi vardır:

  • RAD Oyun Araçları 'Pixomatic, D3D 7–9 istemci yazılımı içinde statik bağlanmaya yönelik ara yazılım olarak satılır.
  • SwiftShader, D3D9 ve OpenGL ES 2 istemci yazılımı ile birlikte paketlenmesi amaçlanan ara yazılım olarak satılan bir kitaplık.
  • İçindeki swrast, softpipe ve LLVMpipe oluşturucular Mesa OpenGL 1.4–3.2 donanım aygıtını taklit etmek için sistem düzeyinde bir dolgu olarak çalışır.
  • ÇÖZGÜ, Microsoft tarafından Windows Vista'dan beri sağlanmıştır ve hızlı D3D 9.1 ve üzeri öykünme sağlamak için sistem düzeyinde çalışır. Bu, Microsoft'un geliştiricilere her zaman sunduğu son derece yavaş yazılım tabanlı referans rasterleştiriciye ektir.
  • Apple yazılım oluşturucu CGL, hızlı OpenGL 1.1–4.1 emülasyonu sağlamak için sistem düzeyinde çalışan Apple tarafından Mac OS X'te sağlanır.

Ön işleme

Gerçek zamanlı oluşturmanın aksine, performans ön oluşturmada yalnızca ikinci önceliğe sahiptir. Esas olarak film endüstrisinde gerçekçi sahnelerin yüksek kaliteli renderlarını oluşturmak için kullanılır. Birçok özel efektler günümüz filmlerinde tamamen veya kısmen bilgisayar grafikleri ile oluşturulmaktadır. Örneğin, karakteri gollüm içinde Peter Jackson Yüzüklerin Efendisi filmler tamamen bilgisayar tarafından oluşturulan görüntüler (CGI). Ayrıca animasyon filmler, CGI popülerlik kazanıyor. En önemlisi Pixar gibi bir dizi film üretti Oyuncak Hikayesi ve Kayıp Balık Nemo, ve Blender Vakfı dünyanın ilk açık film Filler rüya.

Çok yüksek kaliteli ve çok çeşitli efektlere duyulan ihtiyaç nedeniyle, çevrimdışı işleme çok fazla esneklik gerektirir. Ticari gerçek zamanlı grafik donanımı, gün geçtikçe daha kaliteli ve daha programlanabilir hale gelse de, çoğu fotogerçekçi CGI hala yazılımın oluşturulmasını gerektirir. Pixar RenderMan örneğin, genel amaçlı bir işlemci talep eden sınırsız uzunluk ve karmaşıklıkta gölgelendiricilere izin verir. Gibi yüksek gerçekçilik için teknikler Işın izleme ve Küresel aydınlatma ayrıca donanım uygulaması için doğası gereği uygun değildir ve çoğu durumda tamamen yazılımda gerçekleştirilir.

Ayrıca bakınız

Referanslar

  1. ^ "CANLI Tasarım - Etkileşimli Görselleştirmeler | Autodesk". Arşivlenen orijinal 21 Şubat 2014. Alındı 2016-08-20.
  2. ^ Valich, Theo (2012-12-13). "Tim Sweeney, Bölüm 2:" DirectX 10, ilgili son grafik API'sidir "| TG Daily". TG Daily. Arşivlendi orjinalinden 4 Mart 2016. Alındı 2016-11-07.