3d pixelation effect

   12096   19   2
User Avatar
Member
6 posts
Joined: July 2005
Offline
Hi! I am completely new to houdini, the reason why I am trying it out is that I am trying to produce an effect I find difficult(or impossible?) With other 3d softwares.

What I am trying do is a sort of pixelated effect in 3d. Basicly an actors face wil slowly become more and more pixelated. This I am thinking solving in the following way:
1. Build a 3d replica of his face in 3d using imagebased modelling.

2. Match this to the footage including the movements of facial features such as jaw.

3. use this replica as a base to produce boxes filling the space of the replica face. I want theese boxes to be "static to their own positions so if the jaw moves for example the boxes will not move but ne ones will be created in the space where the jaw enters. The boxes will however follow the movements of the head in space.

4. I want these boxes to take the color of the avarage of underlying pixels of the texturemap on the replica head.

Does thet make any sense?

I am sure that this effect is doable in houdini but I dont have any idea where to start. Should i go for particles or some modeling approach?

any ideas out there?

ludvig
hej & h& & en flaska me rom!
User Avatar
Member
4140 posts
Joined: July 2005
Offline
Is there a reason you don't want to do this in 2D with a pixelation filter? Pixelation, by definition, is a 2D based concept anyway…

Cheers,

J.C.
John Coldrick
User Avatar
Member
2199 posts
Joined: July 2005
Online
Given that you do have a good reason to do this in 3d.

How about using a box with divisions turned on, parented to whatever you are tracking your head with. Use an add sop to turn it into points, and a group sop with group by bounding object, using the head model to create an animated cloud of points that are inside the head. Then finally follow this up with a copy sop and copy another box to this group of points.
The trick is finding just the right hammer for every screw
User Avatar
Member
6 posts
Joined: July 2005
Offline
Wow!
I am very impessed with how fast you answered my question, thanks!

Well the reason I want to do it in 3d is that I dont want it to look like an effect but as something that is really happening to him, a part of reality so to speak. When the actor rotates his head or the camera moves around him it will obvious that his face is infact made of boxes.

Simon that sounds like a great idea, I dont have a clue how to do it but I ill try my best! It is very important that the boxes all have the same size and that they are placed “side-by-side” if you know what i mean. I think that your idea could do this(well i sounds so to me anyway). So basicly I can create an 3d array of points with lets say 50mm apart and if these points are inside the “head object” the are assigned to a group, this group are given a box each to display? I guess I could project a blurred version of the filmed material as a texture projected from the camera through the whole cubeobject to get around the texture issue…
hej & h& & en flaska me rom!
User Avatar
Member
710 posts
Joined: July 2005
Online
lude
So basicly I can create an 3d array of points with lets say 50mm apart and if these points are inside the “head object” the are assigned to a group, this group are given a box each to display?

Precisely!
I've uploaded an example file of what Simon was talking about. Look at the SOP network, the operators with blue text have comments attached to them. You can read them by middle-clicking on them. Be aware that this will cook (calculate) the node that you are middle-clicking on. This file only solves some of the problem. For example, I haven't tried to sample the texture and assign each point an averaged color. Also the division box hasn't been parented to the head in any way, nor does this example show any animation.

http://www.geocities.com/stehrani3d/3dfiles/3dpixels.zip [geocities.com] (Right-Click > Save As)

I'm assuming this is the general effect you were going for.
User Avatar
Member
6 posts
Joined: July 2005
Offline
DaJuice you are too modest!

“For example, I haven't tried to sample the texture and assign each point an averaged color. Also the division box hasn't been parented to the head in any way, nor does this example show any animation.”

Jesus, you did a lot for me! Thanks a million! I think I?Lll scrap my old 3d software just for the communityside of houdini!
hej & h& & en flaska me rom!
User Avatar
Member
5 posts
Joined: July 2005
Offline
only this morning we didnt really have a way how to solve your idea.

hepp!

/T
User Avatar
Member
6 posts
Joined: July 2005
Offline
Hej!
Welcome aboard, I am checking out the buzz videos.

Good stuff, I think after some time me and Houdini will become very good friends.

ha det…
hej & h& & en flaska me rom!
User Avatar
Member
710 posts
Joined: July 2005
Online
No problem, and welcome to Houdini.
User Avatar
Member
6 posts
Joined: July 2005
Offline
It responds very slow when I animate, cooking takes a long time. Seems strange to me, I mean it only generates a few thousand boxes to provide points and then theese points are grouped and given box each to display. Why is it so slow? Can I use particles to generate the pointcloud instead? Would that speed thingsup?
hej & h& & en flaska me rom!
User Avatar
Member
7710 posts
Joined: July 2005
Online
As usual, performance problem can be examined by opening up the Performance Monitor and looking at the cook times.

Indeed, the copy sop cost is likely the bottleneck. You can just render only the points with instanced boxes instead of recreating the geometry. That will likely be much faster. You might have to give up on the texture coordinates though and just go with solid coloured boxes.
User Avatar
Member
710 posts
Joined: July 2005
Online
Hey Lude.

The scene is not interactive unfortunately, but you can animate your character as you would normally, and then pipe it through the network when you're done and let mantra do its thing.
I've uploaded a new file. Now you have a solid color per box according to the texture you're using. It uses a nicer model as well (the horns on the deer were wasting a lot of points) and there is also a “shrunk” version of the head to get rid of unneccesary points inside of it. I watched the performance monitor with this file (pretty cool btw, didn't know about that) and the first Group SOP is by far the most expensive thing. Don't really know how you could speed that up.
You should also know that as you approach 100x100x100 divisions, you will need a good amount of RAM.

http://www.geocities.com/stehrani3d/3dfiles/3d_pixels_update1.zip [geocities.com] (Right-Click > Save As)

Good luck, let me know how things go.

User Avatar
Member
6 posts
Joined: July 2005
Offline
Thanks again DaJuice, this seems to be more or less EXACTLY what I wanted to accomplish. I am currently upgrading my 3d workstation so I wont be able to check it out until next week or so. I had a quick look at it before I started taking my puter apart. I couldnt get the texture aproximation to work. I probably did something wrong whn rendering it though. I will get my hands dirty with houdini and this prject as soon as my new pc is up and running.

Hats off DaJuice!
hej & h& & en flaska me rom!
User Avatar
Member
2199 posts
Joined: July 2005
Online
One thing to watch is that the group sop isn't always 100% accurate at grabbing points inside an object unless the object is made of triangles. Unless this has been fixed, in which case ignore me.
The trick is finding just the right hammer for every screw
User Avatar
Member
7710 posts
Joined: July 2005
Online
This would be a good candidate for the Exchange?
User Avatar
Member
36 posts
Joined: July 2005
Offline
I've been having a good look at this hip. Is there anyway that we could procedurely remove the inner cubes, purely to save on geometry. If a model gets much larger than a head, them you're looking at alot of geom!
User Avatar
Member
7710 posts
Joined: July 2005
Online
Maybe you could PolyExtrude all the primitives inwards by the spacing in between the points (plus some fudge factor) ?
User Avatar
Member
710 posts
Joined: July 2005
Online
Hi, a new version of the file. It's more efficient than the last one. Feedback would be nice.
http://www.geocities.com/stehrani3d/3dfiles/3d_pixels_update_june_05.zip [geocities.com]





Thanks for the help and good ideas in the chat Edward.
User Avatar
Member
412 posts
Joined: July 2005
Offline
hey dajuice,

i never checked out the older versions but the one you just posted is pretty slick.. very nice.. i agree with edward about putting it up on the exchange.. would be cool to even wrap it up in an otl.. the only thing i would leave out is the point instancing.. as you stated in the note card, it's prob not worth it for all those points to store the instancing attributes for the case of a 6 poly cube.. jason was helping me understand that over at odforce a little while back..

good job though.. pretty sweet effect.
Dave Quirus
User Avatar
Member
398 posts
Joined: July 2005
Offline
Here there is slightly improved version of a scene (much quicker cooking).
http://www.cgtalk.ru/~hoknamahn/voxels.tar.bz [cgtalk.ru]
I have added the Area Map SOP (alpha version, H7.0 for Linux only) which generates the points located in the center of the polygon. It would be very good to use for calculation the size of voxel the area (or other geometrical parameters) of the polygon in which voxel it is placed (and for scale of effect to multiply the sizes of voxel on scale factor).
f = conserve . diffuse . advect . add

fx td @ the mill
  • Quick Links