Falloff Mix Curve

Hello is there a way to emulate Falloff Mix Curve?

There is no such option in Vray Blender and I have been unsuccessful when I tried to plug Ramp (couldn’t find a curve so I tried at least Ramp) into color.

You can find curves in the “Blender” nodes (very last category just below “Materials”)

However, this particular node setup crashes Blender as soon as I try to render, so I may not be plugging things together correctly (or else there’s a bug) It renders fine without the curves node.

oops, no, something else is broken in my file. I’ll see if this setup renders OK in a clean file.

Here this setup is working fine to me.
My only tip to have better visual representation is to set MinY MinX to 0,00 and enable “Use Clipping” in the Vector Curves node Options (little dot next to the “X”)

Thank you both, gentlemen.

I am no longer at work to try it out, but I am confident it will work! I’ll post on Monday (memory permitting :slight_smile: ) to confirm that it worked.

Just letting you know it worked. Thanks again!

Leandro, your clipping tip made the work much easier. :slight_smile: +1

Forgot about that - good tip!

Also - I agree plugging in to standard material works better - I haven’t found any way to get it right with any of the reflection BRDF’s.

For mixing (for example glossy coat over rough metal) using the standard material with refraction = white and IOR = 1.0 makes a nice clear coat.




Just messing around with different curves…


Good tip leandro “use clipping” with Vector Curves -node. If you run this script on text editor it will add V-Ray Curve -node to node add menu (shift+a). So it uses clipping and max/min values are set for Vray use, 0-1.


import bpy

def menu_func(self, context):
     self.layout.operator("node.vector_curve", text = "Curves V-Ray")

class Blender_Vector_Curve(bpy.types.Operator):

    bl_idname = "node.vector_curve"
    bl_label = "Curves V-Ray"

    def execute(self, context):

        bpy.ops.node.add_node('INVOKE_DEFAULT', type="ShaderNodeVectorCurve", use_transform=True)

        ntree = bpy.context.area.spaces[0].node_tree
        v = ntree.nodes.active.mapping

        #use clipping and set values
        v.clip_min_x = 0
        v.clip_max_x = 1
        v.clip_min_y = 0
        v.clip_max_y = 1
        v.curves[0].points[0].location = (0,0)
        v.curves[0].points[1].location = (1,1)
        v.curves[0].points.new(.35,.65)
        v.use_clip = True        

        return {'FINISHED'}

def register():
    bpy.utils.register_class(Blender_Vector_Curve)
    bpy.types.NODE_MT_category_VRAY_BLENDER.append(menu_func)

def unregister():

    bpy.types.NODE_MT_category_VRAY_BLENDER.remove(menu_func)
    bpy.utils.unregister_class(Blender_Vector_Curve)

if __name__ == "__main__":
    register()

Nice, your script is very handy! :smile: