home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Encyclopedia of Graphics File Formats Companion
/
GFF_CD.ISO
/
formats
/
radiance
/
spec
/
langs.txt
< prev
next >
Wrap
Text File
|
1994-06-01
|
5KB
|
207 lines
Altogether there are at least 4 "languages"
involved with Radiance scene descriptions: the basic scene input
language, the function file language, the data file language and
the font language. All except the function file language are
exceedingly simple.
Scene Input
===========
statement: primitive
| alias
| command
| comment
primitive: STRING type STRING
INTEGER string_args
INTEGER integer_args
INTEGER real_args
alias: STRING alias STRING STRING
command: `!' STRING string_args
comment: `#' string_args
string_args: /* nothing */
| STRING string-args
integer_args: /* nothing */
| INTEGER integer_args
real_args: /* nothing */
| REAL real_args
type: "polygon"
| "cone"
| "sphere"
| "texfunc"
| "ring"
| "cylinder"
| "instance"
| "cup"
| "bubble"
| "tube"
| "plastic"
| "metal"
| "glass"
| "trans"
| "dielectric"
| "interface"
| "plasfunc"
| "metfunc"
| "brightfunc"
| "brightdata"
| "brighttext"
| "colorpict"
| "glow"
| "source"
| "light"
| "illum"
| "spotlight"
| "mirror"
| "transfunc"
| "BRTDfunc"
| "plasdata"
| "metdata"
| "transdata"
| "colorfunc"
| "antimatter"
| "colordata"
| "colortext"
| "texdata"
| "mixfunc"
| "mixdata"
| "mixtext"
| "prism1"
| "prism2"
Function File
=============
decl: ';'
| function_decl ';'
| variable_decl ';'
function_decl: ID '(' id_list ')' assign_op e1
variable_decl: ID assign_op el
id_list: ID
| ID ',' id_list
assign_op: '='
| ':'
e1: e1 '+' e2
| e1 '-' e2
| e2
e2: e2 '*' e3
| e2 '/' e3
| e3
e3: e4 '^' e3
| e4
e4: '+' e5
| '-' e5
| e5
e5: '(' e1 '('
| ID
| ID '(' id_list ')'
| REAL
| '$' INTEGER
Comments may appear between any two tokens set off by curly
braces {}, and may be nested to any level.
Data File
=========
data: dimensions value_list
dimensions: INTEGER dim_list
dim_list: dim
| dim dim_list
dim: REAL REAL INTEGER
| '0' '0' INTEGER indep_list
indep_list: REAL
| REAL indep_list
value_list: /* nothing */
| REAL value_list
Font File
=========
glyph_list: /* nothing */
| glyph glyph_list
glyph: INTEGER INTEGER coord_list
coord-list: /* nothing */
| INTEGER INTEGER coord_list
--------------------------------------------------------------
With regards to your topics, I have the following comments.
Specification of scene parameters:
- Radiance uses a right-hand coordinate system
- The eyepoint and view direction are given as options to
the renderers, and can be stored in a separate file
Supported primitives:
- N-sided polygons
- spheres
- cones, cylinders, rings
- hierarchical instancing for very complex geometries
Lighting models:
- Completely general
- Converter provided for IES luminaire specification
Textures:
- I break "textures" into two kinds, patterns and textures
- Patterns are variation in color, and can be specified as
pictures, data or functions in any combination
- Textures are perturbations in surface normal, and can
be specified in the same ways as patterns
- A light source distribution is a pattern
Bit Mapping:
- Usually given as a picture-type pattern (ie. "colorpict"
type)
- True bit-maps (ie. 1-bit depth images) may also be
produced using a special bit font
CSG:
- Radiance has an "antimatter" type which supports some
rudimentary CSG subtraction, but otherwise we are
strictly B-rep
Looping constructs or Recursion:
- The function file language supports recursion
- The "xform" program provides iteration for repeated
objects
Functions or Procedures:
- The function file language supports functions without side
effects
User extensibility:
- The user may create function files, data files and font
files, or provide his/her own images for patterns
- General bidirectional reflection distribution functions
may also be specified in the same way as patterns
and textures