Search the Community
Showing results for tags 'Geometry'.
-
After more than 5 months of unimaginable amount of work, I am proud to release my first in-depth Houdini course on VEX More details in the video description and the website. Active Patreon members will receive additional discounts proportional to their lifetime support (25% of their lifetime support). Message me on Patreon for your discount coupon. Enjoy! 01 - Introduction [Point Clouds] 02 - Introduction [pcopen() vs pcfind() vs nearpoints()] 03 - Introduction 04 - Implementation 05 - pcfilter() Implementation for pcfind() 06 - pgfind() 07 - pcfind_radius() 08 - Excluding the Current Point & Ad-Hoc Groups 09 - Finding Min & Max Neighbour Points [Unique Pair Matching] 10 - Concept 11 - Implementation [Camera Based Occlusion with Variable Pscale] 12 - Concept 13 - Implementation [Uniform Point Distribution Over Polygonal Surfaces [Point Relaxation]] 14 - Concept 15 - Implementation 16 - Decoupling Operators [Convolution Kernels] 17 - Introduction 18 - Border Handling [Connectivity & k-Depth Point Neighbours Using Edges] 19 - Introduction 20 - Concept 21 - Implementation [Connectivity & k-Depth Point Neighbours Using Primitives] 22 - Concept 23 - Implementation [Extending k-Depth Point Neighbours Using Edges] 24 - Introduction 25 - Concept 26 - Implementation [Extending k-Depth Point Neighbours Using Primitives] 27 - Concept 28 - Implementation [smoothstep() [Cubic Hermite Interpolation]] 29 - Concept 30 - Implementation [Shaping Functions] 31 - Introduction 32 - Implementation 33 - Blurring Attributes [Sharpening Attributes Using Unsharp Mask] 34 - Concept 35 - Implementation [Generalizing the Kernel Code to Handle All Attribute Types] 36 - Concept 37 - Implementation [Attribute Gradient] 38 - Introduction 39 - Concept 40 - Implementation [Gradient Ascent & Descent] 41 - Planar Geometry - Introduction 42 - Planar Geometry - Concept 43 - Planar Geometry - Implementation 44 - 3D Geometry [Contour Lines] 45 - Introduction 46 - Concept 47 - Implementation 48 - Heightfields [Geometric Advection - Orthogonalization & Flowlines] 49 - Introduction 50 - Concept 51 - Implementation [Clustering & Quadtrees] 52 - Concept 53 - Implementation [Adaptive Subdivision] 54 - Introduction 55 - Implementation 56 - Hashing [Adaptive Subdivision] 57 - Improving OpenSubdiv Catmull-Clark Subdivision Surfaces Algorithm 58 - Half-Edges [Adaptive Subdivision] [Aggressive Performance Optimizations] 59 - Eliminating Groups 60 - Custom Fusing In VEX 61 - Recreating Proximity Structures In VEX 62 - Get Unshared Edges In VEX 63 - Final Optimizations [Limit Surface Sampling] 64 - Introduction 65 - OpenSubdiv Patches 66 - Moving Points to the Subdivision Limit Surface 67 - Scattering Points on the Subdivision Limit Surface 68 - Generating a Point Cloud on the Subdivision Limit Surface 69 - Pre-Generating a Point Cloud on the Subdivision Limit Surface 70 - Creating Isolines on the Subdivision Limit Surface [Adaptive Subdivision] 71 - Computing Surface Normals from the Subdivision Limit Surface [Custom Subdivision Surfaces] [Splitting Edges [Edge Divide]] 72 - Concept 73 - Converting Edges to Primitives 74 - Creating New Edge Points [Rebuilding Polygons] 75 - Concept 76 - Implementation 77 - Preserving & Interpolating Attributes 78 - Multithreading by Connectivity 79 - C++ vs VEX 80 - Preserving Groups 81 - Final Optimizations [Implementing Bilinear Subdivision] 82 - Introduction 83 - Concept 84 - Modeling Test Geometry 85 - Starting from Edge Divide 86 - Creating New Face Points 87 - Creating New Edge Points [Creating New Closed Polygons] 88 - Concept 89 - Implementation [Creating New Open Polygons] 90 - Concept 91 - Implementation 92 - Preserving Primitive Groups & Interpolating Primitive Attributes [Preserving Vertex Groups & Interpolating Vertex Attributes for Closed Polygons] 93 - Concept 94 - Implementation 95 - Preserving Vertex Groups & Interpolating Vertex Attributes for Open Polygons 96 - Implementing Iterations 97 - Preserving Literal Groups 98 - Creating Neighbour Primitives 99 - Final Changes 100 - Testing On Complex Geometry [Implementing Catmull-Clark Subdivision] 101 - Introduction [Closed Surfaces] 102 - Rules [Gathering Edge & Face Points] 103 - Concept 104 - Implementation [Computing Weights for New Edge Points] 105 - Concept 106 - Implementation [Computing Weights for Original Points] 107 - Concept 108 - Implementation [Attribute Interpolation] 109 - Concept 110 - Implementation [Boundary Interpolation Rules for New Edge Points] 111 - Concept 112 - Implementation [Boundary Interpolation Rules for Original Points] 113 - Concept 114 - Implementation 115 - Open Surfaces - Handling Corner Points 116 - Handling Non-Manifold Topology [Open Polygons] [Computing Weights for Original Points] 117 - Reverse Engineering OpenSubdiv 118 - Implementation [Computing Weights for New Edge Points] 119 - Reverse Engineering OpenSubdiv 120 - Implementation 121 - Handling Open Polygonal Curves [Handling Mixed Topology] 122 - Full Geometry 123 - Sub-Geometry 124 - Testing On Complex Geometry [Performance] 125 - Profiling [Grouping Boundary Edges from Primitive Group] 126 - Concept 127 - Implementation 128 - VEX vs C++ [Caustics] 129 - Introduction 130 - Sea Caustics 131 - Pool Caustics [Enhancing Gradient Ascent, Descent & Contour Lines] 132 - Introduction 133 - Implementation 134 - Tracing Both Directions [Updating Distances Properly] 135 - Concept 136 - Implementation 137 - Looping Streamlines Problem 138 - Adding Trace Parameter [Evenly Spaced Gradient Ascent, Descent & Contour Lines] 139 - Introduction 140 - White Paper 141 - Concept 142 - Constructing the For Loop Network 143 - Improving Seed Points Selection for Tighter Packing 144 - Implementing Separation [Enforcing Separation Using Self Proximity] 145 - Concept 146 - Implementation 147 - Optimization 148 - Final Tweak 149 - Applying to 3D Geometry [Custom Subdivision Surfaces] [Extreme Performance Optimizations] 150 - Introduction 151 - Establishing Baseline for Performance 152 - Updating Attribute Interpolate Nodes 153 - Interpolation vs Copying 154 - Optimizing Input Group 155 - Caching Geometry Data 156 - pointedge vs pointhedge 157 - Getting Primitives from Half Edges 158 - Eliminating Edge Groups 159 - Parallelizing Geometry Creation for New Primitives [Unrolling Loops] 160 - Parallelizing Geometry Creation for New Edge Primitives [Unrolling Loops] 161 - Finalizing the Network 162 - Performance Profiling the Latest Version 163 - Conclusion
- 51 replies
-
- 15
-
Hello, I have a group of lines that are growing by animating the "first u" parameter. I want to connect this to a vellum sim, but once connected to a vellum solver, nothing pops up. I tried using a pin to target but I think I need some guidance on how to set it up. Any help is appreciated.
-
Hi All, Im creating geo with a primitive wrangle, each primitive used as a base to create a complex assembly (nothing new for houdini ) However, I would like to create a (handle/container/Null) object (floating on-top the assemble that's non-render'able, im thinking anim/rig like control) the final artist can select to override one of the assemblies attributes ,thus changing its properties. My current concept was to see if any bone ( kinefx) or other primitive could be ceated in VEX/SOP and used as a GUI selectable node, this would mean that each generated primitive would have a user selectable area to hold attributes the user can set/override. ...Basically a user control surface ( Primitive/Bone) generated in VEX to hold user attributes , think forest, with a controller for each tree so the user can change and attrubut on the tree (how maney leaves) Hopfully others have come across a solution to solve such a problem Any input thankful.. RED/pink would be the user selectable widget so the object attributes can be changed C
-
Hey everyone, I'm trying to add vellum geometry and constraints dynamically inside a dopnet using sopsolvers. I'm getting an error, but I don't really know why... If someone could have a look into it! Cheers vellum_create_geo_and_cnstrs_during_sim_b.hip
-
Hey everyone, I've made a crowd simulation, and for that I inputed an FBX (from C4D) with bones and skin to the Agent node and added many animation clips. I wanted to make my chars open their mouth like you'd usually do with a blend shapes node, but the rig is not accessible in Houdini and there's no nodes for skin and bones (if there were I could just add blend shapes to geo) Do you guys have any idea how I could add those facial expressions without going back to C4D and having to add more bones and re-skin the base rig/model? Thank you.
-
Hey guys, I've always liked the works of Daniel Arsham. He tends to do a lot of eroded pieces with some sort of crystals, usually. I was wondering if anyone had suggestions on how I can create stuff like the pictures below in Houdini. I have used booleans in c4d with a displaced sphere/object but found it not looking as detailed/nice as I would have liked. It also takes quite a bit of time to create each individual object that's put in the boolean. In Houdini, I thought of converting geometry to a VDB then putting it in a volume VOP with some sort of noise and subtracting it from the volume, then converting back to geo. But I'm not too experienced with Houdini tbh and was looking for suggestions on the details of a potential setup.
-
Hi I'm wondering how I would simulate large bubbles as they're forming or "being blown" I guess I'm mostly asking high level is it possible to create this geometry on the fly and also continuously add new constraints to it until it's fully formed, and then flies off on its own to interact with the world. Thanks
-
Hi, I would like to create an animation of blooming flower. I've created the basic setup, but I have a problem with intersecting petals. Does anyone have an idea how to get rid of those intersections without deleting whole petals? Thanks in advance for all the answers. flowertest.hiplc
- 6 replies
-
- intersections
- geometry
-
(and 2 more)
Tagged with:
-
I've laid out UV's procedurally in Houdini with the sweep or skin sop and using arclen on the input curves, but I'm wondering if there is a solution to straighten/unwrap geometry that is generated in ways other that using a sweep or skin SOP. If anyone is familiar with the Unfold Strip from Loop button in 3dsMax's Unwrap UV modifier it basically takes any edge or loop input and straightens out the geometry into a strip. It's super useful for cylinders and chamfered/extruded edges. I'm wondering if there is a workflow to do something similar in Houdini. I tried messing with the new FlattenUV node and I can get something kind of close with the enable loop straightening, but the UV's are still wobbly and not perfectly straight.
-
In a pipeline that requires you to do VFX work in Houdini and then render said VFX in 3ds max, there are many formats that are viable (I mostly use alembic). But I was not lucky finding a straightforward method/format to export particle systems that were created in Houdini to be later replaced by geometry in 3ds max for rendering. After some tests, we managed to do it using an HDA called PRTRop which exports particles in .prt file format. The particles were then imported into 3ds max using TyFlow, that reads a couple attributes such as width (pscale), id - this one is necessary for tyflow to import the particles, velocity, etc... Then we hit another roadblock: what if I want to export particles with orientation information for my geometry instancing? It turns out that, after some more testing, we discovered Tyflow uses an attribute called Orientation (case sensitive) which is a quaternion just like Houdinis orient attribute, and it has to be exported as a float16. So in case some of you were wondering how to do this, I'm sharing the workflow used here. If some of you know a better way feel free to share it... it might save some lives! Cheers, Mozzo
-
Hi all, after running a guided ocean sim, I have meshed the particles using particle fluid surface, and the resulting surfaces have a “bottom” layer which I would like to delete. Using connectivity SOP and setting the type to Primitive exposes attribute called class, which gives me integer class. Then I used group expression and gave the group name called “kill”. in the Vexpression, I used @class == 10 10 being the class of primitives that comprise the bottom layer that I am trying to delete. Then I put down a blast, and by putting in the group “kill” that I made in the group expression, I am able to delete the bottom layer. so far so good. Only problem is, the class numbers change depending on the frame. So, while class 10 might be the bottom layer that I am trying to delete on frame 1, at frame 2, the class name has changed to something like 12, and my group expression and blast no longer work. How can I use this method when the class changes every frame? If there is a better method to procedurally delete the bottom layer of mesh throughout the frame range (say, 1 to 168), I would love to learn about it. Thank you
-
Hello! So I have an alembic file (5 gb) with an RBD simulation of a wall falling down, and I want to apply some smoke to it. The thing is that the geometry is too heavy and I have to reduce de polygons in order to simulate. I tried with poly-reduce and despite reducing the geometry it applies it per frame so I have to wait 30 secs for a frame to load. I also tried with point deform but I couldn´t manage either. I suppose my question is how would you prepare a heavy alembic geometry with pieces for a pyro sim? Cheers. T.
-
Hello, I would like to get rid of these edges and keep the bigger rectangle. How can I do this? Thank you
-
Hi Guys, I'm new to Houdini so please, bear with me:) So, what I want to achieve is following: I want to have fluids (or particles, through POP Fluid), that would go up against the gravity (antigravity) along the collision geometry, upwards, along the vectors that are parallel to the surface of geometry. The effect should look like a paint going down on a surface, and covering it, but the direction is reverse, so it goes upwards. The collision geometry is simple, like a sword, thats it. I tried to do it with flip tank, with attraction force, but somehow I couldn't not get the result I was hoping for. Can you please show me the direction I have to follow or an advice I can follow to achieve this result? Is it better to do it through Flip or through particles? Thank you in advance. Cheers, David
-
Hi All! I am trying to simply advect particles using the geometry of an object moving past them - I'm just looking for a small bit of interaction between them. Could someone point me in the right direction. Searching it online, all I seem to find is "popAdvectByVolume". Thanks so much!!
-
Hey everyone! I am try to simply advect particles with a moving object. We have particles/grains floating around and a person runs through them at speed so I just need to create some advection/turbulence, more than what's already created from the collision. I assume it is as simple as pyro but I can't seem to work this one out. Any ideas? Thanks
-
Hello guys! I have a simple C++ code which should be used by VEX in Houdini. I need to access to geometry data in specific node from current frame till frame 1 in backward direction until certain condition is met. The problem is that this access cause a huge impact on runtime when using wetmap function in a point wrangle node! Here is the sample: #include <iostream> #include <VEX/VEX_VexOp.h> #include <OP/OP_Director.h> #include <GU/GU_Detail.h> #include <SOP/SOP_Node.h> #include <GEO/GEO_VolumeSampler.h> #include <GU/GU_PrimVolume.h> #include <GU/GU_SopResolver.h> #include <VM/VM_Math.h> #include <OP/OP_AutoLockInputs.h> template <VEX_Precision PREC> static void wetmap(int argc, void *argv[], void *) { VEXvec3<PREC> *resultCd = static_cast<VEXvec3<PREC>*>(argv[0]); const char *surfaceAddress = static_cast<const char *>(argv[1]); VEXvec3<PREC> *P = static_cast<VEXvec3<PREC>*>(argv[2]); VEXvec3<PREC> *Cd = static_cast<VEXvec3<PREC>*>(argv[3]); *resultCd = VEXvec3<PREC>{0, 1, 0}; SOP_Node *surfaceNode = OPgetDirector()->findSOPNode(surfaceAddress); exint currentFrame = CHgetFrameFromTime(CHgetEvalTime()); OP_Context context; VEXvec3<PREC> color{0, 0, 1}; if(surfaceNode != nullptr) { for (exint i = currentFrame; i > 0; --i) { context.setTime(CHgetTimeFromFrame(i)); GU_DetailHandle gd_handle = surfaceNode->getCookedGeoHandle(context); } } } void newVEXOp(void *) { using UT::Literal::operator""_sh; new VEX_VexOp("wetness@&VSVV"_sh, // Signature wetmap<VEX_32>, // Evaluator 32 wetmap<VEX_64> // Evaluator 64 ); } I also try to lock the referenced node input just like SOP node examples in HDK but it makes no difference! This is an image of use case: After couple of frames pointwrangle1 become slow to cook and I don't know why! Can anyone help me? Thanks in advance!
-
Hey magicians, Been fighting with this for 2 days, I have a person + suit I did on Marvelous, and I want to attach some tubes on the back. Some people on facebook group suggested Rivet sop, as well as a tutorial with extracttransform + transformpieces, but I don't have luck. I also tried point deform but the geo distorts. When I tried Rivet on the cloth itself, it wiggles, I guess because of the folds moving, so I tried directly with the person inside, and works better, but still not good. I'm attaching some examples: This was the best result so far: T6a4mNQqS0.mp4 But gets fucked at the end: 2IwfUr3sMm.mp4 Any thoughts? Thanks!
-
I'm trying to make simple patterns/tessellations like the first image (randomized 1 axis rotations, etc.). But my geometry won't lie flat or line up with the grid. I've tried many different orient values, but I can't seem to do a simple 1 axis rotation. It always looks like I spilled potato chips on the ground. Am I just using the wrong quaternion values or is there something wrong with each shapes anchor point? Do I need to nest each triangle in a square plane before rotating them? triangle_grid_v4.hiplc
- 5 replies
-
- transforms
- geometry
-
(and 1 more)
Tagged with:
-
hey all i'm sure this is a fairly simple one but i'm having a hard time with it :/ been at this for 6 hours today so i have a sim of a big wall exploding outward - it looks great but sadly i have a huge chunk of pieces that fly towards cam an i'll be damned if i can find a way around it - is there any force i can apply from the camera that can push them outwards instead of just heading towards the camera and through it? It would be awesome if i can art direct this a bit more! thanks Ant
-
Hey all, I'm attempting to find the number of unique values across the intrinsic:typename attribute for incoming geometry, but I'm having no luck in getting the uniquevals() function to detect any intrinsics. Originally I assumed that this was just a limitation of the function, but I then realized that the docs explicitly state that you're able to provide the name of 'any attribute (or intrinsic) to read.' For context, let's say I've got a polygonal box and a NURBs curve, which both have unique values for their typename. If I try and access those values in a wrangle, I just get an empty array. I've tried setting the attribute class to 'primintrinsic' instead of 'prim', I've tried removing the 'intrinsic:' prefix from the attribute name, and any number of other gotchas that come to mind. I get the same results when trying to use nuniqueval() and uniqueval() as well. It isn't the end of the world since there are ways to do something similar in python, but if anyone's got some secret sauce to get these VEX functions in particular to play nicely with intrinsics, I'd appreciate the help. Thanks in advance.
-
I'm looking for some guidance with an effect. I have a pyro simulation of some smoke hitting a floor and the collision is working fine. I want to take the collision information from the sim and pass it back to the floor geometry as a point attribute e.g. an attribute that is 0 when the sim starts but as soon as the smoke touches the floor the attribute changes to one. If anyone that could point me in the direction of how best to achieve this, I've tried to play around with the 'Gas Impact To Attribute' node and I could not work out how to properly wire it up. Thanks! SmokeCollision-01.hipnc
-
Hi Guys I want to export spreadsheet value to txt file I know how to export to txt file using Python but I don't know what name(?) of parameter spreadsheet. Help me!!
- 1 reply
-
- geometry
- spreadsheet
-
(and 1 more)
Tagged with:
-
Hello, i come to you after several sleepless nights due to a matter i can't find a solution. Hopefully some of you may provide help. In my project i have one geo, replicated and simulated in vellum with "Instance on points" method: every 4 frames a new geo is created and the simulation starts. Now i have trouble point deforming the proxy simulated geo with the original geo, because Hi-res and Rest geos should appear exactly when a new proxy is created. I thought it would suffice a ForEach and something like a Birthid attribute to isolate every guy, but it seems i'm not able to make it work. Below the hipfile attached: i simplified it and replaced my original geo with a Rubbertoy; so don't mind too much attention to the shape of the proxy geo... now it's strange, but in my case it did the work. I really hope in some clarifications with the script, i'm stuck there. Thank you very much! pointdeform.hipnc
-
- pointdeform
- emission
-
(and 3 more)
Tagged with: