Jump to content

All Activity

This stream auto-updates     

  1. Past hour
  2. Juraj's playground

    Write-up on a Megascans integration which I helped with
  3. Today
  4. Custom Solver

    Since you can write and read attributes, you "can" do it in python, but it will be awfully slow. VEX would be a better alternative, but yet it isn't what the language was really made fore. The HDK is for sure the correct way to do it. In fact, one the examples of the HDK is a snow solver. You can find it in $HFS/toolkit/samples/SIM/SNOW_Solver.*
  5. Thanks a lot @amm ! it's more clear now The results i got so far with this shader : downside of the nose the shadow to up upper lips is not having enough saturation, like we would get in a real shot : a bit redish. The shadow is looking like a diffuse shadow without sss. Is there a workaround ? or did i missed something in the shader params ? So i did a try with a new shader : "full sss" : test with both pathtraced and raytraced sss and this shadow looks natural but render times are going insanelly longer than the shader you provided (if i remember it goes from 15 mn with your shader to 6h30mn with the one i tried > yes : no comment). I guess there is no solution that would be both looking real and fast to render. By the way : do you know the difference between raytraced and pathtraced sss : i tried to anderstand the difference (google) but couldn't get a clear explanation of that. From what i've seen, in the tests i did, the raytraced sss is giving back uniforme saturated transmission color and pathtraced are givin both a more controlled saturated transmission and a more feeling "like real" transmission to "deepness" or scattering, it feels a bit like the difference between a 16bit to a linear 32bit image but according to sss. Sorry for the lack of explanation /
  6. Hello, everyone! I'm attempting a snow solver inspired by Azmisov's one (found here: https://github.com/Azmisov/snow ) My main problem right now would be which is the language/framework that would allow for the extensiveness that I need. I want to create a custom dynamics solver. The Azmisov implementation was done in HDK, but being more familiar with python, I was looking if it could be an alternative. Meanwhile, the majority of python examples focus on SOPs and procedural geometry creation. I have also read that creating a new dynamics operator with python is not recommended (Deborah Fowler's page). There would also be alternatives with VEX, simple solver node or a script node. I am interested in finding out the differences and what would suit a custom DOP solver. Thanks, Ivr
  7. Hey guys, Pretty new to Houdini after many years of Maya. I'm importing an alembic and want to push the path attribute all the way to the end to retain the original hierarchy. When I add a voronoi fracture only the inside group seems to maintain the path attribute. The outside group and my original group that I defined before for the object I'm shattering have empty path attributes. How can I copy the correct path attribute back onto the fractured pieces? (If I have multiple prims/ want to maintain the original prims path attr) Thanks guys!
  8. Groupselection inside HDA

    Hey there! Im developing some HDA´s for my Bachelor Project! My actual Problem is about the Action Button for a Prim Group Selection. Right now im running the standart Action Button script below: import soputils kwargs['geometrytype'] = (hou.geometryType.Primitives,) kwargs['inputindex'] = 0 soputils.selectGroupParm(kwargs) But, of course it does refer to the Node above the Subnet. My question is: How can i refer to the Node above the Selction Node inside the Subnet ? Is it a Python Callback Script or is it something below the Action Button ? Thank you very much Max
  9. Hey there! Im developing some HDA´s for my Bachelor Project! My actual Problem is about the Action Button for a Prim Group Selection. Right now im running the standart Action Button script below: import soputils kwargs['geometrytype'] = (hou.geometryType.Primitives,) kwargs['inputindex'] = 0 soputils.selectGroupParm(kwargs) But, of course it does refer to the Node above the Subnet. My question is: How can i refer to the Node above the Selction Node inside the Subnet ? Is it a Python Callback Script or is it something below the Action Button ? Thank you very much Max
  10. Open UV View (Uv Editor ) in Python

    Thanks you guy for the help , the second code work fine with me , thanks again .
  11. Just coming here a few years later to say thanks for this! It's surprisingly difficult to make generalized tools that generate new primitives and cleanly inherit attributes from the incoming primitives. Also-- I've never seen this structure before in VEX (ADDSETATTRIB). Much cleaner than what I'd been doing... Is there anywhere I can find documentation?
  12. Troubles with melting object

    your object is not fully enclosed, try appending PolyCap first
  13. I'm trying to work on a VDB SOP but I'm having problems compiling. I'm windows with Houdini 16.5 and I'm getting "unresolved externals". Along with the usual inclusions I have: #include <GU/GU_PrimVDB.h> #include <openvdb/openvdb.h> #include <openvdb/Grid.h> I'm compiling with cmake which looks like this cmake_minimum_required( VERSION 3.6 ) project( HDK_VolumeDeform ) list( APPEND CMAKE_PREFIX_PATH "$ENV{HFS}/toolkit/cmake" ) find_package( Houdini REQUIRED ) set( library_name SOP_VolumeDeform ) add_library( ${library_name} SHARED SOP_Volume_Deform.C SOP_Volume_Deform.h ) target_link_libraries( ${library_name} Houdini) SET(COMPILE_FLAGS "-TP -std=c++11 -DOPENVDB_3_ABI_COMPATIBLE") add_definitions(${COMPILE_FLAGS}) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMPILE_FLAGS}") target_include_directories( ${library_name} PRIVATE ${CMAKE_CURRENT_BINARY_DIR} ) houdini_configure_target( ${library_name} ) Strangely enough, the program does compile if I don't try use iterators, though I'm sure there is a lot that would break it. I've also tried with Hcustom, but running with that yields the same problems. Does anyone have any suggestions? Thank you very much!
  14. Yesterday
  15. Lol, you did the hard work. Peace.
  16. Letter Rising from Sand/grains COLLISION issues

    Thank you so much for your reply! I believed that i figured out the issue! I had NO IDEA about the open CL stuff. Theres a ton to learn in this amazing program, and i look forward to creating more! Thanks again!
  17. Hey! Nevermind! I figured it out! Works like a charm now with an object level HDA! Thank you very much!
  18. Run script in Command Line tools with Python

    Sure, here's a hip. The code is all inside the pythonscript node. It's the following: import os.path as op import subprocess hython_path = op.join(hou.expandString("$HFS"), "bin", "hython") hrender_path = op.join(hou.expandString("$HFS"), "bin", "hrender.py") hip_path = hou.hipFile.path() subprocess.Popen([hython_path, hrender_path, "-e", "-d", "mantra1", hip_path]) As for importing hou, it's not very straight forward. Besides adding the path to the .py file to your current python path, you need to also add the $HFS/bin folder to your PATH variable in order to correctly import the custom houdini C libraries. As described here http://www.sidefx.com/docs/houdini/hom/commandline.html subprocess_hython_odf.hip
  19. Oh... or do i "copy" my level generator graph and split it up? -> Create 2 GEOs at Object level -> Copy the graph into both of them -> One creates geo, one create point cloud -> Select both GEOs (in Object level) and create a subnet/digital asset?
  20. Oh man... My Houdini knowledge obviously is pretty basic. Lemme see if i can sum that up... I use a SOP approach, yes. I made multiple SOP HDAs to create a "level generator" - split up by their purpose and from basic to advanced. My basic construction elements are pretty simple like: Floor generator Pillar generator Floorboard generator ... These are used be the 2 main geo generators: Room Generator (creates a room based on a curve) Wall Generator (creates walls that are not a closed curve - to split up the room) My final HDA is the "Level Generator". This SOP imports a CSV File that contains data how to build the room (curve points) PLUS where to spawn objects (blueprints in UE4) I attached a screenshot to show an overview of the multiple HDAs. I actually don't know how do do this in object level... Do i need to create 2 Nulls in my Level Generator - one with Geo and one with a pointcloud and "object-merge" them into object level? And create a new HDA over this? I need a couple of parameters from each HDA (like material, Cd, etc.) as well. Maybe I'm thinking in a totally wrong direction here?
  21. source flip fluid with velocity

    Atoms response is the simplest route, otherwise In your geo network run your geo into (1) a volume node and then into a volume vop to set up your vector direction and noise, then in a secondary tree run (2) your geo into a vdb from polygons with like 0.1 voxel size with a fog vdb, then scatter points in that vdb. Then drop down a attribute from volume, set it to vector and set its name to "vel" both the trees will plug into the attribute from volume, scatter goes into points to apply attribute and the volume vop into the volumes to use, then drop down a volume rasterizeattributes with attributes set to "vel" and into a Null. You can test what its doing by using the usual volume trail sop and use the same points and volume rasterize outputs to check your velocity field. Just as an NB point in your volume vop you have to bind export to "vel" with what ever noise etc your adding. in your DOP network you can either use a volume source or popadvect by volumes. Volume source: set initialize to source flip and point the sop path to the out vel null you made, also change field to match and source volume/target field names to vel. pop advect is pre set up with vel. This gives you the ability to add alot of control, and is how they went through in in the master class/ or top 10 new features for 17 if i remember correctly. Below is the same applied to a FLIP Tank and emission from a geo object as mentioned using this method.
  22. Your instance point cloud and your instanced geometry should be two separate pieces of geometry on import so that you do not have this issue. My best guess is you are using the SOP based method with copy to points node to instance? If so try the the object based method. The object based method is less prone to have these type of errors as the elements are separated into different contexts and represent what you will see in your third party DCC more logically 1 to 1. In your HDA do it at the object level with a subnet. Include a geometry node that contains your point cloud data that is non-renderable i.e. shut off the display, and object merge that into a instance object. Then use the instance attribute to point to the different geometry nodes you want to import. This is a bit more production friendly as it is easier to automate the import of these object level instances, and also set each set of attributes independently.
  23. Actually there is one problem... I have vertex-attribute normals on the generated geometry, so the shading looks the way i want. For instances, the normals need to be point-attributes. Obviously i can't have both - if i remove the vertex-attributes, the instance rotation works, if i keep both, everything twists weirdly... Is it possible to have both - vertex and point normals?
  24. Cool. Glad you solved it.
  25. Oh - seems like i found something. Had an orient attribute on some other geometry (wall) that seems to mess up everything. If i remove that I get rotation on the blueprints
  26. Hey! Thanks for the reply! Doesn't seem to work either - set up to 0/1/0 and the normal according the direction. The blueprints don't rotate...
  27. Just use up and normal. Not all program have conversions for the varied attributes.
  28. Hi everyone! I made an HDA that generates a level. Got a couple of blueprints in Unreal I need to spawn. This works fine when I use the unreal_instance as point-attribute with the spawn-points. Since I want to rotate the blueprints instances as well, i added a rot point-attribute (also tested with orient) to the points - but this doesn't seem to carry over. Works fine inside Houdini when I test it with proxy geo (e.g. boxes) Every instance of the blueprint Unreal though has the same rotation. Am I doing something wrong here? best, Ron
  1. Load more activity
×