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: 

Coloring strands with a texture

9 REPLIES 9
Reply
Message 1 of 10
aaronfross
371 Views, 9 Replies

Coloring strands with a texture

Hi there,

 

After some digging and consulting YouTube, I was able to figure out how to assign random colors per strand, per Jonah's instructions here.

 

https://forums.autodesk.com/t5/bifrost-forum/assign-color-to-individual-strands/td-p/9603780

 

But what I need to do is assign an actual texture to the strands. I need to color the strands with some kind of procedural texture, even a simplex noise would be fine. No idea how to do this.

 

I did already figure out how to use the usual Maya and Arnold shaders in Hypergraph, but this textures the strands object in 3D space. I want to assign colors to strands based on the source polygon mesh's vertices or UVs, to get smooth gradients of color between adjacent strands.

 

For extra credit I would like to also vary the color of the strands along their length.

 

Thanks in advance!

Aaron

9 REPLIES 9
Message 2 of 10
aaronfross
in reply to: aaronfross

Also, how do I assign colors to a shader that is internal to the graph? If I try to connect random_value to base_color, I get a compile error. I assume this is because the random_value is an array. No idea how to convert that array to a float3.

 

assign_colors_to_shader.png

 

Sorry, I am new at this and don't know much.

 

Thanks

Message 3 of 10
aaronfross
in reply to: aaronfross

Also also, the aiUserDataColor doesn't work with a Terminal node, only an Output node. This kind of breaks my workflow. I really need that Proxy output with heavy graphs, and of course I also really need aiUserDataColor to work. Which is one reason why I hope to do all of the shading directly in the Bifrost graph.

 

Thanks

Message 4 of 10
sepu6
in reply to: aaronfross

Here is a quick example

 

maya_QCyNI3H1W3.png

Message 5 of 10
aaronfross
in reply to: sepu6

Thanks for that. You didn't mention anything about having to enter text strings to make the assignment from the geo property to the material property. The docs were also not helpful. I had to bash through it but managed to figure it out.

 

So that's working. How do I assign an overall noise pattern to the strand color instead of the random colors?

Message 6 of 10
sepu6
in reply to: aaronfross

Forgot to mention the set geo property reference node, sorry, however the node to me is pretty self explanatory, the geo property to me that is pretty clear what it is > property coming from the geo and material property as well. You can also daisy chain them. Anyhow I added a mat reference that you can use as a texture from the hypershade, If you want to do it inside the graph, you need to grab a noise and just set it to a property, and then I would recommend using point_color by property from Jason. 

 

YOu can download his compounds from here. It will make your life easier

 

https://github.com/unkaval/VHH

 

maya_Vj3HAtHE6S.png

 

Message 7 of 10
sepu6
in reply to: aaronfross

Also, another tip, for example when you drop a diagnostic material or a scatter,  you see these ports like this, an array but with a hat, it means that the ports are auto ports meaning that they accept vectors, floats/scalars, fields, and strings inputs.  

 

EpicPen_YfKgaSlHyW.png

Message 8 of 10
aaronfross
in reply to: sepu6

Thanks, I knew about the auto ports, and how to wrangle the data types.

 

The screen capture you posted is getting closer to what I need. But it's still basically the same as assigning a Volume Noise or whatever Hypershade procedural texture to the Bifrost shape node. The only difference is that it's inside the graph.

 

What I'm trying to achieve is similar to particle emission from a textured mesh. Each strand has a "main" color determined by a procedural texture assigned to the mesh. Where the mesh is black, the particle stream is black. Where the mesh is white, the particle stream is white.

 

Then I also want to vary the color along the length of each strand, individually.

 

THANKS!!

Message 9 of 10
sepu6
in reply to: aaronfross

Do you mean like this?

 

EpicPen_1MAXh9rjAc.gif

Message 10 of 10
aaronfross
in reply to: sepu6

Sorry, I shouldn't have mentioned particle emission. That was just an analogy. No particles.

I want strands with two color properties.


Per strand. Driven by a 2D or 3D map. Clumps of color across the area of the mesh give rise to differently colored strands. Each strand has only one color.

 

Length mapped. Driven by 1D ramp gradient. Ideally unique per strand, also.

 

Thanks!!

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

Post to forums  

Technology Administrators


Autodesk Design & Make Report