Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


Everything posted by markinglevfx

  1. Redshift Proxy with relative path [SOLVED]

    Makes sense! Should've realized I needed to use @instance instead of @instancefile. With the \$HIP slash no slash, I was trying to get the $HIP to evaluate at render time. So having @instancefile = $HIP/rs_proxy/teapot.0001.rs and not @instancefile = M:/_Work/_Personal/sandbox/rs_proxy_relative/rs_proxy/teapot.0001.rs. But this is the wrong approach, for anyone wondering. Either using @instance, or the instance geo node with a .rs proxy object as its instance object would be the correct way to do local instancing. I also looked at exporting a packed prim to the .rs proxy, but it didn't seem to affect the render times. File attached. Also renders of instancing teapots on 6m points, using point attributes to drive color, orientation etc. rs_proxy_relative_v003.hip
  2. Hey guys, I need to send a large point cloud which instances geo to the cloud to render. The problem I'm having is the instancefile attribute is absolute, and once the project is uploaded to the cloud render environment the path is no longer relevant/correct. Redshift does not seem to expand strings at render time, so $HIP or $JOB do not get evaluated afaik. I've also tried setting the path to a node within the .hip file. For example, this will work: M:/_Work/_Personal/sandbox/rs_proxy_relative/rs_proxy/teapot.0001.rs But this will not: \$HIP/rs_proxy/teapot.0001.rs Nor will this: /obj/teapot_rs/OUT/ I've attached a super simple setup where I get instancing working using an absolute path (it references the output of the RS Proxy Output SOP). Is there any way to get Redshift to to instance from a path that is relative to the project folder, or a node within the .hip file? Or has anyone had experience getting Redshift instances rendering on Gridmarkets? Thanks all! Note: I've also tried using the instance obj node (see v002 hip attachment). BUT the issue I run into with this is it maxes out my GPU's VRAM at render time, whereas using an absolute path with instancefile renders just fine with the ~6m points I need to instance on. rs_proxy_relative_v001.hip rs_proxy_relative_v002.hip
  3. Python - Integer to String

    In the Python SOP, I've run into a wall trying to get an integer converted to a string. In the larger picture, I'm trying to subtract 1 from a value which is currently part of a string. There are probably neater ways to write these steps, but I'm fairly new to Python so I'm writing it all out to make things easier to follow. I start with a string such as: string = "f27" Then remove the 'f' like so: string = string[1:] Convert it to an integer: integer = int(string) Subtract 1 from the value: integer -= 1 set new string string_new = "f" + str(integer) The last line returns an error on the Python SOP: TypeError: str() object is not callable. This is confusing because these same steps work just fine in the Python shell. Is there an alternative to str(), or am I using it wrong?
  4. Python - Integer to String

    Bingo. Thanks for the help guys!
  5. Python - Integer to String

    I did have 'str' set as a variable elsewhere in the code. But even after I got rid of it, the error persisted. But I have managed to get it working now. I solved it by making a new Python SOP and using the same code - initially I was copy/pasting lines and seeing where it broke. Weird how I now have two python nodes side by side with the same inputs, the old one errors and the new one is fine.
  6. Solids from Gases

    Converting your volume to VDB (class: SDF), followed by a VDB smooth and a convert to polys should do the trick pyro_to_poly_v001.hip
  7. Replicating Coins

    I did a little breakdown of the replicating effect in a blog post - check it out if you like! There's a free .hip to download included. https://www.markinglevfx.com/post/replicating-coins-hip-breakdown
  8. Replicating Coins

    A little experiment I like to nickname: 'Life as a VFX Artist'
  9. You can use this code in your switch. Currently you're using the loop iteration in the switch, but the point/loop order changes as new points come in so it's different each frame. By referencing each point's id attribute when selecting the object it instances you can keep them constant throughout. Hope it this makes sense. Adjust the max fit value (currently 1) to account for more instance objects fit01(rand(point("../foreach_begin1/", 0, "id", 0)), 0, 1)
  10. Bake parameters into render or flipbook?

    The vm_image_comment is on the mantra node by default so technically it belongs there. You have to render from the mantra node (not just flipbook) to display the comment.
  11. Pivot at the bottom of an object

    Write this into your pivot translate to get the minimum y position of the input geo: bbox(opinputpath(".", 0), D_YMIN) opinputpath(".", 0) gets the path of the first input of the current node. https://www.sidefx.com/docs/houdini/expressions/opinputpath.html bbox() returns the bounding box info of a node, in this case we want to use "D_YMIN" to get the minimum y position. https://www.sidefx.com/docs/houdini/expressions/bbox.html edit: forgot to add the centroid expressions for the x and z values, see Tomas' reply below
  12. Modify an existing group

    Does this help? Click the arrow next to the base group parameter deselect the edges using ctrl hit enter (in viewport) when done
  13. Unbound particles to velocity field ?

    The air resistance on the advect by volume pop was turned up to 150. This acts as a drag to keep the particles within the velocity field and prevent them from flying off. You'd have to turn this down for the particles to break free from the vel field - it's a balancing act to keep them revolving around the torus. Also this air resistance acts on the particles regardless of if they're inheriting any velocity from the volume. So you'll need to remove this air resistance force on any particles which are not within reach of the velocity field. I've done this by using a pop group and a bounding box area. velField_gravity_fix.hipnc
  14. Import Records into PopNet

    Seems like you can. By setting the pop solver to add 'impact data' instead of hit attributes. And set the Data Path and Record on the Dop Import Records node to 'Impacts'. When you're working with a new node and you're not sure exactly how to use it, always check the help documentation. In this case there was an example scene which helped a lot. https://www.sidefx.com/docs/houdini/nodes/sop/dopimportrecords.html dop_import_records.hipnc
  15. Import Records into PopNet

    Enable hit attributes in the pop solver, and isolate the points with collision data at SOP level? impact_records_fix.hipnc
  16. Particles not emitting along vector attribute ?

    To have them flowing around the torus you'd be better off using 'advect from volume'. This way your particle's velocities are constantly being updated, rather than just inherited at the start like in your previous setup. particles_advect_by_volume.hipnc
  17. Bake parameters into render or flipbook?

    This should be what you're looking for. Add the viewport comment render parameter to a camera, and flipbook as you would normally. Channel reference the attribute(s) you want displayed within backticks. Example file of mine attached! flipbook_comment_v001.hip
  18. selecting acute points by angle threshold

    Does it have to be a VEX solution? Because you can measure the curvature of each point using the measure SOP and come to the same conclusion. In the measure node: set the element type to points, and measure to curvature. Then you can isolate the pointy points with a point wrangle and setting a threshold value: if(@curvature > 2.5){ i@pointy = 1; }
  19. I made this HDA to streamline the process of versioning caches. It will automatically produce a file path and file name for your cache, and load it back in once it is exported. You can flip through different versions easily by using the version slider, or using the 'Create File Node for This Version' button and wiring the file nodes up to a switch node. You can write detail attribute strings to store notes about the cache such as simulation parameters - very useful when referring back to old sim caches. At the moment this is a non-commercial HDA. Download link down this page beneath the video. Get at me with thoughts, comments, questions etc. SOP_MI_version_filecache.hda
  20. TOPs video mosaic for simulations

    Haven't used PDG yet myself, but from what I understand the generate_contact_sheet is an imagemagick node set to montage. And the gather_matching_frames would be a partitionbyframe node to make sure the mosaic renders the animations in sync. Check out Entagma's PDG series, part 1b specifically for creating mosaics.
  21. Floating Fountain

    A passion project re-using footage shot a few years ago. The water is split into two sims: the first covering the sphere and the downward stream, the other filling the basin and overflowing around the sides. A total of over 7 million particles make up the fluid sim. Software used: Houdini Redshift Nuke
  22. CacheIt -- HDA

    Nice! I have made a similar kind of thing for myself. Something I included was adding 'metadata' as detail attributes to help identify caches easier than just their version number. Definitely helps when your client asks you to revert back a few versions to one they liked earlier! Maybe you could add this in too?
  23. Floating Fountain WIP

    I've been remaking this old shot I had worked on 3.5 years ago, taking the old footage/files and completely reworking the sim, render and comp. Feedback welcome
  24. Fragrance FX spot

    The reassembly was a reverse particle sim. I didn’t use packed rbd because collisions weren’t a priority and I needed to keep things simple. Each particle represented a fractured piece and the transforms of the particles were applied to the pieces after the sim.
  25. Fragrance FX spot

    I'd like to share a project I have been on for the last 3 weeks as the sole creator. All CG work was done in Houdini, Redshift, and Nuke. Some minor work was also done in PS and AE. Shoutout to the Gridmarkets team for the support and helping me meet this tight deadline! Feedback/criticism is welcome. https://vimeo.com/346944545