I’m working on some vertex/fragment shaders for CGFX in MotionBuilder. I’m currently working in an older release of MotionBuilder (2010) but I can’t find the answer in any version of MotionBuilder. Is there a way to determine the full list of available semantics for MotionBuilder. I’d like to modify the vertex positions over time but can’t seem to get any of the common Time semantics to bind and update as the time slider plays down.
Found this paper from Nvidia that mentioned TIME and ELAPSEDTIME.
Looking at cgfx examples from Maya they have MrWiggle.cgfx that adds
float timer : Time < string UIWidget="None"; >;
Doesn’t seem to be reading systemtime, but guess you could drope the
< string UIWidget="None"; > and then key the attribute to simulate time?
I’ve read that paper and taken a look at MrWiggle.
Yea that time doesnt actually read from systemtime which is a shame.
I could drop UIWidget hiding but then I’m basically providing a tweakable float for users to animate.
I was hoping for automatic over time changes but seems that may not be possible. It’s odd though because I have seen that it works in 3DSMax.
Can’t speak for 3DSMax but with the new Maya 2022 loading any CGFX example of theirs seem to result in instant crash
They do have this note in their documentation.
Note: The use of the CgFx shader is no longer recommended as it is based on legacy technology. Use the GLSL shader instead.
Haha yes definitely read that, which is fine. That’s funny though to hear that CGFX is now a cranky old man in Maya. It almost feels like they would have had to intentionally muck it up haha. Since I’m working in a legacy MotionBuilder the only option is CGFX, but there’s honestly very little difference between CGFX and GLSL in terms of the code that I’m working on. Vertex and Fragment shaders vary little and I’m not currently using any of the special FX features.