Yaz�'n�n G�r�nt�leri
Bu yaz�daki t�m g�r�nt�ler JPEG format�nda ve (Thumbnail) boyutuna
indirgenmi�tir. Daha kaliteli tam boy GIF s�r�mlerine thumbnail
ikonlar�na t�klayarak ula�abilirsiniz.
Animasyonlar JPEG format�nda sadece 15 kareyle d���k ��z�n�rl�kte yap�lan�rlar.��z�n�rl���
s�n�rlama ve animasyonun boyutu harddiskin b�y�k b�l�m�n� kullanmaktan
ka��nmay� ve bu yaz�y� yava� y�klememeyi umut ederiz.�stelik bununla birlikte,
bu g�r�nt�ler i�in kaynaklar herzamanki gibi haz�rlanacakt�r ve okuyucular
herhangi istenilen ��z�n�rl�kte g�r�nt�leri sunabilen 'pov' (bir
�nceki konuda tart���lm��t�)ad� verilen ara�a ula�abilirler
veya okuyuculara g�r�nt�ler �zerinde oynama ve de�i�tirme yapma hakk� verilmi�tir
E�er okuyucular Povray�i hen�z sistemlerine
y�klememi�se, l�tfen kaynaklar�n yeri, y�kleme ve POVRAY �in bi�imlendirilmesi
hakk�nda yeterli bilgi verdi�imiz bir �nceki serilerin makalelerinde bulunan
komutlar� takip edsinler.
G�r�nt�le�tirim Temelleri
Bir �nceki makalede �zetle ���n izlerinin etkilerinden bahsetmi�tik. �imdi
bu konuyu daha fazla detayla ke�fedelim.
Rendering yapay bir g�r�nt�y� ba�arabilmek
i�in eksiksiz bir tekniktir. Pahal� olmayan manada en ger�ek�ik�ilik i�erisinde
i����n davran���ni ve cisim �zerindeki g�rsel etkileri kopyalamy� dener.
Bir �nceki makalemizde g�r�nt�leyicinin
���n demetlerini saymas�ndan bahsetmi�tik. Fakat bu model alt�nda yeterli
���k kayna�� bir kaynak olarak davranmaz bir lavabo(sink)
gibi davran�r. Bu rollerin de�i�imi hakk�nda bir sebep vard�r, e�er ���nlar
���k kayna��ndan ayr�lsalard�, hesaplanabilir b�y�k bir zaman kayb� olacakt�.��nk�
b�t�n ���nlar�n d���nda kalanlar ger�ekten sadece az say�da ���k kayna��
kameraya ula��r.�leriki a�amalarda kameradaki g�r�nt� ���nlar�n say�s�n�
g�r�nt�yle ili�kili olarak azalt�yoruz.Kameradaki t�m noktalar, bizim ger�ek
kameram�z�n teorik, foto�rafa duyarl� film i�erisindeki bir noktan�n kar��l���
olur.Herbir nokta daha sonra birbirinden ba��ms�z i�lenir.Povray�i,g�r�nt�y�
in�a etmek i�in yap�land�rd�k ve daha sonra harici bir g�r�nt�leyiciyle
g�zlenebilir.Povray�i SVGA i�in yap�land�rd�k ve daha sonra g�r�nt� hesapland���
zaman g�r�nt�y� izleyebilmenin m�mk�n
olabilece�ini g�rebiliriz.Bu, ekranda g�r�nt�n�n en ufak par�as�ndan ba�lanarak
yap�l�r, soldan sa�a, yukar�dan a�a��ya.Bu istek e� zamanl� de�ildir. Povray
i�in en genel yap� bu istek i�erisinde tam olarak in�a edilmi� TGA 24 bittir.
E�er herhangi biri, SVGA i�in Povray�i
in�a etmek �zerine ilgilenmek isterse(Ben �u ana kadar kendi kendime
yapmad�m), ��renecekleri tek �ey g�r�nt�n�n b�lgesine ba�l� olan render�in
h�z�d�r. Karma��k b�lgeler kolay b�lgelerden daha uzun zaman al�r.�ok cisimli
b�lgeler i�lenme a��s�ndan bir veya hi� cisimi olmayan b�lgelerden daha
uzun zaman al�r. I��nlar�n cisim �zerinde herbir etkisi i�in renderer
���k �zerindeki etkileri ���k kayna��n�n rengine ve konumuna bakarak hesap
eder. Cismin y�zeyi ile ilgili olarak cismin ger�ek konumu .......Bu hesaplaman�n
sonucu, cisim i�erisindeki noktalar�n yogunlu�unu ve rengini tan�mlayan
�� de�erli RGB i�inde belirtilmi�tir.
Bir �zet dolamba�l� yol
24 bitlik TGA yap�s� �ok yer i�gal eder,
fakat �retmek �nemsiz ve i�lemesi(process=denetleme?) kolayd�rThe TGA 24bits
format occupies a lot of space but is trivial to generate and easy to process.
Herbir g�r�nt� birimi, RGB paketini kodlayan 8 bitlik 3 rakamla
verilir.
8bits *3 = 24 bits; 2^24 = 16777216 (16 milyon renk)
Geni�li�i ve y�ksekli�i ��zmek i�in:
int w, h, i;
fseek(fi, 12L, SEEK_SET);
fread(&w, 2L, 1L, fi); /** pos 12 **/
fread(&h, 2L, 1L, fi); /** pos 14 **/
�lk g�r�nt� birimini okumak i�in:
fseek(fi, 16L, SEEK_SET); /** pos 16 **/
Blue=fgetc(fi);
Green=fgetc(fi);
Red=fgetc(fi); |
|
Bu bilgi baz� cisimleri i�lemek ve birka� ilgin� effecti(sonu�,etki)
ba�armak a��s�ndan yeterli olmal�d�r. E�er okuyucu programlamayla ilgili
olaraktan biraz bilgisi varsa, a�a��daki �rnekleri �neriyoruz:
1) Bir cismi Parlakla�t�rmak/Koyula�t�rmak (beyaz g�r�nt� birimleri
255,255,255 ve siyah g�r�nt� birimleri 0,0,0)
2)***Superimpose and image with a black
background on top of another one using black as a transparent value
3)�ki cismi renk de�erlerini ortalayarak harmanlamak
5)Verilen bir rengi azaltmak/art�rmak
6) Bir cismin renk grafi�ini sa�lamak (renklerin
listesi ve frekanslar�(s�kl�klar�)
Bu operasyonlar�n tamam� web �zerinde s�k
s�k i�e yarar yard�mc� programlar kullan�larak �stesinden gelinebilir.Bununla
birlikte, baz� vakalarda cisme �nemsiz olmayan d�n���m uygulamak gerekebilir
ve bu 24 bitlik TGA yap�s� t�m�yle ba�ar�labilir.
Dolamba�l� Yolun Sonu
Ger�ek kameranin filmi i�erisinde herhangi bir noktadan ayrilan isinlar
ayrilir, fakat son rengi hesaplamak i�in herbir isin, perdedeki herhangi
bir cismi kesip kesmedigini belirler.Eger bunu yapiyorsa isin izleri algoritmasi
isinin ulastigi b�lge i�erisindeki cismin �zelliklerini ��z�mlemeye devam
eder.Sonra,karmasik cisimlerin tasarimi i�in �ok etkili bir (optimization?)
teknik meydana gelir.Bu birinci karmasik cismi ihtiva eden
yeni bir g�r�nmez cismin tan�mlanmasindan olusur.Genelde en �ok kullanilan
kap bir k�redir, fakat k�plerde en az digeri kadar yaygindir. Buradaki
temel ama�, isin izlerini??? o The main goal here is to used the container
to force the ray-tracer to approximate the complex object by using
the container instead, arriving rays bounce off the invisible spherical
container. This removes a great deal of the computational process. The
primitive used is "bounce_by" and it is commented next to illustrate how
well the ray-tracer works. We will see an example later on in the article
when we treat complex figures.
7 Hata
As an illustration of the issues explored so far let us review an image
created using several techniques and discuss them one by one
Bu ekran "7 hata" olarak ba�l�kland�r�lm��t�r.
L�tfen
perdenin �zelliklerinin bazilarinin eksik oldugunu fark�na varin:
-
Y�z�g�n merkezinde yogun tek bir isik kaynagi var ve hernekadar biz bu
noktaya dogruca baksakta isik kaynagi g�r�nmez durumdadir.
-
�sik kaynaginin arkasina yerle�tirilen beyaz
k�re g�ky�z�nde b�y�k bir g�lge yaratmaktadir.Bu bir "ger�ek
g�ky�z�" yerine pahali olmayan bir dekorasyon i�erisinde g�r�lebilir.
-
Deniz y�zeyi bazi dalgalari g�sterir, fakat
�ok ince d�z bir y�zey kullanarak yapilmistir.Sinirin dalga �ariltilari
olmaksizin d�z bir �izgiyi g�stermek i�in d�zg�n y�zeyi kestik.
-
Yakin bir d�zlem �zerinde 3 tane k�p vardir.Orta boylu k�p g�lge birakmaz.
-
K�p�n �zerindeki g�lgeler ve isiklar cok yabancidir.Ne �esit bir isik kullanilmistir?D�zg�n
isik kaynagi ?veya daginik isik kaynagi?.G�r�n�se g�re herbir kutu farkli
isik ortamlarina sahiptir.
-
Cam top sol tarafta kati gibi g�z�k�r(araliksiz), fakat ufak bir b�lgeyi
saga dogru g�t�rd�k ve topun bos oldugunu degerlendirmek i�in bir cisim
koyduk.
-
Bir b�t�n olarak perdeye baktigimizda atmosferik etkilerin eksikligi kanit
olmustur. effects.Hava asiri derecede "saydamdir".Denizin rengi koyu mavi
olmali ve ufuga dogru yayilmalidir. Beyaz top havada iz birakmayan konik
bir g�lge birakir
Su anda kullanilan sayisiz tekniklerin detaylarini ger�ekten a�iklayamayiz.Bu
�rnekle bizim konumuz okuyucuya isin izlerinin dogal ortami taklit
etmek i�in atilimlarini g�stermektir, fakat fizigin dogal kanunlariyla
her zaman b�t�n olarak bir yakinma vardir.��nk� ger�egin daha b�y�k
de�erleri i�in olusum s�reci yerine �denecek b�y�k bir bedle vardir.Bazi
teknikler digerleriyle �retilen kusurlari saptamak i�in en iyileridir.En
kesin sonu�u ve olusum s�reci arasinda bir denge bulmak i�in en �nemlidir.
Povray Dili
Povray hakkindaki bu seriler, imkaninin bir y�zeysel gezisinin �tesine
ge�emez. Povray dili, seriler i�erisinde derin olarak el alinmak i�in �ok
genistir.Bu sebepten dolayi su anda dilin en �nemli �zeelikleri �zerinde
sadece birka� g�r�s belirleyebiliriz.
Povray sik sik benzer sonu�larin �stesinden gelebilmek i�in dilbilgisel
d�zenin bir miktarinin kullanimina izin verir.Bu Povray'in baslangicina
(This is due in part to the genesis of Povray,?)..Povray'in ger�ek s�zdizimi
son derece s�r�mden s�r�me degisir.Su an ki s�zdizim t�m�yle onaylanmis
ve belki gelecekte �ok degisiklige ugramayacaktir.Bagdasabilir sebepler
i�in eski s�zdizim �zellikleri biraz degisik formda veya orijinalinde
yeni s�r�mlerinde korunmustur. S�zdizimde esnekligin bir �rnegi kisaca
test edecegimiz d�nmelerdir.
Povray'in daha �nceki s�r�mlerini kullanan girdi kaynak dosyalarini
olusturan derleme se�enekleri vardir.
�rnek:
Benzer dosya yapilari i�erisinde, 1
, 2 veya 3. S�r�mlerden kullanmak i�in kolaylikla ekler:
#version 1.0
.......
#version 2.0
.......
#version 3.0
....... |
|
Sasirtici olarak Povray; 1.0, 2.0 veya 3.0'da yazilmis kaynak kodlaraini
birlestirmek i�in gelistiricilere izin verir.
Povray hakkinda bir �ok iyi kilavuz vardir, l�tfen bunu tercih edin.Burada
�ok �nemli �zelliklere y�nelerek zaman kazanacagiz.
Yorumlar, Bildiriler, include dosyalari
Yorumlar C++ tipiyle asagidaki gibi yazilir.
�rnek:
// Bu yorum bir d�n�s satiri ile biter.
/* Bu yorum slash karakteri i�erisinde konumlanir. */ |
|
# isareti ile ba�layan
�geler Dil Y�nergesi olarak bilinir.En �ok kullanilan y�nergeler
#declare ve #include y�nergeleridir.
Belirtim S�zdizimleri:
#declare IDENTIFIER = ITEM |
|
�rnek:
�oklu Tan�mlay�c�lar�n�n Belirtimi:
#declare Rows = 5
#declare Count = Count+1
#declare Here = <1,2,3
#declare White = rgb <1,1,1
#declare Cyan = color blue 1.0 green 1.0
#declare Font_Name = "ariel.ttf"
#declare Ring = torus {5,1}
#declare Checks = pigment { checker White, Cyan } |
|
#declare ifadesi �gelerin
b�y�k bir �e�idini depo etmeye izin verir:bir d�nme, (texture), renk, cisim,
rakamsal deger,...
Diger cok onemli �ge Another crucial element are the include statements
that allow to include in our source file code fragments previously saved
in other files.
By default the include directive searches the local directory for the
file. If the file is not found it then passes to search the Library_Path.
Esas olarak 2 rehber kullanaca��z.:
Library_Path=${POVRAY}/include // Povray� in include dosyalari i�in
Library_Path=${HOMEPOV}/include //kullan�c�
include dosyalar� i�in
Bu, uygun tan�ma dosyas�n� olusturmak i�in,
'pov' dilinin yaz�m sisteminin nas�l prati�e koyuldu�udur. Buna daha sonra
gelece�iz.
Povray'dan en y�ksek derecede ��kt� alabilmek
i�in bilmek zorunda oldu�umuz include dosyalar�n�n bir toplulu�u vard�r.Kodumuza
dahil edilebilen ve geli�tiicilerin be�enisine customize edilmi� kaynaklar�n
bir k�t�phanesidir.
Baz� Bilinen include dosyalar�:
#include "colors.inc"
#include "textures.inc"
#include "shapes.inc"
#include "finish.inc"
#include "glass.inc"
#include "metals.inc"
#include "stones.inc"
#include "woods.inc"
#include "atmos.inc" |
|
Povray �stelik
ko�ullara ba�l� ifadeleri ve d�ng�leri harekete ge�iren y�nergelere sahiptir.
Povray'in ilk s�r�m� d�ng�ler ve ko�ullara ba�l� ifadeler i�in y�nergelerden
yoksundur. Bundan ba�ka, ekrandaki ��elerin tanimlamasi herhangi bir s�rada
ortaya ��kabilir ve sonu�ta geli�tirici, geleneksel programlama dillerinden
b�y�k bir zihinsel hareket getirmek
zorundad�r. Ekranda ��elerin bildirisinin s�ras�, hala konuyla ilgili de�ildir,
fakat d�ng�ler benzer sat�rlar�n yaz� kalabal���ndan geli�tiriciyi kurtar�r
ve ko�ullu sat�rlar �rne�in, animasyonda kullan�lan clock de�erine g�re
bir ekran tan�mlamam�za izin verir.
Bir sonraki makalede karma��k cisimleri tart��t���m�z zaman ko�ullu ifadelerin
bir �rne�ini verece�iz.
�ok fazla dil y�nergeleri vard�r.(# ile
ba�layan), fakat biz burada g�sterilenlerden ikisinin �st�nde duraca��z.
Declare ve include , b�y�k yo�unlukla en s�k kullan�lanlard�r.
De�i�ik �e�itlerin sabitleri, mant�kl�
i�letmenler, ba�lant� i�letmenleri, vekt�rler i�in i�letmenler, �nceden
tan�mlanm�� fonksiyonlar vb. gibi di�er programlama dilleriyle �ok benzer
dil �zelliklerini tart��may� atlayaca��m.
Dilin ay�rt�lm�� kelimlerinden onlar� ay�rmak
i�in kimliklendirici etiketlere en az�ndan bir b�y�k harf kullanmak daha
uygun olur.
Animasyon Hakk�nda Temeller
Dealing with this issue so early on deserves a short explanation
Bir g�r�nt� bir bin kelimeye e�ittir diye
s�k s�k s�ylenir ve bir ���n zerresinin fonksiyonelli�ini a��klamaya �al��t���n�z
zaman bu �zellikle do�rudur.Herbir genel d���nceyi bollukla resimlemeye
�al��aca��z, aksi halde, okuyucu bu makaleyi izleyebilmek i�in kendi
�rneklerini kullanarak a��klamalar� test etmek i�in kod yazmaya zorlayacakt�r.
Bu Povray dizileri i�erisinde �ok g�r�nt� dahil edebilmek i�in temel sebeplerden
biridir. Amac�m�z It is often said that an image is worth a thousand words,
and this is especially true when we try to explain the functionality
of a ray tracer. We will try to illustrate abundantly each concept, otherwise
the reader would be force to write code to test the explanations using
his own examples in order to follow the article. This is one of the main
reason for including so many images in the Povray series. Our hope is that
consulting the images included might be sufficient to remind the reader
of the concept studied avoiding having to go through the text once more.
Sometimes an image is not sufficient and instead we require a sequence
of them to appreciate small differences between images and special effects.
This is why we see justified to discuss animations at this moment.
Povray g�r�nt�lerin bir uyumunu �retebilmek
ve onlar� bir kerede diske kaydedebilmek i�in kendi kendini k�s�tlar. Bu
noktada, sadece �ok basit bir �rnekle ilgilenece�iz. I��n zerresini uyum
i�inde �retebilemk i�in Povray limits itself to generate a sequence of
images and save them to the disk one at a time. For the moment we
are only interested on a very simple method. The ray tracer will be launched
several times passing each time a number that select the image in the sequence
to be produced. In order to re-launch multiple times Povray there are some
nice options that can be added to the *.ini file specially thought for
generating animations:
Canland�r�m i�in ba�lat�m dosyas� �rne�i:
Initial_Clock = 0.0
Final_Clock = 2.0
Initial_Frame = 1
Final_Frame = 200
Subset_Start_Frame = 51
Subset_End_Frame = 75 |
|
Bir �nceki makalede
animasyonlar i�in tan�ma dosya �rnekleri *.ini dosyalar�n� �retebilmek
i�in basit bir program �nerdi�imizden dolay�, Povray'in kullan�m�n� kolay
ve kullan��l� yapmak, animasyonlar�n �retimeye izin vermek i�in Povray'i
g�ncellemeyi izin verir.
Yeni �erit olarak birka� projenin �tesinde
payla��lan bir ek include rehberine sahiptir. '$HOME/dat/pov/include'.
Bu kullan�c� k�t�phanelerini yerle�tirmek i�in ideal bir
yerdir.
Pov ver 2.0
Example of an *.ini file:
-----------------------------------------------8<-----------------
#!/bin/bash
#####################################################################
# Yazar: Antonio Castro Snurmacher (Feb-1998)
#
# pov (ver 2.0)
#
# Esta versi�n esta dedicada a
su inclusi�n en la
# revista LinuxFocus
(freeware)
#
# Esta version (2.0) incorpora posibilidad de generar animaciones
#
# Requiere 'xv' e 'imagemagick (convert,animate) '
#
# 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 traduccion 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.
#
# Bu s�r�m This version is writen for its
inclusion in the
# magazine LinuxFocus (freeware)
#
# Bu s�r�m (2.0) animasyonlar� �retebilme yetene�ine sahiptir.
#
# 'xv' ve 'imagemagick gerektirir. (convert,animate) '
#
# Bu program kopya hakk�na sayg� g�sterildi�i s�recec kullan�labilir, da��t�labilir ve de�i�tirilebilir.
# Bu ba�l�k hi�bir de�i�iklik gerektirmeden her zaman aynen dahil edilecektir.
#
#
# �eviriler orijinal ba�l�k metnini korudu�u takdirde bir sonraki �eviriyi ekle.
#
# Yazar koddan dolay� her �e�it ekonomik kazan�tan feragat eder
ve kullan�mdan dolay� t�reyen m�mk�n zararlar i�in sorumlu de�ildir.
#
# Elektronik Posta ([email protected])
#
#####################################################################
uso(){
echo "Usage: pov <project <size=0..6 <quality=1..11 "
echo " [ <Initial_Frame <Final_Frame
<Initial_Clock <Final_Clock"
echo " [ <Subset_Start_Frame
<Subset_End_Frame ] ]"
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 "Projects should be located in a directory within "
echo "${HOMEPOV} and the same base name for the directory and
the "
echo "main *.pov file will be used."
echo "(STD) Otomatik belirlenen standart ��z�n�rl�kt�r."
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;;
*) uso
esac
}
quality(){
case $1 in
1) ;;
2) ;;
3) ;;
4) ;;
5) ;;
6) ;;
7) ;;
8) ;;
9) ;;
10) ;;
11) ;;
*) uso
esac
export Quality=$1
}
#############################################################
Single(){
Cat <<-FIN ${PREFIX}.ini
Output_File_Name=${PREFIX}.tga
Post_Scene_Command=xv ${PREFIX}.tga
FIN
}
#############################################################
SubSet(){
Cat <<-FIN ${PREFIX}.ini
Subset_Start_Frame=$Subset_Start_Frame
Subset_End_Frame=$Subset_End_Frame
FIN
}
#############################################################
Animation(){
Cat <<-FIN ${PREFIX}.ini
Output_File_Name=${PREFIX}.tga
Initial_Frame=$Initial_Frame
Final_Frame=$Final_Frame
Initial_Clock=$Initial_Clock
Final_Clock=$Final_Clock
FIN
if [ $NumParm == 9 ]
then
SubSet
Fi
Cat <<-FIN ${PREFIX}.ini
Pre_Scene_Command=rm -f \`ls --color=none
${PREFIX}*.tga.gif\`
Pre_Frame_Command=rm -f \`ls --color=none
${PREFIX}*.tga\`
Post_Frame_Command=convert %o %o.gif
Post_Scene_Command=animate -delay $DELAY \`ls -tr
--color=none ${PREFIX}*.tga.gif\`
FIN
}
####################### main ##############################
export HOMEPOV=${HOME}/dat/pov
export PROYECT=$1
export PREFIX=${HOMEPOV}/${PROYECT}/${PROYECT}
if [ $# != 3 ] && [ $# != 7 ] && [ $# != 9 ]
then uso
fi
NumParm=$#
if [ $NumParm -le 3 ] && [ grep Clock ${PREFIX}.pov /dev/null
2&1 ]
then
echo "No econtrado identificador Clock en el
fuente"
uso
fi
export POVRAY=/usr/local/apli/povray/povray3
size $2
quality $3
Initial_Frame=$4
Final_Frame=$5
Initial_Clock=$6
Final_Clock=$7
Subset_Start_Frame=$8
Subset_End_Frame=$9
NumClocks=`expr $Final_Clock - $Initial_Clock`
if [ $NumClocks -gt 0 ]
then if [ $NumClocks -le 40 ]
then export
DELAY=`expr 4000 / $NumClocks`
else export
DELAY=100
fi
else export DELAY=4000
fi
if [ $SAVE == "yes" ]
then newversion
fi
cat <<-FIN ${PREFIX}.ini
Width=$Width
Height=$Height
Quality=$Quality
Library_Path=${POVRAY}/include
Library_Path=${HOMEPOV}/include
Input_File_Name=${PREFIX}.pov
Output_to_File=on
Output_File_Type=t
verbose=on
FIN
if [ $NumParm == 3 ]
then ## Single image
Single
else ## Animation
Animation
Fi
#montage ${PREFIX}.tga.* ; animate ${PREFIX}.
# Output_File_Type=t
## Others hight performace options ##
# Antialias_Depth=3
# Antialias=On
# Antialias_Threshold=0.1
# Jitter_Amount=0.5
# Jitter=On
# Low nice value just in case you want to run other processes
nice -20 x-povray ${PREFIX}.ini
if [ $SAVE != "yes" ]
then echo "!! Dikkat !! Kopya(backup?) dosya �retilmedi. "
fi
---------------------------8<-----------------------------------
|
|
Bazen Povray
d���nda harici yararl� sistemler kulland�k. �rne�in; animasyonlar� g�rselle�tirmek
i�in imagemagic'den yararl� "animate" ve "convert" '� kulland�k.
Enrique Zanardi'ye bir keresinde Povray
i�in bir modellemenin olup olmad���n� sordu�um zaman,Debian i�in Povray
paketinin bak�c�s� ve devaml�la�t�r�c�s� , �unu yazd�:
ScEd kulland�m.(�stelik Debian'da kullan��l�).
Bir kere kulland���n�z zaman �ok basit.Kullan�c��lar kendi "token"(belirti,iz,
g�sterge)'lerini tan�mlayabilmeleri nedeniyle, nas�l karma��k oldu�u sorun
de�il, bir Scheme yorumlay�c�s� kullan�larak derlenebilir. �nsanlar �stelik
Ac3D'yi �nerdiler, fakat �zg�r olmad���na inan�yorum.
Animasyonlar� �retebilmek i�in bir di�er
y�ntem vard�r. Bu y�ntemler Povray'in ilk s�r�m�yle beraber �ok tan�d�k
oldu, fakat hala ge�erli bir se�enektir. Povray'i birka� kere launch
eden bir d�g�y� �reten harici bir programdan olu�ur.D�ng�n�n herbir tekrar
yap���nda, program ana kaynakta '#include' ifadesine ekelenen bir dosya
�retir, bu dosyalardan herbirisi o anki durumla ilgili bilgi i�erir.
�kinci y�ntemi g�steren C kodu par�as�
�udur:
----------------------8<---------------------------------------------
-
for(Frame=1; Frame < UltimoFrame; Frame++){
fi=fopen("pajaro.inc", "w");
fprintf(fi, "#declare PosX_pajaro1 = %d\n",
FuncionPosX_pajaro1(Frame));
fprintf(fi, "#declare PosY_pajaro1 = %d\n",
FuncionPosY_pajaro1(Frame));
fprintf(fi, "#declare AnguloAlas_p1 = %d\n",
FuncionAngAlas_p1(Frame));
fclose(fi);
sprintf(comando, "povray -ipajaro.pov -opajaro%04d.tga", Frame);
system(comando);
}
----------------------8<----------------------------------------------&nb
sp; |
Bir sonraki b�l�mde d�nmelerin ve yer de�i�tirmelerin
ayr�ntalar�n� g�steren animasyonlar�n bir �rne�ini test edece�iz.
3 Boyutlu D�n���mler
Birka� 3 boyutlu d�n���m bir cisim �zerine
uygulanabilir. �stelik cisimler bir topluluk olabilir ve ayn� 3 boyutlu
d�n���mler toplulu�a bir b�t�n olarak uygulayacak, �rne�im, yer de�i�tirmeler�
d�nmeler, �l��leme
Konum
Bir cismin konumu <x,y,z> koordinatlar�yla
belirlenir. Koordinat baslang�c�nda merkezlenmi� cisimleri tan�mlamak genel
bir uygulamad�r.
Her cisim bir translation komutu kullanarak
ilk konumundan tan�mlanabilir <x,y,z> b�lgesine ta��nabilir. Yer de�i�imlerinin
datas�n� en iyi �ekilde g�sterebilmenin yolu i�in vekt�rler vas�tas�ylad�r.
Vekt�rler POVRAY'da �ok s�k kullan�l�r. Bir vekt�r i�in x, y, z bile�enleri
ile genel, k�sa bir rakam ve i�aret
sistemi <x,y,z>' dir; e�er t�m bile�enler ayn� ise, <24, 24, 24 =<24.
olur. POVRAY 3 vekt�r� �nceden tan�mlar: x=<1,0,0 y=<0,1,0 ve z=<0,0,1.
Sonra 3*y = <0,3,0 ve -2*x = <-2,0,0.
Ekranda cisimleri nereye yerle�tirece�imizi
planlamak i�in kalem ve silgiyle bereber �a�l�mam�z s�k s�k gereklidir.
Deneme ve yan�lmayla cisimler i�in en iyi b�lgeyi belirleyebilelim diye,
bir ba�lang�� tahmininden ba�lamk i�in ve d���k ��z�n�rl�kte ve d���k kalitede
cisimleri �retmek i�in POVRAY'i kullanmam�za
yard�m eder.
POVRAY'da i�e yarar 3 boyutlu d�n���mler
�unlard�r:
Rotate <VECTOR
scale <VECTOR
translate <VECTOR
Yer de�i�tirmesel ve d�nmesel d�n���mler
hem cisimleri karma��k bir ekrnada kurmak(yerle�tirmek manas�nda olabilir)
hem de animasyonlar i�in �ok kullan��l�d�r.
Yer De�i�tirmeler
Her cisim son konumundaki koordinatan ilk
konumundaki koordinati ��kartarak hesaplanan bir vekt�r� eklemekle farkl�
bir b�lgeye ta��nabilir. Geometrik olarak yer de�i�im vekt�r� bir ilk konumundan
son konumuna giden bir vekt�r olarak g�sterilebilir.Bir �rnek:
Sphere { <2, 2, 2, 10
pigment { White }
translate <-3
&nb sp; // Remember <-3 = <-3,
-3, -3
}
Sonu� <-1, -1 -1>'de merkezlenmi� yar��ap�
10 olan bir k�redir.
D�nme
Cisimler koordinatlar�n merkezine do�ru giden
bir eksen boyunca d�nd�r�lebilir. Bu d�nmeleri a��klayabilmek i�in genel
bir kullan�md�r ve bu cismin(ba�lang�� noktas�nda merkezlenmi� g�sterilmelidir)
ilk olarak uygun bir y�nlendirmeye d�nd�rlmesinden dolay� sonra en son
konumuna yer de�i�tirilir. Kar��t i�lem (ilk yerde�i�tirme ve daha sonra
d�nme) benzer sonu� vermeyecektir?(yield)
Bir d�nme bir d�nm ekseni ve bu eksen �zerinde
d�nmenin a��s� belirtilerek tan�mlanmak zorundad�r. D�nmenin anlam� sol-el
kural�n� izler. ( Sol elini pa�marma��n pozitif ekseni g�sterecek �ekilde
kald�r ve sonra yumru�unu kapat. Kapanm�� yumru�un hareketinin y�n� d�nmenin
anlam�n�? verir.
POVRAY'da bir d�nmeyi tan�mlaman�n iki
yolu vard�r: "eksen * a��" veya "X, Y ve Z eksenlerindeki 3 d�nmeyi g�steren
<n, n, n" . Baz� �rnekler:
rotate x * 45 = rotate <45, 0, 0
rotate <45, -30, 20 = rotate x*45 rotate y*-30 rotate z*20
rotate 20*z = rotate z*20
rotate y*90 x*90 = rotate <0, 90, 0 rotate <90, 0, 0
rotate y*90 x*90 != rotate <90, 90, 0
En son �rnek bir e�itlik de�ildir ve hatalar�
s�k s�k ba�g�steren bir durumdur. D�nmenin us�l� �ok �nemlidir. <n,n,n
d�nmesini kulland���n�z zaman, d�nmeler X, Y, Z s�ras�nda yerine getirilir.
Ve hernezaman farkl� bir d�nme us�l� gerekirse ? . E�er istenirse geli�tirici
"radians" fonksiyonunu kullanarak a��lar� radyan cinsinde kullanabilir.
POVRAY'da matematiksel aritmeti�in
de�erini kolayla�t�ran bir�ok matematiksel fonksiyon vard�r.
�l��leme
Cisimlerin ebatlar� �l��leme d�n���mleriyle de�i�tirilebilir. Bir cismin
X,Y veZ y�n�n� �l��lemek i�in 3 say� kullan�l�r. Bu bir cismi yass�la�t�rmaya,
boyutunu art�rmaya, azaltmaya izin verir.
Burada bir k�re kullanaraktan bir elipsoidi in�a etmenin bir yolu verilmi�tir.
sphere { <0,0,0, 10
pigment { White }
scale <1,4,10
}
3 Boyutlu D�n���mler Hakk�nda Son Notlar.
D�n���m ve �l��leme i�lemleri herhangi bir s�rada yerine getirilebilir.
Bununla beraber, bir tek d�nme i�lemleri de�i�ikliklerinin yerine getirilmesi
i�lemlerin b�t�nl���n� par�alamak a��s�ndan yeterlidir. ve bu nedenden
dolay� s�ra �ok �nemli olmu�tur.Burada 3 boyutlu de�i�imle s�ran�n �enmeini
g�stermek i�in basir bir �rnek vard�r. K�renin merkezinde d�nmenin ekseni
ufukta az�c�k k���lm��t�r.( Bu �rnek ?)
----------------------------------8<------------------------------&nb
sp;
#include "colors.inc"
#include "textures.inc"
//##### To launch animation execute: ######
//# pov LF2-PlanetBue 4 9 1 100 1 360 #
//###############################
#declare RY1 = clock * 5
#declare RZ1 = 25
#declare T1 = <5 ,0 ,0
#declare RY2 = clock
camera {
location < -5, 5, 15
look_at < 0, -2, 0
}
light_source { <-15, 15, 15 color White}
sphere { <0, 0, 0 4
texture { Shadow_Clouds }
rotate y * RY1
rotate z * RZ1
translate T1 rotate y * RY2
}
----------------------------------8<------------------------------&nb
sp; |
|