Guest User

vray camera from exr (not working)

a guest
Apr 17th, 2012
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.74 KB | None | 0 0
  1. import nuke
  2.  
  3. def createExrCamVray( node ):
  4.  
  5.     mDat = node.metadata()
  6.     reqFields = ['exr/camera%s' % i for i in ('FocalLength', 'Aperture', 'Transform')]
  7.     if not set( reqFields ).issubset( mDat ):
  8.         print 'no metdata for camera found'
  9.         return
  10.  
  11.     first = node.firstFrame()
  12.     last = node.lastFrame()
  13.     ret = nuke.getFramesAndViews( 'Create Camera from Metadata', '%s-%s' %( first, last )  )
  14.     fRange = nuke.FrameRange( ret[0] )
  15.  
  16.     cam = nuke.createNode( 'Camera2' )
  17.     cam['useMatrix'].setValue( False )
  18.  
  19.     for k in ( 'focal', 'haperture', 'translate', 'rotate'):
  20.         cam[k].setAnimated()
  21.  
  22.     task = nuke.ProgressTask( 'Baking camera from meta data in %s' % node.name() )
  23.  
  24.     for curTask, frame in enumerate( fRange ):
  25.         if task.isCancelled():
  26.             break
  27.         task.setMessage( 'processing frame %s' % frame )
  28.  
  29.         val = node.metadata( 'exr/cameraFocalLength')
  30.        
  31.  
  32.  
  33.         cam['focal'].setValueAt(float(val),frame)
  34.  
  35.         val = node.metadata( 'exr/cameraAperture')
  36.         tx = node.metadata('exr/cameraTransform')[12]
  37.         tx = node.metadata('exr/cameraTransform')[13]
  38.         tx = node.metadata('exr/cameraTransform')[14]
  39.  
  40.         cam['haperture'].setValueAt(float(val),frame)
  41.         cam['translate'].setValueAt(float(tx),frame,0)
  42.         cam['translate'].setValueAt(float(tx),frame,1)
  43.         cam['translate'].setValueAt(float(tx),frame,2)
  44.  
  45.         # CONVERT STRING BACK TO LIST OBJECT AND ASSIGN
  46.         matrixList = node.metadata('exr/cameraTransform')
  47.         #for i, v in enumerate( matrixList ):
  48.         #    cam[ 'matrix' ].setValueAt( v, frame, i)
  49.         # UPDATE PROGRESS BAR
  50.         task.setProgress( int( float(curTask) / fRange.frames() *100) )
Advertisement
Add Comment
Please, Sign In to add comment