登录:     


Forum: Addons

Topic: PixelShader8 - Page: 1
 

发表时间 Tue 30 Dec 25 @ 6:19 am
Pretty cool, look forward to stacking several copies and seeing what it creates.
One thing I'd maybe think about would be buttons for preset +|-
 

Good idea. I am going to add +/- buttons.
I thought about creating one plugin per pixel Shader but then i decided to keep one "generic code" (very dynamic). As you said we can make a copy of the dll.
I am already working on pixel shaders moving on beats (params are sent to the shader via the constant buffer).
And maybe a subfolder for pixel shader at the demand (customized request or to define its own HLSL files)
 

Um, can you perhaps post some images of what it does / looks like?

 

It's a transform video effect, have some visual on deck call the effect and it will do stuff to the image.
 

It does stuff - OK that narrows it down LOL :-)

I've installed it now.

It has a bunch of presets: GrayScale, GBR (?), High Contrast, Negative, Horizontal Mirror, Rotate 180, PixelsHide, CenterBlur, ColorDistortion.

They all seem to be static though, and can't be animated or sequenced.

I'd like to see an option to step through the presets to the beat or bar, maybe select which presets to use (and in which order), and also on/off to the beat or bar.

Thanks!
 

If you want more freedom, you can copy and rename the dll with the pixel shader you want as VirtualDJ will keep the slider position of the fx name. Just be sure you don't change it then.
 

GBR transform:

color.rgb = color.gbr;


r=red
g=green
b=blue
 

An update is now available.

I am already working on the next version with more fx and options.
 

Nice, still playing to work out "mask" but I'll figure it out.
I'd have made the buttons wrap, on 13 & + = 1, on 1 & - = 13
 

Maybe wait for the next version before mapping. I have changed the order to group them and added new. I hope to upload it tonight.
 

v2.3 is now available
 

V2.3.3 is now available
 

Changes?
 

 

I have just uploaded version 2.4.4 on the website.
 

Something of not much, just a QoL improvement to have the buttons make the dial wrap round.
I might have some questions later once I've tried some things with the sauce.

void CPixelShader8::OnButton(int id)
{
float min_step = 0.0f;
if (NUMBER_FX > 1)
min_step = 1.0f / float(NUMBER_FX - 1);

switch (id)
{
case ID_BUTTON_1:
if (m_ButtonLeft == 1)
{
if (m_SliderValue[1] - min_step < 0.0f)
m_SliderValue[1] = 1.0f;
else
m_SliderValue[1] -= min_step;

OnParameter(ID_SLIDER_2);
}
break;

case ID_BUTTON_2:
if (m_ButtonRight == 1)
{
if (m_SliderValue[1] + min_step > 1.0f)
m_SliderValue[1] = 0.0f;
else
m_SliderValue[1] += min_step;

OnParameter(ID_SLIDER_2);
}
break;
}
}
 

Indeed i forgot the case with just one NUMBER_FX and the division per 0 :-)
I am going to fix the code

[Edit] I just understood what you wanted to tell. Good idea
 

I just added my first shader [just duplicated negative with minor changes]
I'm hunting for a particular shadertoy shader to try next [not fun, if any site needed a 160p button it's that one.]
 

In the pixelshader8.vcxproj file you can directly edit this part to avoid manually updating it inside Visual studio:

<FxCompile Include="..\src\Shaders\Negative.hlsl">
<ShaderType Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Pixel</ShaderType>
<ShaderModel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">5.0</ShaderModel>
<EntryPointName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">ps_main</EntryPointName>
<EntryPointName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">ps_main</EntryPointName>
<ShaderType Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Pixel</ShaderType>
<ShaderModel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">5.0</ShaderModel>
<ObjectFileOutput Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\src\Shaders\%(Filename).cso</ObjectFileOutput>
<ObjectFileOutput Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\src\Shaders\%(Filename).cso</ObjectFileOutput>
</FxCompile>
 

71%