Jump to content
Wolfwood

VOPS or VFL?

Recommended Posts

So which way do you like doing things? With VOP networks? Or with a good old fashion text editor and .vfl files?

I'm interested in everyone's feedback, pro's and con's, apples n oranges.

Personally I think VOPs are very very cool. Its quick, tucked away neatly inside your hip file, and networks can be modified with out recompiling code. However I find it difficult to work with when its a large shader, but then again that is more or less true for any large network inside of Houdini. The inline VOP is a lifesaver because it cuts back on a lot of the other simplier VOPs but using nothing but inline VOPs is cheating right? :P

Actually I like VOPs a lot for proof of concept stuff. Throw a network together as a test, if it works great, if not....poopie.

What's your 2 cents?

jim.

ps. In VOPs did you know you could middle mouse on a VOP icon and it will display compilation errors and warnings? So much for RTFM. :P

Share this post


Link to post
Share on other sites

Well, I'm a newbie, but I like VOPs a whole heck of a lot. Seriously, I think it's the single best feature of any piece of 3D software. The stuff I'm making isn't real complicated so using VOPs is much easier and quicker than writing VFL. The ease with which you can save and install new optypes on other machines is very cool as well.

I fell in love with this type of workflow before I touched Houdini, though. There's this software, Quest 3D, that allows you to build frameworks for little Direct 3D applications by hooking up tiles into a flowchart very similar to VOPs. It was much easier for me than hacking away at .cpp files for hours and digging through the Direct X SDK. I'm not an exceptional programmer :P The first time I saw Quest, I was like, "Crap! Why the hell doesn't someone do something like this for scripting with a modeling/animation program?" Low and behold, SideFX did.

Now VOPs of course is much deeper and more flexible than Quest 3D, but the concept is very much the same. If you are interested you can look at it here:

http://www.quest3d.com/

I'm sure at some point, there'll be something I want to do that'll require me to write VFL, but for now VOPs does most of what I need.

Share this post


Link to post
Share on other sites

Here's a pic of the Quest interface. The concept is very similar. You place tiles which have their own parameters, that are little black boxes of code. Their inputs and outputs tell you what sort of data types they accept and return. You can also collapse parts of the networks into folders (same as subnets). It's a great piece of software for rapid prototyping if you are using D3D, and you can make some fairly complex stuff with it. Best of all, it runs about as quick as if you had compiled the source yourself.

http://www.quest3d.com/screenshots/Q3DShot...ManChannels.jpg

Share this post


Link to post
Share on other sites

Can I choose both?

I am only beginning to learn the basics of shader writing, so I don't have much say here.

I personally like both VOP and .vfl for different reasons. To me, I see VOP as a way to do quick shader writing and such when I am very lazy to deal with handling vcc stuff. However, the code being generated from VOP, as I see it, is a bit messier compared to hand coding as it is much more specific. VOP is definitely very awesome compared to any shader-builder tool exists in other packages, I believe.

As for me, I am just currently learning VEX writing and am trying to understand what's going on. To me, see a line of code can sometimes clear things up a little and see how data get passed around and such. So sometimes, seeing a clean vfl code makes more sense to me.

That's why I am glad for both VOP and vfl. After all, as a student, I need to see VOP to get a vague idea of how VEX works, and at the very same time, I need to understand how VEX works in order to understand how VOP works.

:)

Share this post


Link to post
Share on other sites

I would also choose both. In my opinion VOPs are great for the instant feedback in the Houdini-editor. You can tweak setting of the shader very quickly. Using vfl this would mean to create a parameter, compile, adjust to find out the correct value and then rewind all your changes to the source-code. I don't speak of user-specified parameters, like the diffuse color of the shader or something else, but every shader has some constants, which are built in.

In contrast to VOPs I prefer vfl when things get complicated and huge. In such a case the VOP-network would get so big, that I would spend most of the time searching the tile, where I have to make changes. If I organize my operators in subnets, then I would find myself going up and down only to make a single change in one operator. Using the text-editor, I have all the things at a glance and I am much faster.

Perhaps this mental attitude results from the fact that I'm a student of computer-science, and I am very familiar with C++.

Frank

Share this post


Link to post
Share on other sites

I like the old fashioned way! I'm not good at nither, VOPs or VFL, but still.

I'm getting high from typing in stuff at prompt or looking at the code of a shader rather than searching for OP tiles in the hairball of network wiring.

Share this post


Link to post
Share on other sites

vex... for me compiling a vcc isnt a big deal and it works with my mind set looking at it in coded form.. line by line.... but that is just me, VOPS is neato and everything and I need to start digging into that more... But Something about coding something with a good ol tex editor Just is cool...

Share this post


Link to post
Share on other sites

have to go with "oldstyle" ;)

I have to say that VOP's is one of the best implementations of "flow-chart scripting" but when you try to do something complicated then it is really hard to debug. I like for and while loops in VOP's B) really cool - havent seen anything like that....

maybe sidefx could implement such a gadet that would read vex and the user could visually build ui and vcc on the fly? can you hear the cog's grinding away - trying to come up with something new :lol:

-Kaspar

Share this post


Link to post
Share on other sites

i thought that the op type properties dialog (h6) already did that ...

Share this post


Link to post
Share on other sites

Vops. Just so much faster to get going and update, and pretty much nothing I can't do with them.

-Zig

Share this post


Link to post
Share on other sites
have to go with "oldstyle"  ;)

I have to say that VOP's is one of the best implementations of "flow-chart scripting" but when you try to do something complicated then it is really hard to debug. I like for and while loops in VOP's  B) really cool - havent seen anything like that....

maybe sidefx could implement such a gadet that would read vex and the user could visually build ui and vcc on the fly? can you hear the cog's grinding away - trying to come up with something new  :lol:

-Kaspar

Shaderman and ShadeTree, for the RenderMan Shading Language, are able to do this... if I'm not mistaking.

Also, can't you try to reverse engineer certain things with VEX? By also making use of the VFL export capabilities within Houdini VOPs...

Share this post


Link to post
Share on other sites

As I am midst of complicated shaders once more, few more comments,

1. st never used shadeTree - but this thing is expensive! 3K dollars!?

2.nd in case of sophisticaed shaders, when you need to use ray-tracing tools and implemet your own jitter for ex. (talking about rayhittest) then soon yer VOPS network does look like something that my neigbors cat would cough up on a rainy day :blink:

and as usual I meade few mistakes on the way -> finding 'em was purified hell :angry:

so from now on .... stiking to vex, when I dont need to make cheker grid :o

-Kaspar

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

×