Custom floats and gradient ramps in Arnold?
#1
Hello, everyone... 

I'm trying to change the colors of individual particles based on a property of each particle (for example, its size). I've been following along to videos and I see I need to create a custom float for the size data and then use the Mapping operator (with normalized values) to map a material, to which a gradient ramp of colors is attached to the diffuse map.

What I'm seeing in the viewport looks correct, but when I render, each particle contains ALL of the colors of the gradient, rather than just one color based on the attribute.

I think it's because I'm using Arnold and not Vray. That's my guess at least. Vray is not in the cards for me, so is there a way to make this work with Arnold? See the attached file if that helps you understand. As the ripple undulates, the size of the particles change based on height (due to a proximity test to an invisible box). I set up a custom float for the size values to affect the colors. It looks correct in the viewport, but not in the render.

Thanks,

T


Attached Files Thumbnail(s)
   

.max   Ripple Effect_Max 2023 - Copy.max (Size: 1.07 MB / Downloads: 80)
.max   Ripple Effect_Max 2020 - Copy01.max (Size: 1.07 MB / Downloads: 78)
  Reply
#2
Would love some help with this issue... Is anyone aware of a solution?
  Reply
#3
Hey sorry I missed this thread.

It could very well be an Arnold issue...I know there's a couple of kinks in their tyFlow implementation and I can't remember if they've been fixed and/or what versions of Max they've been fixed for.

The simplest solution would be to render as meshes, instead of instances. Mesh mode will bake down the mapping information instead of keeping it as an instance override. That said, another quirk of the Arnold implementation is that it may try to render tyFlow as instances even if you have it set to meshes...if that's the case, bring your particles into a tyMesher object and render the tyMesher - Arnold can't render tyMesher data as instances so that's a way to override that behavior.

VRay's implementation doesn't have those issues, but I understand if you can't use VRay...at least this gives a workaround that should work.
  Reply
#4
(07-18-2022, 06:15 PM)tyFlow Wrote: Hey sorry I missed this thread.

It could very well be an Arnold issue...I know there's a couple of kinks in their tyFlow implementation and I can't remember if they've been fixed and/or what versions of Max they've been fixed for.

The simplest solution would be to render as meshes, instead of instances. Mesh mode will bake down the mapping information instead of keeping it as an instance override. That said, another quirk of the Arnold implementation is that it may try to render tyFlow as instances even if you have it set to meshes...if that's the case, bring your particles into a tyMesher object and render the tyMesher - Arnold can't render tyMesher data as instances so that's a way to override that behavior.

VRay's implementation doesn't have those issues, but I understand if you can't use VRay...at least this gives a workaround that should work.

Thank you (belatedly) for the reply.

I've tried fiddling with this some more to get it to work, but I'm confused by some of your terminology. 

When you say "render as meshes" -- is that as simple as adding a Mesh operator? Any specific settings I need in there? That doesn't seem to do the trick.

I went the tyMesher route, too, to no avail. I created a tyMesher object, added the tyFlow object in the tyMesher rollout. I tried changing the "mode" dropdown to "Input Geometry". I'm just getting a solid color here.

Let me know if I'm missing something.

Thanks,

Tony
  Reply
#5
You need a Mesh operator in your flow with render-only off, so that the flow generates a mesh complete with its mapping overrides.

Then you'd reference the flow in the tyMesher object to transfer the mesh over.
  Reply


Forum Jump: