@G"^.POV_e.Bild"                                         Oh, wozzat? Looks like a lion or a 
                                         black panther, and a disgusting snake 
                                         in a greek temple....strange muster 
                                         on the cylinders....waddozitmean???
						





                                        (dieses Bild umfat eine Beschreibung
                                         von insgesamt 200 kB und verursachte 
                                         beim Rendern eine Warnungsliste von 
                                         125 kB.....)

---------------------------------------------------------------------------------


@C9POV-Raytracing Teil 1: Let's Render!!@C7


POVRay 2.2 ist nun schon 2 Jahre alt, und in diesen 2 Jahren hat sich der
Raytracer-Markt mchtig verndert. Zumindest auf der Profi-Ebene auf anderen 
Computertypen. Komplexe Editoren, rasend schnelle Raytracer, vor allem aber 
genauere, realistischere Darstellungen selbst solch komplizierter Sachen wie 
Feuer, Bume usw. sind z.B auf dem Amiga inzwischen normal. Die Raumschiffe in 
"Babylon 5" wurden z.B. mit Lightwave auf einem Amiga 4000 gerendert. 
Auf dem Archi sollte es auch Anfang 95 einen Editor geben, der Artverwandtes in 
Punkto Geschwindigkeit in den Schatten stellt. Wie es meistens so ist, mssen 
wir wahrscheinlich drauf warten und froh sein, wenn er berhaupt kommt. Es 
ist aber schon schlimm genug, da es fr POVRay  keinen ordentlichem Editor 
gibt, vor allem weil er - leider - der bisher beste, weil genaueste Raytracer 
auf dem Acorn ist. Da sich bisher keiner die Mhe macht, wollen wir ein bichen 
die Mglichkeiten dieses Raytracers beschreiben und ein bichen Klarheit in die 
3D-Welt von POVRay bringen. Zumal dieser Raytracer auf fast allen Systemen 
existiert.Das hier ist also Allgemeinwissen.

Zunchst wollen wir erstmal genau diesen Umstand ausnutzen und uns fremde 
Beschreibungen holen und diese testen. Das hrt sich einfach an, aber dabei 
gibt es genug Stolpersteine, die man kennen sollte, bevor man sich ans eigene 
macht. Wer brigens nicht wei, wo er welche herbekommen soll, schreibe bitte an 
die Redaktion, wir schicken dann welche mitdem nchsten CR.
Eigentlich hat POVRay angeblich eine Option fr Dateien von PVRay 1.0, aber 
komischerweise wei die Option nichts davon und schlummert weiter. Wir mssen 
die Version1-Dateien also per Hand ndern.
(Nicht mal dafr gibts einen Converter - grrrrr!!!)
Aber Stck fr Stck! 
POV-,PVRay- und DKB-Dateien sind eigentlich alle gleich, bis auf ein paar 
Kleinigkeiten. 
Anfangen tun sie fast alle mit "Include...", tauchen dabei die 
Worte "colors", "shapes", "textures" oder "Stones" auf, knnen wir an deren 
Stelle, egal wie das sonst dasteht, ganz klar hinschreiben:
@C3
#include "colors.inc"
#include "shapes.inc"
#include "textures.inc"
#include "Stones.inc"

@C7Nochmal ganz langsam: Statt z.B. @C3"Basicshapes.data" @C7jetzt @C3"Shapes.inc",@C7klaro?
Fr Dateien mit @C3#include "<PVray$Dir>.dat.Model" @C7gelten etwas mehr nderungen 
in der ganzen Datei, genaueres steht etwas weiter unten.
Werden noch mehr Dateien genannt, die sich, weil sie extra gemacht wurden, im 
gleichem Verzeichnis wie der gerade editierten befinden, sollte man diese ins 
Verzeichnis @C3"!POVRay2.Include.inc"@C7 schmeien und in der Beschreibung die Endung 
@C3".inc" @C7geben, also statt 

#include "<POVscene$Dir>.level3.inc.thesnail"

dann nur 

#include "thesnail.inc"

Fr im Text genannte GIF-und TGA-Dateien gilt : 
Statt @C3"<POV$Dir>.include.gif.test" @C7jetzt nur noch @C3"test.gif"@C7, wobei sich die 
GIF-Datei "test" im Verzeichnis @C3!POVRay2.Include.gif @C7befinden sollte. Fr TGA-
Dateien heit das "test.tga" und das TGA-Verzeichnis ist !POVRay2.Include.targa .

Nun mssen wir noch die restliche Differenzen ausbgeln. Achtung! Im Gegensatz 
zu Version 1 achtet POVRay2 sehr wohl auf Gro- und Kleinschreibung !

ndern wir also "@C3viEw_PoiNt@C7"     in "@C3camera{@C7" 
ndern wir also "@C3end_view_point@C7" in "@C3}@C7"

Ja, genau, alles was ein "END_..." hat, hat auch einen Anfang. 
Grundstzlich mu eine Zeile 

SPHERE <0.0  0.0  0.0> 1.41 END_SPHERE

nachher so aussehen:	     

sphere{ <0.0 ,0.0 ,0.0>, 1.41 }

Also unbedingt die gschweiften Klammern beachten (C lt gren!).
Und unbedingt die Kommas beachten ! Die Kommas anstelle von Freizeichen kommen 
berall innerhalb wo die eckigen Klammern auftauchen, bei allen Objekten 
auch eins dahinter, mit Ausnahme von light_source (s.u.), translate, rotate, 
scale und innerhalb von color_map (da kommen gar keine Kommas rein). Lieber aber
zuviele Kommas machen, sind derer zuviele, sagt uns das der Raytracer schon.

Bei Version 1 von POV war der Kommentar stets in geschweiften Klammern.
Dieser Kommentar mu jetzt zeilenweise mit "//" gekennzeichnet werden. 
Oder noch besser: ndern wir "@C3{@c7" in "@C3/*@C7" und "@C3}@C7" in "@C3*/@C7" !

die Light_source wird jetzt ganz anders beschrieben, anstatt:

OBJECT  SPHERE <0.0 0.0 0.0> 5.0 END_SPHERE
   @C3TRANSLATE <100.0  120.0  -130.0>
   @C7TEXTURE COLOUR White AMBIENT 1.0 DIFFUSE 0.0 END_TEXTURE
   @C3LIGHT_SOURCE COLOUR White 
   @C7END_OBJECT

schreiben wir jetzt @C3light_source { <100.0 , 120.0 , -130.0> color White}@C7 ,d.h. 
wir schreiben jetzt nur, wo sich die Lichtquelle befindet,also die xyz-Werte 
vom Mittelpunkt des strahlenden Objektes oder ,wenn vorhanden, die Werte, die 
in "translate" stehen.
Jetzt noch mal ganz langsam: Wenn @C3TRANSLATE@C7 innerhalb eines Objektes @C3 nicht 
@C7dasteht, gucken wir nach den ersten Wort nach OBJECT, bei dem eckigen Klammern 
auftauchen. Vorausgesetzt, es handelt sich nicht um ROTATE oder SCALE, sind dies  
die Koordinaten der Light_source, die so bernommen werden.
Tauchen im gesamten Objekt auer bei ROTATE oder SCALE keine eckigen Klammern 
auf, befindet sich die Lichtquelle am Nullpunkt (kommt selten vor). Denn lassen wir
die eckigen samt Argumente einfach weg.
Wenn @C3TRANSLATE@C7 innerhalb eines Objektes aber dasteht, werden rigoros dessen
Werte abgeschrieben. Ausnahme ist, wenn @C3TRANSLATE@C7 innerhalb von @C3TEXTURE@C7
auftaucht. Dann tun wir wieder erstgenanntes. Klaro?


Nun zu den Dateien, wo am Anfang @C3#include "<PVray$Dir>.dat.Model" @C7steht. 
Diese wurden mit dem zur Version 1 mitgelieferten, uerst primitiven Modeller 
"Model" erstellt, der eine groe Schwche hatte: Bei mehr als 10 Objekten 
beging er meistens einen Fehler,der ihm so peinlich war, da er sich dafr 
entschuldigte und gnadenlos Harakiri beging.Bei diesen Dateien drfen wir 
ebenfalls alle oben genannten nderungen ausfhren, auerdem ndern wir aber:

<PVray$Dir>.dat.Model                   in      shapes.inc
intersection Box end_intersection       in      UnitBox
intersection Cone end_intersection      in      Cone_Y
texture                                 in      pigment
quadric Scalable_Sphere end_Quadric     in      Sphere
intersection Cylinder end_intersection  in      Cylinder_Y


Trotzdem hat POVRay noch gengend zu meckern. 

@PDDDDDDNo matching } found, undeclared identifier 'Bright_Blue_Sky' found instead

@C7Tja, statt wenigstens die Farbennamen von Version 1 beizubehalten, hat man auch
diese gendert. Bright_Blue_Sky z.B. heit neuerdings SkyBlue. Wenn man die 
genauen Werte wieder haben mchte, kann man aber die Colors-Datei von Version 1
nochmal einbinden mit @C3#include "colors/old.inc"@C7.

@PDDDDDD= expected but undeclared identifier 'rme' found instead.

@C7Ach ja, mlut mags der POV gar nich so, wer also "Gedrme" irgendwo zu
stehen hat, kriegt obige Fehlermeldung...

@PDDDDDDCannot open gif file "congo4.gif"@C7

Dies bedeutet entweder "nicht genug Speicher" oder "Datei gibts nich". Daher 
auch das komische Muster an den Sulen an dem Bild da oben. Mir war nmlich die
Datei "congo4" faschtt gegangen, so hab ich sie gegen "plasma3" eingetauscht...

@PDDDDDDPostmortem requested....

@C7POVRay mag irgendwas an dieser Datei nicht. Vielleicht hat sie Argumente, die 
ins Nichts fhren? Vielleicht hat sie zuviele Argumente (gibts das?)? Vielleicht
war der ANSI-C-Compiler von Acorn doch nicht so doll? Wer wei?

Wenn brigens gar nichts mehr geht, also sich nicht mal mehr die Maus bewegt, 
fehlen noch exakt 16 kB, damit POVRay endlich arbeiten kann.

Wenn wir jetzt alles richtig gemacht haben, warnt uns POVRay nur, was bedeutet, 
da er im Ernstfall die Befehle nicht ausfhrt.

Und nun die Befehlszeile per Hand eingetippt ins Taskwindow:

@P00CCCCpovray2 +iRAM::RamDisc0.$.ein +o<Wimp$ScrapDir>.aus +w400 +h300 +ft +q9 +a0.3@C7

 
rendert die Textdatei "@C3RAM::RamDisc0.$.ein@C7"
in die TGA-Datei (@C3+ft@C7) "@C3<Wimp$ScrapDir>.aus@C7"
in der Auflsung @C3400@C7 x @C3300@C7
Puffergrsse 16 kB
@C3Q@C7ualitt @C39@C7 (beste Qualitt)
geantialiast (@C3+a0.3@C7)

Es gibt noch ein Dutzend anderer Optionen, diese hier sind aber die wichtigsten.


Und damit das alles nicht umsonst war, drfen wir die Datei "iortest" rendern.
Wer das schafft, ohne da der Rechner irgendwann keine Lust mehr hat, der 
bekommt ein kostenloses CR-Abo einen ganzen Monat lang...

                                                   Der Walfisch / Archiologics

