JeremyR
Scenario: I have one ocean texture driving a componentList, but I want to use the same texture with slight adjustment to the alpha values - essentially ramping up the alpha offset thereby adjusting the componentList slightly while maintaining the same animation.

Only way to do this is by duplicating the ocean texture and creating another texture to array node and then changing the alpha offset inside the color balance settings. I tried using a remap array but Im not sure the offset works the same as the color balance one. I did check it but couldnt get it to work.

So would it be worth putting a color balance section inside the textureToArray node allowing the user to 'crush' or 'bleed' the alpha or is there another SOuP node up for the challenge? :)


Image below shows the effect Im after, where the blue values have been crushed using a second ocean texture and the animation remains the same for both green and blue.

Screen Shot 2017-12-13 at 10.38.57 AM.png
Quote 0 0
pshipkov
I think you can use remapColor inserted before the second textureToArray node.
This will be less efficient because you will need two textureToArray nodes, which are expensive, especially for dense meshes.
The better option is to use one textureToArray and create second path for the modulated color/alpha values for the second object.
The remapArray node's remap option linearly fits the original values into a new min/max range.
You should use arrayExpression or point nodes to do that.
There are many web apps that allow you to model non-linear functions. I often use this one: https://www.desmos.com/calculator/n21xiqgmxv
Modify existing, or type new formula, tweak the parameters, then recreate in code.
Here is an example I used just the other day in Unity.
[image]
Where solving y = f(x) for the function above looks like this: 0.1f * Mathf.Pow(2, 8 * x - 4.675f) - 0.004f);
You can do exactly the same in Maya.
The other option, more visual and artist friendly is to use ramp lookup.
You can create anim curve node with curve inside and sample it based on input color values, from inside point or arrayExpression nodes.
This will be a bit more expensive for computation than modeling your own non-linear function and plugging the equation right inside your expression.

I am adding to my to-do list a request for ramp based lookup function inside the remapNode.
Quote 0 0
JeremyR
Interesting, the online function graph is cool. I can give the code a go see how I go on that :)
But yeah I though the remapArray is the ticket here but with additional functionality. cheers
Quote 0 0
JeremyR
Can you attach that image inline on your post? For some reason it wont display it.
Quote 0 0