Bu yazı ile Povray ışınizleyicisi hakkında bir yazı dizisine başlanmaktadır. Bu yazının amacı POV-Ray'e başlayacak yeni kullanıcılara yardım etmektir.
Persistence of Vision Ray-Tracer (POV-Ray) Copyright 1996 POV-Team.
Giriş.Povray (Persistence of Vision Raytracer) temel olarak bir ışınizleyicidir. Bu terimin anlamını bir takım ayrıntılara girmeden açıklamak zordur, bu yızden bunu ayrıntılı olarak açıklamayı ilerideki bir yazıya bırakalım. Bu an kabataslak olarak ışınizleyici dışıncesinin ne olduğunu anlatmak için; nesnelerin ve onların şekillerinin, ışık kaynaklarının, noktaların ve bir kameranın varlığının belirtimini yapan modelleri kullanarak bilgisayarda tanımlanmış sanal görüntülerin oluşturulmasını sağlama tekniği diyebiliriz. Bilgisayar minimum işlem zamanında olabildiği kadar gerşeğe yakın bir görüntü oluşturmaya çalışır.
Mımkın olduğunda POV-Ray doğayı taklit etmeye çabalar. Bazan POV-Ray doğal bir etkinin öykünümü (simulation) ya da için uğraşmak zorunda kalabilir. Bazı kısa yollar olmadan bir imgeyi yeterli zamanda oluşturmak olanaksız olabilir. Işınizleme algoritmaları büyük tutarda ışınları(ışık ışınları gibi) hesaplayarak çalışır, bununla beraber bu ışınlar gerçek optik ışınlar gibi davranmazlar. Doğada, ışınlar ışık kaynaklarının içinde oluşurlar, boşlukta hareket eder ve fiziksel bir engelle (bir yüzey gibi) karşılaşınca saçılır, çarptığı noktada kameranın filmi veya retinaya giden yeni bir ışın oluşturur. Öte yandan, bir ışınizleyici ışınları ters yönde, retina veya filmden nesnelere ve sonra ışık kaynağına doğru hareket eder. Bu algortmanın nasıl olduğunun ayrıntılı açıklamasını gelecek yazıya bırakalım.
Povray'in niteliği mükemmel ve çok yaygın ışınizleyicilerle karşılaştırılabilir. Işınizlemeye dayandırılan tecimsel (ticari) tasarım ürünleri bütün nesne türlerini rahatça tasarlamak için tümleşik elaygıtlarına sahiptirler.
Povray' de, değişik bağımsız kuruluşlardan veya biçim süzgeçlerinden modeller kullanmak mümkündür, kullanücü genel olarak çok sayıda elaygıtına sahiptir. Bu Povray'i kapsamlı olarak kullanarak güzel veya güzelin de ötesinde düşlemsel (fantastik) tasarımlara erişilemeyeceği anlamına gelmez. Tüm gereksinim duyulan şey imgeleme gücüdür.
Bir başka önemli nokta kaynak düzgüsünün (kodunun) toplumsal olmasıdır. Bu, bize kullanılan çok çeşitli teknikleri sınama olanağı verir. Povray'in yazmahakkı elyordamının A ekinde betimlenmektedir, linux gibi o da ücretsiz bir lisansa sahiptir. Ayrıntılar için özgün lisansi inceleyin.
HTML, PostScript ve metin (hızlı gezinme için daha kolaydır) biçimlerinde elde edilebilen bir Povray elyordamı bulunmaktadır. ,Eger postscipt biçimlisinin çüktüsünü almak istiyorsanüz, yaklaşük 600 sayfa hazırlamanız gerekmektedir; bu büyük değer aslında Povray'in büyük olanaklarını yansıtmaktadır ancak bundan dolayı çekinmeye de gerek yoktur. Bu yazıda Povray'i deneme şansına erişilebilecek ve gelecek yazılarda temel kavramlar öğrenilecektir.
Povray, onun üstün teknik yetenekleri sayesinde, bizim bilgiçizim dünyasına ön kapıdan girmemize olanak sağlamaktadır. Benim bilgiçizim kavramım salt bir tekniğin imgeleri yüksek gerçeklikle elde etmemize yardım edebileceği düşüncesi olmasına rağmen, sanatsal değerin gerçekliğe ve tekniğe yalnız başına eşdeğer olamayacağıdır. Teknoloji değerli bir yardımcıdır, ama sanatsal değeri olan herşey ilk önce bizim kafamızda oluşmalıdır. Düşünce asıl amaçtır.
Çoğu kez gerçeklik ve düşlem (fantasy) düşünceleriyle oynamaktan hoşlanmışımdır. Bilgiçizim bu oyunun binbir biçimini izleyicide ilginç bir çatışma yaratarak oynamamıza izin verir.
Aşağıdaki bulunakta (adreste) küçük bir imge (image) sergievim (galerim) bulunmaktadır.:
http://slug.ctv.es/~acastro/infograf/catalog.htm
İşte bir örnek, melez bir tasarım: bir uçak, bir yat ve bir martı.
Seagull 1
Bu ilk imgede daha çok bir martı benzeri görmekteyiz.
Seagull 2
Bununla beraber nesnenin aynı olmasına karşın ikinci görüngeden (perspektiften) daha cok bir uçak benzeri göründüğü söylenebilir.
Nesne bir martının karaltısına (siluet) sahiptir. Nesnenin Üst kesimde saydam bir kokpite ve iki pilota sahip olduğu kolayca görülebilmektedir. Renklendirme yadırgatıcı olmakla birlikte ışınizlemeyle bu resimler şaşırtıcı bir gerçeklik derecesine çıkabilmektedir.
Eğer bu resimleri 5 yaşındaki bir çocuğa gösterecek olur ve ona ne gördıgını sorarsanız, onun bir resim olduğunu söyleyecektir, bir çizim olduğunu değil. Eğer bir yetişkine gösterecek olursanız, sınıflandırmada bazı güçlükler çekebilir. Ne bir resim ne de bir çizim olduğunu söyleyebilir. Belki bilgisayar tarafından yaratıldığını bilebilir ama bir makine nasıl olur da bu kadar değişik ve güzel bir sahne yaratabilmektedir?
Bu tür etki tasarımlarımda oluşturmak istediklerimdendir. Birleşimli ve yapay yapıların çeşitli gerçek özeliklerle bir araya getirildiği çatışan imgeler bu doğrultudadır. Bunun için, kuşkusuz gereksiniminiz imgeleme ve iyi bir teknik bilgidir. Öte yandan çok gerçekçi imgeler elde etmek için teknik üzerinde tam bir kontrole sahip olmanız gerekebilir ama bu belki de sanat olarak adlandırılmayabilir.
Povray'le gerçekten çok güzel zamanlar geçirdim ve eminimki ögrenen biri de aynı şekilde hoşlanacaktır.
Povray'in Çok Önemli Özeliklerinden Bazıları
- Bir imgenin kısmen görıntıleştirilmesi. Daha önceden kesilmiş bir görüntüleştirme işlemine devam edilmesi mümkündür.
- Farklı çözünürlükle görüntüleştirme için seçenekler ve işleme süresini azaltmak için yetkinleştirme ölçekleri.
- Bir imgeyi yaratırken görüntüleme sığası. (SVGA ve XWindows' da).
- Mosaic türü çabuk öngözlemleme.
- Hangi aşamanın en çok merkezi işlem birimi (CPU) zamanı yuttuğunu sınamamıza olanak sağlayan yanaylama (profiling) bilgili bütünleşik hesaptan çıkış işlemleri.
- İyi bir yanılgı saptayıcısı ile dilbilgisel öninceleme.
- Herhangi bir doku yaratmak için çok fazla olasılık içeren çok sayıda doku kitaplığı.
- Yuzey etkileri: pürüzlülük, parlaklık, yansımalar, saydamlık, vs,
- Temel geometrik temelögeler (küreler, koniler, yüzeyler, küpler, prizmalar, vs.)
- Karmaşık matematiksel eşitliklere dayanan geometrik nesneler.
- Birbirine geçmiş üçgenlerden oluşan şekiller.
- Kenarların düzgünleştirilmesi, örneğin üçgen kesişimlerinden oluşan yüzeyler.
- Basit nesnelerin birleşimi ile oluşan karmaşık nesneler.
- İzleyicinin verimini arttırmak icin basit şekiller yardımı ile karmaşık nesneleri sınırlandırmak.
- Düz bir imgeden biçim renklendirmesi.
- Rengi ile orantılı olarak pikselleri arttırarak düz renklendirilmiş bir imgeden üretilen biçimler. (Kara parçaları üretimi için çok yararlı) .
- Çembersel devinimle üretilen nesneler.
- TIFF kaynaklarından 3 boyutlu yazılar.
- Atmosferik etkiler, orneğin sis.
- Çeşitli ışık kaynakları ile ısıklandırma etkileri, orneğin spot ısıkları vs.
- Antialias için değişik seçenekler. Antialiase düşük çözünürlükte sık sık oluşan ve oldukça bilinen basamak etkilerini silme yöntemi ile bizim çizgi görüntümüzü arttırır. Povray antialias için çeşitli yöntemler sunar.
- Sahne betimlemesi için bütünleşik bir dil.
- Çeşitli yöntemlerle canlandırım yaratılması:
-
- Dış döngü (seçenek Clock=n.n).
- İç döngü (düzgünün kendisinde iç parametler kullanarak).
- Bir içerme (include) dosyası içerisinde tanımlayarak sabitleri tanımlamamıza izin verir, böylece kullanım takımları (utility) ya da her bir canlandırım aşamasında bu içerme dosyalarını güncelleyen kabuk yazılımlarıyla (scripts) dış canlandırımlar üretmek mümkündür.
Povray'in Elde EdilimiPovray ftp ile elde edilebilir.
Aşağıdaki resmi yöreden elde edebilirsiniz:
http://www.povray.org
ftp://ftp.povray.org
Povray üzerine ayrıca bir elektronik dergi de bulunmaktadır, terk edilmiş görünmesine rağmen Povray 3.0 sürüldügü zamanki bazı güzel yayınları içermektedir.
http://www.povray.org/pub/povray/ezine
Bir cok yansı yöresi olmasına rağmen hiçbiri resmi değildir.
Index: (15-Enero-1998) ftp.povray.org
Burada, resmi yöreleri içeren bir dizelge (liste) sunuyoruz.
pub
lrwxr-xr-x 1 povray vuser 15 Aug 24 11:12 HEADER -> povray/.message
drwxr-xr-x 5 povray vuser 512 Aug 24 13:13 povray
pub/povray
-rw-r--r-- 1 povray vuser 305 Jan 9 01:30 .message
lrwxr-xr-x 1 povray vuser 8 Aug 24 13:13 HEADER -> .message
dr-xr-xr-x 2 povray vuser 1536 Aug 24 13:13 Hall-Of-Fame
-r--r--r-- 1 povray vuser 3262 Aug 24 10:52 MIRRORS
dr-xr-xr-x 10 povray vuser 512 Aug 24 11:14 Official-3.0
-r--r--r-- 1 povray vuser 3262 Aug 24 10:52 README.MIRRORS
-r--r--r-- 1 povray vuser 3731 Aug 24 10:52 README.MIRRORS.HTML
dr-xr-xr-x 2 povray vuser 1024 Aug 24 13:13 Ray-Tracing-News
pub/povray/Hall-Of-Fame
-r--r--r-- 1 1017 1017 235235 May 14 1996 6x86.jpg
-r--r--r-- 1 1017 1017 393630 Sep 30 1994 6z4.jpg
-r--r--r-- 1 1017 1017 308 Sep 30 1994 6z4jpg.txt
-r--r--r-- 1 1017 1017 154256 Oct 13 1995 astplant.jpg
-r--r--r-- 1 1017 1017 2991 Oct 13 1995 astplant.txt
-r--r--r-- 1 1017 1017 110322 Sep 30 1994 ballz5.gif
-r--r--r-- 1 1017 1017 287164 Dec 8 1994 bell_jar.jpg
-r--r--r-- 1 1017 1017 57111 Oct 13 1995 bkntools.jpg
-r--r--r-- 1 1017 1017 610 Oct 13 1995 bkntools.txt
-r--r--r-- 1 1017 1017 331058 Sep 30 1994 brass.jpg
-r--r--r-- 1 1017 1017 254 Sep 30 1994 brass.txt
-r--r--r-- 1 1017 1017 284250 Sep 30 1994 bug1.gif
-r--r--r-- 1 1017 1017 279273 Sep 30 1994 camera.jpg
-r--r--r-- 1 1017 1017 367490 Oct 13 1995 crane.jpg
-r--r--r-- 1 1017 1017 2650 Oct 13 1995 crane.txt
-r--r--r-- 1 1017 1017 101473 Sep 30 1994 dragons.jpg
-r--r--r-- 1 1017 1017 295129 Sep 30 1994 frosty.gif
-r--r--r-- 1 1017 1017 777531 Sep 30 1994 frosty.tga.zip
-r--r--r-- 1 1017 1017 88350 Sep 30 1994 geodome.jpg
-r--r--r-- 1 1017 1017 2252 Sep 30 1994 geodome.txt
-r--r--r-- 1 1017 1017 11801 Sep 30 1994 geosmall.gif
-r--r--r-- 1 1017 1017 356889 Oct 13 1995 gofood1.jpg
-r--r--r-- 1 1017 1017 483 Oct 13 1995 gofood1.txt
-r--r--r-- 1 1017 1017 375781 Oct 13 1995 gogadget.jpg
-r--r--r-- 1 1017 1017 825 Oct 13 1995 gogadget.txt
-r--r--r-- 1 1017 1017 72337 Oct 13 1995 info_hwy.jpg
-r--r--r-- 1 1017 1017 1796 Oct 13 1995 info_hwy.txt
-r--r--r-- 1 1017 1017 109462 Oct 13 1995 jmwarmup.jpg
-r--r--r-- 1 1017 1017 3346 Oct 13 1995 jmwarmup.txt
-r--r--r-- 1 1017 1017 628 Sep 30 1994 julia.txt
-r--r--r-- 1 1017 1017 50762 Sep 30 1994 kettle.jpg
-r--r--r-- 1 1017 1017 295555 Sep 30 1994 kkteaset.jpg
-r--r--r-- 1 1017 1017 96 Sep 30 1994 kkteaset.txt
-r--r--r-- 1 1017 1017 151503 Sep 30 1994 lionfish.gif
-r--r--r-- 1 1017 1017 112 Sep 30 1994 mindmaz1.txt
-r--r--r-- 1 1017 1017 341101 Sep 30 1994 museum.jpg
-r--r--r-- 1 1017 1017 564 Sep 30 1994 museum.txt
-r--r--r-- 1 1017 1017 364856 Aug 19 1995 pcktwtch.gif
-r--r--r-- 1 1017 1017 580 Aug 19 1995 pcktwtch.txt
-r--r--r-- 1 1017 1017 590679 Jan 29 1996 pcktwtch.zip
-r--r--r-- 1 1017 1017 417 Sep 30 1994 pclock.txt
-r--r--r-- 1 1017 1017 213426 Sep 30 1994 plntscap.gif
-r--r--r-- 1 1017 1017 2558 Sep 30 1994 plntscap.txt
-r--r--r-- 1 1017 1017 125648 Oct 13 1995 springeq.jpg
-r--r--r-- 1 1017 1017 1129 Oct 13 1995 springeq.txt
-r--r--r-- 1 1017 1017 239594 Sep 30 1994 studying.jpg
-r--r--r-- 1 1017 1017 244179 Oct 13 1995 subrace.jpg
-r--r--r-- 1 1017 1017 2681 Oct 13 1995 subrace.txt
-r--r--r-- 1 1017 1017 191332 Sep 30 1994 sundae.gif
-r--r--r-- 1 1017 1017 162140 Sep 30 1994 woild2.gif
pub/povray/Official-3.0
-r--r--r-- 1 povray vuser 80 Jul 20 01:47 .message
drwxr-xr-x 2 povray vuser 512 Dec 16 03:53 Amiga
dr-xr-xr-x 2 povray vuser 512 Aug 24 10:31 Docs
lr-xr-xr-x 1 povray vuser 11 Aug 24 11:14 HEADER -> ../.message
dr-xr-xr-x 2 povray vuser 512 Aug 24 10:31 Linux
dr-xr-xr-x 2 povray vuser 512 Aug 24 10:31 MS-Dos
dr-xr-xr-x 2 povray vuser 512 Aug 24 10:36 Macintosh
-r--r--r-- 1 povray vuser 83 Jul 20 01:48 README
-r--r--r-- 1 povray vuser 222 Feb 6 1997 README.HTML-DOCS
dr-xr-xr-x 2 povray vuser 512 Aug 24 10:31 SunOS
dr-xr-xr-x 2 povray vuser 512 Aug 24 10:32 Unix
dr-xr-xr-x 3 povray vuser 512 Aug 24 10:32 Windows
-r--r--r-- 1 povray vuser 15055 Jul 19 1996 gamma.gif
-r--r--r-- 1 povray vuser 1776 Jul 19 1996 gamma.gif.txt
-r--r--r-- 1 povray vuser 3735 Feb 6 1997 news.3.01.txt
-r--r--r-- 1 povray vuser 18452 Feb 5 1997 povlegal.doc
-r--r--r-- 1 povray vuser 24060 Feb 1 1997 povwhere.get
-r--r--r-- 1 povray vuser 110 Aug 24 11:01 www.html
pub/povray/Official-3.0/Docs
-r--r--r-- 1 1017 1017 413 Feb 7 1997 README
-r--r--r-- 1 1017 1017 286517 Feb 7 1997 povdoc.zip
-r--r--r-- 1 1017 1017 764628 Feb 7 1997 povdocps.zip
-r--r--r-- 1 1017 1017 1601733 Feb 7 1997 povhtml.zip
-r--r--r-- 1 1017 1017 18452 Feb 7 1997 povlegal.doc
-r--r--r-- 1 1017 1017 24060 Feb 2 1997 povwhere.get
pub/povray/Official-3.0/Linux * * * * *
-r--r--r-- 1 povray vuser 786 Jul 20 01:41 00_index.txt
-r--r--r-- 1 povray vuser 442 Jul 20 01:42 README
-r--r--r-- 1 povray vuser 1506794 Feb 2 1997 povdoc.html.tgz
-r--r--r-- 1 povray vuser 908752 Aug 1 1996 povdoc.ps.gz
-r--r--r-- 1 povray vuser 1678592 Jul 18 13:02 povlinux.tgz
|
Linux kullanıcıları özellikle iki dizin ile ilgilenecektir: 'pub/povray/Official-3.0/Linux' ve 'pub/povray/Hall-Of-Fame' İkincisinde büyük Povray elkitabında bulamadığımızı buluruz: Örnekler.
Povray elkitabı gerçekten iyi bir kitaptır fakat şunu da unutmamak gerekir ki bir resim bin sözcükten çok daha fazla şey anlatabilir. Ilk olarak elkitabının uygun bir yolla resimlenmemiş olduğu söylenebilir. İkinci olarak diğer dizinlerde elkitabı için ideal tamamlayıcı olan çeşitli imgeler bulabiliyoruz. Elkitabi yeterli örnek içermiyor demiyorum, aksine birçok örnek göstermektedir. Her örnek bir kavram açıklıyor ve hepsi de teknik bilgi kazanmak icin oldukça uygun. Bazı elkitaplarının örnekleri çok güzel, ama Ünlüler Evi ('Hall-Of-Fame') yaratılmış en iyi imgelerden seçmeler içeriyor: Gerçek bir bilgiçizim sergievi. Her resim inanılmaz sonuçlar sağlayan araç ve teknikleri tanımlayan bir metne eklenmiştir.
Elkitabında sözıedilen araçların modelleyiciler, süzgeçler gibi genel kurallar kadar henüz Linux için uygun olmadığından haberdar olmalıyız.
Yöreyeçekim için salık verilen ftp.povray.org /pub/povray/Official-3.0/Linux ve ftp.povray.org/pub/povray/Hall-Of-Fame yalnızca resimleri görmek için değil tasarım için de önemli bir başlangıç noktasıdır.
Tipik bir yüklemenin nasıl yapılacağını anlatacagız. (Bütün Linux sürümlerinde çalışabilir ama yalnızca Debian'da tam olarak sınanmıştır) çok sayıda metin kutuphanesi.
YuklemeGenel yüklemelerde olduğu gibi süper kullanıcı olan kök (root) olarak girmeliyiz.
Sahip olduğumuz dağıtımın bu dizinde olduğunu varsayalım: "/incoming/pub/povray/Official-3.0/Linux"
Daha sonra şu güdümleri veriyoruz.
# mkdir /usr/local/sbin
# mkdir /usr/local/apli
# mkdir /usr/local/apli/povray
# cp "/incoming/pub/povray/Official-3.0/Linux" /usr/local/povray
# cd /usr/local/povray
# tar -xzf povlinux.tgz
# tar -xzf povdoc.html.tgz
# cd /usr/local/sbin
# ln -s /usr/local/apli/povray/povray3/x-povray x-povray
# ln -s /usr/local/apli/povray/povray3/s-povray s-povray
|
Güdümlerin son kesimi herşeyi yüklemektedir: derlenecek herhangi birşey yok.
Yalnızca /usr/local/apli/povray/povray3 dizinindeki x-povray ve s-povray güdümlerinin herkes için çalıstırabilme iznine sahip olmasını kontrol etmeniz gerekiyor.
Bizim durumumuzda 'chmod 755' ile izinleri değiştirmeye gereksinimimiz var.
KurulumPovray kurulum işlemi grafik kartlarını biçimlendirmek, girdi ve çıktı dosya biçimlerini tanımlama, "include" dosyalarının kitaplıklarına erişilebilirliği sağlamak ve diğer özelikler için kullanışlıdır.
Elkitabında çok iyi ayrıntılanan soruları açıklamak yerine Linux kullanıcılarının Povray'i nasıl kolay bir şekilde biçimlendirebileceklerini göz önünde tutacağız.
Povray SVGA kipte görüntüleyebilir ama bu grafik kartına bağlı bir özelliktir. Biz sizin Xwindows ile yükleme yaptığınızı ve imge görüntüleyici olarak 'xv' kullandığınızı göz önünde tutacağız.
Linux biçimlendirimi povray'in daha yeni modellerinde daha basitleştirilebilmiştir. Çevre değerlerini kullanmak olasıdır, ama tüm gereksiniminiz olan "*.ini" biãimlendirme dosyası yaratmak daha pratiktir.
Değişik amaçlar için çeşitli *.ini dosyaları vardır. Bu, biçimlendirmeyi yapmak için çeşitli olasılıkları destekler. Bizim benimsenmiş biçimlendirme dosyamızı bir çevre dosyasına göndermek veya değerleri kullanmak için benimsenmiş include dosyasına yerleştirmek mümkündür. Ayrıca seçeneklerin numarasını argüman olarak göndermek de iyi bir fikir olabilir, ama biz aynı zamanda komut satırının argümanü olarak tanımladığımız hemen hemen herşeyi göndeririz. Eğer bu yöntemden hoşlanmadıysanız, elkitabını gözden geçirin, aynı sonucu sağlayacak değişik seçenekler bulacaksınız, bununla beraber her seçeneği açıklayıcı bir giriş yazısı yok, sadece en çok kullanışlı olanların var.
Ayrıca bütün örneklere uyan imgeler yaratmak için 'allscene.sh' adlı bir kabuk yazılımı da vardır.
Belki bütün görüntüleri düşük çözünürlükte yaratmak yerine bir tanesini seçip en yüksek çözünürlükte oluşturabilirsiniz.
Bu durumda örnek dizinine gidin ve aşağıdaki 'ini' dosyası ile povray' i çalıştırın:
-------------------------8<------------(ini.ini)----------------
Width=640
Height=480
Quality=8
Library_Path=/usr/local/apli/povray/povray3/include
Output_to_File=on
Output_File_Type=t
Output_File_Name=out.tga
verbose=on
-------------------------8<-------------------------------------- İlk iki satır son imgenin çözünürlüğünü belirleyecektir.
İmgeyi elde etmek için gereken komut:
$ s-povray ini.ini +i source.pov
'source.pov' dosyası 'out.tga' ile görüntüleyeceğimiz imgeyi elde etmek için işleme sokacağımız dosyanın adıdır, örneğin; 'xv out.tga'.
POV: Povray'le çalışmak için bir kullanımaracı'pov' POV-ray'i kolayca kullanacağımız bir kabuk yazılımıdır. İlk önce dizelgesini (listesini) gösterelim:
------------------------8<-----------------------------------
#!/bin/bash
#####################################################################
# Autor: Antonio Castro Snurmacher (1.998)
#
# pov (ver 1.0)
#
# Esta versión esta dedicada a su inclusión en la
# revista LinuxFocus (freeware)
#
# Este programa puede ser utilizado, distribuido, y modificado
# libremente pero siempre se deberá respetar la propiedad
# intelectual de su autor. Esta cabecera debe ser conservada
# tal cual en todas las modificaciones.
#
# En caso de traducción deberá conservarse el texto original de
# esta cabecera y añadirse la traducción a continuación de ella.
#
# El autor renuncia a todo tipo de beneficio económico y no se hace
# responsable de los posibles perjuicios derivados del uso del mismo.
#
# E-mail (acastro@ctv.es)
#
#####################################################################
# Author: Antonio Castro Snurmacher (1.998)
#
# pov (ver 1.0)
#
# This version has been written to be included in
# the LinuxFocus magazine (freeware)
#
# This program can be used, distributed, and modified
# freely but always has to respect the intellectual
# property of the author. This header should be kept
# untouched in every modification.
#
# In case of translation the text of this header should be kept
# and the translation will be added after it.
#
# The author renounces to any kind of economic benefit
# and he is not responsible for any damage derived from
# the use of this script.
#
# E-mail (acastro@ctv.es)
#
#####################################################################
usage(){
echo "Usage: pov (project) (size=0..6) (quality=1..11)"
echo
echo "0) 40x30 (STD/20) No backup"
echo "1) 80x60 (STD/10) No backup"
echo "2) 100x75 (STD/8) No backup"
echo "3) 200x150 (STD/4)"
echo "4) 266x200 (STD/3)"
echo "5) 320x200 *"
echo "6) 400x300 (STD/2)"
echo "7) 640x480 *"
echo "8) 800x600 * (STD)"
echo "9) 1024x768 *"
echo
echo "The projects should be located in the directory pointed by"
echo "${HOMEPOV} and will use the same name for it and for"
echo "the main source file *.pov"
echo "(STD) is the standard resolution chosen."
echo
exit 1
}
newversion(){
mv ${PREFIX}.pov.8.gz ${PREFIX}.pov.9.gz 2> /dev/null
mv ${PREFIX}.pov.7.gz ${PREFIX}.pov.8.gz 2> /dev/null
mv ${PREFIX}.pov.6.gz ${PREFIX}.pov.7.gz 2> /dev/null
mv ${PREFIX}.pov.5.gz ${PREFIX}.pov.6.gz 2> /dev/null
mv ${PREFIX}.pov.4.gz ${PREFIX}.pov.5.gz 2> /dev/null
mv ${PREFIX}.pov.3 ${PREFIX}.pov.4 2> /dev/null
mv ${PREFIX}.pov.2 ${PREFIX}.pov.3 2> /dev/null
mv ${PREFIX}.pov.1 ${PREFIX}.pov.2 2> /dev/null
cp ${PREFIX}.pov ${PREFIX}.pov.1
gzip ${PREFIX}.pov.4 2> /dev/null
}
#################################################
size(){
export SAVE="yes"
case $1 in
0) Width=40 ; Height=30; SAVE="no" ;;
1) Width=80 ; Height=60 SAVE="no" ;;
2) Width=100; Height=75 SAVE="no" ;;
3) Width=200; Height=150;;
4) Width=266; Height=200;;
5) Width=320; Height=200;;
6) Width=400 ;Height=300;;
7) Width=640 ;Height=480;;
8) Width=800 ;Height=600;;
9) Width=1024;Height=768;;
*) usage
esac
}
quality(){
case $1 in
1) ;;
2) ;;
3) ;;
4) ;;
5) ;;
6) ;;
7) ;;
8) ;;
9) ;;
10) ;;
11) ;;
*) usage
esac
export Quality=$1
}
####################### main ##############################
export HOMEPOV=${HOME}/dat/pov
export PROYECT=$1
export PREFIX=${HOMEPOV}/${PROYECT}/${PROYECT}
if [ $# != 3 ]
then usage
fi
export POVRAY=/usr/local/apli/povray/povray3
size $2
quality $3
if [ $SAVE == "yes" ]
then newversion
fi
cat <<-FIN > ${PREFIX}.ini
Width=$Width
Height=$Height
Quality=$Quality
Library_Path=${POVRAY}/include
Input_File_Name=${PREFIX}.pov
Output_to_File=on
Output_File_Type=t
Output_File_Name=${PREFIX}.tga
verbose=on
Post_Scene_Command=xv ${PREFIX}.tga
FIN
# Output_File_Type=t
## Others hight performace options ##
# Antialias_Depth=3
# Antialias=On
# Antialias_Threshold=0.1
# Jitter_Amount=0.5
# Jitter=On
# Low priority, maybe I want to do other things.
nice -20 x-povray ${PREFIX}.ini
if [ $SAVE != "yes" ]
then echo "Warning !! There is no backup of this version."
fi
------------------------8<----------------------------------- Tasarım aşamasında düşünceleri sık sık defalarca sınamak zorundaydik ve idealimize adım adım yaklaştık.
Çalıştırmayı kolaylaştırmak için *.ini dosyasını oluşturacak, Povray ışınizleyiciyi çalıştıracak ve daha sonra görıntıleyecek bir kabuk programını oluşturacağız. $HOME/dat/pov/(project name) dizininde çalıştığımızı ve ana dosyamızın adının (project name.pov) olduğunu varsayalım.
Bu kabuk yazılımı birçok durum için genelde yeterli olan *.ini dosyasını oluşturuyor. Bu çalışmanın özel bir yoluna yönelik fakat eğer başka bir tanesini yeğlerseniz kolayca değiştirebilirsiniz.
Bu kullanımaracı kaynak dosyadaki son değişikleri yedekler çünkü değişik sonuçlar için birçok değişiklik yaptıktan sonra sık sık geri dönmeye karar veririz. Yukarıda belirttiğimiz gibi yaratıcı işlem fırça boyamasına benzer, nasıl devam edeceğimize adım adım karar veririz.
Eğer yazılımı en düşük çözünürlükte çalıştırmak istersek yeni sürümde dahi yedek kopyasını oluşturmaz: düşük çözünürlük ilginç bir test. Bu test çeşidi ile nesnelerin göreceli konumları üstüne fikirler elde edebilirsiniz. Bu kişisel çalışma yolu çok kolay. Eğer Povray ile tanışık değilseniz başlamak için iyi bir yöntem. Belki ilerde bu elaygıtını kendi kişisel gereksinimlerinize uyarlamak istersiniz.
Elde edilebilen bazı çözünürlükler bazü ölçünlü (standart) video çözünürlükleriyle aynıdır. Diğerleri 800x600 çözünürlüğünün parçalariıdır. Kısa bir yardım mÖnüsü için 'pov' yazınız.
$HOME dizininde çalışmak için uygun bir dizin yapısı oluşturun ve ilk günden nasıl kolay çalıştığını görün. Biz denemelerimizi bu elaygıtının kullanıldığı taban üstüne oturttuk. Bunu kullanmak gerekli olmamasüna rağmen sizin için daha rahattır.
Herşeyin çalıştığını görmek için basit bir örnekle başlayacağız:
------------------------8<-----------------------------------
#include "colors.inc"
#include "textures.inc"
#include "glass.inc"
// Author: Antonio Castro
// The camera will look towards the contact point
// of both spheres
camera {
location <0, 15, 35>
look_at <0, 10, 0>
}
// Source of white light
object {
light_source {
<20, 100, 50>
color White
}
}
// Sky with white clouds
object {
sphere { <0, 0, 0> 200000} // Great vault of heaven
texture {Blue_Sky scale <50000, 6000, 50000>} // We strecht the clouds
}
// Golden ball
sphere { <-10, 10, 0> 10
texture { Gold_Metal }
}
// Mirror ball
sphere { <10, 10, 0> 10
texture { Mirror }
}
// Glass ball
sphere { <0, 5, 10> 5
texture { T_Glass1 }
}
// Floor
// It is made with a great sphere that touches the center <0,0,0>
// but it could be implemented with a plane.
sphere {<0, -1000000, 0> 1000000
pigment {checker color Red color Yellow scale 2 } // Checker texture
}
------------------------8<-----------------------------------
$HOME/dat/pov/sample1/sample1.pov içine kopyalayın.
Eğer gerekli ise ilk doğru dizin yapısını oluşturun. Daha sonra bu yazıda bulduğunuz 'pov' uygulamasını Xwindows'dan çalıştırın.
$ pov sample1 4 9
'xv' ile görüntülemeye başlamanız gerekmektedir. Kendi görüntülerinizi yaratmak istediğiniz zaman örneğin 'vi' da elkitabinin metin sürümü ile yeni bir 'xterm' açmanüzü salık veririz.
../../common/March1998/sample1.gif
|