Volume
Visit the Node Bible
Volume
The Volume SOP creates a volume primitive.
The volume sop is designed to create a grid of voxels. If you have never worked with volumes before, please visit Houdini for the New Artist II for an introduction to the subject. In practice, there are two main reasons why you would want to use this node in sops:
1. To create a volume grid which contains an initial value within the voxels. This initial values can be manipulated further by volume wrangles/vops, and then used to control something.
2. To create a volume based on a camera's perspective. This volume can be used to control effects based on what the camera sees.
Keep in mind that you'll want to use a vdb sop over the volume sop in most situations. Again, refer to Houdini for the New Artist II if you are unfamiliar with the differences.
Also keep in mind that if you want to make a volume based on the shape of input geometry, you'll want to use the iso offset node instead of the volume sop.
If you set something to the Volume SOP's input, then the bounding box of the input will be used as the bounding box of the resulting volume.
Main Parameters:
Rank:
-- Values will be stored within the voxels. The Rank determines the data type of those values. For more information about data types, check out Houdini For the New Artist II.
Name:
-- The name of the volume identifies the volume. In practice, this name will often get picked up by the render engine to, lets say, determine the density of smoke. The name, "density" identifies that collection of voxel values and what they're intended to be used for. Keep in mind that with standard volumes, vector data cannot be stored within the voxels. Instead, if you set the rank to vector, three volume fields will be made. As an example, if you name a vector volume, "foo," then it will create foo.x, foo.y, and foo.z as separate fields.
Initial Value:
-- This represents the initial value that is stored within the voxels.
Dimensions:
--------------------------------
Center/Size will create a cube of voxels.
--------------------------------
Size/Center/Taper:
-- The size and center represent the size (in meters) of the bounding box along with where its center exists in x,y,z. The Taper essentially squashes/stretches one side of the bounding box. In practice, I would advice against using the taper as it can potentially create complications in certain situations. That's because your voxels no longer remain as perfect cubes, and some functions have a hard time with that.
Two Dimensional:
-- A two dimensional volume is basically a volume that doesn't have any depth (in z). In practice, it could offer a good way of using less voxels to represent some sort of volume data.
--------------------------------
Camera:
-- This allows you to browse for the corresponding camera. Note that you'll have to change the camera properties in order to change the resulting shape of the volume.
Z Near/Far:
-- This tells the volume sop how close or far away it's allowed to create voxel values. Z Near is asking you how far away from the camera it should go before populating voxel values. Z Far is asking you how far away from the camera's view it should go to populate voxel values.
Use Camera's Window:
-- According to the docs, "If set, the camera’s window scale, offset, and crop parameters will be used in addition to the following Window X/Y settings." In practice, I usually leave this alone. Instead, it's best to create a little extra padding by adjusting the window X and Y parameters.
Window X & Y:
-- This adds some extra voxels outside/inside the camera's view. In general, it's a good idea to add a little extra space beyond what the camera sees just to make sure that the volume captures everything it sees in the scene. A padding of -0.1 and 1.1 is what I do for most situations.
Sampling:
--------------------------------
The sampling settings (found below the center/size and from camera section) determines how many voxels will be made.
--------------------------------
Uniform Sampling:
-- This determines the method for generating voxels.
-- Max Axis = The volume slice looks at the longest axis of the bounding box. It then slices the bonding box along that axis a certain number of times. For the other axis, it will slice it however many times it needs to in order to make a perfect cube. As an example, if you set the divs to a value of 40, then it will slice the largest axis along the bounding box 40 times. In practice, max axis is great for situations where you want better control over how many voxels are being generated.
-- X,Y,Z Axis = This behaves just like the Max Axis above. This time, however, you can specify which axis you'd like to slice instead of relying on whichever axis is the largest. If your bounding box is changing over time, then it might be worth doing this parameter because you don't want the Max Axis to switch to something else as the bbox moves around.
-- Non Square = I would avoid this parameter in most situations. It allows you to create voxels which are not perfectly square by specifying how many times to slice x,y,z along the bounding box.
-- By Size = Instead of looking at how many times you want to slice an axis of the bounding box, "By Size" lets you define how large (in meters) you want each voxel to be. Based on that, it will automatically figure out how many times to slice x,y and z. By size can be nice when you want to be more specific about the resolution that you want. You'll need to keep track of your scene units and bbox size, however. Otherwise, "By Size" can easily generate lots of voxels. If you're sourcing pyro and using "By Size," I would recommend fitting your source volumes to around 1x1 meters to keep control over the quality of your simulations.
Z Resolution Scale:
-- According to the docs, "The voxel resolution on the Z-axis is scaled by this number. This is useful for camera volumes where you may want less detail along the camera viewing direction. By setting the Uniform Sampling to X-Axis, you can then specify the number of voxels you want across the X axis of the screen directly, let the Y-axis be auto-computed to preserve aspect, and then adjust the scale factor." In practice, you can try turning this down to improve the performance of the "From Camera" volume. In practice, though, I typically leave this at its defaults.
--------------------------------
Camera:
-- This allows you to browse for the corresponding camera. Note that you'll have to change the camera properties in order to change the resulting shape of the volume.
Z Near/Far:
-- This tells the volume sop how close or far away it's allowed to create voxel values. Z Near is asking you how far away from the camera it should go before populating voxel values. Z Far is asking you how far away from the camera's view it should go to populate voxel values.
Use Camera's Window:
-- According to the docs, "If set, the camera’s window scale, offset, and crop parameters will be used in addition to the following Window X/Y settings." In practice, I usually leave this alone. Instead, it's best to create a little extra padding by adjusting the window X and Y parameters.
Window X & Y:
-- This adds some extra voxels outside/inside the camera's view. In general, it's a good idea to add a little extra space beyond what the camera sees just to make sure that the volume captures everything it sees in the scene. A padding of -0.1 and 1.1 is what I do for most situations.
Properties:
--------------------------------
The Properties section defines miscellaneous settings for the generated volume.
--------------------------------
Border Type:
-- This determines how the volume behaves when the volume is sampled outside of its defined box. In other words, if something is trying to sample the field named "foo," what value will it return if it's outside the bounding box?
-- Constant = The border value will be returned. This border value is defined below by the "Border Value" parameter.
-- Repeat = The volume will wrap, returning values from the opposite side of the volume.
-- Non Square = I would avoid this parameter in most situations. It allows you to create voxels which are not perfectly square by specifying how many times to slice x,y,z along the bounding box.
-- Streak = The value at the edge of the volume closest to the sample will be returned.
-- SDF = The volume will be treated as a signed distance field. The distance from the sample point to the closest point on the volume will be added to the value at that closest point. This ensures the volume continues to approximate distances outside of its defined box. For more on SDF volumes, please use vdbs if possible, and visit Houdini For the New Artist II.
Border Value:
-- If the Border Type is Constant, then this is the resulting value when something samples outside the bounding box of the volume.
Constant Tol:
-- The user docs try to explain this by saying, "When tiles in the volume are compressed to constant tiles this will be the tolerance used to determine if the tile is constant. Zero will only allow lossless compression."
Quantization Tolerance:
-- Again, this seems to relate to compression and saving on memory. According to the docs, "When compressing tiles by quantizing their values this is the tolerance to use. This can often be larger than the constant tile as some of the quality can be recovered by the dithering. Zero disables quantization."
Dithering:
-- Dithering is a process that attempts to reduce the negative artifacts due to compression. So, if things are being compressed by the Constant Tol and Quantization Tol, dithering attempts to bring back some complexity and detail by adding a noise to the compressed voxels. In practice, I leave the defaults alone.
-- "When voxels are quantized to a lower bit depth some of the lost information can be recovered by adding noise to the pre-quantized voxels. This can be thought of as trading bit depth in the voxel with spatial resolution.
Use 16bit Float:
-- This is a useful parameter for saving on disk space because it reduces the number of decimal places kept by each voxel value. In practice, it's useful to check this on when caching out simulations to disk right before render. It may not be generally advised to keep this on before bringing this into a simulation, however because you lose out on some accuracy along the way. In practice, you'll have to experiment with how much of a difference it makes to the speed of the simulation and whether or not it affects quality in a bad way to be worth it.
Display mode:
-- This determines how the volume will be displayed in the viewport.
Display Isocontour:
-- The user documentation doesn't tell you what "Isocontour" means, but it seems that 0 is good for sdf volumes while 0.5 is good for fog volumes.
Display Density:
-- This increases how visible the volume will be in the viewport. For more options, you can also use a volume visualization sop to control this after the volume has been made.
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 Everything
Unlike workshops or individual courses, CG Forge offers an ecosystem of resources that help you forge your skills.
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