Jump to content

how can i start to learn vex?


Recommended Posts

i wonder because, everytime that im face to face with a vex network, vop-sop, vop-*anything*, etc, a big question mark apears in my mind.

i can not determine if the vex network is computing in a per vertex context, or primitive or what, or if in a volume vop is working by each voxel context or what.

and when that happens, i start to try to think as it were an ice compound, but obviously is not the same.

so i wonder how to start to analyse a vop network, something that prints or shows the values being computed, the context, ect...

something like the xsi-ice feature where you can see the result value of each node, some technique that tells you the result step by step.

.........or ultimatelly.... how can i to start to learn vex networks?

Edited by dyei nightmare
Link to comment
Share on other sites

i wonder because, everytime that im face to face with a vex network, vop-sop, vop-*anything*, etc, a big question mark apears in my mind.

i can not determine if the vex network is computing in a per vertex context, or primitive or what, or if in a volume vop is working by each voxel context or what.

and when that happens, i start to try to think as it were an ice compound, but obviously is not the same.

so i wonder how to start to analyse a vop network, something that prints or shows the values being computed, the context, ect...

something like the xsi-ice feature where you can see the result value of each node, some technique that tells you the result step by step.

.........or ultimatelly.... how can i to start to learn vex networks?

In the case of a VOP SOP its applied to each point of the input geometry. Start with the basics and you'll get the feel for how it works. There are exceptions to this but the basic idea is you take information from the global input VOP, do stuff to it with whatever other VOP you want, then apply it by sending the data to the output VOP.

For example you take the position of the point (P on the global VOP), use a vector to float VOP to break it into the components of the vector, use a add constant VOP to add value of one on Y axis to each point, then go back to a vector with float to vector VOP, and send the vector from that to the P on the output VOP. All of your points in the input geometry should move by one unit. So rather than seeing what happens to a single point you see what happens to all of the points.

If seeing what happens to a single point would help you learn, use a delete SOP in front of the VOP SOP to delete all but one point. Cheers!

Link to comment
Share on other sites

Guest Swann

If seeing what happens to a single point would help you learn, use a delete SOP in front of the VOP SOP to delete all but one point. Cheers!

I think he is looking for something like printVOP rather then delete.

Link to comment
Share on other sites

I think he is looking for something like printVOP rather then delete.

yeah thanks, exactly im looking for something that prints.

this: http://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&p=86766&sid=afcb6846121b93b89e6ee9ac71689df0

and yes, thanks, luke, i will start with simple exercises, it doesnt need to be so basic, i just need to know what values are resulting in each step. with that print vop

Link to comment
Share on other sites

Another good tip is to use the addAttribute vop (for vop sops) to output values for various parts of your algorithm. Or for shaders add extra planes to your renders and output values to those to see what is going on.

Definitely! I have a custom display variable added called "magnitude" under the Display settings of the viewport. I tend to just addAttribute or export parameters into magnitude as a kind of print/details/display option.

I also tend to pipe vectors in N for quick display or I have my own v and up vectors defined in the viewport settings that I can use for a quick visualization if N is being used.

Regarding the different vex contexts... A lot of the functionality is similar between contexts. I started by learning & using expressions, then started learning the vop_sops context (and replacing most of my expressions with vops), then moved on to vops in shops, then to vop_pops, then to volume_vops, then to writing pure vex (sop) code in custom vex operators as this is a lot easier when dealing with loops and if statements (ie: pointcloud loops).

Do get started with it as after a while it will speed up your scenes and the amount of expressions you use will reduce. Vops are multi threaded so should give you speed gains. I only had some problems with vop_pops and multi threading.

Now finally I'm just starting to explore cvex and trying to link that with the hdk.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...