Iso Offset
Visit the Node Bible
Iso Offset
The Iso Offset is used to create a standard volume, iso surface, or tetra mesh based on the shape of incoming geometry.
In practice, the Iso Offset is the main node used to generate a standard volume, iso surface, or tetra mesh based on the shape of incoming geometry. For more information about standard volumes vs. VDB volumes, please visit Houdini For the New Artist II for a detailed comparison. This article will assume that you are already familiar with the basics of volumes and VDBs.
An Iso Surface (aka an "isometric" surface) gets used for a variety of applications - including fluid meshing and building polygon soups. Tetra meshes are more commonly used with soft-body solvers and deformers. As mentioned before in Houdini For The New Artist II, it is generally advised that you avoid any standard volume operations and use VDBs instead if possible. Even though vdbs are advised, it's still useful to understand how this node works as it helps you better understand how volumes work in general.
Also, just as a reminder - the term "sign" often refers to where the surface of the object is. As an example, a "Sign Distance Field" (also called a SDF) populates a field (in other words, the volume) with the distance away from the sign (surface). So, from now on, understand that when the iso surface goes to generate something, it needs to find the surface of the object, and that surface is often referred to as the "sign" of the object. "Sign" = surface "Distance" = distance from the surface "Field" = volume... SDF...
Main Parameters:
Output Type:
-- This determines what the Iso Offset will output. In addition to what was said above in the "summary" section, you have the option of creating a fog volume or sdf volume. The main difference between these two types of volumes is the values which populate the voxels. For more information about the difference between sdf and fog volumes, please visit Houdini For The New Artist II.
Mode:
-------------------------------------------------
This determines how the output is made.
-------------------------------------------------
-- Ray Intersect = "Rays will be fired at the geometry from various directions to determine where the surface is. The resulting field will be signed, so an offset of 0 will generate an iso surface separating the inside from the outside." The confusing part of that is when it says, "the resulting field will be signed" but don't let that confuse you. In practice, if you adjust the offset, then it will simply move the border zone of the mesh outwards. Keep in mind that you'll want to make sure that your mesh doesn't have any holes in it.
-- Metaballs = "The Ray Intersect method determines if voxels are inside or outside the object by sending rays. This can result in leaks and other problems. If you are building an SDF from a collection of metaballs, you can instead determine inside/outside by looking at the metaball field. That is what this method uses. Note that Laser Scanning is likely unwanted when this method is used." In spite of what the documentation may suggest, it's still a bad idea to allow holes in your geometry. The, "metaball field" is also poorly explained, so I'm sure that most people don't know what that actually means. In practice though, this will give you very similar results to the Ray Intersect method, and if you're having problems with Ray Intersect, then maybe you can get better results by switching to Metaballs instead.
-- Minimum = "Exact minimum point to surface will be found. This is slow, but accurate. The resulting field is not signed, so you can only generate a shell around the geometry. An offset greater than 0 must be specified." In practice, this will generate voxel values only in areas that are near the surface of the object. This is useful for when you'd like a shell of voxel values. To preview this, use the volume slice sop.
-- Point Cloud = "Only the points of the incoming geometry are used in constructing the field. If the points have normals, the normals are used to determine sign. Otherwise, the field is unsigned like in the case of Minimum. The Scatter SOP is a good way to create a good collection of points from geometry." In practice, this method can be expensive to calculate, and might only be really practical for certain effects that generate volumes based on particle movement. Even then - I wouldn't recommend using setting in general.
-- Implicit Box = This creates a box full of voxel values based off of the bounding box of the object.
-- Implicit Sphere = Same as box, except this time it's a sphere
-- Implicit Plane = This creates a plane of voxels which is placed in the middle of the bbox. Anything under the plane gets a positive voxel value while anything above does not.
-- Volume Sample = This will take the bounding box of your object, fill it will positive voxel values, then it will read any incoming volumes and subtract that from the original box. It's easier to see this in the gallery below. According to the docs: "The volumes in the incoming gdp are all sampled and the sum of their values used to initialize the signed distance field. No correction is done after the fact, so the result may not actually be a signed distance field if the input isn’t." Again, in practice, if you feed the iso offset some volumes, it will basically subtract that from a cube of positive voxel values.
-- Rebuild Volume Sample = The use of this parameter is vague and unclear. However, in order to use it, you'll need to be sure that you're sourcing in SDF volumes. According to the docs, "The same behavior as Volume Sample, but a correction pass is done afterward to make the result a signed distance field using the provided zero crossing." In practice, I'm not sure what this may be used for. My guess is that you're trying to re-sample an sdf volume with this parameter. However, if that's what you're trying to do, then it's better to use a volume resample sop instead.
-----------------------------------------
-----------------------------------------
Name:
-- Volumes are identified by creating a primitive attribute called "name". This tells the iso offset what the string value should be for "name" and it gets used to identify the volume within shaders and other future volume operations.
Build Polygon Soup:
-- This option is only available when switching the Output Type to Iso Surface. A polygon soup is a special type of primitive that gets used to save memory and time for large amounts of geometry. In practice, polygon soups are often used when meshing fluids because it requires less memory to represent the object. It does this various ways, but the main way is by removing redundant data that may get stored within vertices. Keep in mind that turning things into polysoups has downsides, however. For one, certain nodes will not work on polysoups. Also, other render engines may not be able to render out polysoups. For more information, visit the SideFX documentation.
Tetra Type:
-- A tetrahedra mesh gets useful for soft-body dynamics and deformers because it basically builds out equidistant support beams throughout your mesh. This also gets commonly used with the add sop when you'd like points that are approximately equal in distance from each other in the shape of the mesh. Here is what the docs say about all this...
-- Tetra Skeleton = "A mesh of tetrahedrons is built within the "inside" of the field. This regular mesh is ideal for use in softbody dynamics. The tetrahedrons share faces, so do not have well defined normals."
-- Tetra Solid = "A mesh of individual tetrahedrons is built within the "inside" of the field. These tetrahedrons do not share points or faces, so can be split up for various fracturing operations."
-- Cubes = "Builds a mesh of individual cubes inside the field. These cubes do not share faces or points, so can be split up for fracturing operations."
Dimensions:
--------------------------------
Override Output Divs:
-- This parameter is only available when the mode is set to Iso Surface or Tetra Mesh. This is a useful parameter because it gives you more control over the resulting quality of the Iso/Tetra mesh. Rather than relying on uniform sampling for determining how much detail is generated in the mesh, this will allow the iso offset to first sample at the uniform sampling divs rate, and then draw out the tetra/iso mesh according to the resolution you specify here. If you are generating an Iso/Tetra mesh, then I would recommend using this parameter for better control.
Override Bounds:
-- This allows you to go larger or smaller than the bounding box of the incoming geometry. This might be useful if something is moving around quickly. Do keep in mind though, that you'll want to plug the second input of the node into whatever you want the bounding box to fit around. In practice, I'll do this with the pad bounds checked on. If you don't plug in the second input, then you'll need to manually define where the bounding box goes with the min/max bounds.
Pad Bounds:
-- This adds a bit of extra padding to the bounds. According to the docs, "Slightly increase the specified bounds to ensure there is a layer of voxels outside of the specified boundary. This can ensure that there are proper outside voxels."
Min/Max Bounds:
-- This allows you to directly specify where the bounding box goes. Be sure that you check on "Override Bounds" and that nothing is plugged into the second input to adjust these parameters.
Construction:
--------------------------------
Tolerance:
-- According to the docs, "The tolerance to use for building the SDF. This affects the ray intersection code. This tolerance is multiplied by the maximum bounding box size of the original geometry, so normally is independent of geometry scale." In short, it's unclear what this does because it's something that "affects the ray intersection code." In nearly all situations, I leave this at defaults.
Laser Scan:
-- The Laser Scan may be useful for getting around bad artifacts created by the iso offset. Sometimes you can turn this off and see improved results. Sometimes it works better when turned on. Either way though, if you're having problems generating a good volume, then you should always make sure that your geo is water-tight and that your normals are looking good. In other words, make sure there are no holes or overlapping faces in your mesh because it'll freak the algorithm out in most cases. A bad mesh = a bad volume. To do this, I would recommend reading up on the clean sop.
-- The docs are difficult to follow, but might contain insight about what this settings does more specifically... especially if you're already familiar with how SDF calculations work. It says...
-- "The Laser Scan mode only applies to the Ray Intersect mode.
-- In addition to what is said here, you may get better results by keeping this on when there are multiple pieces of geometry overlapping each other.
Fix Signs:
-- I would generally recommend keeping this on to improve the quality of volume sampling. It adds more time to calculate it... but not much.
-- According to the docs, "Even with the best made geometry, numerical imprecision can result in incorrect sign choices. This option will cause the SDF to be post-processed to look for inconsistent signs. These are then made consistent, usually plugging leaks and filling holes.
Force Bounds:
-- This parameter is basically there to improve the mysterious "Fix Signs" parameter mentioned above. According to the docs, "The Fix Signs method alone will smooth out, and usually eliminate, sign inversions. However, it is possible for regions of wrong-sign to become stabilized at the boundary of the SDF. This option will force all voxels on the boundary to be marked as exterior. The Fix Signs will be much less likely to stabilize incorrectly then." I would advise leaving this on by default as well.
Invert Sign:
-- Normally when the sign is calculated, the numbers on the inside of the mesh are negative and outside the surface they are positive. Invert Sign will invert the calculation. This can also improve the quality of Laser scanning because it is less reliant on the insides of the mesh when doing its calculations.
-- The glorious docs describe this process when it states, "If one wants a hollow box, one method is to build one box inside the other and not use Laser Scanning. A more robust method is to just specify the inner box and use sign inversion. This treats everything outside of the box as inside, allowing the more robust Laser Scanning method to be used."
Num Neighbor:
-- This setting is only relevant when using the "Point Cloud" mode. In general, this ought to smoothen out the result based on nearby points. If you're using the point cloud mode, (which, again, is something I would advice against for most situations), then you can turn up the num neighbor to average out the effect based on nearby "surface properties."
-- According to the docs, "The Point Cloud mode finds this number of nearest points and uses them to determine the local surface properties. A higher number of neighbor will smooth out local variations and create a smoother field." Note - it is not clear what surface properties mean in this situation, and it will not listen to point attributes like pscale.
Sign Sweep Threshold:
-- This is designed for de-bugging bad volume calculations. In general, I would advise keeping this setting at its defaults unless you have streaks due to a bad mesh. My first advice is to always fix a bad mesh. But, if that doesn't work, you might be able to turn this up and fix some problems in a SDF volume.
-- According to the docs, "After the fix signs process is complete there can still be inconsistent areas in the SDF. Large blocks can become stabilized and stick out of the SDF. A second sign sweep pass can be performed to try to eliminate these blocks.
Max Sign Sweep Count:
-- In general, if you're trying to de-bug a bad SDF, then you'll have to just play with a combination of the Sign Sweep Threshold and the Max Sign Sweep Count until you find a good combination.
-- As the docs say-ith... "The sign sweeps are repeated until no signs are flipped (ie, all transitions are within the threshold) or this maximum is reached. Too low of a sign sweep threshold may prevent the process from converging. Otherwise, it tends to converge very quickly."
File:
--------------------------------
Featured links
About Mentorship Calls
To book a call, just visit https://www.cgforge.com/book-consultation
Study Plan Call
Look at the welcome email for further instructions on how to schedule a call if you are a Premium Subscriber.
Premium Member Discord
Unlike the standard discord server, the Premium Member server receives faster replies, feedback on projects outside CG Forge courses, and exclusive discounts on mentorship calls that aren't offered anywhere else.
Houdini Education License
In summary, the educational license of Houdini acts much like Houdini Indie - but at a discounted price. The main difference between Indie and Education is that this version of Houdini cannot be used for commercial projects. It's great, however, for learning and preparing a demo reel without the limitations of Houdini Apprentice.
Unlock Resources
One of the best examples of this is the Node Bible. This resource acts like an encyclopedia of Houdini knowledge. Each entry features a node, goes through all the parameters, and offers video quick tips on how to use each node. The Node Bible goes beyond the native Houdini documentation because it's easier to understand, offers practical examples, and links up to nodes that get used in the courses.
In the resource sections, you'll also find quick tips that cover a variety of miscellaneous topics along with The Weekly Wrangle - which is a series dedicated to advice and real-world conversations surrounding career success.
Redshift Discount
https://www.maxon.net/redshift
Aug 28th, 2024 Changelog
General Changes:
• New, simplified website design is now live!
◦ All new particle banner is featured on the home and after login pages
◦ The after-login page now features courses that are sorted by ones that you have recently watched. This makes it easier to continue watching whatever you’ve been working on without scrolling through all the courses to find what you’re looking for.
◦ There is also a new “resources” section that can be found beneath the “Browse Courses” on the after-login page. This makes it easier to bring up the Node Bible, the “Tips + Tricks,” or Weekly wrangle in a new tab
◦ “CG Forge Academy” has been replaced with a “Mentorship Calls” at the top menu (see below for more details)
◦ The resources dropdown now features “Tips + Tricks” (see below for details)
◦ Certification requirements have been slightly re-written to be easier to understand
◦ Subscriptions have been re-designed from the ground up (see below for details)
Subscription Changes:
• Subscriptions have changed to include a "Basic Subscription" and a "Premium Subscription" option. The Basic Subscription renews monthly, and the “Premium Subscription” renews every 4 months. Yearly subscriptions have been removed.
◦ These changes only affect new subscribers. Existing subscribers will not see anything change with their auto-renewal amount.
◦ 10% off a Redshift yearly subscription is now included with the Premium Subscription. (If you are currently a 4 or 12 month subscriber, then just email support@cgforge.com for this)
◦ A new “Study Plan” call has been added to the Premium Subscription. (If you are currently a 4 or 12 month subscriber, then just email support@cgforge.com for this)
◦ A Houdini education license is now available for “Premium” subscribers. (If you are currently a 4 or 12 month subscriber, then just email support@cgforge.com for this)
◦ For more information, visit the subscriptions page.
• CG Forge Academy has been redesigned to be easier to use.
◦ 45 minute calls have been removed. Existing coupons are still valid and can be used towards 90 minute sessions for the amount listed on each coupon.
◦ 8 week mentorships have been removed - Instead, you can book as many 90 minute calls as you’d like.
◦ Free onboarding calls have been removed - Instead, premium subscribers now receive a complimentary “Study Plan Call” that establishes a personalized curriculum moving forward.
◦ The “CG Forge Academy” top menu is now replaced with “Mentorship Calls” and only allows for booking 90 minute calls.
All new “Tips and Tricks” resource page:
• “Tips and Tricks” is now a resource page that holds all quick tips, Houdini update videos, and other miscellaneous videos in one place. If you’re looking for “Quicktips Season One and Two” or "Houdini 19 Updates" they have now migrated over to the “Tips and Tricks” resource section.
Discord changes:
• The CG Forge Discord channel will now be divided into two categories: “Basic Members” and “Premium Members.” The premium member channel will be invite-only to premium subscribers or those who are currently enrolled in a 4 or 12 month subscription. If you eligible to join the premium discord channel, email support@cgforge.com for an invitation.
◦ Basic Discord members will no longer receive support for projects that are outside the topic of CG Forge courses.
◦ Premium Discord members will receive support for projects outside of CG Forge content
◦ Premium members will receive discounts on mentorship calls, and basic members will not.
◦ Premium members will have their questions / posts answered before basic members
◦ Early access to courses will now be exclusively provided to premium members via the discord channel.
If you have any further questions about these changes, feel free to email support@cgforge.com
Cheers,
- Tyler
1:1 Support and Feedback
Unlock ALL Courses
Instead of paying lots of money for ONE course, you can pay less for a library of courses.
With CG Forge, you can also count on highly refined content that's conveniently found in one place. This makes it easy to cut through the clutter of Houdini tutorials out there and make the most of your time while you learn.