CRYSTAL: Arbeitsweise
Das Programm liest kristallographische Daten etwa in der folgenden Form:
title Zeolith A
cell 12.30 12.30 12.30 90. 90. 90.
spgp P m -3 m
polysz w 3.0 MediumBlue
polysz o 5.5 Scarlet
edges 0.05
atom si 2 0.0 0.182 0.3712
atom o 3 0.0 0.000 0.000
atom w 1 0.5 0.000 0.000
end
und erzeugt (z.B. mit vrmlcrystal -p -.5 1.5 -.5 1.5 -.5 1.5 zeolith.str )
daraus entweder ein VRML-Script-File, das direkt mit einem Viewer wie z.B.
vrweb betrachtet werden kann:
#VRML V1.0 ascii
# Scene file created by POVcrystal from zeolit_a.str */
# with command line options: -b 100.00 100.00 100.00 -o 0.50 0.50 0.50 */
# -p -0.50 1.50 -0.50 1.50 -0.50 1.50 -v 0.00 0.00 0.00 */
Separator {
Material {
ambientColor 0.1 0.1 0.1
diffuseColor 1 1 1
specularColor 0.9 0.9 0.9
shininess 0.8
}
PerspectiveCamera {
position 2.646 -2.747 108.446
orientation 0 0 1 0
focalDistance 103.662
heightAngle 0.285796
}
Separator{
Material{
diffuseColor 0.1 0.1 0.1
}
Coordinate3{ point[
-6.150000 -6.150000 -6.150000,
....
6.150000 -6.150000 6.150000]
}
IndexedLineSet{coordIndex[
0,1,2,3,0,4,5,6,7,4,-1,5,3,-1,2,6,-1,7,1,-1]
}
}
# Polyhedron (24) around o at 0.000000 0.000000 0.000000
Separator {
Material {
diffuseColor 1 0 0
}
Coordinate3 { point [
-8.388600 -10.715759 -6.150000,
....................................usw..........................
oder in der Version für den Raytracer die entsprechende POV-Eingabe-Datei:
/* Scene file created by POVcrystal from zeolit_a.pov */
/* with command line options: -b 100.00 100.00 100.00 -o 0.50 0.50 0.50 */
/* -p -0.50 1.50 -0.50 1.50 -0.50 1.50 -v 0.00 0.00 0.00 */
#include "colors.inc"
#default { finish
{ ambient 0.7
diffuse 0.3
specular 0.03 roughness 0.01 }
}
camera{
location< 0 ,0, -299.000006>
up <0, 0, 0.1>
right <0.1, 0, 0>
look_at <0,0,0>
}
background{color White}
light_source {< 0, 0, -4000.000000> color red 4.0 green 4.0 blue 4.0 }
object{ union{
cylinder{< -6.150000, -6.150000, -6.150000>, <-6.150000, -6.150000, 6.150000>, 0.020000
texture{pigment{color Black }}}
cylinder{< -6.150000, -6.150000, 6.150000>, <-6.150000, 6.150000, 6.150000>, 0.020000
texture{pigment{color Black }}}
cylinder{< -6.150000, 6.150000, 6.150000>, <-6.150000, 6.150000, -6.150000>, 0.020000
texture{pigment{color Black }}}
cylinder{< -6.150000, 6.150000, -6.150000>, <-6.150000, -6.150000, -6.150000>, 0.020000
texture{pigment{color Black }}}
cylinder{< -6.150000, -6.150000, -6.150000>, <6.150000, -6.150000, -6.150000>, 0.020000
texture{pigment{color Black }}}
cylinder{< 6.150000, -6.150000, -6.150000>, <6.150000, 6.150000, -6.150000>, 0.020000
texture{pigment{color Black }}}
cylinder{< 6.150000, 6.150000, -6.150000>, <6.150000, 6.150000, 6.150000>, 0.020000
texture{pigment{color Black }}}
cylinder{< 6.150000, 6.150000, 6.150000>, <6.150000, -6.150000, 6.150000>, 0.020000
texture{pigment{color Black }}}
cylinder{< 6.150000, -6.150000, 6.150000>, <6.150000, -6.150000, -6.150000>, 0.020000
texture{pigment{color Black }}}
cylinder{< 6.150000, 6.150000, -6.150000>, <-6.150000, 6.150000, -6.150000>, 0.020000
texture{pigment{color Black }}}
cylinder{< -6.150000, 6.150000, 6.150000>, <6.150000, 6.150000, 6.150000>, 0.020000
texture{pigment{color Black }}}
cylinder{< 6.150000, -6.150000, 6.150000>, <-6.150000, -6.150000, 6.150000>, 0.020000
texture{pigment{color Black }}}
/* Polyhedron (24) around o at 0.000000 0.000000 0.000000 */
/* 6-sided polygon */
triangle {< -8.388600, -10.715759, -6.150000>,
<-6.150000, -10.715759, -8.388600>, <-6.150000, -8.388600, -10.715759>texture{pigment{color Scarlet
}}}
..........usw.............
Mit dieser ergeben sich dann alle Möglichkeiten der weiteren
Gestaltung, die der Raytracer POV zuläßt
(siehe dazu das POV-Handbuch )