Jump to content
Sign in to follow this  
hatrick

wrangel vs vops

Recommended Posts

hatrick    15

Hi, 

After a while i can understand the benefits of wrangling stuff compared to hook up nodes in a vop network in certain situations.

Nevertheless i often find it hard to i.e analyse more complex scripts setup with VEX. Maybe it is possible to provide some kind of automatic functionality that translates wrangles into vopnetworks?

-Lucas

Edited by hatrick

Share this post


Link to post
Share on other sites
acey195    109

Personally I find, the more complex it gets, the easier it becomes to read in code versus VOPs, I guess you already know you can export the VEX code from a VOP network.

I don't think there is an automatic way of doing it the other way around. And building a system that does that requires a deeper understanding of VOPs/VEX than is required to simply reading VEX code.

So my personal advise would be to just practice writing code a bit (does not even need to be VEX) to get a better feel of programming in general. Also to see what functions do, look at:

http://archive.sidefx.com/docs/houdini15.5/vex/functions/_index

You will find that in >75% of the cases a function exists which is pretty much identical to a VOP Node.

In addition, you can include the VOP libraries in your VEX code (although not all documented on that page) to get even more functions. You can use the nomal VOP node help for this in most cases though.

 

Twan

  • Like 1

Share this post


Link to post
Share on other sites
hatrick    15

hi acey,

Like mentioned, personally i get more and more used to reading and writing small snippits of code and i see the advantages. i m shure most TD's like the "new" wrangle workflows, and you re right its mutch faster to get a picture of whats going on when you understand VEX. On the other side i think many people coming from other packages, especially generalists that are not into coding, do not want to take the effort learning VEX at first. "not a single line of code" is an importing selling point for certain kind of people. remember the discussions about maya blackbox or mel omg:)! vs Houdini vops. Over the years i learned mostly everthing i know about Houdini from hip files kindly provided from sesi and the community on the forums. More and more things are now setup with wrangles what makes it definitely harder for a beginner to find into H. In vops someone might hit F1 on each single node and is getting info right away (hopefully:)) ... so besides that its for shure a great thing to learn some VEX, but as someone who tries hard to get people into houdini i'm shure haveing a simple conversion option would be a great thing to have. 

cheers

Share this post


Link to post
Share on other sites
acey195    109

Hmm ok yeah I get your point, however I think that even VOPs as is are pretty hard to get into for new users, except for networks with less than say 15 nodes.
Above 15 nodes, I think VOPs become just as, if not more, difficult to read than VEX (especially with looping structures)

New users probably first want to just use the other SOPs, then try VOPs for a short time, but then move onto Wrangles pretty quickly.
as in Vex you can just do a v@debugVector = value; or a printf("value: %d",value); to debug your code, something which is actually more difficult to do in VOPs I find.

The only thing VOPs are better at, in my opinion, than Wrangles is to generate noise patterns.

That said, having used Maya in the past, I suspect you are comfortable with stuff like the Hypershade network.
I guess there are some similarities there and there probably are some users to benefit from it...

About the feasibility of a "simple" conversion option... Its not trivial to build something like that (like I said before)
I certainly think its possible to do (a python parser for instance). But its certainly not an easy thing to build.

For native Sesi support, you will have to ask them.

Share this post


Link to post
Share on other sites
anim    589
10 minutes ago, hatrick said:

...In vops someone might hit F1 on each single node and is getting info right away (hopefully:)) ...

same applies to VEX, you can hit F1 to get help for any VEX function directly from wrangle

 

11 minutes ago, hatrick said:

...but as someone who tries hard to get people into houdini i'm shure haveing a simple conversion option would be a great thing to have....

simple :), since VOPs and VEX are not 1-1, it may be not so simple. As I see it both VEX and VOPs need to mature more for that to happen. The problem as I see it is that every VOP node can be completely custom asset that on top of somewhere inside maybe executing the function it represents, it may do a lot more, or represent more functions at the same time etc. So I dont see it happening any time soon

Share this post


Link to post
Share on other sites
anim    589
3 minutes ago, acey195 said:

...as in Vex you can just do a v@debugVector = value; or a printf("value: %d",value); to debug your code, something which is actually more difficult to do in VOPs I find....

don't forget you can now just press X over any VOP to get visualizer attached, it's actually faster than typing the debug thing, or of course attaching Print VOP was always an option

Share this post


Link to post
Share on other sites
acey195    109
2 minutes ago, anim said:

don't forget you can now just press X over any VOP to get visualizer attached, it's actually faster than typing the debug thing, or of course attaching Print VOP was always an option

I know about the print VOP, but it just pushes out values, to actually get some readable data you would need an inline VOP to format your data (and at that point you might as well build a wrangle :P)

I did not know about the "X" thing though, that is useful...

Share this post


Link to post
Share on other sites
anim    589
Just now, acey195 said:

I know about the print VOP, but it just pushes out values, to actually get some readable data you would need an inline VOP to format your data (and at that point you might as well build a wrangle :P)

I did not know about the "X" thing though, that is useful...

you can specify formatting in Print VOP in similar way as in printf() function, see the example ts_formatted_print_vop.hip

  • Like 1

Share this post


Link to post
Share on other sites
sebkaine    210

i love to use both 

Wrangle for :

- point cloud stuff 

- loop / if / while etc ...

- complex shaders

- all that imply algorithmic logic

 

VOPS for :

- noise creation 

- ramps 

- basic shaders

- volume sample / volume gradient

 

for converting VEX to VOPS i think it would be faster to stick to code, cause if you need to convert it , i guess it must be quite complex, and code is more explicit for complex things imo.

VOPS tend to looks like a spaghetti plate pretty fast, the old Mantra shaders was the perfect exemple of this ! :) 

  • Like 1

Share this post


Link to post
Share on other sites
fathom    73
20 hours ago, sebkaine said:

i love to use both 

Wrangle for :

- point cloud stuff 

- loop / if / while etc ...

- complex shaders

- all that imply algorithmic logic

 

VOPS for :

- noise creation 

- ramps 

- basic shaders

- volume sample / volume gradient

 

for converting VEX to VOPS i think it would be faster to stick to code, cause if you need to convert it , i guess it must be quite complex, and code is more explicit for complex things imo.

VOPS tend to looks like a spaghetti plate pretty fast, the old Mantra shaders was the perfect exemple of this ! :) 

yeah, i think i'm pretty much the exact same way, cept i use vex for volume sample/gradient as well.

vops are also nicer if you're going to create any parms you want to expose.  the "ch()" function is a weak alternative, i find.  but even then, it's vops for noise and point transforms (i can never remember the to/from order in code) feeding into an inline vop to do the work.

Share this post


Link to post
Share on other sites
mestela    451
56 minutes ago, fathom said:

yeah, i think i'm pretty much the exact same way, cept i use vex for volume sample/gradient as well.

vops are also nicer if you're going to create any parms you want to expose.  the "ch()" function is a weak alternative, i find.  but even then, it's vops for noise and point transforms (i can never remember the to/from order in code) feeding into an inline vop to do the work.

Really? Even with the little 'auto create sliders for any ch() references that don't exist yet' button? I find that the bees knees, best thing to ever happen to my empty life. :)

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×