Also Known As: Quick Ray Trace
Type | Scene description |
Colors | NA |
Compression | Uncompressed |
Maximum Image Size | NA |
Multiple Images Per File | NA |
Numerical Format | NA |
Originator | Steve Koren |
Platform | All |
Supporting Applications | QRT ray-tracing application, others |
See Also | NFF, POV, PRT, Radiance |
Usage
Description of 3D scenes for ray tracing or other rendering applications.
Comments
A solid scene description format similar to other ray-tracing formats described in this book. It is not used much today.
Vendor specifications are available for this format.
Code fragments are available for this format.
QRT (Quick Ray Trace) is associated with the QRT ray-tracing application created by Steve Koren. As such, it implements the QRT scene-description language. Each QRT file consists of a number of ASCII lines, which define objects in the QRT system, and operations which can be performed by QRT.
Contents:
File Organization
File Details
For Further Information
QRT files consist of a number of ASCII lines consisting of keywords. Like most ray-trace formats, it was designed to be human-readable and to be composed and altered with standard text-editing tools. Keywords may appear in any order in the file. Parameters associated with each keyword may appear in any order, provided that there is no ambiguity.
Elements in the file may be floating-point vectors, color value triples, integers, floating-point numbers, and text strings.
QRT is a prototype of many current scene-format and 3D files. Please consult the documentation on the CD-ROM for more information about usage conventions.
The following is a list of QRT keywords. Each keyword may be followed by one or more parameters, and may or may not be required. Following the list of keywords is an explanation of the parameters.
SKY | FILE_NAME | SPHERE |
QUADRATIC | POLYGON | END_INSTANCES |
GROUND | OBSERVER | PARALLELOGRAM |
PATTERN | BEGIN_BBOX | INSTANCE_OF |
FOC_LENGTH | FIRST_SCAN | TRIANGLE |
RECTANGLE | END_BBOX | DEFAULT |
LAST_SCAN | LAMP | RING |
CIRCLE | BEGIN_INSTANCES |
optional
zenith = (r, g, b)
horiz = (r, g, b)
dither = x
SKY ( horiz = (0, 0, .5), zenith = (.5, 0, 0), dither = 3 )
optional
loc = (x,y,z) (required)
a = floating-point (required)
b = floating-point (required)
c = floating-point (required)
d = floating-point (required)
xmax = floating-point (required)
xmin = floating-point (required)
ymax = floating-point (required)
ymin = floating-point (required)
zmax = floating-point (required)
zmin = floating-point (required)
name = string
pattern = string
remove = string
amb = (r,g,b)
diff = (r,g,b)
trans = (r,g,b)
density = (r,g,b)
mirror = (r,g,b)
fuzz = integer
index = positive float
dither = integer
sreflect = positive float
reflect = positive float
QUADRATIC (loc = (10,10,10), a = 1, b = 0, c = 1, d = 100))
Synonyms for loc are location, pos, and position. parameters a, b, c, and d are coefficients in a quadratic equation defining a surface. See the documentation on the CD-ROM for more information.
optional
name = string (required)
x_size = positive float (required)
y_size = positive float (required)
CIRCLE = circle_def
RECTANGLE = rect_def
POLYGON = poly_def
PATTERN ( x_size = 12, y_size = 12, name = TEST)
CIRCLE, RECTANGLE, and POLYGON definitions are the same as with normal keyword syntax.
optional
focal_length (integer)
FOC_LENGTH = 60
optional
start_x = positive float (required)
start_y = positive float (required)
end_x = positive float (required)
end_y = positive float (required)
amb = (r,g,b)
diff = (r,g,b)
trans = (r,g,b)
density = (r,g,b)
mirror = (r,g,b)
fuzz = integer
index = positive float
dither = integer
sreflect = positive float
reflect = positive float
RECTANGLE ( start_x = 10, start_y = 12, end_x = 15, end_y = 15)
RECTANGLE is used within a pattern definition only.
optional
eliminated in QRT v1.5 and greater
NA
Replaced by use of X_RES and V_RES.
optional
radius = positive float
amb = (r,g,b)
diff = (r,g,b)
trans = (r,g,b)
density = (r,g,b)
mirror = (r,g,b)
fuzz = integer
index = positive float
dither = integer
sreflect = positive float
reflect = positive float
CIRCLE ( radius = 5 )
CIRCLE is used within a pattern definition only.
required
file_name (ASCII)
FILE_NAME = IMAGE.RAW
optional
point1 = (x,y) (required)
amb = (r,g,b)
diff = (r,g,b)
trans = (r,g,b)
density = (r,g,b)
mirror = (r,g,b)
fuzz = integer
index = positive float
dither = integer
sreflect = positive float
reflect = positive float
POLYGON ( point = (0,0), point = (8,0), point = (0,8), point = (0,0))
POLYGON is used within a pattern definition only. There must be at least four point parameters specified in the parameter list, with the first and last points being the same.
required
loc = (x,y,z) (required)
lookat = (x,y,z) (required)
up = (x,y,z)
OBSERVER (loc = (0,0,0), lookat = (90, 0, 0))
Observer cannot look up, lookat must be different from loc, and up must be nonzero. Synonyms for loc are pos, location, and position.
optional
name = string
name = TEST_BOX BEGIN_BBOX SPHERE sphere definition here TRIANGLE triangle definition here END_BBOX
BEGIN_BBOX and END_BBOX always are used together to define a block.
optional
eliminated in QRT v1.5 and greater
NA
Replaced by use of X_RES and V_RES.
optional
name = TEST_BOX
See BEGIN_BBOX
END_BBOX is always paired with BEGIN_BBOX.
optional
loc = (x,y,z) (required)
dist = positive float (required)
amb = (r,g,b)
radius = positive float
LAMP ( loc = (10,20,30), dist = 123.5) )
optional
NA
BEGIN_INSTANCES NAME = object_1 BEGIN_BBOX list of primitives here END_BBOX NAME = object_2 BEGIN_BBOX list of primitives here END_BBOX END_INSTANCES
Always paired with END_INSTANCES to define a block.
optional
loc = (x,y,z) (required)
radius = x (floating-point) (required)
name = string
pattern = string
remove = string
amb = (r,g,b)
diff = (r,g,b)
trans = (r,g,b)
density = (r,g,b)
mirror = (r,g,b)
fuzz = a (integer)
index = p (floating-point)
dither = a (integer)
sreflect = p (floating-point)
reflect = p (floating-point)
SPHERE ( loc = (10,10,10), radius = 8.8, diff = (1.0, .1, .1))
optional
NA
See BEGIN_INSTANCES
Always paired with a BEGIN_INSTANCES statement to define a block.
optional
loc = (x,y,z) (required)
v1 = (x,y,z) (required)
v2 = (x,y,z) (required)
name = string
pattern = string
remove = string
amb = (r,g,b)
diff = (r,g,b)
trans = (r,g,b)
density = (r,g,b)
mirror = (r,g,b)
fuzz = integer
index = floating-point
dither = integer
sreflect = floating-point
reflect = floating-point
PARALLELOGRAM ( loc = (10,10,10), v1 = (10,0,0), v2 = (0,0,20))
Synonyms for loc are pos, location, and position. For v1 and v2 you can substitute vect1 and vect2, respectively.
optional
name = string (required)
loc = (x,y,z) (required)
scale = (x,y,z)
INSTANCE_OF (name = object_1, loc = (10, 10, 20), scale = .5,.4,.3))
See BEGIN_INSTANCES and END_INSTANCES keywords.
optional
loc = (x,y,z) (required)
v1 = (x,y,z) (required)
v2 = (x,y,z) (required)
name = string
pattern = string
remove = string
amb = (r,g,b)
diff = (r,g,b)
trans = (r,g,b)
density = (r,g,b)
mirror = (r,g,b)
fuzz = integer
index = floating-point
dither = integer
sreflect = floating-point
reflect = floating-point
TRIANGLE ( loc = (40,20,30), v1 = (8,4,2), v2 = (0,0,10))
Synonyms for loc are pos, location, and position. For v1 and v2 you can substitute vect1 and vect2, respectively.
optional
no_shadow
threshold = positive float
x_res = positive float
y_res = positive float
aspect = positive float
amb = (r,g,b)
diff = (r,g,b)
trans = (r,g,b)
density = (r,g,b)
mirror = (r,g,b)
fuzz = integer
index = floating-point
dither = integer
sreflect = floating-point
reflect = floating-point
DEFAULT (no_shadow, diff = (1,0,1), aspect = .8)
optional
loc = (x,y,z) (required)
v1 = (x,y,z) (required)
v2 = (x,y,z) (required)
rad_1 = floating-point (required)
rad_2 = floating-point (required)
name = string
pattern = string
remove = string
amb = (r,g,b)
diff = (r,g,b)
trans = (r,g,b)
density = (r,g,b)
mirror = (r,g,b)
fuzz = integer
index = floating-point
dither = integer
sreflect = floating-point
reflect = floating-point
RING (loc = (10,10,10), v1 = (8,5,0), v2 = (0,0,10), rad_1 = 10, rad_2 = 20)
Synonyms for loc are pos, location, and position. For v1 and v2 you can substitute vect1 and vect2, respectively. Note that rad_2 must be greater than rad_1, and both must be greater than zero.
Although the author, Steve Koren, says that QRT is obsolete and has been for some time, we find that the QRT distribution is still widely available via FTP from various sites. It is also downloaded with some regularity from the major PC BBSs.
For further information about the QRT file format, see the QRT specification included on the CD-ROM, and the QRT Language Reference found in the QRT distribution. You can also contact:
Steve Koren
Email: koren@hpfcogv.fc.hp.com
Copyright © 1996, 1994 O'Reilly & Associates, Inc. All Rights Reserved.