@G"Bild"                                         Frwahr, dies scheint mir ein Lwe,
                                         ja ich mchte fast sagen, ein schwarzer 
                                         Panther zu sein, und daneben eine, also 
                                         nennen wir es einfach eine hliche
                                         Schlange, und all dies in einem 
                                         ionischen Tempel, der sich gar eigenar-
                                         tiger Verzierungen verzieren tut. 
                                         Nur-warum das alles?
                                        
                                        
                                        
                                        
                                        (This picture gets a description of app.
                                         200 kB and creates a warning list of
                                         125 kB before rendering.....)
                                        
---------------------------------------------------------------------------------                                     

@C9POV-Raytracing Part #1: Nademmalos!!@C7

POVRay 2.2 for Acorn Comps is appprox. 2 years old, and in the last 2 years the
market for raytracers has made a huge change. I mean the profi-market on other
types of computer. Complex editors, amazing fast raytracers, but most important
more accuracy by such hard things like fire or trees, are now easy to do with
an AMIGA. Just watch the space ships in "Babylon 5" or the boats in "SeaQuest",
they were rendered by an Amiga 4000 using Lightwave.
On Acorn World Oct'94 I've watched an amazing 3D-program, which was unbeatable
in speed, with a gouraud-shaded, texture-mapped object view, with ability of
reading and writing Imagine, 3DS and DXF files. But, likely, I have to wait and
can be happy if it ever comes. But it's still a shame, there is no usable editor
for POVRay 2.2, because its momentarily the best raytracer on opportunities and 
correctness. Just because nobody will write one, we want to write a little bit
about the features of this raytracer and get a clearer view of the 3D-world of
POVRay. Remember: POV is existing on nearly every type of computer, so this is
general knowledge.

First we want to use this and get some descriptions and render them.
Sounds easy, but you got to know the possible mistakes before you make your 
own descriptions. You can get descriptions in the most mailboxes or, if 
there's none, by ourselves.
Normally POVRay2 got an option for using files of version 1 of PVRay or DKB,
but the option dont know anything about itself and sleeps. So we got to change
the version 1 files by hand (grrrrrrr!!!! Whaddabout a CONVERTER???).
But step by step! POV, PVRay and DKB files are always the same, except some
small differences.
They're all beginning with "Include...", are there the words "colors", "shapes",
"textures" or "Stones", we can write, whatever there stands:
@C3
#include "colors.inc"
#include "shapes.inc"
#include "textures.inc"
#include "Stones.inc"

@C7Again a little bit slower: 
in case of @C3"Basic@P888800shapes@C3.data" @C7 we write now @C3"Shapes.inc"@C7, kapito?
By files with @C3#include "<PVray$Dir>.dat.Model" @C7 we got to do a little bit more 
changes, but this will come later in this part.
If there stands more include's of files, which were in the same directory, we 
throw them all in the directory @C3"!POVRay2.Include.inc"@C7 and change their names
in the description into "filename.inc",for example:

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

is now

#include "thesnail.inc"

For the named GIF and TGA files we do following:
Instead of @C3"<POV$Dir>.include.gif.test"@C7 we write now @C3"test.gif"@C7, and the
GIF file "test" has to be in directory @C3!POVRay2.Include.gif @C7. For TGA files
it means "test.tga" and its directory is !POVRay2.Include.targa .

Now we got to "smooth" the last differences. UWAGA! In difference to version 1
of PVRay is POVray2 very case-sensitive!!

So we change "@C3viEw_PoiNt@C7"     into "@C3camera{@C7"
So we change "@C3end_view_point@C7" into "@C3}@C7"

Yeah, really, every "END_..." has a beginning, it's true....
Generally a row like that

SPHERE <0.0  0.0  0.0> 1.41 END_SPHERE

have now to look like this:

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

So mind the "{" and the "}" (we call them "Schweiferls")!
And mind the commas! Commas instead of spaces have to be everywhere inside
the edged nestings (.."<" and ">"...."Eckerls"), also by every object one
behind, except of light_source, translate, rotate, scale and inside of
color_map, which got no commas at all. By insecurity better make too much 
commas, the raytracer says if it's too much.
In older files of POV vers.1 or DKB, the comments were always in "Schweiferls".
Now we got to mark the comment row-like with "//", or better we change
"@C3{@c7" in "@C3/*@C7" und "@C3}@C7" in "@C3*/@C7" !

The Light source is now completely different,instead of
   
   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

we write now @C3light_source { <100.0 , 120.0 , -130.0> color White}@C7, which
means we only write the location of the light source, the xyz-Values of the 
middle point of the lighting object or, if seen, its "translate" values.
A little bit slower: If @C3TRANSLATE@C7 is @C3not@C7 inside an object, we look
for the first word after OBJECT with "Eckerls". In case it's not ROTATE or
SCALE, these are the coords of the light_source, we're minding.
If in the whole object except ROTATE and SCALE the "Eckerls" are missing, 
the light_source is on Zero-Point (...<0,0,0>...) which is very seldom.
But if @C3TRANSLATE@C7 is inside the object, we write down its values, except
@C3TRANSLATE@C7 is inside of @C3TEXTURE@C7, in this case we do the first thing
written above. Kapito?

No we come to the files with @C3#include "<PVray$Dir>.dat.Model" @C7. These 
files were created with the very primitive modeller "!Model", featured by
version 1 of PVRay. This modeller got a big weakness: By more than 10 objects
it makes such a hard error (type 5), that it excuses itself and makes harakiri.
In these files we make every change written above, also we change 

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

But, too, POVRay got enough to misunderstand...

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

@C7Well, they dont keep the names of the colors of version 1 of PVray, dont
know why. For instance Bright_Blue_Sky is now SkyBlue. But you can keep the
old color names with @C3#include "colors/old.inc"@C7.

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

Strange error message! It means "not enough memory" or "couldn't find the file".
Now you know what the strange muster on the cylinders in the picture on the top
means: I was missing the gif file "congo4", so i was using "plasma3".....

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

@C7Happy Englishmen, who never needs any mlut like the german, the czech or
the scandinavian! By writing down "Gedrme" you gets this error message...

@PDDDDDDPostmortem requested....

@C7POVray dont like this file. Maybe it gots arguments following into nothing?
Maybe it gots too much arguments (possible?)? Maybe the Acorn ANSI C Compiler
isnt that good? Who knows?

By now: If the whole system stops that much you can't move the mouse
POVRay only misses exactly 16 kB to work....

If we done everything right, POVray gives only warnings, which means 
in the hardest case, he dont do the order.

And now the command line written handly into the taskwindow:

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

rendering description "@C3RAM::RamDisc0.$.ein@C7"
into TGA file (@C3+ft@C7) "@C3<Wimp$ScrapDir>.aus@C7"
in resolution @C3400@C7 x @C3300@C7
buffersize 16 kB
@C3q@C7uality @C39@C7 (best quality)
antialiased (@C3+a0.3@C7)

there are a dozen other options, but these are the most important.

And now, at last, we got the file "iortest" for rendering. If you reach
that without your computer striking anytime you got a free CR abo
a whole month long...

                                                   Der Walfisch / Archiologics

