EDIT Transition (Gradiant Circular) Effect

Comments

Howard-Vigorita wrote on 2/1/2026, 3:08 PM

@bryan-b My experience is that after I create the folder in Documents to hold my custom GL Transitions, all I have to do is save an existing preset that I want to customize with a unique name. Then the code for that transition will appear in that folder as an XML text file. My folder location is:

C:\Users\hv\Documents\OFX Presets\de.magix_glTransition\Transition

... where hv is my windows login identity. You can pick any existing GL Transition that's close to what you want. Then edit the code in the folder with a text editor. Notepad will work. An XML text editor might be better. I'm not up on the GL Transition programming language myself so I usually look for gl transitions written by someone who knows what they're doing, and copy it into that same folder. Here's the code I got when dragged the Circle Open GL Transition supplied with vp22 to a transition on my timeline and saved the preset as Circle Open Custom, which then appeared in my folder with the XML type-extension.

<?xml version="1.0" encoding="UTF-8"?>
<OfxPreset plugin="de.magix:glTransition" context="Transition" name="Circle Open Custom">
<OfxPlugin>de.magix:glTransition</OfxPlugin>
<OfxPluginVersion>1 0</OfxPluginVersion>
<OfxParamTypeDouble name="Transition"><OfxParamValue>0.715347</OfxParamValue></OfxParamTypeDouble>
<OfxParamTypeInteger name="IsPreset"><OfxParamValue>37</OfxParamValue></OfxParamTypeInteger>
<OfxParamTypeString name="GLSLString">        <OfxParamValue> 
// author: gre
// License: MIT
uniform float kParamFloat0; // = 0.3; [0,1.5]const vec2 center = vec2(0.5, 0.5);
const float SQRT_2 = 1.414213562373;
const bool opening = true;// kParamFloat0 &gt; 0.;vec4 transition (vec2 uv) {
  //float smooth = abs(kParamFloat0);
  float x = opening ? progress : 1.-progress;
  float m = smoothstep(-kParamFloat0, 0.0, SQRT_2*distance(center, uv) - x*(1.+kParamFloat0));
  return mix(getFromColor(uv), getToColor(uv), opening ? 1.-m : m);
}
      </OfxParamValue>
</OfxParamTypeString>
<OfxParamTypeString name="kParamFloat0Name">        <OfxParamValue>Smoothness</OfxParamValue>
</OfxParamTypeString>
<OfxParamTypeDouble name="kParamFloat0"><OfxParamValue>0.300000</OfxParamValue></OfxParamTypeDouble>
<OfxParamTypeString name="kParamFloat1Name">        <OfxParamValue></OfxParamValue>
</OfxParamTypeString>
<OfxParamTypeDouble name="kParamFloat1"><OfxParamValue>0.000000</OfxParamValue></OfxParamTypeDouble>
<OfxParamTypeString name="kParamFloat2Name">        <OfxParamValue></OfxParamValue>
</OfxParamTypeString>
<OfxParamTypeDouble name="kParamFloat2"><OfxParamValue>0.000000</OfxParamValue></OfxParamTypeDouble>
<OfxParamTypeString name="kParamFloat3Name">        <OfxParamValue></OfxParamValue>
</OfxParamTypeString>
<OfxParamTypeDouble name="kParamFloat3"><OfxParamValue>0.000000</OfxParamValue></OfxParamTypeDouble>
<OfxParamTypeString name="kParamInt0Name">        <OfxParamValue></OfxParamValue>
</OfxParamTypeString>
<OfxParamTypeInteger name="kParamInt0"><OfxParamValue>0</OfxParamValue></OfxParamTypeInteger>
<OfxParamTypeString name="kParamInt1Name">        <OfxParamValue></OfxParamValue>
</OfxParamTypeString>
<OfxParamTypeInteger name="kParamInt1"><OfxParamValue>0</OfxParamValue></OfxParamTypeInteger>
<OfxParamTypeString name="kParamBool0Name">        <OfxParamValue></OfxParamValue>
</OfxParamTypeString>
<OfxParamTypeBoolean name="kParamBool0"><OfxParamValue>false</OfxParamValue></OfxParamTypeBoolean>
<OfxParamTypeString name="kParamVec20Name">        <OfxParamValue></OfxParamValue>
</OfxParamTypeString>
<OfxParamTypeDouble2D name="kParamVec20"><OfxParamValue>0.500000 0.500000</OfxParamValue></OfxParamTypeDouble2D>
<OfxParamTypeString name="kParamIVec20Name">        <OfxParamValue></OfxParamValue>
</OfxParamTypeString>
<OfxParamTypeInteger2D name="kParamIVec20"><OfxParamValue>2 2</OfxParamValue></OfxParamTypeInteger2D>
<OfxParamTypeString name="kParamVec40Name">        <OfxParamValue></OfxParamValue>
</OfxParamTypeString>
<OfxParamTypeRGBA name="kParamVec40"><OfxParamValue>0.000000 0.000000 0.000000 1.000000</OfxParamValue></OfxParamTypeRGBA>
<OfxParamTypeString name="kParamVec41Name">        <OfxParamValue></OfxParamValue>
</OfxParamTypeString>
<OfxParamTypeRGBA name="kParamVec41"><OfxParamValue>0.000000 0.000000 0.000000 1.000000</OfxParamValue></OfxParamTypeRGBA>
</OfxPreset>

I'm guessing that the line I bolded might influence the center point of the circular crossfade it that's what you want to do.

bryan-b wrote on 2/1/2026, 3:24 PM

This is using the technique and graphic I provided earlier in this post but you blew it off.

Sorry mate, i just didn't understand how to it with your work, didn't want to hurt you with this...

bryan-b wrote on 2/1/2026, 3:38 PM

@bryan-b My experience is that after I create the folder in Documents to hold my custom GL Transitions, all I have to do is save an existing preset that I want to customize with a unique name. Then the code for that transition will appear in that folder as an XML text file. My folder location is:

C:\Users\hv\Documents\OFX Presets\de.magix_glTransition\Transition

... where hv is my windows login identity. You can pick any existing GL Transition that's close to what you want. Then edit the code in the folder with a text editor. Notepad will work. An XML text editor might be better. I'm not up on the GL Transition programming language myself so I usually look for gl transitions written by someone who knows what they're doing, and copy it into that same folder. Here's the code I got when dragged the Circle Open GL Transition supplied with vp22 to a transition on my timeline and saved the preset as Circle Open Custom, which then appeared in my folder with the XML type-extension.

<?xml version="1.0" encoding="UTF-8"?>
<OfxPreset plugin="de.magix:glTransition" context="Transition" name="Circle Open Custom">
<OfxPlugin>de.magix:glTransition</OfxPlugin>
<OfxPluginVersion>1 0</OfxPluginVersion>
<OfxParamTypeDouble name="Transition"><OfxParamValue>0.715347</OfxParamValue></OfxParamTypeDouble>
<OfxParamTypeInteger name="IsPreset"><OfxParamValue>37</OfxParamValue></OfxParamTypeInteger>
<OfxParamTypeString name="GLSLString">        <OfxParamValue> 
// author: gre
// License: MIT
uniform float kParamFloat0; // = 0.3; [0,1.5]const vec2 center = vec2(0.5, 0.5);
const float SQRT_2 = 1.414213562373;
const bool opening = true;// kParamFloat0 &gt; 0.;vec4 transition (vec2 uv) {
  //float smooth = abs(kParamFloat0);
  float x = opening ? progress : 1.-progress;
  float m = smoothstep(-kParamFloat0, 0.0, SQRT_2*distance(center, uv) - x*(1.+kParamFloat0));
  return mix(getFromColor(uv), getToColor(uv), opening ? 1.-m : m);
}
      </OfxParamValue>
</OfxParamTypeString>
<OfxParamTypeString name="kParamFloat0Name">        <OfxParamValue>Smoothness</OfxParamValue>
</OfxParamTypeString>
<OfxParamTypeDouble name="kParamFloat0"><OfxParamValue>0.300000</OfxParamValue></OfxParamTypeDouble>
<OfxParamTypeString name="kParamFloat1Name">        <OfxParamValue></OfxParamValue>
</OfxParamTypeString>
<OfxParamTypeDouble name="kParamFloat1"><OfxParamValue>0.000000</OfxParamValue></OfxParamTypeDouble>
<OfxParamTypeString name="kParamFloat2Name">        <OfxParamValue></OfxParamValue>
</OfxParamTypeString>
<OfxParamTypeDouble name="kParamFloat2"><OfxParamValue>0.000000</OfxParamValue></OfxParamTypeDouble>
<OfxParamTypeString name="kParamFloat3Name">        <OfxParamValue></OfxParamValue>
</OfxParamTypeString>
<OfxParamTypeDouble name="kParamFloat3"><OfxParamValue>0.000000</OfxParamValue></OfxParamTypeDouble>
<OfxParamTypeString name="kParamInt0Name">        <OfxParamValue></OfxParamValue>
</OfxParamTypeString>
<OfxParamTypeInteger name="kParamInt0"><OfxParamValue>0</OfxParamValue></OfxParamTypeInteger>
<OfxParamTypeString name="kParamInt1Name">        <OfxParamValue></OfxParamValue>
</OfxParamTypeString>
<OfxParamTypeInteger name="kParamInt1"><OfxParamValue>0</OfxParamValue></OfxParamTypeInteger>
<OfxParamTypeString name="kParamBool0Name">        <OfxParamValue></OfxParamValue>
</OfxParamTypeString>
<OfxParamTypeBoolean name="kParamBool0"><OfxParamValue>false</OfxParamValue></OfxParamTypeBoolean>
<OfxParamTypeString name="kParamVec20Name">        <OfxParamValue></OfxParamValue>
</OfxParamTypeString>
<OfxParamTypeDouble2D name="kParamVec20"><OfxParamValue>0.500000 0.500000</OfxParamValue></OfxParamTypeDouble2D>
<OfxParamTypeString name="kParamIVec20Name">        <OfxParamValue></OfxParamValue>
</OfxParamTypeString>
<OfxParamTypeInteger2D name="kParamIVec20"><OfxParamValue>2 2</OfxParamValue></OfxParamTypeInteger2D>
<OfxParamTypeString name="kParamVec40Name">        <OfxParamValue></OfxParamValue>
</OfxParamTypeString>
<OfxParamTypeRGBA name="kParamVec40"><OfxParamValue>0.000000 0.000000 0.000000 1.000000</OfxParamValue></OfxParamTypeRGBA>
<OfxParamTypeString name="kParamVec41Name">        <OfxParamValue></OfxParamValue>
</OfxParamTypeString>
<OfxParamTypeRGBA name="kParamVec41"><OfxParamValue>0.000000 0.000000 0.000000 1.000000</OfxParamValue></OfxParamTypeRGBA>
</OfxPreset>

I'm guessing that the line I bolded might influence the center point of the circular crossfade it that's what you want to do.

Ok so i wanted to try it but for some reason, i don't have any folder after "de.magix_glTransition\Transition" after OFX Presets. Then, i tried to make one but the effect doesn't appear next in Vegas...
SO, i finally tried to make it raw from the "defaut" GLTransition with your code, but it don't make anything either...

Howard-Vigorita wrote on 2/2/2026, 9:36 AM

I recall that when GL Transitions was 1st implemented in Vegas that I created the folders in "OFX Presets" manually and restarted Vegas. I think I did it in the Windows file system starting from c:\Users which should lead the the same folder in your default Documents folder. Be aware that Windows creates a unique Documents folder for every user login on your machine so if you have more than one login, make sure you use the one that was active during the Vegas install... you can look at the start of the path name of the temp folder at the bottom of general preferences for the user name where Vegas is storing stuff. Mine looks like this: C:\Users\hv\AppData\Local\VEGAS Pro\22.0\

The transitions folder within my Documents folder only has the few xmls that I've downloaded or played with.

You might want to work through examples in the more general GL Transitions thread and solicit feedback from some of the experts there.

bryan-b wrote on 2/2/2026, 10:19 AM

I recall that when GL Transitions was 1st implemented in Vegas that I created the folders in "OFX Presets" manually and restarted Vegas. I think I did it in the Windows file system starting from c:\Users which should lead the the same folder in your default Documents folder. Be aware that Windows creates a unique Documents folder for every user login on your machine so if you have more than one login, make sure you use the one that was active during the Vegas install... you can look at the start of the path name of the temp folder at the bottom of general preferences for the user name where Vegas is storing stuff. Mine looks like this: C:\Users\hv\AppData\Local\VEGAS Pro\22.0\

The transitions folder within my Documents folder only has the few xmls that I've downloaded or played with.

You might want to work through examples in the more general GL Transitions thread and solicit feedback from some of the experts there.

Thank you sir !
This is what it's look around here, and indeed i was doing exactly what you says, i mean exit VEGAS, create the folder, then the file but still nothing appear in Vegas then...

EDIT :
So, i create the same file but in xml to see, and yeah, VEGAS detect it but then, this happened and idk what that's means and how to fix it...

Howard-Vigorita wrote on 2/2/2026, 11:00 AM

Maybe something corrupted in the copy/paste? I didn't edit it so you can recreate it the way I did by just loading the Vegas original, changing the preset name, then clicking the disk icon to save it.

bryan-b wrote on 2/2/2026, 11:31 AM

Maybe something corrupted in the copy/paste? I didn't edit it so you can recreate it the way I did by just loading the Vegas original, changing the preset name, then clicking the disk icon to save it.

Okay but is this supposed to change anything ? Cause it doesn't

Howard-Vigorita wrote on 2/2/2026, 12:44 PM

Maybe compare notes with this post: https://www.vegascreativesoftware.info/us/forum/edit-transition-gradiant-circular-effect--150828/?page=1#ca949345

Fwiw, I'm not getting that error on my laptop with an Nvidia 3060 running their 581.57 studio driver.

bryan-b wrote on 2/2/2026, 12:52 PM

Maybe compare notes with this post: https://www.vegascreativesoftware.info/us/forum/edit-transition-gradiant-circular-effect--150828/?page=1#ca949345

Fwiw, I'm not getting that error on my laptop with an Nvidia 3060 running their 581.57 studio driver.

It's a bit weird cause i don't have this error with others transitions.
I mean, a few of them appears with the same error message but they're not many.

Howard-Vigorita wrote on 2/2/2026, 2:09 PM

Just for the heck of it I just tried the latest Nvidia 591.86 gaming driver but could not force this error. vp22 Nvenc rendering is broken with it however so I'm reverting back to my previous 581.57 studio driver.

DMT3 wrote on 2/2/2026, 10:07 PM

You all are making this much harder than it needs to be.

3POINT wrote on 2/3/2026, 1:10 AM

You all are making this much harder than it needs to be.

Even much harder than the way I showed at the beginning of this thread, but as always, I'm also open for complex solutions as proposed by others...

3POINT wrote on 2/3/2026, 1:33 AM

Again:

Last changed by 3POINT on 2/3/2026, 1:34 AM, changed a total of 1 times.

3POINT, Theo Houben, Vegasuser since version 5 and co-founder and moderator of the Dutch Vegasforum https://vegasvideoforum.nl/index.php

Recware: DJI Osmo Pocket 3, DJI Mavic Mini, Samsung S24, PanasonicFZ300

Software: Vegaspro365+Vegasaur, Davinci Resolve 20

Hardware: i910900k, 32GB, GTX2080super, 2x1920x1200 display

Playware: Samsung Qled QE65Q6FN

bryan-b wrote on 2/3/2026, 2:59 AM

Again:

Holy finally it works !
It's still a bit weird cause it not the same exact result as yours (idk why but some still appear like on the screen) BUT it's fine for my idea, so thank you dear mate !

3POINT wrote on 2/3/2026, 3:25 AM

@bryan-b That's because you're not using "Seesaw" as Wave form:

Last changed by 3POINT on 2/3/2026, 3:42 AM, changed a total of 1 times.

3POINT, Theo Houben, Vegasuser since version 5 and co-founder and moderator of the Dutch Vegasforum https://vegasvideoforum.nl/index.php

Recware: DJI Osmo Pocket 3, DJI Mavic Mini, Samsung S24, PanasonicFZ300

Software: Vegaspro365+Vegasaur, Davinci Resolve 20

Hardware: i910900k, 32GB, GTX2080super, 2x1920x1200 display

Playware: Samsung Qled QE65Q6FN

bryan-b wrote on 2/3/2026, 6:03 AM

@bryan-b That's because you're not using "Seesaw" as Wave form:

Yeah but when i'm in seesaw, the wide is too large, even on 0,01 like this.
I would like it to be much smaller, not this big already

3POINT wrote on 2/3/2026, 7:00 AM

Do not set keyframes for transition progress, change curve to "slow" instead "linear" for example:

MikeS wrote on 2/3/2026, 8:06 AM

Maybe compare notes with this post: https://www.vegascreativesoftware.info/us/forum/edit-transition-gradiant-circular-effect--150828/?page=1#ca949345

Fwiw, I'm not getting that error on my laptop with an Nvidia 3060 running their 581.57 studio driver.

I've given up with custom GL transitions for now. But it certainly seems to be that 581.57 is the last nVidia driver known to work reliably with Vegas' custom GL transitions

Vegas Pro Suite 22.0 Build 250
Boris FX Continuum for OFX 2025 Build 18.5.0.441 - 113
Boris FX Mocha Pro Plug-in 2025 v12.0.1 build 46
Windows 11 Pro - 64-Bit
ASUS PRIME Z390-P motherboard
Intel Core i7-97000K @ 3.6GHz
RAM 32GB (2x 16GB) 2666MHz DDR4
GeForce RTX 2070 SUPER