Tip:
Highlight text to annotate it
X
this project is about gribouillage
and particles. Or, to say the long title:
a pencil drawn doodle-like rendering for particle based fluid simulation
with real time interaction. This project was made by my partner Elise Klay
and myself Jessa Bekker for the Introduction to Computer Graphics Course
taught by Professor Mark Pauly at EPFL
in the fall of 2012. Lets see a small demonstration first.
We used the article based simulation tool from
Alex lesser and added a doodle-like rendering.
With the tool you can attract particles
and repel particles, and choose different kinds of articles,
you can add plasticity or
you can add elasticity. We used metaballs to render the particles.
This is a classic technique for particle rendering.
We chose for a month drawn like rendering
because it gives a unique look to the application. For the effects he wanted to
add,
we tried to find our own solutions.
So, each particle is rendered as a metaball. A metaball is bright at the center
and grows darker towards the edges. It is a function of the distance towards a
particle
and this is a function we used.
Once we have all the metal balls, we can just add them up to get a blob texture,
which looks like this. With the blob texture
we can easily rendered the white parts with the doodle texture
and the black part with the college paper texture or slides,
like we did here. Simple edges
by making the gray area of the blob texture black.
Once we had a simple rendering
we wanted to add some cool effects. A first one was making
the moving particles look like drops.
Therefore we added two effects. The first one is making athe metaballs longer in the
direction of the velocity
as a function of the velocity. The second one
is making the tail pointy and the head thicker. An important thing to know
for the implementation is that for deforming a meta ball
you actually have to deform them the inverse way. For the first effect,
to make the metaball longer in the direction of the velocity,
you actually have to make the distance to the center of the metaball shorter.
This is shown here.
For the second effect, the pointy tail and thicker head,
you have to make the triangle upside down to get the desired effect.
This was a drop like particles look like.
Another effect we wanted to add
was nicer edges: hand drawn edges. We made a hand drawn texture of an edge ourselves.
The vertical coordinate of the texture
is based on how for from the center it is.
Actually, for this, the blob texture is used again. On the color of the pixel,
the inverse of the metaball function is applied. The result indicates the distance
towards the center
and hence if there is an edge and if so
which part of the edge it is. The horizontal coordinate of the texture
is chosen based on the location on the screen.
This way the edge will be more or less continuous.
A last effect we added
was make the doodle texture change with the velocity. One aspect is rotating the texture coordinates
using the average velocity. A second aspect
was using the metaball texture as an alpha channel.
the biggest problem we faced was merging
two frameworks. And since it was the first time we've worked with Open GL,
of course there were a lot of question marks there as well.
An idea for future work is using our framework to make a real game,
opposed to a way of destracting people during a presentation,
like we did now. Thanks for listening.