Houdini - Procedural Modeling Tips! - Curve Directions

  Рет қаралды 35,059

Indie-Pixel

Indie-Pixel

Күн бұрын

Пікірлер: 60
@ondudengrund
@ondudengrund Жыл бұрын
That was such a great, precise and straight to the point tutorial! Thank you, great work : )
@crediblemulk4638
@crediblemulk4638 3 жыл бұрын
Awesome tip and technique. Especially with the alternate methods. Im moving over to Houdini and this was great to learn. Thanks
@IndiePixel3D
@IndiePixel3D 3 жыл бұрын
No prob...this is definitely a technique you'll use a lot.
@ArtOfMkUltra
@ArtOfMkUltra 2 жыл бұрын
This is super helpful man, super helpful. Thank. You for making this.
@trulycreative9795
@trulycreative9795 2 жыл бұрын
thank you very much, very kind Sir, and thank you in particular for creating the second part, since I had problems with the first but succeeded with the second method.
@theodoredaley2229
@theodoredaley2229 3 жыл бұрын
Really well explained and concise, cross product can become overly complicated to wrap your mind around but you've managed to really make it clear and easy. Thank you!! Hopefully can manage something similar for quaternions : )
@IndiePixel3D
@IndiePixel3D 3 жыл бұрын
No prob glad you liked it! The qrotate function is your friend for quaternions and rotate is good with matricies.
@theodoredaley2229
@theodoredaley2229 3 жыл бұрын
@@IndiePixel3D Oh so those are the functions to use. Similar to how you showed an example with the sweep node, what would be possible use cases for you to need to calculate the qrotate or rotate?
@HiredGunGames
@HiredGunGames 4 күн бұрын
is it possible to create a custom tool to orientate the curves in the viewport manually? great video btw.
@IndiePixel3D
@IndiePixel3D 4 күн бұрын
@@HiredGunGames are you looking to orient the different vectors on each point manually? If so you might be able to do that with a python state tool. I would look into those and see if that does what cha need.
@HiredGunGames
@HiredGunGames 4 күн бұрын
@@IndiePixel3D ah yes. i did a custom python state tool and its good to know that it may be what i need. thanks for the reply!
@IndiePixel3D
@IndiePixel3D 4 күн бұрын
@HiredGunGames nice! No prob at all!
@okifunearl8511
@okifunearl8511 Жыл бұрын
degenrate case occurs when tangential vector is vertical, which leads to totally opposite flatnorm bwtween adjacent points
@rubixio8014
@rubixio8014 3 жыл бұрын
Awesome tutorial, i love your teaching style cause you always make complicated stuff easy to understand. I bought some of your udemy courses, but please permit make a future course request there are extreme shortage of clearly explained tutorials on how to build a realistic third person character controller system with great camera and weapon management system like the TPS controller system in the last of us. Please think of it.
@byTwest
@byTwest 2 жыл бұрын
Great tutorial! Had no idea about saving presets either so this helped a ton
@shivdholakia
@shivdholakia Жыл бұрын
thanks for sharing such an informative tutorial!
@sethfrolich5422
@sethfrolich5422 3 ай бұрын
Mathematically, you just need two cross products. right = normalize(cross(up, tangent)), then up = normalize(cross(tangent, right)). Flattening the tangent first isn't necessary. Both your solution and mine will fail if the tangent is exactly vertical, though, so there needs to be some kind of fall-back in place for that situation. The odds of this are very low... and, with the inherent precision issues in floating point maths, it's vanishingly small that it'll come up in normal operations. There's also the issue of the right axis flipping if the curve doubles back on itself and happens to pass through vertical, as the cross product will flip directions. Alternatively, you can employ a Bishop Frame if you need to maintain stability of all the axes along the length of the curve. It's a bit more work to establish this and involves evaluation the curve along its length from start to finish, rather than just relying on a tangent at any given point. There's lots of mathematical papers on the Bishop Frame and they're all a bit incomprehensible if you're not a mathmatician. Epic have made use of it in their hair strands plug-in for Unreal, though. If you feel like tearing apart their code for it, I recall it was fairly easy to reproduce using their method.
@IndiePixel3D
@IndiePixel3D 3 ай бұрын
@@sethfrolich5422 yes, it will fail in vertical situations for sho. I have since stopped using Houdini and just use pcg, geo script, and cpp for all my stuff. Thanks for the bishop frame tip...I'll have to take a look fo sho!
@JWPanimation
@JWPanimation 8 ай бұрын
Thanks! Just what I needed.
@sergeyfilin5204
@sergeyfilin5204 2 жыл бұрын
Thanks! Is it better than "orientalongcurve" node?
@IndiePixel3D
@IndiePixel3D 2 жыл бұрын
Well this has its uses for lots of procedural modeling tasks. The orient along normal is good too for certain things. When it comes to procedural modeling I like to have very custom control and so build the vectors myself.
@rodrigolissoni8518
@rodrigolissoni8518 2 жыл бұрын
Thank you so much for the video! I was having a lot of trouble with my geo not following the normals the way I thought it should, this solved it all :) one thing I do not understand, is that we create the flat, right and up parameters.. but how does the sweep node know that those are referring to the proper normal direction if those are "made up" parameters?
@IndiePixel3D
@IndiePixel3D 2 жыл бұрын
The sweep node is looking for those particular attribute names...if they exist the sweep node will use them if they dont the sweep node will try to create them on own.
@ridanoaman
@ridanoaman 3 жыл бұрын
Thanks a lot, I always use polyframe node after the resample to get the tangent attribute into normals but never noticed it exist inside the resample node
@phgduo3256
@phgduo3256 8 ай бұрын
Hey, I tried your method and compare with just simpe a single line @up= {0,1,0}; I see no different in the sweep or copy to points? What wrong here?
@Rzai2344
@Rzai2344 2 жыл бұрын
this solved my problem Thanks a lot
@jank-official
@jank-official 3 жыл бұрын
Brilliant, thank you ! When are you going to show the Rollercoaster-Generator ? :)
@frankliang8285
@frankliang8285 5 ай бұрын
amazing. love it.
@Teckcloud1
@Teckcloud1 Жыл бұрын
Hello! Very nice tutorial. This works well with open curve. I tried it on 2 closed curves. First one created in a counter clock direction. Second one in a clockwise direction. I have a Sweep node at the end but only the first curve red normal point inward. How would it be possible to use any type of curve red normal to always point inward? Thank you in advance for you help and keep on doing such great tutorials :)
@MathiasJ89
@MathiasJ89 3 жыл бұрын
This is great to know. Thanks!
@brettwiese1843
@brettwiese1843 3 жыл бұрын
great tut that helped me discover my problem.... the resample node is creating some wonky normals on my noisy curve that's mainly vertical, but they're much cleaner if I first rotate my curve -90 on the x axis. any ideas on how to get the cleaner normals without rotating it?
@va1ent1
@va1ent1 3 жыл бұрын
Hi, why did you flatten the normals in the Y direction? Is there any reason I should use flattened normals instead of the original ones in the cross product? Thanks.
@IndiePixel3D
@IndiePixel3D 3 жыл бұрын
In order to get the proper right vector we flatten the flow normal and do a cross product with the world up vector. Once you have the right vector you do a cross product to get the proper up vector. If we didnt flatten the flow normal we'd end up with a wonky right vector.
@madmodder
@madmodder 2 жыл бұрын
So, I've run into a bit of a snag. I'm trying to push points along their right and up vectors randomly. To simplify lets forget about the randomization, if I try and do, @P = @P + @right*ch("scalar");, the points just don't go in the correct direction, like I'm looking right at the values in the viewport and the movement just isn't correct at all. If I pull up the geometry spreadsheet, my right vector is expressed in terms of right[0], right[1], right[3]. Now if I look at the up vector, for some reason its components are actually expressed in terms of x y and z, and this simple vex code works properly when tested with the up vector, it's able to push them along that up vector in a way that's expected. So my only guess is when adding two vectors, where one (@P) has its components expressed as xyz and another (@right) whose components are 0 1 2, its like it doesn't know how to "match them up" or something. So, when I define a custom vector attribute, how do I make sure that its components are gonna be expressed as x y z?
@chriswong2903
@chriswong2903 3 жыл бұрын
very good tutoria🤣, i am wondering the curve vertex if is possible add width for each point and edit it on houdini engine? I only know it can you gradient node to do it but its not really what I like
@IndiePixel3D
@IndiePixel3D 3 жыл бұрын
You can using multi-parms on your HDA
@VisualShortStories
@VisualShortStories 3 жыл бұрын
doesnt the direction of flattened normal flip when you do full rotation track? like loop track?
@IndiePixel3D
@IndiePixel3D 3 жыл бұрын
Yep, if you wanna do looping tracks it has to be taken into account. Can do it with a sweep node and an attribute transfer node.
@VisualShortStories
@VisualShortStories 3 жыл бұрын
@@IndiePixel3D thank you!
@koenberkvens5302
@koenberkvens5302 2 жыл бұрын
@@IndiePixel3D any clue how you'd go about that? Currently facing that same issue, and I have no clue what you mean by using the attribute transfer? I'm assuming you mean transfering the right vector from other bits in the spline, but how would you even go about detecting if it messed up, and getting those points over? Much appreciated
@aboldmule
@aboldmule 3 жыл бұрын
So very useful. Thanks
@Sadforeverr
@Sadforeverr Жыл бұрын
Houdini wont let me start the creation of the curve once the component is there, but I heard a click on your keyboard/mouse. Would be lovely to let me know what key mouse/keyboard you clicked to do that
@donovanbaine8842
@donovanbaine8842 Жыл бұрын
select the curve node and move the mouse crouser to the viewport and press enter then u can start drawing thats it!
@ryanjstever
@ryanjstever Жыл бұрын
thanks a lot, really appreciate it
@hoprem.
@hoprem. 2 жыл бұрын
I have a problem, when I put the subdivision curve nothing happens, it does not smooth.
@IndiePixel3D
@IndiePixel3D 2 жыл бұрын
I've notice that happen in Houdini 19...is that what you are using? If so delete the resample nide and make a,new one...that worked for me
@hoprem.
@hoprem. 2 жыл бұрын
@@IndiePixel3D yes i have houdini 19
@hoprem.
@hoprem. 2 жыл бұрын
@@IndiePixel3D I tried again to delete the resample and put it back but nothing changes... :/
@IndiePixel3D
@IndiePixel3D 2 жыл бұрын
@@hoprem. huh, weird...I have seen that before...might want to bug it with side fx.
@hoprem.
@hoprem. 2 жыл бұрын
@@IndiePixel3D i find the problem, it's the mode. You must change mode on CVs on your curve
@christianbohm6118
@christianbohm6118 3 жыл бұрын
Why not just use a polyframe node? It does all this for you. Don't get me wrong - understanding the cross product is super helpful, but for curves polyframe is quick and easy.
@IndiePixel3D
@IndiePixel3D 3 жыл бұрын
You can do sho...though it doesn't work in all situations.
@christianbohm6118
@christianbohm6118 3 жыл бұрын
@@IndiePixel3D Oh, now I see - you do that so that the up vector is pointing towards the center of the geo, to prevent flipping. But that also doesn't always work...
@IndiePixel3D
@IndiePixel3D 3 жыл бұрын
@@christianbohm6118 in this case the up vector is derived from the flow normal and the right vector which produces a vector pointing up from the curve. If you need an up vector to support looping then you need to do it a bit differently which I'll show next week.
@christianbohm6118
@christianbohm6118 3 жыл бұрын
@@IndiePixel3D Ah, i mixed that up with your angular sort, nevermind. I know how to do that, I just tried to find a reason why a polyframe wouldn't be enough for this...
@IndiePixel3D
@IndiePixel3D 3 жыл бұрын
@@christianbohm6118 no prob at all...so whenever I place a polyframe on a raw curve I hardly ever get the direction vectors I want....it works well for the flow normal, but not for up and right vectors...so i always have to assign my own vectors. Polyframe is a good node fo sho...but I always end up doing custom vectors anyways
@donovanbaine8842
@donovanbaine8842 3 жыл бұрын
way to go man
@VisualWondersPlayground
@VisualWondersPlayground 11 ай бұрын
Thank you
@mono24
@mono24 10 ай бұрын
yeah this tutorial is broken! I don't think this method is working in Houdini 20. All I get is errors and weird situations where nothing is actually happening in the viewport.
Houdini - Procedural Modeling Tips! - Curve Banking
16:07
Indie-Pixel
Рет қаралды 16 М.
Houdini - Procedural Modeling Tips! - Finding Curvature
15:40
Indie-Pixel
Рет қаралды 17 М.
Какой я клей? | CLEX #shorts
0:59
CLEX
Рет қаралды 1,9 МЛН
Five Steps to Learning Houdini Quickly
17:41
Indie-Pixel
Рет қаралды 133 М.
HOUDINI - how to point normals inward a curve
19:06
Terranimator
Рет қаралды 15 М.
Houdini: Go procedural, level up your 3D skills!
8:54
Radu Cius
Рет қаралды 4,6 М.
CHOPs, A Comprehensive Introduction ← Houdini
29:26
Socratica FX
Рет қаралды 6 М.
Inside the V3 Nazi Super Gun
19:52
Blue Paw Print
Рет қаралды 2,4 МЛН
Houdini Now Has Adobe Alternatives
4:51
mrbennelson
Рет қаралды 19 М.
An introduction to Raymarching
34:03
kishimisu
Рет қаралды 164 М.
The BEST Mechanical Display You've EVER Seen!!!
13:51
Tin Foil Hat
Рет қаралды 569 М.
Procedural Trains - Houdini For MoGraph Ep0029
7:48
Far Out Studio
Рет қаралды 6 М.