edward Posted March 21, 2012 Share Posted March 21, 2012 agreed, especially some of the SOPS can also be very slow to work with or require vast amounts of ram, some optimization could totally revolutionize the way assets are built as some SOPS are just too slow to use practically on a big scale at the moment. For example? Quote Link to comment Share on other sites More sharing options...
magneto Posted March 21, 2012 Share Posted March 21, 2012 For example? I love Edward's posts. Short but hits the spot Quote Link to comment Share on other sites More sharing options...
freaq Posted March 21, 2012 Share Posted March 21, 2012 (edited) For example? the Iso offset node, becouse it is only utilizing one core it is by far the worst bottleneck of my procedural terrain system. if it were to become multithreaded it would help enormously. I know there are lots of operations which are hard to multithread, but this one would be key for me. also a memory optimization (if possible storing big numbers of adjacent similar voxels as one block) would help a lot. also the attribute transfer sop can be slow, not sure if anything can be done about that one but again it would help me a lot. the smooth? (also a relax option would be great both in UV and 3D space) the best thing would be if Houdini would be able to recognize which chains can be calculated simultaniously as they are independent from one another, say a chain that processes creating houses, and another calculating the placement of those houses. both need to be completed for the copy to work, but the inputs can be calculated at the same time. and if one input is already complete and the other is still running that free core could theoretically start working on another task. again full multithreading has been asked quite often here so me asking again is probably not really helping... but mainly the Iso-Offset and the attribute transfer slow me down. Edited March 21, 2012 by freaq Quote Link to comment Share on other sites More sharing options...
0rr Posted March 21, 2012 Share Posted March 21, 2012 Wouldn't a generic opencl sop node be something which could be easly done? The opencl sop would besically handel all the opencl setup and dispatching and kernels could be loaded in since they are compiled at runtime anyway. Maybe one point per workitem would do the trick. It would be like vex just using the gpu instead of the cpu. But my guess is that it would be useless because you need to have alot of calculations per workitem so that it would give any speed ups. Quote Link to comment Share on other sites More sharing options...
Pazuzu Posted March 21, 2012 Share Posted March 21, 2012 +1 for multithread the iso-offset node, is one of the key tool's in sop's to work with volumes. Quote Link to comment Share on other sites More sharing options...
Marc Posted March 21, 2012 Share Posted March 21, 2012 I'll beat my dead horse: POPs. They need to be faster, handle more particles. Some new pops would be nice, like sdf collisions, better fov avoidance pops etc. Barring that though I think the DOPs workflow needs a good sorting out. Its a bit like a mildly autistic child at this point (Aspergers maybe?), where it has the most amazing potential but trying to get it to do what you want is an exercise in frustration. That's it for me on this version, nothing major . M 2 Quote Link to comment Share on other sites More sharing options...
pclaes Posted March 21, 2012 Share Posted March 21, 2012 Wouldn't a generic opencl sop node be something which could be easly done? The opencl sop would besically handel all the opencl setup and dispatching and kernels could be loaded in since they are compiled at runtime anyway. Maybe one point per workitem would do the trick. +1 It would be like vex just using the gpu instead of the cpu. But my guess is that it would be useless because you need to have alot of calculations per workitem so that it would give any speed ups. Never underestimate the computational requirements of houdini users , if that kind of functionality would become available it would get used to great extent. You can build entire particle systems, flocking systems, pathfinding, pointbased shading, etc,... with just points. 24 threads in my current system, replaced/augmented by 500 gpu cores sounds like a very attractive feature. Quote Link to comment Share on other sites More sharing options...
Alexander Weide Posted March 21, 2012 Share Posted March 21, 2012 I would like Houdini to have more "connections" with post production softwares. Posibility to export nulls and similar things to After Effects would be awesome. Thats just a small example. Sorry to say that. Everyone Cry to have some additions or other stuff...No Package like Houdini got more connections to Software outside.!!! If you not able to create a good pipeline then think about and build some. And btw... Houdini is a professional software, and After FX is not really.. Try to Use NUke,Fusion, or even Houdini Halo. Sorry for my hard words but i cant hear it any more... bye 2 Quote Link to comment Share on other sites More sharing options...
0rr Posted March 22, 2012 Share Posted March 22, 2012 I would like Houdini to have more "connections" with post production softwares. Posibility to export nulls and similar things to After Effects would be awesome. Thats just a small example. Here's a short python script that does that (I think). It's not done by me! Maybe someone could create a little ui for it to make it more usable. # This script exports Houdini objects to Adobe After Effects 8.x # A .jsx file will be created # You can run it as a script in AE # ver 0.01 Andrew V.K. import toolutils import hou import string import math viewer = toolutils.sceneViewer() objsel = viewer.selectObjects("Select objects and press Enter", use_existing_selection=False, allow_multisel = True, quick_select=True, allowed_types = ('cam','hlight','null','geo','subnet')) dir = hou.expandString('$HIP') hip = hou.expandString('$HIPNAME') dirpath = dir + '/' + hip + '.jsx' fname = hou.ui.selectFile( start_directory = dirpath, file_type = hou.fileType.Any, collapse_sequences = False, multiple_select = False, image_chooser = False) if not fname.endswith('.jsx'): fname = fname + '.jsx' fp = open(fname,'w') fps = hou.fps() duration = hou.expandString('$TLENGTH') fend = string.atoi(hou.expandString('$FEND')) fstart = string.atoi(hou.expandString('$FSTART')) firstCam = 0 objCamera = [] objLight = [] objNull = [] for obj in objsel: name = obj.name() objType = obj.type().name() if objType == 'cam': resx = obj.parm('resx').eval() resy = obj.parm('resy').eval() aspect = obj.parm('aspect').eval() aperture = obj.parm('aperture').eval() focal = obj.parm('focal').eval() fovx = 2 * math.atan((aperture/2)/focal) zoom = ((resx/2)/math.tan(fovx/2)) if firstCam == 0: objCamera.append('var myItemCollection = app.project.items;\n') objCamera.append('var myComp = myItemCollection.addComp("'+name+'"'+','+`resx`+','+`resy`+','+`aspect`+','+duration+','+`fps`+');\n') objCamera.append('var SceneScaleNull = myComp.layers.addNull();\n') objCamera.append('SceneScaleNull.threeDLayer = true;\n') objCamera.append('SceneScaleNull.name = "Scene Scale";\n') objCamera.append('SceneScaleNull.property("Position").setValue([0.0,0.0,0.0]);\n') objCamera.append('SceneScaleNull.enabled = false;\n') firstCam = 1 objCamera.append('var '+name+' = myComp.layers.addCamera("'+name+'",[0,0]);\n') objCamera.append(name+'.autoOrient = AutoOrientType.NO_AUTO_ORIENT;\n') objCamera.append(name+'.property("Zoom").setValue('+`zoom`+');\n') objCamera.append(name+'.parent = SceneScaleNull;\n') elif objType == 'hlight': lighttype = obj.parm('light_type').eval() intensity = obj.parm('light_intensity').eval() cr = obj.parm('light_colorr').eval() cg = obj.parm('light_colorg').eval() cb = obj.parm('light_colorb').eval() coneangle = obj.parm('coneangle').eval() shadow = obj.parm('shadow_type').eval() objLight.append('var '+name+' = myComp.layers.addLight("'+name+'",[0,0]);\n') objLight.append(name+'.autoOrient = AutoOrientType.NO_AUTO_ORIENT;\n') objLight.append(name+'.property("Intensity").setValue('+`intensity*100`+');\n') objLight.append(name+'.property("Color").setValue(['+`cr`+','+`cg`+','+`cb`+']);\n') if shadow > 0: objLight.append(name+'.property("castsShadows").setValue(1);\n') if lighttype == 1: objLight.append(name+'.property("coneAngle").setValue('+`coneangle`+');\n') objLight.append(name+'.parent = SceneScaleNull;\n') else: objNull.append('var '+name+' = myComp.layers.addNull()\n') objNull.append(name+'.threeDLayer = true;\n') objNull.append(name+'.name = "'+name+'";\n') objNull.append(name+'.parent = SceneScaleNull;\n') if firstCam == 0: fp.write('var myItemCollection = app.project.items;\n') fp.write('var myComp = myItemCollection.addComp("Camera1",640,480,1,%s,%s);\n'%(duration,fps)) fp.write('var myCamera = myComp.layers.addCamera("Camera1",[0,0]);\n') fp.write('myCamera.autoOrient = AutoOrientType.NO_AUTO_ORIENT;\n') fp.write('var SceneScaleNull = myComp.layers.addNull();\n') fp.write('SceneScaleNull.threeDLayer = true;\n') fp.write('SceneScaleNull.name = "Scene Scale";\n') fp.write('SceneScaleNull.property("Position").setValue([0.0,0.0,0.0]);\n') fp.write('SceneScaleNull.enabled = false;\n') fp.write('myCamera.parent = SceneScaleNull;\n') for x in objCamera: fp.write('%s'%x) for x in objLight: fp.write('%s'%x) for x in objNull: fp.write('%s'%x) i = fstart while i <= fend: hou.setFrame(i) ftime = hou.frameToTime(i) for obj in objsel: name = obj.name() objType = obj.type().name() wtm = obj.worldTransform() objt = wtm.extractTranslates("srt") tx = objt.__getitem__(0) ty = objt.__getitem__(1) * -1 tz = objt.__getitem__(2) * -1 objr = wtm.extractRotates("srt","zyx") rx = objr.__getitem__(0) ry = objr.__getitem__(1) * -1 rz = objr.__getitem__(2) * -1 fp.write('%s.property("X Rotation").setValueAtTime(%f,%f);\n'%(name,ftime,rx)) fp.write('%s.property("Y Rotation").setValueAtTime(%f,%f);\n'%(name,ftime,ry)) fp.write('%s.property("Z Rotation").setValueAtTime(%f,%f);\n'%(name,ftime,rz)) fp.write('%s.property("Position").setValueAtTime(%f,[%f,%f,%f]);\n'%(name,ftime,tx,ty,tz)) if (objType == 'cam') and (len(obj.parm('focal').keyframes()) != 0): resx = obj.parm('resx').eval() resy = obj.parm('resy').eval() aspect = obj.parm('aspect').eval() aperture = obj.parm('aperture').eval() focal = obj.parm('focal').eval() fovx = 2 * math.atan((aperture/2)/focal) zoom = ((resx/2)/math.tan(fovx/2)) fp.write('%s.property("Zoom").setValueAtTime(%f,%f);\n'%(name,ftime,zoom)) if objType == 'hlight': if len(obj.parm('light_intensity').keyframes()) != 0: intensity = obj.parm('light_intensity').eval() fp.write('%s.property("Intensity").setValueAtTime(%f,%f);\n'%(name,ftime,intensity*100)) if len(obj.parm('coneangle').keyframes()) != 0: coneangle = obj.parm('coneangle').eval() fp.write('%s.property("coneAngle").setValueAtTime(%f,%f);\n'%(name,ftime,coneangle)) kr = len(obj.parm('light_colorr').keyframes()) kg = len(obj.parm('light_colorg').keyframes()) kb = len(obj.parm('light_colorb').keyframes()) if (kr != 0) or (kg != 0) or (kb != 0): cr = obj.parm('light_colorr').eval() cg = obj.parm('light_colorg').eval() cb = obj.parm('light_colorb').eval() fp.write('%s.property("Color").setValueAtTime(%f,[%f,%f,%f]);\n'%(name,ftime,cr,cg,cb)) if (objType == 'geo') or (objType == 'null') or (objType == 'subnet'): objs = wtm.extractScales("srt") sx = objs.__getitem__(0) sy = objs.__getitem__(1) sz = objs.__getitem__(2) fp.write('%s.property("Scale").setValueAtTime(%f,[%f,%f,%f]);\n'%(name,ftime,sx,sy,sz)) i = i + 1 fp.close() hou.setFrame(fstart) Quote Link to comment Share on other sites More sharing options...
AndrewVK Posted March 22, 2012 Share Posted March 22, 2012 Maybe someone could create a little ui for it to make it more usable. At least for now You can: RMB click on any shelf.... push "New Tool" name it "HouToAE" jump to script section paste content of attached file click "Accept" Select camera, lights, nulls etc push "HouToAE" button on the shelf press enter HouToAE.txt Quote Link to comment Share on other sites More sharing options...
0rr Posted March 22, 2012 Share Posted March 22, 2012 At least for now You can: RMB click on any shelf.... push "New Tool" name it "HouToAE" jump to script section paste content of attached file click "Accept" Select camera, lights, nulls etc push "HouToAE" button on the shelf press enter That's cool. Thanks. Quote Link to comment Share on other sites More sharing options...
Pazuzu Posted March 24, 2012 Share Posted March 24, 2012 More love to the sculpt SOP, speed with high poly counts. Better snap behavior (like the one in Maya). Capacity for the curve editor to select multiple keys with a hotkey (like ctrl+a in the viewport). Quote Link to comment Share on other sites More sharing options...
Nerox Posted March 24, 2012 Share Posted March 24, 2012 (edited) Crowds ladies and gentlemen, crowds! Most people agree that Massive is closer to a nightmare than a dream, no other software package does proper crowds, there is an increasing need for crowds, Houdini's procedural system will suit it perfectly, bring on those NOP's (Neuro Operators). H13 == Crowds Edited March 25, 2012 by Nerox 1 Quote Link to comment Share on other sites More sharing options...
Sifis Posted March 25, 2012 Share Posted March 25, 2012 Crowds ladies and gentlemen, crowds! Most people agree that Massive is closer to a nightmare than a dream, no other software package does proper crowds, there is an increasing need for crowds, Houdini's procedural system will suit it perfectly, bring on those NOP's (Neuro Operators). H13 == Crowds +1 It would be a dream to have in our disposal every tool massive has plus houdini's procedural workflow. I'd also love to render agents in mantra with real pathtrace GI instead of using 3Delight or Air. 1 Quote Link to comment Share on other sites More sharing options...
Nerox Posted March 26, 2012 Share Posted March 26, 2012 What about a multi-physics / granular / sand solver? One that handles the breaking / clumping behavior that everybody loved in the la-kug!-oa demo's. To cover the simulation non-fluidly-fluids area between FLIP and bullet. 2 Quote Link to comment Share on other sites More sharing options...
sanostol Posted March 26, 2012 Share Posted March 26, 2012 (edited) - More Multithreading, for example all vexfunctions that access primitives seem to be singlethreaded, for exampel intersect or primitiveAttribute - More Vexfunctions, like nearestPrim in hom, neighborprims, neighborpoints for prims and vertices - Complete Bulletintegration ( constraints, collision models) - Access to the collision methods of bullet in POP - instances of subnets should be possible with fast instances, and different instances per point should be visible in ogl - better transparencies in ogl - ogl comment should be pimped to a full slate tool - render view should support overlays, too, not only backgrounds. best would be if the comptool uses a renderviewstyle update node. You reender and see it refine in the comp. - pscale/width of delayed loads should modifieable by a multiplier during the ifdgeneration/rendering without rewriting teh bgeo - more advanced layout possibilities for parameter pages, also more work on ramps, and a twodimensional slider would be cool - PaintTool in Comp - Group/Partition Nodes to inherit attributes. If a object is in a group and the group has the material applied the object uses this material, same goes for other properties. Objects can be in many groups. if two groups override the same material the user has to keep care of. groups can be put in assets. think of it like kind of bundle in nodes. the other things are partitions. a object can be only in one partition, partitions live in outputdrivers, partitions override groups, if a object is in a partition in mantra node1 it renders in mantra node1 with this attributes. there is something like a background partition, it stores all objects, untill they are assigned to other partitions. so You can easily hide all objects form rendering, and new objects don't show up in other passes unless You want. many xsi users will recognize this system, and I do miss it when dealing with lots of passes and many objects. the takelist gets so messy so fast. the group/pass system is one of the best I can imaging, I owe the guy who inventedit so many beers. Would like to hear Your thoughts. Martin Edited May 5, 2012 by sanostol Quote Link to comment Share on other sites More sharing options...
malexander Posted March 26, 2012 Share Posted March 26, 2012 - instances of subnets should be possible with fast instances, and different instances per point should be visible in ogl Point Instancing is supported in the GL3 viewport using GL instancing for the Instance Object. Does this cover it? Quote Link to comment Share on other sites More sharing options...
Pazuzu Posted March 26, 2012 Share Posted March 26, 2012 Point Instancing is supported in the GL3 viewport using GL instancing for the Instance Object. Does this cover it? Where I can find that property? I can't find it in the edit parameter interface. Thanks Quote Link to comment Share on other sites More sharing options...
old school Posted March 26, 2012 Share Posted March 26, 2012 Where I can find that property? I can't find it in the edit parameter interface. Just add the Instance Render Properties to your instance object, enable Fast Point Instancing and reference your instance object. Then make sure you are using the new GL3.2 viewport in the preferences and in the Display Options > Geometry tab, Point Instancing is enabled. The viewport instances only show up in object view, not SOPs. Just pin your viewport at /obj when you work on the SOP instance attributes. You can adjust what percentage of instances to visualize in the viewport. If you have any of the standard instance attribues present (pscale, N/v, UP), they will be used. Quote Link to comment Share on other sites More sharing options...
michael Posted March 26, 2012 Share Posted March 26, 2012 would love it if point instancing could use instancepoint() etc at the SOP level... Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.