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輅n 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軋 ula?abilirler veya okuyuculara g?r?nt?ler ?zerinde oynama ve de?i?tirme yapma hakk? verilmi?tir
E?er okuyucular Povray段 hen?z sistemlerine y?klememi?se, l?tfen kaynaklar?n yeri, y?kleme ve POVRAY 段n bi輅mlendirilmesi hakk?nda yeterli bilgi verdi?imiz bir ?nceki serilerin makalelerinde bulunan komutlar? takip edsinler.
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輅n eksiksiz bir tekniktir. Pahal? olmayan manada en ger軻k輅k輅lik i軻risinde 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軻kten 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軻k kameram?z?n teorik, foto?rafa duyarl? film i軻risindeki bir noktan?n kar??l??? olur.Herbir nokta daha sonra birbirinden ba??ms?z i?lenir.Povray段,g?r?nt?y? in?a etmek i輅n yap?land?rd?k ve daha sonra harici bir g?r?nt?leyiciyle g?zlenebilir.Povray段 SVGA i輅n 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軋s?ndan ba?lanarak yap?l?r, soldan sa?a, yukar?dan a?a??ya.Bu istek e? zamanl? de?ildir. Povray i輅n en genel yap? bu istek i軻risinde tam olarak in?a edilmi? TGA 24 bittir.
E?er herhangi biri, SVGA i輅n Povray段 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段n 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輅n renderer ???k ?zerindeki etkileri ???k kayna??n?n rengine ve konumuna bakarak hesap eder. Cismin y?zeyi ile ilgili olarak cismin ger軻k konumu .......Bu hesaplaman?n sonucu, cisim i軻risindeki noktalar?n yogunlu?unu ve rengini tan?mlayan ?? de?erli RGB i輅nde belirtilmi?tir.
Bir ?zet dolamba輙? yol
24 bitlik TGA yap?s? 輟k 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)
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輅n:
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輙? Yolun Sonu
Ger軻k kameranin filmi i軻risinde herhangi bir noktadan ayrilan isinlar ayrilir, fakat son rengi hesaplamak i輅n herbir isin, perdedeki herhangi bir cismi kesip kesmedigini belirler.Eger bunu yapiyorsa isin izleri algoritmasi isinin ulastigi b?lge i軻risindeki cismin ?zelliklerini 銹z?mlemeye devam eder.Sonra,karmasik cisimlerin tasarimi i輅n 輟k etkili bir (optimization?) teknik meydana gelir.Bu birinci karmasik cismi ihtiva eden yeni bir g?r?nmez cismin tan?mlanmasindan olusur.Genelde en 輟k 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.
Bu ekran "7 hata" olarak ba?l?kland?r?lm??t?r.
7erroresL?tfen perdenin ?zelliklerinin bazilarinin eksik oldugunu fark?na varin:
Povray sik sik benzer sonu輙arin ?stesinden gelebilmek i輅n 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軻k s?zdizimi son derece s?r?mden s?r?me degisir.Su an ki s?zdizim t?m?yle onaylanmis ve belki gelecekte 輟k degisiklige ugramayacaktir.Bagdasabilir sebepler i輅n 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軻nekleri vardir.
ヨrnek:
#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輅n gelistiricilere izin verir.
Povray hakkinda bir 輟k iyi kilavuz vardir, l?tfen bunu tercih edin.Burada 輟k ?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軻risinde konumlanir. */
# isareti ile ba?layan ?geler Dil Y?nergesi olarak bilinir.En 輟k kullanilan y?nergeler #declare ve #include y?nergeleridir.
#declare IDENTIFIER = ITEM
ヨrnek:
#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 軻?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輅n
Library_Path=${HOMEPOV}/include //kullan?c?
include dosyalar? i輅n
Bu, uygun tan?ma dosyas?n? olusturmak i輅n, '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輅n 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.
#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輅ren y?nergelere sahiptir. Povray'in ilk s?r?m? d?ng?ler ve ko?ullara ba?l? ifadeler i輅n y?nergelerden yoksundur. Bundan ba?ka, ekrandaki ??elerin tanimlamasi herhangi bir s?rada ortaya ??kabilir ve sonu輻a 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 軻?itlerin sabitleri, mant?kl? i?letmenler, ba?lant? i?letmenleri, vekt?rler i輅n i?letmenler, ?nceden tan?mlanm?? fonksiyonlar vb. gibi di?er programlama dilleriyle 輟k benzer dil ?zelliklerini tart??may? atlayaca??m.
Dilin ay?rt?lm?? kelimlerinden onlar? ay?rmak i輅n kimliklendirici etiketlere en az?ndan bir b?y?k harf kullanmak daha uygun olur.
Bir g?r?nt? bir bin kelimeye e?ittir diye s?k s?k s?ylenir ve bir ???n zerresinin fonksiyonelli?ini a??klamaya 軋l??t???n?z zaman bu ?zellikle do?rudur.Herbir genel d???nceyi bollukla resimlemeye 軋l??aca??z, aksi halde, okuyucu bu makaleyi izleyebilmek i輅n kendi ?rneklerini kullanarak a??klamalar? test etmek i輅n kod yazmaya zorlayacakt?r. Bu Povray dizileri i軻risinde 輟k g?r?nt? dahil edebilmek i輅n 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輅n kendi kendini k?s?tlar. Bu noktada, sadece 輟k basit bir ?rnekle ilgilenece?iz. I??n zerresini uyum i輅nde ?retebilemk i輅n 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:
Initial_Clock = 0.0
Final_Clock = 2.0
Initial_Frame = 1
Final_Frame = 200
Subset_Start_Frame = 51
Subset_End_Frame = 75
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輅n ideal bir yerdir.
-----------------------------------------------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軛ir de?i?iklik gerektirmeden her zaman aynen dahil edilecektir. # # # ヌeviriler orijinal ba?l?k metnini korudu?u takdirde bir sonraki 軻viriyi ekle. # # Yazar koddan dolay? her 軻?it ekonomik kazan輻an feragat eder ve kullan?mdan dolay? t?reyen m?mk?n zararlar i輅n sorumlu de?ildir. # # Elektronik Posta (acastro@ctv.es) # ##################################################################### 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<-----------------------------------
Enrique Zanardi'ye bir keresinde Povray i輅n bir modellemenin olup olmad???n? sordu?um zaman,Debian i輅n 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 輟k 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輅n bir di?er y?ntem vard?r. Bu y?ntemler Povray'in ilk s?r?m?yle beraber 輟k tan?d?k oldu, fakat hala ge軻rli bir se軻nektir. 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軻rir.
ンkinci y?ntemi g?steren C kodu par軋s? ?udur:
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.
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輅n vekt?rler vas?tas?ylad?r. Vekt?rler POVRAY'da 輟k s?k kullan?l?r. Bir vekt?r i輅n 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輅n kalem ve silgiyle bereber 軋?l?mam?z s?k s?k gereklidir. Deneme ve yan?lmayla cisimler i輅n en iyi b?lgeyi belirleyebilelim diye, bir ba?lang?? tahmininden ba?lamk i輅n ve d???k 銹z?n?rl?kte ve d???k kalitede cisimleri ?retmek i輅n 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輅n 輟k kullan??l?d?r.
Sphere { <2, 2, 2, 10
pigment { White }
translate <-3
&nb sp; // Remember <-3 = <-3,
-3, -3
}
Sonu? <-1, -1 -1>'de merkezlenmi? yar?軋p? 10 olan bir k?redir.
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? 輟k ?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輟k matematiksel fonksiyon vard?r.
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
}
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;
pov LF2-PlanetBue 4 9 1 100 1 360
Bu parametrelerin ne anlama geldi?idir.
Example ../../common/May1998/planetblue.jpg
Bir g?r?nt? uygun ???klar?ve g?lgeleri ?retebilemk i輅n bir veya daha fazla ???k kayna?? kulan?labilir. Bununla beraber, ???k kaynaklar?n?n say?s?n?n artmas?, g?r?nt?y? ?retmek i輅n kullan?lan CPU miktar?n?n artmas? demektir.
ンngilizce'ye 軻viri: Miguel A Sepulveda & Mark Kuchel