sculpting methods, we can cite a method using a
spring grid linking the voxels and the diffusion is
made from one voxel to his neighbour, reaching a
stable state (Dewaele, 2004). A similar method,
based on automata cells, is presented by (Druon,
2004 or Arata 1999), the diffusion algorithm uses
artificial intelligence laws to spread matter from a
voxel to one other, but the system still have to reach
a stable state.
Approaches based on discrete potential fields
seem to be interesting because the computation
process does not depend on the number of operation
between tool and object. We denoted that the main
difficulty is to provide adapted tools to the artists.
We can not imagine a traditional sculptor interacting
with unrealistic tools like an ellipsoid or
mathematical functions. Using hierarchical
representation for the object material and the tool is
interesting but the computation process of the
interaction is often expensive and difficult. The
purpose of this paper is to propose a simple but fast
method to deform a voxel-based object. Potential
field values are defined between 0 (the voxel is
empty) and 1 (the voxel is filled). If the value lies in
]0, 1[, the voxel is not completely filled. Material
can be added with a specific tool.
The defined tools will be used in our virtual
sculpting environment (Raffin, 2004). As previously
said, the main goal of this project is to provide a real
time system of interaction on common computers.
Interaction must be realistic and real-time. The
conservation volume aspect is also important. In this
approach, we are developing a set of rapid
algorithms to control and modify a sculpting
environment. We also use the selection of the usable
parts of a tool, as described in (Ayasse, 2000) to
accelerate object/tool collision detection. The first
part of this paper will introduce the diffusion method
of an action in the object. The second part describes
the distribution of the matter. Finally, we present
some images of the deformations and propose some
future works to improve our method.
2 SIMPLE DIFFUSION METHOD
Assuming the collision test between the object and
the tool has been done, we know the tool voxel(s)
that interacts with the object voxel(s). For the
considered object voxel, the matter it contains will
be suppressed. Then, this matter must be propagated
through the object to conserve its volume during
time.
In our method, we propose to displace matter in the
direction of the normal of the voxel tool which is
acting. Whatever the tool’s displacement, when it
reaches the object, we can determine the collided
voxels. If a transformation is applied to the tool, the
representation in the current grid that contains the
object and its environment must be recomputed. It
implies that each transformation of the tool is
embedded in the sculpting grid.
Firstly, we propose to explain our method in a
two dimensions space to avoid confusion (see Figure
1). The object is represented in cyan and is initially a
simple rectangular grid. The tool is an isotropic grid
of 13 voxels represented on the left of the figure.
The tool interacts with voxels of the object and we
focus our discussion on the dark blue voxel of the
tool. Its normal
N
ur
, have two components along the
axis (
1
n
r
and
2
n
ur
), implying
12
Nnn=+
uururuur
. The
corresponding voxel in the object contains an
amount Q of matter that needs to be diffused through
the object. Q is distributed along the axis, which
support the normal components, in q
1
and q
2
, with
Q=q
1
+q
2
.
1
n
r
2
n
ur
N
ur
q
1
q
2
Tool
Object
Matter
repartition
Object
modification
Q
Figure 1: principle of matter diffusion.
To distribute these two parts of Q, we cross the
voxels following the normal components, until a
non-filled voxel is encountered. It says that, if the
initial object is totally filled with matter, the moving
matter q
i
, which came from the collision with the
tool, will be added on a boundary, in the direction of
a normal component. If an encountered voxel have
an amount lesser than the maximum, it is filled until
the quantity q
i
is set to 0.
This method permits to know very quickly if a
voxel on the object surface is receiving matter and
the quantity it would receive. Due to its simplicity, it
does not provide the diffusion in the object (in all
cells of the grid) but towards its surface.
SIMPLE AND EFFICIENT TOOLS FOR VIRSCULPT
437