3D LED cube in maya.

Become a member of the CGSociety

Connect, Share, and Learn with our Large Growing CG Art Community. It's Free!

Thread Tools Search this Thread Display Modes
Old 11 November 2012   #1
3D LED cube in maya.

i'm trying to create a 3D LED cube in maya.
i wanna have lights turn on when they interact with my animated geometry.


i'm thinking about using SOUP node and transfer attributes to a grid of instanced objects.
has anyone made a 3D LED cube in maya before?
Old 11 November 2012   #2
Chck given example scene file in soup with name group_componentsShaderAttachment.ma
Old 11 November 2012   #3
I havent, but if you are thinking about using SOuP the attributeTransfer maybe a little problematic because the bounding object relies on point density rather than volume to affects other points, also I cant see it working with lights.

One thing that may work is the cage node, this does use volume to display a selection of points inside its bounds and with a bit of SOuP magic you could also have another cage displaying points outside bounds. That would mean you would have 2 cube setups one with standard points and the other incandescent points rather than lights.

If I have time Ill see if I can build a quick scene.
Old 11 November 2012   #4
You can make your animated object source of a radial field, turn on Apply Per Vertex in the Special Effects rollout of the radial field, and on your particle set Conserve to 0.0. Then add some runtime expression like so:
rgbPP = (mag(force) > 0) ? 1 : 0;
which means if the magnitude of the force is greater than 0 set rgbPP to 1, else set it to 0;
Then you have to play a little with the radial field's max distance parameter, and you can get something like what you're looking for. Also you can control any other parameter the same way, for example change the instanced object index or whatever.
..aut inveniam viam aut faciam..
::Copy SOP 4 Maya::
Old 11 November 2012   #5
I am not sure about this. May be Aikiman can help me out with this.
What if i create a particle grid and then have a geometry inside that particle grid. and then use < Transfer point colors from geometry to particles -SOUP
will that work??
Old 12 December 2012   #6
Yes essentially you are doing the same thing and there are some example scenes with particles doing just that (look for the simple runtime expression in those scenes).

This is the issue though. If the AttributeTransfer bounding object is a mesh object for example (in your case it will be so lets say it is a rabbit), SOuP evaluates the transfer on point proximity and not the volume of the bunny. Sometimes this can be fixed by increasing the radius of influence of each point so that you cover the particles inside the bunny as well. The problem with this is your radius will also extend to outside the bunny in which case you wont have a clean transfer and therefore a nice clean bunny silhouette.

There is a workaround I didnt mention before and that is to use the scatter node to scatter points inside your bunny volume, then connect the scatter points into the attributeTransfer bounding object instead of the bunny mesh. Now you can increase the density of scatter points to capture all the lights in side bunny mesh. Its not perfect but its a workaround. I will work on a scene for you tonight so you can take a look at the network, see if its what you are after.
Old 12 December 2012   #7
Originally Posted by apfxpunk: I am not sure about this. May be Aikiman can help me out with this.
What if i create a particle grid and then have a geometry inside that particle grid. and then use < Transfer point colors from geometry to particles -SOUP
will that work??

yes, that's what i did initially and it worked, but the geometry had to be one mesh, and i had no idea how to plug them into the lights.
Old 12 December 2012   #8
Here you go - required Maya 2013 and latest SOuP build. It might seem a bit convoluted to look at the network and to be honest some of it is but Ive tried to break it down to keep things simple. I think with a couple of pipeline enhancements from SOuP the network could be simpler, ie. get rid of the rgbaToColorAndAlpha nodes but for now they are necessary.

Personally I wouldnt run with using lights unless you need shadows because you can create glows etc in post. Plus using lights would mean you would have to set a light on every particle and query the particles ID and color to turn the light on etc this would increase simulation overhead by ten fold.

Azrail idea would be a lot faster to simulate Im guessing, but using SOuP means you could add color ramps, have different falloff values for opacity etc.
Have fun!
Attached Images
File Type: jpg Untitled-1.jpg (94.9 KB, 38 views)
Attached Files
File Type: zip attributeTransfer.ma.zip (57.0 KB, 10 views)
Old 12 December 2012   #9
thanks Aikiman! i don't have maya 2013. can someone post screenshoots of outliner and hyper graph?
Old 12 December 2012   #10
Theres a screen grab of the node editor there, Ill see if I can give you some more details soon, sorry about that.
Old 12 December 2012   #11
lol...i dont know what an LED cube is......but u nay find it useful ...or not..... that the mash nodes work with lights allowing you to creat various arrays
Scott Turner
Old 12 December 2012   #12
I dont think Mash is the way to go here, we're not trying to animate the transforms but rather the visibility based on irregular volumes. Theres a link to an LED display on the first post if you wanna see what it is.
Old 12 December 2012   #13
cool effect..yeah mash not the way to go
Scott Turner
Old 12 December 2012   #14
A pretty fast way to set this up would be as follows:
1. create nParticles using the grid option
2. on particleShape set colorInput to constant
3. create rgbPP array and collisionGeometryIndex attr arrays (add dynamic attributes)
4. Create the following runtime after dynamics expression:
position = position0; // keep the collision from moving the particles
int $i = collisionGeometryIndex;
if( $i != -1 ){
nParticleShape1.rgbPP = <<1.0, 1.0, 0.0>>;
} else {
nParticleShape1.rgbPP = <<0.0, 0.0, 0.0>>;
5. Make the geometry passive nMesh colliders. Collision width on the nRigid can be used to control how far from the mesh affects things. Also make the substeps 1 and max collide iterations 1 on the nucleus node to make things fast. If you use a very large collide width use vertex collisions for better performance.

Then just add some shader glow to the particle shader.
Old 12 December 2012   #15
hi duncan,

i like your method cause it's really simple,
but how can i turn on the particles inside the geometry?
collision test is only working on the particles colliding with vertex/edge/face.
the particles completely included in the geometry are not affected.


Thread Closed share thread

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Society of Digital Artists

Powered by vBulletin
Copyright 2000 - 2006,
Jelsoft Enterprises Ltd.
Minimize Ads
Forum Jump

All times are GMT. The time now is 01:07 PM.

Powered by vBulletin
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.