Community
Bifrost Forum
Welcome to the Bifrost Forum. This is the place for artists using Bifrost to ask and answer questions, browse popular topics, and share knowledge about creating effects procedurally using Bifrost. You can also visit the Bifrost Community on AREA to download an array of ready-to-use graphs, read Bifrost news and updates, and find the latest tutorials.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Inconsistent results with using colorSet data

10 REPLIES 10
SOLVED
Reply
Message 1 of 11
mcw0
416 Views, 10 Replies

Inconsistent results with using colorSet data

I've been going around and around with this and can't figure it out.  I have a colorSet on my mesh.  I'm using it to attenuate curl_noise.  Or trying and failing to do so.  The curl noise is in full effect regardless of where the "0" values are.   So I tested it with a simple offset network based on point normal attenuated with the same colorSet.  And that works perfectly.  This offset is in the backDrop.  Why is one part of my graph applying the colorSet values correctly while the other part of the graph is not?  What have I done wrong?

 

BIF.PNG

10 REPLIES 10
Message 2 of 11
mcw0
in reply to: mcw0

My thought is the colorSet data and my location/position data is out of sync somehow.  So I created a new geo property populated with my colorSet data.  Then I used the closest location to sample that value in hopes of syncing the data.  Interestingly, it didn't work in that the areas that have "0" value didn't respect that value.  But in the areas of non-zero values, the result was reversed.  My curl_noise is moving in the opposite direction.  Which makes no sense to me at all.  The lower backdrop is my attempt at syncing the data.

What am I doing wrong?  This is such a simple concept.  Attenuate the noise value with a colorSet.  Shouldn't be this difficult.

 

BIF1.PNG

Message 3 of 11
mcw0
in reply to: mcw0

Drastic test...flooded "0" to my colorSet and no effect from the curl_noise.  Doesn't make sense.  I've checked the colorSet values at the vertices and they are correct.  "0" where I assigned "0" and "1" where I assigned "1".  But it won't respect the "0"s.  Why in my graph is it an either or case?

Message 4 of 11
mcw0
in reply to: mcw0

So this is where I'm at.  It appears that for my curl_noise attenuation, I have a boolean situation.  Either "0" or "1".  As soon as I have any value other than "0" in my colorSet, the value for the entire colorSet is "1".  But all the while, my offset graph is working fine...respecting the values of the colorSet.  What have I done wrong?

Message 5 of 11
bugsdabunny
in reply to: mcw0

I'm a little confused as to what you are trying to do. Are you trying to displace the mesh with curl noise only where you have a color set painted? Like this?

 

Screen Shot 2021-05-08 at 12.29.30 PM.png

Message 6 of 11
mcw0
in reply to: bugsdabunny

The concept is correct.   But I'm not displacing geometry.  I'm pushing points.  I do notice that in your graph, you converted vector4 to vector3 as the input to the multiply node.  I'm pretty sure I tried that.  But I will confirm.

As I mentioned about my offset graph, displacing geo is working properly.  Pushing points is not.

Message 7 of 11
mcw0
in reply to: mcw0

Yes, I tried vector4 to vector3 earlier.  I still have the node in my graph.  The other thing that's different is I also have a float value as an input into the multiply node.  But again, that works when displacing geo.  That part of my graph works.  The problem is pushing points.

 

I'm moving points around my mesh.  Moving it with curl_noise.  But I want to limit or actually eliminate any noise in certain areas.  Basically, no movement for those points.  And I'm using a colorSet as my attenuator.  After moving the points, I get the closest location to my mesh and recompute the position of the point on the mesh.  So the points stay on the surface and don't go flying off.

Message 8 of 11
bugsdabunny
in reply to: mcw0

I'm not really sure what you mean by the difference between "displace" and "push", to me they seem the same. What direction are you "pushing" them? It seems to me you have a logic error somewhere. For example, you get the closest position on the original mesh from the curl noise displaced positions, but the closest location on the mesh isn't necessarily the original point before curl noise is applied, so you are sampling your mask from where ever the closest position after noise happens to be. so it could be 0. It's hard to say without the scene what exactly the problem is, and also I'm still not 100% sure what you mean about displacing and pushing

Message 9 of 11
mcw0
in reply to: bugsdabunny

Sorry my posts were obtuse.  I'm moving points on a surface.  I'm not moving surface points.  So no deformation of the surface from this graph.  I have a number of specific points situated on the surface (hence my "inPositions" input) that I would like to have move along the surface.  The method that I am using to "push" these points around is a curl noise.  And I sample the closest point after the "push" because I want the points to stay on the surface.  Now if the resulting position should be in a "0" area of my surface, the curl noise's contribution to the movement of the point should be zeroed out.  My colorSet is a multiplier for the curl noise.

And from everything I've experienced so far, the colorSet data works fine when deforming a surface.  But for "pushing" points, it becomes a boolean function for all points.  If the entire colorSet is zero, then there's no point movement.  If some of the surface vertices have non-zero values, then all the points are "pushed" with a value of "1" X curl_noise regardless of what the colorSet says.

I hope that's clear now.

Message 10 of 11
mcw0
in reply to: bugsdabunny

I think I know what's happening.  And my second graph might be on the right track.  The reason the colorSet works for deforming the mesh is because the data is in sync.  The point position, point normal and colorSet data is for the same surface point.  That's why it works.

My random points has no correlation to the colorSet data.  That's why I need to sample the closest location to get the correct value.  I must have done something wrong in my second graph.  I'll try again.

Message 11 of 11
mcw0
in reply to: mcw0

That was it!!!  My data was out of sync.  I needed to sample my colorSet with closest location.  And not just use get_geo_property.  That's what I get for watching a video and not thinking for myself.  Sometimes it's best to walk away and not think about a problem.

 

BIF_solved.PNG

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums