Tuesday, 10 May 2011

New Render test

One day I will get around to posting how to create this effect. For now more test


Water Gush test 10


waterGush test 10 from prof_wiz on Vimeo.

Wednesday, 4 May 2011

Gushing Water!!


These are a series of test for a water sims i'm working on to help my students on their final year project.

Ill post a blog on how I achieved this effect later this week.



Test 8



test 9


render test 13

Water Gush Test 2 from prof_wiz on Vimeo.






render test 14

Water Gush Test 3 from prof_wiz on Vimeo.

Fracture to Particles and back again!!

Welcome Students and Slackers!!

Its been a long time since I've used this blog..... I've been busy!! But I want to reactive it to answer some frequently asked questions and publish some kool things I've been working on in responses to a student question.

For example Using particles on a fractures. I get asked this question a lot..... A WHOLE LOT!!
hehhehe but its all good! I love helping my beloved students. So lets get busy!!

There are soo many ways to do this effect so im going to do one of the less complex ones.
note: this is not the best method, just the easiest to explain. be sure to click on the pictures to see the process easier.

The plan:

1)Fracture the dog
2)Assign a point for fractured chunk
3) place the point in the center of the chunk
4) Use the points are particles and blow them away
5) use the point position to control the chunks.
6). DONE!

The Dog




1). We first Fracture the dog using the voronoi fracture method
(scatter points, voronoifracture node, etc....)



Voronoi fracture of Dog




2)Assign a point for fractured chunk:
To do this we are going to use the foreach node to process each chunk one by one.
note: the chunk groups are called piece, ie piece1, piece2, piece3.. so p* would process all groups that start with p.



Foreach node



Inside the foreach node, we use the add node to create a point. and the centroid expression to place the point in the center of the chunk.
Note: the node "read" is a null used to easily locate where to use the centroid expression.



Adding a point to center of chunk


Next we use a attribute transfer to transfer the normals from the chunk to the points.
we need this to direct the particles later.



Attribute transfer node


Now we need to group the points using the group node. $N in the group node = the total number of points -1.. so if we have 100 points, $N = 99.
( remember point numbers start with 0)

This groups the center point because it is the last point created so it is the highest point number.



Group node




Lastly we create an attribute to store the foreach index. Remember we are inside a foreach node and each chunk is being processed one by on. So we want to keep track of this iteration. This will help us later one when we match the particles/points back to the chunk.



Attributecreate node


Ok back out of the foreach node and create a series of delete nodes. One for the points group and one for all except the point groups (check the picture). This is so we can use the points in the popnet.




delete nodes


Inside of the popnet we source the points and use the normals as the force in the wind node to blow the particles away.



Popnet


playbast of popnet
Notice the group node using a simple bounding sphere to group the particles to be blown.

Dog Pop from prof_wiz on Vimeo.





Ok now out of the popnet and one more foreach to use the particles on the chunks


one more foreach node!!


All we have to do associate the points for the popnet to the currently processed chunk.
To do this we use a delete node to delete all points except for the right point. We use the stamp attribute we made on the last foreach node to correctly match up the right point to the right chunk.

prim() is a expression used to get attributes from primitives
Lets break it down!!

we get attribute from the read node = "../read"

we use primitive number 0 = ,0

we use the stamp attribute that we created "stamp",

and the stamp is a float (meaning that it isnt a vector) so its index is 0

`prim("../read",0,"stamp",0)


Then we use a transform node to place the chunk at the origin. Because the copy will copy the chunk to the location of the points ONLY if the chunk is at the origin.

so, in the transform
-$CEX in the X
-$CEY in the Y
-$CEZ in the Z
will place the chunk at the origin. ( sorry no picture )

now just use the copy node
(be sure to un-check the "use template point attributes" button on the copy . this will ensure the chunk rotations are right.)



Last node!!



Heres is a quick playblast of the final effect!

Dog Blow from prof_wiz on Vimeo.

Monday, 21 February 2011

Prof WiZ Help for his Beloved Students

Hello one and all!


I'm Ron, but my friends call me WiZ and my students call me Prof. hence ProfWiz!!



Old Photo of me!



This Blog is solely dedicated to helping my students with stuff, ( Houdini, Renderman, Python, Visual Effects, Whatever!!!)



With each post I will explain the question or problem that my student had and thoroughly breakdown a few solutions to it. As with most things in Visual Effects ( and life in general), there aren't any "perfect" or "right way" to solve a problem. These are just some of my solutions, which I hope my students will learn from, expand on and create their own set of solutions.

In any case, this should be a fun ride.


Tally HO!!!!