Showing posts with label nuke. Show all posts
Showing posts with label nuke. Show all posts

5/13/17

VRAY // Diffuse pass not flat color

Sometimes the Diffuse RE of V-ray is not full flat colors but has some sort of shading/fresnel.
That is normal as it's the Diffuse Filter RE and is affected by reflections. To have full flat colors on compositing do the following :
Diffuse RE divided by the invert of the Reflection Filter RE
source

2/26/16

NUKE _ remap gradient

Use STMAP node to remap the color of an image with a gradient. set rgb to UV channel in the node.

1/22/16

NUKE _ convert 3DTransform to 2DTransform

Reconcile3D node -> create keyframe then link the XY values to a Transform

1/3/16

NUKE _ merge PNG _ PSDmerge node

Having trouble merging PNG or PSD files with alpha  in nuke?
Use this hidden node to merge them !
nuke.nodes.PSDMerge()
or open a PSD in nuke and click on Breakout Layers and the node will be created.
or tools>other>update  then tools>other>psdmerge

1/1/16

NUKE _ mosaic / pixellate node

Blocky - mosaic effect in nuke
If someone needed a mosaic filter in nuke, no need to turn to 3rd party plugins, or doing resizes, it's right there. Just have to load it, because it's hidden by default. It's called blocky. You can load it in your custom menu.py, by adding these lines, for example:
nuke.createNode("Blocky")
quoted from http://thoughtvfx.blogspot.fr/2011/07/blocky-mosaic-effect-in-nuke.html

6/9/15

NUKE / PYTHON _ copy text from .txt file and paste into the DAG

create a .txt file containing a nuke group or nodes (copy from nuke and paste as a text) then use this function in nuke to create a node from it

import nuke
from PySide import QtGui

def FromTxtToNukeNode():
 with open ("O:/_WORK/.../textfile.txt", "r") as myfile:
  data=myfile.read() #get the text in the .txt file as a string variable
 QtGui.QApplication.clipboard().setText(data) # set to clipboard
 nuke.nodePaste("%clipboard%") # paste into nuke DAG

6/3/15

NUKE _ rotate normal

set cut_paste_input [stack 0]
version 8.0 v5
push $cut_paste_input
Expression {
 temp_name0 expA
 temp_expr0 r*v1+g*v2
 temp_name1 expB
 temp_expr1 (1-r)*v1+g*v2
 temp_name2 expC
 temp_expr2 (1-r)*v1+(1-g)*v2
 temp_name3 expD
 temp_expr3 r*v1+(1-g)*v2
 channel0 rgba
 expr0 "\[\nif \{\[value val]<=1\} \{return expA\} else \{\nif \{\[value val]<=2\} \{return expB\} else \{\nif \{\[value val]<=3\} \{return expC\} else \{\nif \{\[value val]<=4\} \{return expD\}\n\}\}\}\n]"
 name Exp_rot_Normal
 tile_color 0x73168eff
 gl_color 0xffffffff
 label "_\n"
 note_font "Verdana Bold"
 note_font_color 0x1a131cff
 selected true
 xpos 142
 ypos -215
 addUserKnob {20 control}
 addUserKnob {7 val l valeur R 0 4}
 addUserKnob {7 v1}
 v1 {{"\[\nif \{\[value val]<=1\} \{return 1-val\} else \{\nif \{\[value val]<=2\} \{return val-1\} else \{\nif \{\[value val]<=3\} \{return 3-val\} else \{\nif \{\[value val]<=4\} \{return val-3\}\n\}\}\}\n]"}}
 addUserKnob {7 v2}
 v2 {{"\[\nif \{\[value val]<=1\} \{return val\} else \{\nif \{\[value val]<=2\} \{return 2-val\} else \{\nif \{\[value val]<=3\} \{return val-2\} else \{\nif \{\[value val]<=4\} \{return 4-val\}\n\}\}\}\n]"}}
}

1/27/15

NUKE / PYTHON _ Toggle heavy node by class


def disableHeavyNodes():
    # Toggle value / 1 disable - 0 enable
    # RSMB / frischluft / sapphire zblur-zdefocus-glow
    global tgl
    try:
        tgl = not tgl
    except NameError:
        tgl = 1 

    nodeArray = ['OFXcom.revisionfx.rsmb3_vectors_v3','OFXcom.revisionfx.rsmb3_v3',
                         'OFXcom.frischluft.openfx.depthoffield_v1','OFXcom.frischluft.openfx.outoffocus_v1',
                         'OFXcom.genarts.sapphire.blursharpen.s_zblur_v1','OFXcom.genarts.sapphire.blursharpen.s_zdefocus_v1','OFXcom.genarts.sapphire.lighting.s_glow_v1']
    for a in nuke.allNodes():
        if a.Class() in nodeArray :
            a['disable'].setValue(tgl)

1/4/15

NUKE / PYTHON _ snippets

nuke.selectedNode().Class()

def reloadReads():
 for myNode in nuke.allNodes("Read") :
  myNode["reload"].execute()
 print "--> Reads reloaded"

11/3/14

NUKE _ $gui

- keep subdivision of 3D objects low in GUI, high in render ($gui?10:100)
- keep motion blur sampling low in GUI, high in render ($gui?3:20)
-"$gui" in expressions will return 1 in the UI and 0 at render time. Great for enabling nodes only when rendering on the farm (use it in the disable knob or Switch node).

source

11/2/14

NUKE/PYTHON _ toggle fullscreen viewer

def FullscreenViewer():
 m = nuke.menu( 'Viewer' ).findItem( 'Toolbars/Bottom' )
 m.invoke()
 m = nuke.menu( 'Viewer' ).findItem( 'Toolbars/Top' )
 m.invoke()

11/1/14

NUKE _ find shortcut .py file

Edit shortcut without using menu.py
edit : nukeinstaldir\plugins\nukescripts\toolbars.py