Concise RayShade Scene Format

Compiled by Paul Bourke
December 1993


File:
   <Item> [<Item> ... ]

Item:
   <Viewing>
   <Light>
   <Atmosphere>
   <RenderOption>
   <ObjItem>
   <Definition>

ObjItem:
   <SurfDef>
   <ApplySurf>
   <Instance>
   <ObjDef>

Viewing:
   eyep Xpos Ypos Zpos          /* Eye position (0 -10 0) */
   lookp Xpos Ypos Zpos         /* Look position (0 0 0) */
   up Xup Yup Zup               /* "up" vector (0 0 1) */
   fov Hfov [Vfov]              /* FOV in degrees (horiontal=45) */
   aperture Width               /* Aperture width (0) */
   focaldist Distance           /* focal distance (|eyep - lookp|) */
   shutter Speed                /* Shutter speed (0 --> no blur) */
   framelength Length           /* Length of a singelf frame (1) */
   screen Xsize Ysize           /* Screen size */
   window Xmin Ymin Xmax Ymax   /* Window (0 0 xsize-1 ysize-1) */
   eyesep Separation            /* eye separation (0) */

SurfDef: /* Give a name to a set of surface attributes. */
   surface Name      <SurfSpec> [<SurfSpec> ...]

Surface: /* Surface specification */
   <SurfSpec>                           /* Use given attributes */
   Surfname          [<SurfSpec> ...]   /* Use named surface    */
   cursurf           [<SurfSpec> ...]   /* Use current surface  */

SurfSpec:
   ambient R G B              /* Ambient contribution */
   diffuse R G B              /* Diffuse color */
   specular R G B             /* Specular color */
   specpow Exponent           /* Phong exponent */
   body R G B                 /* Body color */
   extinct Coef               /* Extinction coefficient */
   transp Ktr                 /* Transparency */
   reflect Kr                 /* Reflectivity */
   index N                    /* Index of refraction */
   translu Ktl R G B Stpow    /* Translucency, transmit diffuse, exp */
   noshadow                   /* No shadows cast on this surface */

Effect:
   mist              R G B Rtrans Gtrans Btrans Zero Scale
   fog               R G B Rtrans Gtrans Btrans

Atmosphere:
   atmosphere        [Index] <Effect> [<Effect>...]

ApplySurf:
   applysurf         <Surface>

Instance:
   <Object>          [<Transforms>] [<Textures>] 

Object:
   Primitive
   Aggregate

ObjDef:              /* define a named object */
   name Objname      <Instance>
        
Primitive:           /* Primitive object */
   plane             [<Surface>]   Xpos Ypos Zpos Xnorm Ynorm Znorm
   disc              [<Surface>]   Radius Xpos Ypos Zpos 
                                   Xnorm Ynorm Znorm
   sphere            [<Surface>]   Radius Xpos Ypos Zpos
   triangle          [<Surface>]   Xv1 Yv1 Zv1
                                   Xv2 Yv2 Zv2
                                   Xv3 Yv3 Zv3 /* flat-shaded */
   triangle          [<Surface>]   Xv1 Yv1 Zv1 Xn1 Yn1 Zn1
                                   Xv2 Yv2 Zv2 Xn2 Yn2 Zn2
                                   Xv3 Yv3 Zv3 Xn3 Yn3 Zn3 /* Phong */
   polygon           [<Surface>]   Xv1 Yv1 Zv1
                                   Xv2 Yv2 Zv2
                                   Xv3 Yv3 Zv3 [Xv3 Yv4 Zv4 ...]
   box               [<Surface>]   Xlow Ylow Zlow
                                   Xhi  Yhi  Zhi
   cylinder          [<Surface>]   Radius Xbase Ybase Zbase 
                                   Xapex Yapex Zapex
   cone              [<Surface>]   Rbase Xbase Ybase Zbase  
                                   Rapex Xapex Yapex Zapex
   torus             [<Surface>]   Rswept Rtube Xpos Ypos Zpos 
                                   Xnorm Ynorm Znorm
   blob              [<Surface>]   Thresh Stren Rad Xpos Ypos Zpos
                                   [Stren Rad X Y Z ...]
   heightfield       [<Surface>]   Filename

Aggregate:
   Grid
   List
   Csg

Grid:
   grid X Y Z        <ObjItem> [<ObjItem> ...] end

List:
   list              <ObjItem> [<ObjItem> ...] end

Csg:
   union             <Object> <Object> [<Object> ...] end
   intersect         <Object> <Object> [<Object> ...] end
   difference        <Object> <Object> [<Object> ...] end

Transforms:          /* Transformations */
   translate         Xtrans Ytrans Ztrans
   scale             Xscale Yscale Zscale
   rotate            Xaxis Yaxis Zaxis Degrees
   transform         A   B   C
                     D   E   F
                     G   H   I
                     [Xt  Yt  Zt]

Textures:
   texture           <TextType> [Transforms] [<Texture> [Transforms]...]

Texture:
   checker           <Surface>
   blotch            Scale <Surface>
   bump              Bumpscale
   marble            [Colormapname]
   fbm               Offset Scale H Lambda Octaves Thresh [Colormapname]
   fbmbump           Offset Scale H Lambda Octaves
   wood
   gloss             Glossiness
   cloud             Offset Scale H Lambda Octaves Cthresh Lthresh Transcale
   sky               Scale H Lambda Octaves Cthresh Lthresh
   stripe            <Surface> Width Bumpscale
   image             Imagefile [<ImageTextOption> [<ImageTextOption> ...]]

ImageTextOption:
   component         <SufComp>
   range             Lo Hi
   smooth
   textsurf          <Surface>
   tile              U V <Mapping>

SurfComp:
   ambient
   diffuse
   reflect
   transp
   specular
   specpow

Mapping:
   map uv
   map cylindrical   [Xorigin Yorigin Zorigin Xup Yup Zup Xu Yu Zu] 
   map linear        [Xorigin Yorigin Zorigin Xv  Yv  Zv  Xu Yu Zu]
   map spherical     [Xorigin Yorigin Zorigin Xup Yup Zup Xu Yu Zu]

Light:
   light R G B       <LightType> [noshadow]
   light Intensity   <LightType> [noshadow]

LightType:
   ambient
   point             Xpos Ypos Zpos
   directional       Xdir Ydir Zdir
   extended          Xpos Ypos Zpos Radius
   spot              Xpos Ypos Zpos Xat Yat Zat Coef Thetain Thetaout
   area              Xorigin Yorigin Zorigin
                     Xu Yu Zu Usamples 
                     Xv Yv Zv Vsamples

RenderOption:
   samples           Nsamp [jitter | nojitter] 
   background        R G B 
   outfile           Filename
   frames            Nframes 
   starttime         Time
   contrast          R G B
   maxdepth          Depth 
   cutoff            Factor
   report            [verbose] [quiet] [Freq] [Statfile]
   shadowtransp

Definition:
   define Name Expr