Jump to content

Using a SHOP in conjunction with a VOPSOP


Recommended Posts

Hello there! Hope everything is going well for everyone :) Having trouble figuring something out here with the HotOceanToolkit.

I'm shading the min eiginvalues(float) white in the vopsop, with a blue color on the grid sop, that works. But how do you now, obtain the min eiginvalues

in SHOP (that is those point vectors)and add those in conjunction with a fresnal shader ? It seems I would use the Oceaneval in the shop, but then again, it has to match the values of Oceaneval in the vopsop. I saw the example photo of the mev's being multiplied with noise, then output in conjunction with a fresnal shader, i guess added. I really could use some help on this setting it up! thanx! :)

Link to comment
Share on other sites

Just create/use an attribute in sops, and read in with a parameter node in shop. Make sure it's the right type. Eigenvalue = float, Eigenvector = vector. And scale/normalize if necessary. If it is in the wrong range you might not see an effect.

Edited by Macha
Link to comment
Share on other sites

Just create/use an attribute in sops, and read in with a parameter node in shop. Make sure it's the right type. Eigenvalue = float, Eigenvector = vector. And scale/normalize if necessary. If it is in the wrong range you might not see an effect.

Hey Macha! Great Rock Splash Animation! :) okay, in the vopsop i have a final float value coming from the mev, clamped, negated and that goes into an addattribute node using the attribute name foam. Okay, than in the SHOP, I create a parameter node, putting $FOAM in the parameter (for that particular attribute) in the vopsurface1 node..yes ? That's what i was thinking to do, but how does the SHOP know which points to shade based on the value, as it does in the vopsop node ? confused here :) Oh boy, this is going to be a fun topic :)

Edited by remlorestudios
Link to comment
Share on other sites

Nono, give it the same name as the attribute that you want to import from sop, and without $. Then it will automatically be available in shop. Of course, you have to do something with it, like use it as a weight for something.

Edited by Macha
Link to comment
Share on other sites

Nono, give it the same name as the attribute that you want to import from sop, and without $. Then it will automatically be available in shop. Of course, you have to do something with it, like use it as a weight for something.

Oh that simple eh? ;) So an addattrib in the vopsop can be picked up in a shop parameter just using the lowercase name.. hmmm.. okay, so I figured out what you had said.

I also added a noise multiplier and a filter to keep the value between 0 & 1 coming the mevs... NOW :) Well, at least that's working. Now what did you mean by using it as a weight for something? I also used an add node to put an env. fresnel reflection, but how do you get the refractions to work, that is, change to a lighter color on the crests of the waves, that ocean green hue. I can do all this in Maya, custom scripted MEL and using MR, but now I'm learning Houdini which I really like because it's so fluid and you have total control...

Also, i need to figure out how to get more crests .. the mevs are just touching the very tips white... what I saw in the pick showed how the white was following more of the crests...

I'm watching all the numbers in the detail view and getting the feel for this ocean kit :)

Link to comment
Share on other sites

I don't know the specifics of your setup, but something like this:

You could use that (scalar) value to multiply a displacement vector. If your value is in the 0..1 range it is very easy and you can even add a ramp. Or, in a similar manner multiply a color, or set the bias of a colormix with that value.

About fresnel, I don't know, I have never played around with it inside a network, but a similar thing could surely be done.

One of my golden rules is always, always, if you possibly can, make your parameters in a 0..1 range because then you can derive any changes with some kind of inner model, with less free variables, less messing about, more contained and general, something that responds well to smooth functions, and scaling!

Edited by Macha
Link to comment
Share on other sites

I don't know the specifics of your setup, but something like this:

You could use that (scalar) value to multiply a displacement vector. If your value is in the 0..1 range it is very easy and you can even add a ramp. Or, in a similar manner multiply a color, or set the bias of a colormix with that value.

About fresnel, I don't know, I have never played around with it inside a network, but a similar thing could surely be done.

One of my golden rules is always, always, if you possibly can, make your parameters in a 0..1 range because then you can derive any changes with some kind of inner model, with less free variables, less messing about, more contained and general, something that responds well to smooth functions, and scaling!

Okay, we're getting there my friend! :) I'm extracting a component vector (pY) from the oceaneval for the water shading driving a ramp (seems to work somewhat better than just the emv) gives it a greenish hue in the higher parts and some peaks which looks nice. Still gotta work on this noise though. We need to create a crest map out of the ocean and plug that into

chop to get residual effect using delay chop , then multiply it with noise based ocean shader. So, now what's a good way to go about that? (it's a maya to houdini thing going on here..haha) You've been a great help though!

Link to comment
Share on other sites

Well I created a nice shader for the surface, BUT! The foam is not mapped properly in the shader...

it's all in little squares... i could change the surface from polygons to nurbs.. and that works, but we need polygons. Same with that displacement map (i saw a post of yours about it).. it's mapping into each little polygon instead of st space for the entire grid.. 0 to 1 ... so how do i take a displacement map that's plugged into the suboutput node and get it to map properly... inside the node, i'm using the position vector for the nodes in there... and that works... samething for the foam (which i am going to have the change because it ruins the ocean shader which turned out really nice...) but the foam which is being bought in by a parameter is mapping into each poly instead of the entire surface... unless i use a multiply node and some turbulence and plug in the position vector from globals, then it works... but regardless the displacement map outside the node (for the very high frequencies...) doesn't map correct... Anyway, been using Houdini for a week now and this is one scene I got so far. It's at night on the bermuda ocean, but now we gotta work day, which we need the realistic type foam and splashes (for other scenes...)

boatwaterhoudinistill.jpg

This was all made in Houdini.. nurbs model (except inside some polygonal modeling) HOT Ocean, POPS, wake mapping, particles emit based on alpha values of the wake maps... oh underneath the water is a giant seaturtle (triptodera)

the eyes glow cyan... the actors aren't composited in yet.. hell, nothing is composited yet here, needs to be layer rendered :) This is just a straight render... Anyway, this is one still from a birds eye view camera animation (there are 4 cameras in this shot really) we have some real cool shots that involve a helicopter, boats and some magic on the ocean (can't say what it is ;) )

So back to the enigma...

There has to be another way to do foam which looks very realistic, with a delay chop animation.. so it lags behind the wave.. swirls and decays like foam.. these white tips that just fade in & out with noise multiplied ranged values just don't happen in nature with real waves.. it's a good start, stepping stone... but for cinema, this ain't gonna work :) So that's going to be another challenge. HOT OCEAN (Drew's masterpiece) is the most realistic algo i've seen thus far.. so i'm going to implement that. And Houdini, off all apps, isn't a crash course learn like lightwave or 3dsmax ;) This is actually going to be for a film being made in Bermuda and Florida and I get stuck with the water FX, when my strong points were in modeling and sculpture :/ So however long it takes, it's gotta look as real as possible... And I'm going to give title credits for those who help me with this.

Edited by remlorestudios
Link to comment
Share on other sites

Perhaps you could use an attribute transfer sop to blend point positions of the foam with the ocean position (blend strength by life).

HOT also outputs eigenvectors that move nicely with the ocean. You could factor those in somehow.

Good luck though, it's very hard to get it look right.

Edited by Macha
Link to comment
Share on other sites

Perhaps you could use an attribute transfer sop to blend point positions of the foam with the ocean position (blend strength by life).

HOT also outputs eigenvectors that move nicely with the ocean. You could factor those in somehow.

Good luck though, it's very hard to get it look right.

Yes, creating realistic interative ocean's is probably one of the most challenging things in the world of 3D animation & science. I think the best ocean I've seen thus far was created by WETA, but then again, they have been creating the best cinima effects the past 10 years, from LOTR, to King Kong to Avatar... King Kong had one of the best 3D animation scenes I had ever saw. The fight between the Rex's and King Kong, when they were swinging in the vines... that was just incredible! Not too mention some of the other stunning effects in that movie, when Kong was playing on the ice...

What needs to be done for that ocean foam is to extract a crest map from the Ocean grid, via normals (that go through a calculation process in a vopsop) that correlate with height field info... then the length of each normal would corrospond to a Cd in which this would be pumped into a chop, than you would delay the chop to get that smearing effect (you see this in waves how the foam lags behind and decays in a noise pattern) in other words, get Cd value of crest based on the geometry point normals (but the normals have been altered based on the Py position in a For node in a vopsop, the output would give you a normal map which you would see in the detail view.. e.g. p1 = .014, p2 = .03 .. and p15 = .9 ( a white spot) but it would be many points to get a refined view, just giving a simple example) then you could put this in a range of 0 to 1 for the Cd probably using limit & math in the chop ... multiply the Cd by some sophisticated noise and append a lag or delay CHOP to this channel... this way, the noise (being like an append attribute to the ocean surface based on the crest map from the same surface) would follow the surface nicely, and lag behind the waves and decay... this is the technique that was done by an individual who works in some Japanese Studio.

By the way, are you using poly intersection curves for the spray around objects? So were two objects intersect (like the rock in the ocean you did) it creates a curve that moves in correlation with the ocean surface and thus emits spray based on height and or velocity and pressure etc. ?

Link to comment
Share on other sites

  • 2 years later...

Yes, creating realistic interative ocean's is probably one of the most challenging things in the world of 3D animation & science. I think the best ocean I've seen thus far was created by WETA, but then again, they have been creating the best cinima effects the past 10 years, from LOTR, to King Kong to Avatar... King Kong had one of the best 3D animation scenes I had ever saw. The fight between the Rex's and King Kong, when they were swinging in the vines... that was just incredible! Not too mention some of the other stunning effects in that movie, when Kong was playing on the ice...

What needs to be done for that ocean foam is to extract a crest map from the Ocean grid, via normals (that go through a calculation process in a vopsop) that correlate with height field info... then the length of each normal would corrospond to a Cd in which this would be pumped into a chop, than you would delay the chop to get that smearing effect (you see this in waves how the foam lags behind and decays in a noise pattern) in other words, get Cd value of crest based on the geometry point normals (but the normals have been altered based on the Py position in a For node in a vopsop, the output would give you a normal map which you would see in the detail view.. e.g. p1 = .014, p2 = .03 .. and p15 = .9 ( a white spot) but it would be many points to get a refined view, just giving a simple example) then you could put this in a range of 0 to 1 for the Cd probably using limit & math in the chop ... multiply the Cd by some sophisticated noise and append a lag or delay CHOP to this channel... this way, the noise (being like an append attribute to the ocean surface based on the crest map from the same surface) would follow the surface nicely, and lag behind the waves and decay... this is the technique that was done by an individual who works in some Japanese Studio.

By the way, are you using poly intersection curves for the spray around objects? So were two objects intersect (like the rock in the ocean you did) it creates a curve that moves in correlation with the ocean surface and thus emits spray based on height and or velocity and pressure etc. ?

I am awfully eager to hear more for this approach, I am making an sea asset for a movie, i got all almost done except a nice foam layer, its partially a rough sea in the movie , soon thinking to project some foam footage unless i come up with a solution, please explain a bit more or better a very simple hip version would be amazing tghnx

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...