SvLis Home Page

Technical Overview

by Dan Pidcock

svlis@bath.ac.uk
 
 
 

Copyright © 1994, 1996, 1999 Information Geometers Ltd and The University of Bath


 











The basic component used in svLis is the primitive. There are currently six simple primitives in svLis: real numbers, half-planes, spheres, cylinders, cones, and tori. The modeller also allows any implicit function to be used as a primitive, thus giving access to an enormous range of shapes. Real numbers are required for arithmetic operations. The remaining five primitives are half-spaces and therefore divide space into regions. SVLIS denotes these regions as either solid or air. Using set-theoretic operators, primitives are combined to create a set-theoretic tree with primitives at the leaves and operators at the nodes. Such a tree is called a set.

A box is a three-dimensional region of interest which is an axially-aligned cuboid; it is stored in svLis as three intervals1, one for each dimension. A model is defined as a box together with one or more sets and defines a group of objects in the region of space that the box occupies.

The relationship between these elements of svLis are shown in the diagram below.
 
 


The relationship between the elements used in svlis.


 



Pruning

If the surface of a primitive in the sets of a model does not pass through the model's box, then either the primitive must be completely solid within the box, or the box does not contain any part of the primitive (in which case the primitive is said to be air within the box). If the primitive is solid within the box, it can be replaced by the universal set U in the model's set. Conversely, if the primitive is air within the box, it can be replaced by the empty set emptyset. The set for that box can now be simplified by using the basic set-theory rules S union emptyset = SS intersect emptyset = emptysetS union U = U$ and S intersect U = S.

This process reduces the complexity of the set-theoretic tree that represents the set and is known as pruning a set to a box.

Recursive spatial division

The box of a svLis model can be recursively divided [Woodwark1980] into smaller boxes by cutting it along one of the axes, thus creating two smaller sub-boxes. The original model's set is pruned to each of the new sub-boxes to create two new sub-models. This division is continued in a recursive manner by dividing the sub-models. However, if it is not to continue indefinitely terminating conditions must be applied. A simple division process could use terminating conditions such as: the sub-models will not be divided if they contain three2 or fewer primitives, or if they are smaller than a minimum size (to stop the division process at places where more than three primitives come together).

At the end of the division, three types of sub-models will exist:


1An interval is a continuous section of the real line between two values, and is written [a,b] where a and b are the bottom and top end of the interval.

2Three primitives is chosen as the number of primitives, as that is the number of dimensions being used and corners of objects will never have fewer than three primitives.

3The way that svLis evaluates whether a box contains any surface is conservative and cannot confirm accurately that a box does contain some surface -- see the SvLis Book on conservative model contents evaluation.


[Woodwark1980]
J.R. Woodwark and K.M. Quinlan, "The derivation of graphics from volume models by recursive division of the object space.", Proc. Computer Graphics 1980 Conference, London, (335-343), 1980.


 
 


PERFICTA  PERFRACTA  QVAERENDO  PERFECTA