Hi all,
Coming from 3ds Max I’m used to setting up V-Ray Sun and Sky together by default, especially at the early stage of working with the scene.
Since that’s not the case in Houdini, I wrote a tiny Python script to do that. Thought some people here may find it useful :
#CHECK FOR V-RAY SUN
chldrn = hou.node('/obj').children()
vr_sun = None
for i in chldrn: [INDENT]if i.type().name() == 'VRayNodeSunLight':[/INDENT]
[INDENT=2]vr_sun = i
break[/INDENT]
if vr_sun == None: [INDENT]from vfh import vfh_tools; vfh_tools.newLight(kwargs, 'VRayNodeSunLight', "vrayLightSun")[/INDENT]
#CREATE VRAY ENVIRONMENT AND LINK IT TO V-RAY SKY TEXTURE
if hou.node('/out/env_sky') == None: [INDENT]hou.node('/out').createNode('vray_environment', 'env_sky')[/INDENT]
env = hou.node('/out/env_sky')
if hou.node('/out/env_sky/sky_tex') == None: [INDENT]hou.node('/out/env_sky').createNode('VRayNodeTexSky', 'sky_tex')[/INDENT]
sky = hou.node('/out/env_sky/sky_tex')
env_set = hou.node('/out/env_sky/environmentSettings')
env_set.setInput(0, sky, 0)
env_set.setInput(1, sky, 0)
env_set.setInput(2, sky, 0)
env_set.setInput(3, sky, 0)
env_set.parm('use_bg').set(1)
env_set.parm('use_gi').set(1)
env_set.parm('use_reflect').set(1)
env_set.parm('use_refract').set(1)
#CHECK FOR V-RAY ROP
if hou.node('/out/vray') == None: [INDENT]from vfh import vfh_toolbar; vfh_toolbar.vray_render_settings()[/INDENT]
vr_rop = hou.node('/out/vray')
vr_rop.parm('render_network_environment').set('../env_sky')
#ARRANGE NODES
env.moveToGoodPosition()
env_set.moveToGoodPosition()
sky.moveToGoodPosition()
Feel free to point out better way of doing that.
For anyone not sure how to use it - make a custom tool on a shelf and paste it in in the ‘Script’ tab.