Bakış Açısı Işını - POV-Ray
Orijinal yazar(lar) | David Kirk Buck, Aaron A. Collins, Alexander Enzmann |
---|---|
Geliştirici(ler) | POV-Takımı |
İlk sürüm | 29 Temmuz 1991 |
kararlı sürüm | 3.7.0 (9 Kasım 2013 [±] | )
Önizleme sürümü | v3.8.0-alpha.10064738 (19 Şubat 2019 [±] | )
depo | |
Yazılmış | C++ |
İşletim sistemi | Çapraz platform |
Tip | Işın izleyici |
Lisans | AGPL-3.0 veya üstü |
İnternet sitesi | www |
Vizyon Ray Tracer Sebat en yaygın olarak acronymed, POV-Ray , bir olduğunu çapraz platform ışın izleme bir görüntü üreten program metin tabanlı sahne açıklaması . Başlangıçta David Kirk Buck ve Aaron A. Collins tarafından Amiga bilgisayarları için yazılan DKBTrace'e dayanıyordu . Yazarı Alexander Enzmann'ın katkılarından dolayı önceki Polyray ışın izleyicisinden de etkiler vardır . POV-Ray, ücretsiz ve açık kaynaklı bir yazılımdır ve kaynak kodu AGPL-3.0 veya üstü lisans altında mevcuttur .
Tarih
1980'lerde David Kirk Buck , bir Unix ışın izleyicisinin kaynak kodunu Amiga'sına indirdi . Bir süre denedi ve sonunda baş harflerinden sonra DKBTrace adlı kendi ışın izleyicisini yazmaya karar verdi. Başkalarının ilgilenebileceğini düşünerek Chicago'daki "You Can Call Me Ray" ilan tahtası sistemine (BBS) gönderdi . 1987'de Aaron A. Collins, DKBTrace'i indirdi ve bir x86 bağlantı noktası üzerinde çalışmaya başladı . O ve David Buck, birkaç özellik daha eklemek için işbirliği yaptı.
Program beklenenden daha popüler olduğunu kanıtlayınca, daha fazla özellik talebini karşılayamadılar. Böylece, Temmuz 1991 yılında, David "GraphDev" çalışan programcılar bir ekip projeyi teslim forumunda üzerinde CompuServe . Aynı zamanda David, artık sürdürmediği bir programda baş harflerini kullanmanın uygunsuz olduğunu hissetti. Başlangıçta "STAR-Light" (Animasyon ve Rendering Yazılım Görev Gücü) adı kullanıldı, ancak daha sonra adı "PV-Ray" oldu ve daha sonra son olarak "POV-Ray" (Vision Ray Tracer'ın Kalıcılığı) adını aldı. Dalí'nin " Hafızanın Azmi " tablosu .
Uygulamanın özellikleri ve geçmişinin bir özeti, FLOSS Weekly'nin 24. bölümünde David Kirk Buck ve Chris Cason ile Şubat 2008'de yapılan bir röportajda tartışılmaktadır .
Özellikleri
POV-Ray, yaratıldığından beri önemli ölçüde olgunlaştı. Yazılımın son sürümleri aşağıdaki özellikleri içerir:
- makroları ve döngüleri destekleyen bir Turing-complete sahne tanımlama dili (SDL)
- hazır sahneler, dokular ve nesneler kitaplığı
- bir dizi geometrik ilkel ve yapıcı katı geometri için destek
- birkaç çeşit ışık kaynağı
- sis ve ortam gibi atmosferik etkiler ( duman , bulutlar )
- foton eşleme kullanarak yansımalar , kırılmalar ve ışık kostikleri
- prosedürel dokularda ve tümsek haritalamada kullanım için kırışıklıklar , tümsekler ve dalgalanmalar gibi yüzey desenleri
- radyosite
- diğerleri arasında TGA , PNG ve JPEG dahil olmak üzere birçok görüntü formatında dokular ve işlenmiş çıktılar için destek
- kapsamlı kullanıcı belgeleri
POV-Ray'in ana cazibe merkezlerinden biri, üçüncü taraf yapımı varlık ve araçlardan oluşan geniş koleksiyonudur. Web'de çok sayıda araç, doku, model, sahne ve öğretici bulunabilir. Ayrıca ışın izleme ve ilgili 3B geometri ve bilgisayar grafik algoritmalarının nasıl çalıştığını öğrenmek isteyenler için de faydalı bir referanstır .
Şimdiki versiyonu
POV-Ray'in şu anki resmi sürümü 3.7'dir. Bu sürüm şunları sunar:
- oluşturucunun birden çok işlemciden yararlanmasını sağlamak için simetrik çoklu işlem (SMP) desteği
- desteği HDR dahil (HDRI), OpenEXR ve parlaklık dosya biçimleri
- BSP ağaçları kullanılarak geliştirilmiş sınırlama
Önceki sürümün (3.6) tanıtılan ana özelliklerinden bazıları şunlardır:
- UV eşlemesini daha ilkellere genişletme
- yoğunluk dosyasına 16 ve 32 bit tamsayı verileri ekleme
- 64 bit uyumluluğu iyileştirme
Temmuz 2006'da Intel Corporation , SMP (simetrik çoklu işlem) uygulamasının verimliliği nedeniyle yeni çift çekirdekli Conroe işlemcilerini göstermek için 3.7'nin beta sürümünü kullanmaya başladı .
İlkel
POV-Ray, standart ek olarak 3 boyutlu geometrik gibi şekiller tori , küreler ve heightfields , destekler matematiksel tanımlandığı ilkelleri gibi isosurface (isteğe bağlı bir fonksiyon sonlu yaklaşımı), polinom ilkel (bir sonsuz bir tarafından tanımlanan nesne 15. düzenine veya alt polinom ), julia fraktal ( 4 boyutlu bir fraktalın 3 boyutlu bir dilimi ), süperkuadratik elipsoid (bir küre ile bir küp arasında bir ara madde) ve parametrik ilkel (yüzeyini temsil eden denklemleri kullanarak) iç mekan).
POV-Ray, matematiksel tanımlarını kullanarak nesneleri dahili olarak temsil eder; tüm POV-Ray ilkel nesneleri matematiksel fonksiyonlarla tanımlanabilir . Bu, bir sahnedeki tüm nesneleri oluşturmak için tipik olarak üçgen ağlar kullanan 3B modeller içeren birçok bilgisayar programından farklıdır .
Bu gerçek, POV-Ray'e diğer işleme ve modelleme sistemlerine göre birçok avantaj ve dezavantaj sağlar; POV-Işını ilkelleri, poligonal karşılıklarından daha doğrudur: küreler, düzlemsel yüzeyler, silindirler, tori ve benzeri terimlerle tanımlanabilen nesneler, POV-Işını işlemelerinde mükemmel şekilde pürüzsüz ve matematiksel olarak doğrudur, oysa poligonal artefaktlar olabilir. ağ tabanlı modelleme yazılımında görülebilir. POV-Ray ilkellerinin tanımlanması da poligonal karşılıklarının çoğundan daha basittir, örneğin POV-Ray'de bir küre basitçe merkezi ve yarıçapı ile tanımlanır; ağ tabanlı bir ortamda, bir küre çok sayıda küçük bağlantılı çokgenle (genellikle dörtlü veya üçgenler ) tanımlanmalıdır.
Öte yandan, senaryo tabanlı ilkel modelleme, gerçekçi karakterler veya arabalar gibi karmaşık insan yapımı eserler gibi belirli nesneleri oluşturmak için her zaman pratik bir yöntem değildir. Bu nesneler önce Wings 3D ve Blender gibi ağ tabanlı modelleme uygulamalarında oluşturulabilir ve oluşturulmalıdır ve daha sonra POV-Ray'in kendi ağ biçimine dönüştürülebilirler.
Sahne tanımlama dili örnekleri
Aşağıda, oluşturulacak bir sahneyi tanımlamak için POV-Ray tarafından kullanılan sahne tanımlama dilinin bir örneği verilmiştir. Bir arka plan renginin, kameranın, ışıkların, yüzeyi normal ve bitişli basit bir kutu şeklinin kullanımını ve döndürmenin dönüştürücü etkilerini gösterir.
#version 3.6;
// Includes a separate file defining a number of common colours
#include "colors.inc"
global_settings { assumed_gamma 1.0 }
// Sets a background colour for the image (dark grey)
background { color rgb <0.25, 0.25, 0.25> }
// Places a camera
// direction: Sets, among other things, the field of view of the camera
// right: Sets the aspect ratio of the image
// look_at: Tells the camera where to look
camera { location <0.0, 0.5, -4.0>
direction 1.5*z
right x*image_width/image_height
look_at <0.0, 0.0, 0.0> }
// Places a light source
// color: Sets the color of the light source (white)
// translate: Moves the light source to a desired location
light_source { <0, 0, 0>
color rgb <1, 1, 1>
translate <-5, 5, -5> }
// Places another light source
// color: Sets the color of the light source (dark grey)
// translate: Moves the light source to a desired location
light_source { <0, 0, 0>
color rgb <0.25, 0.25, 0.25>
translate <6, -6, -6> }
// Sets a box
// pigment: Sets a color for the box ("Red" as defined in "colors.inc")
// finish: Sets how the surface of the box reflects light
// normal: Sets a bumpiness for the box using the "agate" in-built model
// rotate: Rotates the box
box { <-0.5, -0.5, -0.5>,
<0.5, 0.5, 0.5>
texture { pigment { color Red }
finish { specular 0.6 }
normal { agate 0.25 scale 1/2 }
}
rotate <45,46,47> }
Aşağıdaki komut dosyası parçası, değişken bildirimi, atama, karşılaştırma ve while döngüsü yapısının kullanımını gösterir:
#declare the_angle = 0;
#while (the_angle < 360)
box { <-0.5, -0.5, -0.5>
<0.5, 0.5, 0.5>
texture { pigment { color Red }
finish { specular 0.6 }
normal { agate 0.25 scale 1/2 } }
rotate the_angle }
#declare the_angle = the_angle + 45;
#end
modelleme
POV-Ray programının kendisi bir modelleme özelliği içermez ; esasen sofistike bir model tanımlama diline sahip saf bir oluşturucudur. Bu özellik setine eşlik etmek için üçüncü taraflar, bazıları POV-Ray için özelleşmiş, diğerleri ücretsiz ve açık kaynaklı 3D oluşturma paketi Blender dahil olmak üzere veri yapılarının içe ve dışa aktarımını destekleyen çok çeşitli modelleme yazılımları geliştirmiştir .
Bir dizi ek POV-Ray uyumlu modelleyici, Povray.org'dan bağlantılıdır : Modelleme Programları .
2007 yılında POVYRay hakkını elde Moray , uzun POV-Ray ile kullanılan etkileşimli 3 boyutlu modelleme programı. Ancak, Aralık 2016 itibariyle Moray geliştirme durduruldu.
Yazılım
Geliştirme ve bakım
POV-Ray kaynak ağacında yapılan resmi değişiklikler POV-Ekibi tarafından yapılır ve/veya onaylanır. Çoğu yama gönderimi ve/veya hata raporlaması, news.povray.org haber sunucusundaki POV-Ray haber gruplarında yapılır (bir Web arayüzü de mevcuttur ). POV-Ray'in kaynağı mevcut olduğundan, üçüncü şahıslardan temin edilebilen resmi olmayan çatallar ve POV-Ray'in yamalı sürümleri vardır; ancak bunlar POV Ekibi tarafından resmi olarak desteklenmemektedir.
Resmi POV-Ray sürümleri şu anda gölgelendirici eklentilerini desteklememektedir . Radyosity ve spline'lar gibi bazı özellikler hala geliştirme aşamasındadır ve sözdizimsel değişikliğe tabi olabilir.
Platform desteği
POV-Ray 3.6, Macintosh , Windows ve Linux için derlenmiş biçimde dağıtılır . Macintosh sürümünde Intel Mac desteği yoktur , ancak Mac OS X , Unix'in bir sürümü olduğundan , Linux sürümü bunun üzerinde derlenebilir .
SMP destekli 3.7 sürümleri, Windows ve Linux için resmi olarak desteklenmektedir. v3.7 için resmi olmayan Macintosh sürümleri bulunabilir.
POV-Ray, uyumlu bir C++ derleyicisine sahip herhangi bir platforma taşınabilir .
lisanslama
Başlangıçta, POV-Ray kendi POV-Ray Lisansı altında dağıtıldı . Yani, program kaynak kodunun ve ikili dosyaların ücretsiz dağıtımına izin veren, ancak ticari dağıtımı ve POV-Ray'in tam işlevsel sürümleri dışındaki türev çalışmaların oluşturulmasını kısıtlayan POV-Ray 3.6 Dağıtım Lisansı ve POV-Ray 3.6 Kaynak Lisansı.
Eski sürümlerin kaynak kodu değişiklik için mevcut olsa da , yukarıdaki 3.6 ve önceki lisans kısıtlamaları nedeniyle , OSI veya terimin FSF tanımına göre açık kaynak veya özgür yazılım değildi . Bu şekilde bir sorun oldu kaynak kodu üstü olan değişim FOSS ekosistem nedeniyle imkansızdı uyumsuzluk Lisans ile copyleft lisanslar .
POV-Ray'in orijinal olarak özgür yazılım GNU Genel Kamu Lisansı (GPL) veya diğer açık kaynak lisansları kapsamında lisanslanmamasının nedenlerinden biri, POV-Ray'in GPL tarzı lisanslar yaygın olarak kullanılmadan önce geliştirilmiş olmasıdır; geliştiriciler, POV-Ray'in yayınlanması için kendi lisanslarını yazdılar ve yazılıma katkıda bulunanlar, katkılarının POV-Ray 3.6 Lisansları kapsamında lisanslanacağı varsayımıyla çalıştı.
2013 yılında, 3.7 sürümüyle, POV-Ray, Affero Genel Kamu Lisansı sürüm 3 (veya üstü) kapsamında yeniden lisanslandı . Böylece POV-Ray o zamandan beri FSF tanımına göre özgür yazılım ve ayrıca Açık Kaynak Tanımına göre açık kaynaklı yazılımdır .
Ayrıca bakınız
- Blender – 3B modelleme, animasyon ve işleme için ücretsiz ve açık kaynaklı bir yazılım programı
- Kerkythea – gelişmiş Sketchup uyumluluğuna sahip ücretsiz bir ışın izleme programı
- Sunflow – Java ile yazılmış, foto-gerçekçi görüntü sentezi için açık kaynaklı bir işleme sistemi
- YafaRay – popüler bir ücretsiz açık kaynaklı ışın izleme motoru