Dop Import
Visit the Node Bible
Dop Import
This SOP is designed to collect data from DOPs. This DOP data is then imported or applied to existing other existing data within SOPs.
The key to understanding the DOP import is understanding the purpose behind each import style. The DOP import can simply import geometry from DOPs, and it can also apply transform data found in dops to things in sops. Also remember that in DOPs, your geometry is stored within your "objects" (ex: static objects, rbd objects, cloth objects, etc...) Because of this, the DOP Import is looking for those objects to fetch information. Also remember that when typing expressions in the object mask - "*" = "everything" ... "!" = "except" ... and "*foo*" = "find anything with the name 'foo' in it."
Main Parameters:
DOP Network:
-- The DOP network to use
Object Mask:
-- Which objects in dops would you like this node to import information from?
Use Single Object:
-- The DOP import node will try to transform sop geometry that's connected to it. If "Use Single Object" is turned off, then it will try to match primitive groups in sops to primitive groups found in dops. If it finds a match between groups, then it knows how to associate objects in sops with objects in dops.
If "Use Single Object" is turned on, however, then it will not try to match things based on primitive groups. Instead, it just looks at the first object it finds in the object mask and uses that transform for all the connected geometry. In truth, this parameter is unnecessary, and I would recommend just typing in the object name if you only want to read one transform from something in DOPs.
Import Style:
Transform Input Geometry:
-- This setting will try to transform sop data that's connected to the Dop Import node. In order for this to work, you'll need something to associate the dop objects with the corresponding sop objects. There's two main ways of doing this: One way is by using primitive groups (see "Use Single Object" parameter above), and the other way of doing this is through the @name attribute. NOTE: You must check off "Import By Name" if you intend on using primitive groups.
Also keep in mind, that the name attribute needs to be a primitive attribute! This will not work if the name is set to a point attribute.
What's really cool about this import style is that it makes it possible to simulate with low res geometry while applying it's transform data to high resolution geometry. Because it uses either the primitive group or @name, it allows you to speed up your simulation with low res, while applying the transform data to high res.
Fetch Geometry from DOP Network:
-- If you use Fetch Geometry from DOP Network, then the DOP Import node will ignore anything that's connected to it. In this situation, it will simply just import all the information found inside the dop objects.
Fetch Packed Geometry from DOP Network (depreciated):
-- Do not use this parameter because it is depreciated.
Fetch Unpacked Geometry from DOP Network:
-- Don't know what "packed" geometry is? Then check out Destruction I where I cover this topic in detail. According to the docs:
** "Pulls geometry from the DOP Network, ignoring any SOP that may be connected to its input. For an RBD Packed Object, the unpacked collision geometry will be returned." Based on that definition, this will unpack any packed geometry that's being used in DOPs by a RBD Packed Object node. **
** For more information on why packed objects are used in RBD simulations, check out Destruction I
Stamp Input Geometry:
-- In general, I would advise against using this import style unless you find some sort of reason that makes it necessary. This parameter is poorly explained and I have yet to find great resources which demonstrate it's use and functionality. If you happen to find something that offers a better explanation, please contact me, and I will be happy to update this section with a better explanation.
What this parameter is trying to do is this: Suppose you have multiple objects in your dop simulation that have the same object name (which is, generally speaking, a very bad way of working). What happens when the dop import tries to associate the object name with the primitive groups in sops? It doesn't know what to do. So, to fix this potential issue, the Stamp Input Geometry creates copies of primitive groups (found in dops) from the SOP connected to its input, and it gives you the option to associate geometry based on something called an "Object Id." An "Object Id" is unique to each object in the dop network - even if they are named the same thing.
You'll notice that if you set this to Object Id, the dop import node will try associating things based on primitive groups that have been renamed to "objectid_(1,2,3,4,etc..)" With this new object ID, you are then able to get around the problem of naming two objects the same thing... but in truth, you're better off just not naming dop objects the same thing in the first place, and matching an object id to the proper mesh in sops is problematic.
Create Points to Represent Objects
-- This import style is ideal when importing packed, fractured geometry, and you can find a demonstration of this technique by visiting Destruction I. Be sure to fast-forward the lesson to about the 8 minute mark. The intention here is that you are creating points which represent each object in your simulation. This then gets copied over along with your high resolution geometry, and the transform is controlled by the attributes on those points. This process is typically achieved through the transform pieces sop.
The great thing about using points like this is that it makes your cached files very light and also makes it easier for you to calculate sub-frame data on cached points when using this with a time warp node. For these reasons, the Create Points to Represent Objects setting is my recommended setting for importing RBD data. Just don't forget to transfer any attributes or groups that you would like to be associated with these points as well in the "transfer attribute" and "transfer groups" parameters below.
Misc Settings:
--------------
These settings will be available depending on which import style you've selected
--------------
Pivot Location:
-- Only available with "Fetch Packed Geometry from DOP Network" and relates to where the pivot of each packed piece ought to exist.
Display As:
-- Only available with "Fetch Packed Geometry from DOP Network" and defines how the packed geometry ought to be displayed in your viewport. If using a large amount of packed data, this can be useful for speeding up the viewport performance.
Import By Name:
-- This parameter tells the dop import to associate the geometry and sops with the objects in dops using the @name attribute. This parameter also says to the dop import node, "Hey buddy, don't worry about associating primitive groups or object ids with anything. We're going to use the name attribute instead." NOTE: The name attribute must exist as a primitive attribute. This will not work as a point attribute.
--------------
Object Names is only available with the Fetch Geo From DOP Network, Fetch Packed Geo from DOP Network, Fetch Unpacked Geo from DOP Network, and Stamp Input Geometry settings.
Additionally, it will assign groups to the incoming geometry based on which Object Names setting you select.
--------------
Object Names:
-- Use Dop Object Name
** The DOP Object name is used to identify the object. For an RBD Packed Object, the value of the name point attribute is used.
-- Use DOP Object ID
** Generates a name based on the numeric identifier of the source DOP object. You may want to use this setting if there is some chance that multiple DOP Objects with the same name may be imported from the DOP network.
-- Use Full Path to Object
** For an RBD Packed Object, the DOP Object name is combined with the value of the name point attribute to produce an identifier such as object2/piece3. You may want to use this setting if there is some chance that multiple RBD Packed Objects may contain packed primitives with the same names.
Geometry Data Path:
-- This is a pretty cool parameter because it allows you to import a sub-set of geometry found within a dop object. As an example, let's say that you want to import the collision mesh used by bullet into SOPs. In this Geometry Data Path, you could say something like: "Geometry/BulletData" Now the DOP Import node will go to your object and browse for Geometry/BulletData. This path correlates with the information you see when viewing your Geometry Spreadsheet while in DOPs. As another example, you would also use this Geometry Data Path to import the constraints used in a simulation. Basically any data that lives inside of an object can be imported individually here.
Transfer Attributes:
-- Only available when using Create Points to Represent Objects. This will transfer attributes from DOPs onto the generated points.
Transfer Groups:
-- Only available when using Create Points to Represent Objects. This will transfer groups from DOPs onto the generated points.
Inverse Transform:
-- Applies the inverse transformation of whatever is fetched from DOPs. This could be useful for removing a transformation made on objects by another dop import node... or to just create weird effects I suppose.
Transform Data with Position Data:
-- In Dops, there can be Data named "Position" that describes the translation and rotation of something. This applies that data to the resulting sop object.
Transform Data with Geometry Data:
-- In Dops, there is usually an option called "Use Object Transform" which tells the object to listen to any transformations that have been made on the obj level. If you check that box on, then you need to also be sure that Transform Data with Geometry Data is also checked on for the transforms to work properly.
Preserve World Space Positions:
-- Lets say that you applied OBJ level transforms to the network which contains the DOP Import node. Those OBJ level transformations will not affect the result of this node of this "Preserve World Space Positions" is turned on. If you turn this setting off, then OBJ level transformations are allowed to affect the geometry.
Center at Pivot:
-- This is only available when using "Create Points to Represent Objects." If you're not using packed objects, then you'll need to be sure that the generated points are at the center of each object. This setting allows that to happen.
Add DOP Object Name Attribute:
-- Only available for all import modes except "Create Points to Represent Objects." This will add a primitive attribute called "name" onto the geometry that's either being imported or altered. The format of the name is specified by the Object Names parameter.
Add DOP Object Path Attribute:
-- Only available for all import modes except "Create Points to Represent Objects." This adds a string primitive attribute dopobject which contains the path of the DOP Network followed by the DOP object id.
Add Dop Object Id Attribute:
-- Adds an integer primitive attribute dopobjectid which contains the DOP object id of the sourced object.
Add to Existing Velocity Attributes:
-- Adds velocities computed from the DOP Object to any existing velocity attribute values on the geometry. Turning off this option causes the velocity computed from the DOP Object to simply override any existing velocity attribute value. When geometry is dynamically fractured, point velocities are added to transfer the velocity to the smaller chunks. If this parameter is turned on, these point velocities will go to your final render. Turn this parameter off to improve motion blur. It is on by default, but is turned off by shelf tools by default.
Delete Abandoned Primitives:
-- When in transform mode, any primitives that do not have a corresponding DOP Object will be deleted instead of being left untransformed. This is useful if your solver deletes objects over time.
Point Velocities:
-------------------
In general, it advised to not rely on velocity when calculating motion blur because it will not curve. Instead, refer to the Curved Motion Blur quicktip. These settings relate to calculating velocity that are used for calculating motion blur. This can be set to either "Instantaneous Point Velocities" or "Integrated Point Velocities."
-------------------
-- Instantaneous Point Velocities
** This combines the linear and angular velocities of the objects and represents the correct velocity values. The downside is that if the angular velocity gets too high, then it can cause the motion blur to break.
-- Integrated Point Velocities
** This integrates two velocities over time. It is not a true representation of the combined velocity of SOPs and what is imported by DOPs. Integrated velocity fixes the issue listed above when angular velocity reaches a high value and causes a problem. This parameter is used in conjunction with the Integrate Over Time parameter.
Integrate Over Time:
-- The time interval over which velocities are calculated when using the Integrated Point Velocities calculation. This value should be set to a single frame time, or the duration of a single geometry segment when using multi-segment motion blur. In most cases, you will not need to adjust this parameter.
Do Not Trigger Simulation:
-- If the DOP simulation being imported is out of date, the old cached value will be returned rather than trying to simulate. This avoids recursion problems when viewing a SOP chain being used by a SOP Solver that would store bad geometry in the simulation cache. Unless you are using this with the SOP Solver, then the defaults ought to be fine.
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.