This commit is contained in:
Josef 2026-02-06 09:59:59 +01:00
parent 68917d081a
commit 537926b050
188 changed files with 9394 additions and 1412 deletions

341
Icons/FlareLayer.svg Normal file
View File

@ -0,0 +1,341 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
height="16"
viewBox="0 0 16 16"
width="16"
version="1.1"
id="svg4"
sodipodi:docname="FlareLayer.svg"
inkscape:version="1.4.3 (0d15f75, 2025-12-25)"
xml:space="preserve"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs8"><linearGradient
id="linearGradient3"
inkscape:collect="never"><stop
style="stop-color:#d83636;stop-opacity:0.83529412;"
offset="0.2804164"
id="stop6" /><stop
style="stop-color:#d83636;stop-opacity:0;"
offset="1"
id="stop5" /></linearGradient><linearGradient
id="linearGradient2"
inkscape:collect="never"><stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop2" /><stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop3" /></linearGradient><linearGradient
inkscape:collect="never"
id="linearGradient3601"><stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop3597" /><stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop3599" /></linearGradient><linearGradient
inkscape:collect="never"
id="linearGradient1387"><stop
style="stop-color:#f70000;stop-opacity:1;"
offset="0"
id="stop1365" /><stop
style="stop-color:#fa7207;stop-opacity:1;"
offset="0.15848443"
id="stop1367" /><stop
style="stop-color:#ffce12;stop-opacity:1;"
offset="0.30084926"
id="stop1369" /><stop
style="stop-color:#a1e00a;stop-opacity:1;"
offset="0.37199998"
id="stop1371" /><stop
style="stop-color:#24f800;stop-opacity:1;"
offset="0.44346777"
id="stop1373" /><stop
style="stop-color:#1beda1;stop-opacity:1;"
offset="0.51599997"
id="stop1375" /><stop
style="stop-color:#18e9e9;stop-opacity:1;"
offset="0.56800002"
id="stop1377" /><stop
style="stop-color:#1e97ff;stop-opacity:1;"
offset="0.64159107"
id="stop1379" /><stop
style="stop-color:#272eff;stop-opacity:1;"
offset="0.73000002"
id="stop1381" /><stop
style="stop-color:#f604ff;stop-opacity:1;"
offset="0.86199999"
id="stop1383" /><stop
style="stop-color:#000000;stop-opacity:1"
offset="1"
id="stop1385" /></linearGradient><linearGradient
inkscape:collect="never"
id="linearGradient1237"><stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop1233" /><stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop1235" /></linearGradient><linearGradient
inkscape:collect="never"
id="linearGradient1229"><stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop1225" /><stop
style="stop-color:#000000;stop-opacity:1"
offset="1"
id="stop1227" /></linearGradient><linearGradient
inkscape:collect="never"
id="linearGradient13704"><stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop13700" /><stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop13702" /></linearGradient><linearGradient
inkscape:collect="never"
id="linearGradient10604"><stop
style="stop-color:#18e9e8;stop-opacity:1;"
offset="0"
id="stop10600" /><stop
style="stop-color:#18e9e8;stop-opacity:0;"
offset="1"
id="stop10602" /></linearGradient><linearGradient
inkscape:collect="never"
id="linearGradient1024"><stop
style="stop-color:#f70000;stop-opacity:1;"
offset="0"
id="stop1020" /><stop
style="stop-color:#fa7207;stop-opacity:1;"
offset="0.15848443"
id="stop1149" /><stop
style="stop-color:#ffce12;stop-opacity:1;"
offset="0.30084926"
id="stop1096" /><stop
style="stop-color:#a1e00a;stop-opacity:1;"
offset="0.37199998"
id="stop1153" /><stop
style="stop-color:#24f800;stop-opacity:1;"
offset="0.44346777"
id="stop1092" /><stop
style="stop-color:#1beda1;stop-opacity:1;"
offset="0.51599997"
id="stop1151" /><stop
style="stop-color:#18e9e9;stop-opacity:1;"
offset="0.56800002"
id="stop1098" /><stop
style="stop-color:#1e97ff;stop-opacity:1;"
offset="0.64159107"
id="stop1155" /><stop
style="stop-color:#272eff;stop-opacity:1;"
offset="0.73000002"
id="stop1094" /><stop
style="stop-color:#f604ff;stop-opacity:1;"
offset="0.86199999"
id="stop1100" /><stop
style="stop-color:#ff0202;stop-opacity:1;"
offset="1"
id="stop1022" /></linearGradient><linearGradient
inkscape:collect="never"
id="linearGradient3074"><stop
style="stop-color:#e26708;stop-opacity:1;"
offset="0"
id="stop3070" /><stop
style="stop-color:#bb3c00;stop-opacity:1;"
offset="1"
id="stop3072" /></linearGradient><radialGradient
xlink:href="#linearGradient45008"
id="radialGradient3076"
cx="30.688875"
cy="30.069115"
fx="30.688875"
fy="30.069115"
r="14.05412"
gradientUnits="userSpaceOnUse" /><linearGradient
xlink:href="#linearGradient45008"
id="linearGradient45010"
x1="-31.87768"
y1="22.065159"
x2="-31.87768"
y2="48.78738"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(101.16951,-6.5921995)" /><linearGradient
id="linearGradient45008"><stop
style="stop-color:#e14500;stop-opacity:1;"
offset="0"
id="stop45004" /><stop
style="stop-color:#e17900;stop-opacity:1;"
offset="0.59811592"
id="stop45012" /><stop
style="stop-color:#e19c00;stop-opacity:1;"
offset="1"
id="stop45006" /></linearGradient><linearGradient
xlink:href="#linearGradient45008"
id="linearGradient46715"
x1="31.917692"
y1="47.524929"
x2="31.917692"
y2="22.632998"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1.7923447e-6)" /><linearGradient
inkscape:collect="never"
xlink:href="#linearGradient1024"
id="linearGradient1026"
x1="20.242241"
y1="33.851089"
x2="37.684772"
y2="46.330421"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0816006,0,0,1.0816006,-2.5901136,-2.8438444)" /><linearGradient
xlink:href="#linearGradient1024"
id="linearGradient10606"
x1="13.452065"
y1="32.650345"
x2="48.054203"
y2="44.499554"
gradientUnits="userSpaceOnUse" /><linearGradient
inkscape:collect="never"
xlink:href="#linearGradient13704"
id="linearGradient13706"
x1="18.869927"
y1="34.850642"
x2="44.631165"
y2="34.850642"
gradientUnits="userSpaceOnUse" /><radialGradient
xlink:href="#linearGradient73856"
id="radialGradient73858"
cx="30.094763"
cy="30.901455"
fx="30.094763"
fy="30.901455"
r="11.518468"
gradientTransform="matrix(1.9666691,0,0,2.2620107,-3.8943114,-30.031019)"
gradientUnits="userSpaceOnUse" /><linearGradient
id="linearGradient73856"><stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop73852" /><stop
style="stop-color:#f7f8f9;stop-opacity:1;"
offset="0.15093437"
id="stop77494" /><stop
style="stop-color:#ccd0d6;stop-opacity:1;"
offset="0.53578031"
id="stop73860" /><stop
style="stop-color:#516499;stop-opacity:1;"
offset="1"
id="stop73854" /></linearGradient><linearGradient
xlink:href="#linearGradient77490"
id="linearGradient77492"
x1="15.632637"
y1="25.657946"
x2="36.755505"
y2="51.227448"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.86580682,0,0,0.86580682,29.854566,16.268675)" /><linearGradient
id="linearGradient77490"><stop
style="stop-color:#62697d;stop-opacity:0.4700855;"
offset="0"
id="stop77486" /><stop
style="stop-color:#9f9f9f;stop-opacity:0.49019608;"
offset="0.30279347"
id="stop36247" /><stop
style="stop-color:#444a5a;stop-opacity:0.50196078;"
offset="0.47589374"
id="stop36239" /><stop
style="stop-color:#393e4d;stop-opacity:0.50980392;"
offset="0.64751673"
id="stop36245" /><stop
style="stop-color:#6b7695;stop-opacity:0.52156866;"
offset="0.76340932"
id="stop36241" /><stop
style="stop-color:#2e323f;stop-opacity:0.5254902;"
offset="0.83444887"
id="stop36243" /><stop
style="stop-color:#252834;stop-opacity:0.54131055;"
offset="1"
id="stop77488" /></linearGradient><linearGradient
xlink:href="#linearGradient1229"
id="linearGradient1231"
x1="50.526161"
y1="37.883831"
x2="67.256447"
y2="53.176914"
gradientUnits="userSpaceOnUse"
inkscape:collect="never"
gradientTransform="matrix(1.2173809,0,0,1.2173809,6.9577154,-23.917781)" /><linearGradient
xlink:href="#linearGradient1387"
id="linearGradient1239"
x1="50.526161"
y1="37.883831"
x2="67.256447"
y2="53.176914"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.2173809,0,0,1.2173809,6.9577154,-23.917781)" /><linearGradient
xlink:href="#linearGradient1024"
id="linearGradient3603"
x1="26.842001"
y1="27.440641"
x2="43.276413"
y2="45.617104"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-3.6320054,-0.42729918)" /><radialGradient
inkscape:collect="never"
xlink:href="#linearGradient2"
id="radialGradient3"
cx="47.831398"
cy="2.4104715"
fx="47.831398"
fy="2.4104715"
r="15.008372"
gradientUnits="userSpaceOnUse" /><radialGradient
inkscape:collect="never"
xlink:href="#linearGradient3"
id="radialGradient5"
cx="32.117443"
cy="35.526367"
fx="32.117443"
fy="35.526367"
r="13.498731"
gradientTransform="matrix(1,0,0,1.0568721,1.7923447e-6,-2.0204599)"
gradientUnits="userSpaceOnUse" /></defs><sodipodi:namedview
id="namedview6"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
showgrid="false"
inkscape:zoom="8.0000004"
inkscape:cx="-15.624999"
inkscape:cy="20.562499"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="g2210"
showguides="false" /><g
id="g2210"
transform="matrix(0.54328517,0,0,0.54328517,-9.4489315,-11.300948)"><ellipse
style="opacity:1;fill:#9f2f55;fill-opacity:0.771966;stroke-width:2.99955;stroke-linecap:round;stroke-linejoin:round;stroke-dashoffset:3.6;paint-order:stroke fill markers"
id="path1"
cx="32.117443"
cy="35.526367"
rx="14.032981"
ry="14.831065" /><path
id="path2"
style="opacity:1;fill:#f2c1c1;fill-opacity:1;stroke-width:3.68130792;stroke-linecap:round;stroke-linejoin:round;stroke-dashoffset:3.6;paint-order:stroke fill markers;stroke:#f23434;stroke-opacity:1;stroke-dasharray:none"
d="M 32.952673 2.168975 A 15.00837 1.8457839 0 0 0 32.823027 2.4104715 A 15.00837 1.8457839 0 0 0 42.121913 4.1187413 A 5.7860374 6.1179051 45 0 0 43.710705 7.4513927 A 5.7860374 6.1179051 45 0 0 46.163801 8.8724088 A 15.00837 1.8457839 90 0 0 47.831398 17.418842 A 15.00837 1.8457839 90 0 0 49.504078 8.806315 A 5.7860374 6.1179051 45 0 0 52.130035 7.2175224 A 5.7860374 6.1179051 45 0 0 53.848473 4.1009468 A 15.00837 1.8457839 0 0 0 62.839768 2.4104715 A 15.00837 1.8457839 0 0 0 53.606977 0.70728585 A 5.7860374 6.1179051 45 0 0 52.363905 -1.2018073 A 5.7860374 6.1179051 45 0 0 49.565088 -2.7041696 A 15.00837 1.8457839 90 0 0 47.831398 -12.597899 A 15.00837 1.8457839 90 0 0 46.082455 -2.3787849 A 5.7860374 6.1179051 45 0 0 43.947118 -0.965395 A 5.7860374 6.1179051 45 0 0 42.75743 0.67169689 A 15.00837 1.8457839 0 0 0 32.952673 2.168975 z "
transform="rotate(45)" /><ellipse
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.68131;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:3.6;stroke-opacity:1;paint-order:stroke fill markers"
id="path3"
cx="31.649044"
cy="35.854084"
rx="4.0199261"
ry="4.2035775" /></g></svg>

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dwi8fojg2liiy"
path="res://.godot/imported/FlareLayer.svg-e1353f58817cb61a716788afff27f399.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/rokojori_action_library/Icons/FlareLayer.svg"
dest_files=["res://.godot/imported/FlareLayer.svg-e1353f58817cb61a716788afff27f399.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

341
Icons/FlarePreset.svg Normal file
View File

@ -0,0 +1,341 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
height="16"
viewBox="0 0 16 16"
width="16"
version="1.1"
id="svg4"
sodipodi:docname="FlarePreset.svg"
inkscape:version="1.4.3 (0d15f75, 2025-12-25)"
xml:space="preserve"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs8"><linearGradient
id="linearGradient3"
inkscape:collect="never"><stop
style="stop-color:#d83636;stop-opacity:0.83529412;"
offset="0.2804164"
id="stop6" /><stop
style="stop-color:#d83636;stop-opacity:0;"
offset="1"
id="stop5" /></linearGradient><linearGradient
id="linearGradient2"
inkscape:collect="never"><stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop2" /><stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop3" /></linearGradient><linearGradient
inkscape:collect="never"
id="linearGradient3601"><stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop3597" /><stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop3599" /></linearGradient><linearGradient
inkscape:collect="never"
id="linearGradient1387"><stop
style="stop-color:#f70000;stop-opacity:1;"
offset="0"
id="stop1365" /><stop
style="stop-color:#fa7207;stop-opacity:1;"
offset="0.15848443"
id="stop1367" /><stop
style="stop-color:#ffce12;stop-opacity:1;"
offset="0.30084926"
id="stop1369" /><stop
style="stop-color:#a1e00a;stop-opacity:1;"
offset="0.37199998"
id="stop1371" /><stop
style="stop-color:#24f800;stop-opacity:1;"
offset="0.44346777"
id="stop1373" /><stop
style="stop-color:#1beda1;stop-opacity:1;"
offset="0.51599997"
id="stop1375" /><stop
style="stop-color:#18e9e9;stop-opacity:1;"
offset="0.56800002"
id="stop1377" /><stop
style="stop-color:#1e97ff;stop-opacity:1;"
offset="0.64159107"
id="stop1379" /><stop
style="stop-color:#272eff;stop-opacity:1;"
offset="0.73000002"
id="stop1381" /><stop
style="stop-color:#f604ff;stop-opacity:1;"
offset="0.86199999"
id="stop1383" /><stop
style="stop-color:#000000;stop-opacity:1"
offset="1"
id="stop1385" /></linearGradient><linearGradient
inkscape:collect="never"
id="linearGradient1237"><stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop1233" /><stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop1235" /></linearGradient><linearGradient
inkscape:collect="never"
id="linearGradient1229"><stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop1225" /><stop
style="stop-color:#000000;stop-opacity:1"
offset="1"
id="stop1227" /></linearGradient><linearGradient
inkscape:collect="never"
id="linearGradient13704"><stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop13700" /><stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop13702" /></linearGradient><linearGradient
inkscape:collect="never"
id="linearGradient10604"><stop
style="stop-color:#18e9e8;stop-opacity:1;"
offset="0"
id="stop10600" /><stop
style="stop-color:#18e9e8;stop-opacity:0;"
offset="1"
id="stop10602" /></linearGradient><linearGradient
inkscape:collect="never"
id="linearGradient1024"><stop
style="stop-color:#f70000;stop-opacity:1;"
offset="0"
id="stop1020" /><stop
style="stop-color:#fa7207;stop-opacity:1;"
offset="0.15848443"
id="stop1149" /><stop
style="stop-color:#ffce12;stop-opacity:1;"
offset="0.30084926"
id="stop1096" /><stop
style="stop-color:#a1e00a;stop-opacity:1;"
offset="0.37199998"
id="stop1153" /><stop
style="stop-color:#24f800;stop-opacity:1;"
offset="0.44346777"
id="stop1092" /><stop
style="stop-color:#1beda1;stop-opacity:1;"
offset="0.51599997"
id="stop1151" /><stop
style="stop-color:#18e9e9;stop-opacity:1;"
offset="0.56800002"
id="stop1098" /><stop
style="stop-color:#1e97ff;stop-opacity:1;"
offset="0.64159107"
id="stop1155" /><stop
style="stop-color:#272eff;stop-opacity:1;"
offset="0.73000002"
id="stop1094" /><stop
style="stop-color:#f604ff;stop-opacity:1;"
offset="0.86199999"
id="stop1100" /><stop
style="stop-color:#ff0202;stop-opacity:1;"
offset="1"
id="stop1022" /></linearGradient><linearGradient
inkscape:collect="never"
id="linearGradient3074"><stop
style="stop-color:#e26708;stop-opacity:1;"
offset="0"
id="stop3070" /><stop
style="stop-color:#bb3c00;stop-opacity:1;"
offset="1"
id="stop3072" /></linearGradient><radialGradient
xlink:href="#linearGradient45008"
id="radialGradient3076"
cx="30.688875"
cy="30.069115"
fx="30.688875"
fy="30.069115"
r="14.05412"
gradientUnits="userSpaceOnUse" /><linearGradient
xlink:href="#linearGradient45008"
id="linearGradient45010"
x1="-31.87768"
y1="22.065159"
x2="-31.87768"
y2="48.78738"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(101.16951,-6.5921995)" /><linearGradient
id="linearGradient45008"><stop
style="stop-color:#e14500;stop-opacity:1;"
offset="0"
id="stop45004" /><stop
style="stop-color:#e17900;stop-opacity:1;"
offset="0.59811592"
id="stop45012" /><stop
style="stop-color:#e19c00;stop-opacity:1;"
offset="1"
id="stop45006" /></linearGradient><linearGradient
xlink:href="#linearGradient45008"
id="linearGradient46715"
x1="31.917692"
y1="47.524929"
x2="31.917692"
y2="22.632998"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1.7923447e-6)" /><linearGradient
inkscape:collect="never"
xlink:href="#linearGradient1024"
id="linearGradient1026"
x1="20.242241"
y1="33.851089"
x2="37.684772"
y2="46.330421"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0816006,0,0,1.0816006,-2.5901136,-2.8438444)" /><linearGradient
xlink:href="#linearGradient1024"
id="linearGradient10606"
x1="13.452065"
y1="32.650345"
x2="48.054203"
y2="44.499554"
gradientUnits="userSpaceOnUse" /><linearGradient
inkscape:collect="never"
xlink:href="#linearGradient13704"
id="linearGradient13706"
x1="18.869927"
y1="34.850642"
x2="44.631165"
y2="34.850642"
gradientUnits="userSpaceOnUse" /><radialGradient
xlink:href="#linearGradient73856"
id="radialGradient73858"
cx="30.094763"
cy="30.901455"
fx="30.094763"
fy="30.901455"
r="11.518468"
gradientTransform="matrix(1.9666691,0,0,2.2620107,-3.8943114,-30.031019)"
gradientUnits="userSpaceOnUse" /><linearGradient
id="linearGradient73856"><stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop73852" /><stop
style="stop-color:#f7f8f9;stop-opacity:1;"
offset="0.15093437"
id="stop77494" /><stop
style="stop-color:#ccd0d6;stop-opacity:1;"
offset="0.53578031"
id="stop73860" /><stop
style="stop-color:#516499;stop-opacity:1;"
offset="1"
id="stop73854" /></linearGradient><linearGradient
xlink:href="#linearGradient77490"
id="linearGradient77492"
x1="15.632637"
y1="25.657946"
x2="36.755505"
y2="51.227448"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.86580682,0,0,0.86580682,29.854566,16.268675)" /><linearGradient
id="linearGradient77490"><stop
style="stop-color:#62697d;stop-opacity:0.4700855;"
offset="0"
id="stop77486" /><stop
style="stop-color:#9f9f9f;stop-opacity:0.49019608;"
offset="0.30279347"
id="stop36247" /><stop
style="stop-color:#444a5a;stop-opacity:0.50196078;"
offset="0.47589374"
id="stop36239" /><stop
style="stop-color:#393e4d;stop-opacity:0.50980392;"
offset="0.64751673"
id="stop36245" /><stop
style="stop-color:#6b7695;stop-opacity:0.52156866;"
offset="0.76340932"
id="stop36241" /><stop
style="stop-color:#2e323f;stop-opacity:0.5254902;"
offset="0.83444887"
id="stop36243" /><stop
style="stop-color:#252834;stop-opacity:0.54131055;"
offset="1"
id="stop77488" /></linearGradient><linearGradient
xlink:href="#linearGradient1229"
id="linearGradient1231"
x1="50.526161"
y1="37.883831"
x2="67.256447"
y2="53.176914"
gradientUnits="userSpaceOnUse"
inkscape:collect="never"
gradientTransform="matrix(1.2173809,0,0,1.2173809,6.9577154,-23.917781)" /><linearGradient
xlink:href="#linearGradient1387"
id="linearGradient1239"
x1="50.526161"
y1="37.883831"
x2="67.256447"
y2="53.176914"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.2173809,0,0,1.2173809,6.9577154,-23.917781)" /><linearGradient
xlink:href="#linearGradient1024"
id="linearGradient3603"
x1="26.842001"
y1="27.440641"
x2="43.276413"
y2="45.617104"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-3.6320054,-0.42729918)" /><radialGradient
inkscape:collect="never"
xlink:href="#linearGradient2"
id="radialGradient3"
cx="47.831398"
cy="2.4104715"
fx="47.831398"
fy="2.4104715"
r="15.008372"
gradientUnits="userSpaceOnUse" /><radialGradient
inkscape:collect="never"
xlink:href="#linearGradient3"
id="radialGradient5"
cx="32.117443"
cy="35.526367"
fx="32.117443"
fy="35.526367"
r="13.498731"
gradientTransform="matrix(1,0,0,1.0568721,1.7923447e-6,-2.0204599)"
gradientUnits="userSpaceOnUse" /></defs><sodipodi:namedview
id="namedview6"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
showgrid="false"
inkscape:zoom="11.313709"
inkscape:cx="5.8336307"
inkscape:cy="14.274718"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="g2210"
showguides="false" /><g
id="g2210"
transform="matrix(0.54328517,0,0,0.54328517,-9.4489315,-11.300948)"><ellipse
style="opacity:1;fill:#9f2f55;fill-opacity:0.771966;stroke-width:2.99955;stroke-linecap:round;stroke-linejoin:round;stroke-dashoffset:3.6;paint-order:stroke fill markers"
id="path1"
cx="32.117443"
cy="35.526367"
rx="14.032981"
ry="14.831065" /><path
id="path2"
style="opacity:1;fill:#f2c1c1;fill-opacity:1;stroke-width:3.68130792;stroke-linecap:round;stroke-linejoin:round;stroke-dashoffset:3.6;paint-order:stroke fill markers;stroke:#f23434;stroke-opacity:1;stroke-dasharray:none"
d="M 32.952673 2.168975 A 15.00837 1.8457839 0 0 0 32.823027 2.4104715 A 15.00837 1.8457839 0 0 0 42.121913 4.1187413 A 5.7860374 6.1179051 45 0 0 43.710705 7.4513927 A 5.7860374 6.1179051 45 0 0 46.163801 8.8724088 A 15.00837 1.8457839 90 0 0 47.831398 17.418842 A 15.00837 1.8457839 90 0 0 49.504078 8.806315 A 5.7860374 6.1179051 45 0 0 52.130035 7.2175224 A 5.7860374 6.1179051 45 0 0 53.848473 4.1009468 A 15.00837 1.8457839 0 0 0 62.839768 2.4104715 A 15.00837 1.8457839 0 0 0 53.606977 0.70728585 A 5.7860374 6.1179051 45 0 0 52.363905 -1.2018073 A 5.7860374 6.1179051 45 0 0 49.565088 -2.7041696 A 15.00837 1.8457839 90 0 0 47.831398 -12.597899 A 15.00837 1.8457839 90 0 0 46.082455 -2.3787849 A 5.7860374 6.1179051 45 0 0 43.947118 -0.965395 A 5.7860374 6.1179051 45 0 0 42.75743 0.67169689 A 15.00837 1.8457839 0 0 0 32.952673 2.168975 z "
transform="rotate(45)" /><ellipse
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.68131;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:3.6;stroke-opacity:1;paint-order:stroke fill markers"
id="path3"
cx="31.649044"
cy="35.854084"
rx="4.0199261"
ry="4.2035775" /></g></svg>

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cnlcxdt2wtmkm"
path="res://.godot/imported/FlarePreset.svg-857e6afe476b69ed548435249c549c84.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/rokojori_action_library/Icons/FlarePreset.svg"
dest_files=["res://.godot/imported/FlarePreset.svg-857e6afe476b69ed548435249c549c84.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

341
Icons/FlareVFX.svg Normal file
View File

@ -0,0 +1,341 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
height="16"
viewBox="0 0 16 16"
width="16"
version="1.1"
id="svg4"
sodipodi:docname="FlareVFX.svg"
inkscape:version="1.4.3 (0d15f75, 2025-12-25)"
xml:space="preserve"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs8"><linearGradient
id="linearGradient3"
inkscape:collect="never"><stop
style="stop-color:#d83636;stop-opacity:0.83529412;"
offset="0.2804164"
id="stop6" /><stop
style="stop-color:#d83636;stop-opacity:0;"
offset="1"
id="stop5" /></linearGradient><linearGradient
id="linearGradient2"
inkscape:collect="never"><stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop2" /><stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop3" /></linearGradient><linearGradient
inkscape:collect="never"
id="linearGradient3601"><stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop3597" /><stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop3599" /></linearGradient><linearGradient
inkscape:collect="never"
id="linearGradient1387"><stop
style="stop-color:#f70000;stop-opacity:1;"
offset="0"
id="stop1365" /><stop
style="stop-color:#fa7207;stop-opacity:1;"
offset="0.15848443"
id="stop1367" /><stop
style="stop-color:#ffce12;stop-opacity:1;"
offset="0.30084926"
id="stop1369" /><stop
style="stop-color:#a1e00a;stop-opacity:1;"
offset="0.37199998"
id="stop1371" /><stop
style="stop-color:#24f800;stop-opacity:1;"
offset="0.44346777"
id="stop1373" /><stop
style="stop-color:#1beda1;stop-opacity:1;"
offset="0.51599997"
id="stop1375" /><stop
style="stop-color:#18e9e9;stop-opacity:1;"
offset="0.56800002"
id="stop1377" /><stop
style="stop-color:#1e97ff;stop-opacity:1;"
offset="0.64159107"
id="stop1379" /><stop
style="stop-color:#272eff;stop-opacity:1;"
offset="0.73000002"
id="stop1381" /><stop
style="stop-color:#f604ff;stop-opacity:1;"
offset="0.86199999"
id="stop1383" /><stop
style="stop-color:#000000;stop-opacity:1"
offset="1"
id="stop1385" /></linearGradient><linearGradient
inkscape:collect="never"
id="linearGradient1237"><stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop1233" /><stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop1235" /></linearGradient><linearGradient
inkscape:collect="never"
id="linearGradient1229"><stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop1225" /><stop
style="stop-color:#000000;stop-opacity:1"
offset="1"
id="stop1227" /></linearGradient><linearGradient
inkscape:collect="never"
id="linearGradient13704"><stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop13700" /><stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop13702" /></linearGradient><linearGradient
inkscape:collect="never"
id="linearGradient10604"><stop
style="stop-color:#18e9e8;stop-opacity:1;"
offset="0"
id="stop10600" /><stop
style="stop-color:#18e9e8;stop-opacity:0;"
offset="1"
id="stop10602" /></linearGradient><linearGradient
inkscape:collect="never"
id="linearGradient1024"><stop
style="stop-color:#f70000;stop-opacity:1;"
offset="0"
id="stop1020" /><stop
style="stop-color:#fa7207;stop-opacity:1;"
offset="0.15848443"
id="stop1149" /><stop
style="stop-color:#ffce12;stop-opacity:1;"
offset="0.30084926"
id="stop1096" /><stop
style="stop-color:#a1e00a;stop-opacity:1;"
offset="0.37199998"
id="stop1153" /><stop
style="stop-color:#24f800;stop-opacity:1;"
offset="0.44346777"
id="stop1092" /><stop
style="stop-color:#1beda1;stop-opacity:1;"
offset="0.51599997"
id="stop1151" /><stop
style="stop-color:#18e9e9;stop-opacity:1;"
offset="0.56800002"
id="stop1098" /><stop
style="stop-color:#1e97ff;stop-opacity:1;"
offset="0.64159107"
id="stop1155" /><stop
style="stop-color:#272eff;stop-opacity:1;"
offset="0.73000002"
id="stop1094" /><stop
style="stop-color:#f604ff;stop-opacity:1;"
offset="0.86199999"
id="stop1100" /><stop
style="stop-color:#ff0202;stop-opacity:1;"
offset="1"
id="stop1022" /></linearGradient><linearGradient
inkscape:collect="never"
id="linearGradient3074"><stop
style="stop-color:#e26708;stop-opacity:1;"
offset="0"
id="stop3070" /><stop
style="stop-color:#bb3c00;stop-opacity:1;"
offset="1"
id="stop3072" /></linearGradient><radialGradient
xlink:href="#linearGradient45008"
id="radialGradient3076"
cx="30.688875"
cy="30.069115"
fx="30.688875"
fy="30.069115"
r="14.05412"
gradientUnits="userSpaceOnUse" /><linearGradient
xlink:href="#linearGradient45008"
id="linearGradient45010"
x1="-31.87768"
y1="22.065159"
x2="-31.87768"
y2="48.78738"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(101.16951,-6.5921995)" /><linearGradient
id="linearGradient45008"><stop
style="stop-color:#e14500;stop-opacity:1;"
offset="0"
id="stop45004" /><stop
style="stop-color:#e17900;stop-opacity:1;"
offset="0.59811592"
id="stop45012" /><stop
style="stop-color:#e19c00;stop-opacity:1;"
offset="1"
id="stop45006" /></linearGradient><linearGradient
xlink:href="#linearGradient45008"
id="linearGradient46715"
x1="31.917692"
y1="47.524929"
x2="31.917692"
y2="22.632998"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1.7923447e-6)" /><linearGradient
inkscape:collect="never"
xlink:href="#linearGradient1024"
id="linearGradient1026"
x1="20.242241"
y1="33.851089"
x2="37.684772"
y2="46.330421"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0816006,0,0,1.0816006,-2.5901136,-2.8438444)" /><linearGradient
xlink:href="#linearGradient1024"
id="linearGradient10606"
x1="13.452065"
y1="32.650345"
x2="48.054203"
y2="44.499554"
gradientUnits="userSpaceOnUse" /><linearGradient
inkscape:collect="never"
xlink:href="#linearGradient13704"
id="linearGradient13706"
x1="18.869927"
y1="34.850642"
x2="44.631165"
y2="34.850642"
gradientUnits="userSpaceOnUse" /><radialGradient
xlink:href="#linearGradient73856"
id="radialGradient73858"
cx="30.094763"
cy="30.901455"
fx="30.094763"
fy="30.901455"
r="11.518468"
gradientTransform="matrix(1.9666691,0,0,2.2620107,-3.8943114,-30.031019)"
gradientUnits="userSpaceOnUse" /><linearGradient
id="linearGradient73856"><stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop73852" /><stop
style="stop-color:#f7f8f9;stop-opacity:1;"
offset="0.15093437"
id="stop77494" /><stop
style="stop-color:#ccd0d6;stop-opacity:1;"
offset="0.53578031"
id="stop73860" /><stop
style="stop-color:#516499;stop-opacity:1;"
offset="1"
id="stop73854" /></linearGradient><linearGradient
xlink:href="#linearGradient77490"
id="linearGradient77492"
x1="15.632637"
y1="25.657946"
x2="36.755505"
y2="51.227448"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.86580682,0,0,0.86580682,29.854566,16.268675)" /><linearGradient
id="linearGradient77490"><stop
style="stop-color:#62697d;stop-opacity:0.4700855;"
offset="0"
id="stop77486" /><stop
style="stop-color:#9f9f9f;stop-opacity:0.49019608;"
offset="0.30279347"
id="stop36247" /><stop
style="stop-color:#444a5a;stop-opacity:0.50196078;"
offset="0.47589374"
id="stop36239" /><stop
style="stop-color:#393e4d;stop-opacity:0.50980392;"
offset="0.64751673"
id="stop36245" /><stop
style="stop-color:#6b7695;stop-opacity:0.52156866;"
offset="0.76340932"
id="stop36241" /><stop
style="stop-color:#2e323f;stop-opacity:0.5254902;"
offset="0.83444887"
id="stop36243" /><stop
style="stop-color:#252834;stop-opacity:0.54131055;"
offset="1"
id="stop77488" /></linearGradient><linearGradient
xlink:href="#linearGradient1229"
id="linearGradient1231"
x1="50.526161"
y1="37.883831"
x2="67.256447"
y2="53.176914"
gradientUnits="userSpaceOnUse"
inkscape:collect="never"
gradientTransform="matrix(1.2173809,0,0,1.2173809,6.9577154,-23.917781)" /><linearGradient
xlink:href="#linearGradient1387"
id="linearGradient1239"
x1="50.526161"
y1="37.883831"
x2="67.256447"
y2="53.176914"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.2173809,0,0,1.2173809,6.9577154,-23.917781)" /><linearGradient
xlink:href="#linearGradient1024"
id="linearGradient3603"
x1="26.842001"
y1="27.440641"
x2="43.276413"
y2="45.617104"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-3.6320054,-0.42729918)" /><radialGradient
inkscape:collect="never"
xlink:href="#linearGradient2"
id="radialGradient3"
cx="47.831398"
cy="2.4104715"
fx="47.831398"
fy="2.4104715"
r="15.008372"
gradientUnits="userSpaceOnUse" /><radialGradient
inkscape:collect="never"
xlink:href="#linearGradient3"
id="radialGradient5"
cx="32.117443"
cy="35.526367"
fx="32.117443"
fy="35.526367"
r="13.498731"
gradientTransform="matrix(1,0,0,1.0568721,1.7923447e-6,-2.0204599)"
gradientUnits="userSpaceOnUse" /></defs><sodipodi:namedview
id="namedview6"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
showgrid="false"
inkscape:zoom="11.313709"
inkscape:cx="5.8336307"
inkscape:cy="14.274718"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="g2210"
showguides="false" /><g
id="g2210"
transform="matrix(0.54328517,0,0,0.54328517,-9.4489315,-11.300948)"><ellipse
style="opacity:1;fill:#9f2f55;fill-opacity:0.771966;stroke-width:2.99955;stroke-linecap:round;stroke-linejoin:round;stroke-dashoffset:3.6;paint-order:stroke fill markers"
id="path1"
cx="32.117443"
cy="35.526367"
rx="14.032981"
ry="14.831065" /><path
id="path2"
style="opacity:1;fill:#f2c1c1;fill-opacity:1;stroke-width:3.68130792;stroke-linecap:round;stroke-linejoin:round;stroke-dashoffset:3.6;paint-order:stroke fill markers;stroke:#f23434;stroke-opacity:1;stroke-dasharray:none"
d="M 32.952673 2.168975 A 15.00837 1.8457839 0 0 0 32.823027 2.4104715 A 15.00837 1.8457839 0 0 0 42.121913 4.1187413 A 5.7860374 6.1179051 45 0 0 43.710705 7.4513927 A 5.7860374 6.1179051 45 0 0 46.163801 8.8724088 A 15.00837 1.8457839 90 0 0 47.831398 17.418842 A 15.00837 1.8457839 90 0 0 49.504078 8.806315 A 5.7860374 6.1179051 45 0 0 52.130035 7.2175224 A 5.7860374 6.1179051 45 0 0 53.848473 4.1009468 A 15.00837 1.8457839 0 0 0 62.839768 2.4104715 A 15.00837 1.8457839 0 0 0 53.606977 0.70728585 A 5.7860374 6.1179051 45 0 0 52.363905 -1.2018073 A 5.7860374 6.1179051 45 0 0 49.565088 -2.7041696 A 15.00837 1.8457839 90 0 0 47.831398 -12.597899 A 15.00837 1.8457839 90 0 0 46.082455 -2.3787849 A 5.7860374 6.1179051 45 0 0 43.947118 -0.965395 A 5.7860374 6.1179051 45 0 0 42.75743 0.67169689 A 15.00837 1.8457839 0 0 0 32.952673 2.168975 z "
transform="rotate(45)" /><ellipse
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.68131;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:3.6;stroke-opacity:1;paint-order:stroke fill markers"
id="path3"
cx="31.649044"
cy="35.854084"
rx="4.0199261"
ry="4.2035775" /></g></svg>

After

Width:  |  Height:  |  Size: 13 KiB

43
Icons/FlareVFX.svg.import Normal file
View File

@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b7u8spfui08e7"
path="res://.godot/imported/FlareVFX.svg-7c0691138c416c828300e95f7f8b3111.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/rokojori_action_library/Icons/FlareVFX.svg"
dest_files=["res://.godot/imported/FlareVFX.svg-7c0691138c416c828300e95f7f8b3111.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View File

@ -0,0 +1,56 @@
using Godot;
namespace Rokojori
{
[Tool][GlobalClass ]
public partial class SetScreenTransform : Action
{
[Export]
public Camera3D source;
[Export]
public Node3D target;
[Export]
public Vector3 screenPosition;
protected override void _OnTrigger()
{
var applyingSource = source;
if ( Engine.IsEditorHint() )
{
#if TOOLS
applyingSource = EditorInterface.Singleton.GetEditorViewport3D().GetCamera3D();
#endif
}
if ( source == null )
{
return;
}
target.GlobalPosition = NormalizedScreenToWorld( applyingSource, screenPosition.XY(), screenPosition.Z );
target.SetGlobalQuaternion( applyingSource.GlobalQuaternion() );
}
public static Vector3 NormalizedScreenToWorld( Camera3D camera, Vector2 normalizedPos, float depth )
{
var viewPort = camera.GetViewport();
var viewportSize = viewPort.GetVisibleRect().Size;
var screenPixelPos = new Vector2(
normalizedPos.X * viewportSize.X,
normalizedPos.Y * viewportSize.Y
);
return camera.ProjectPosition(screenPixelPos, depth);
}
}
}

View File

@ -0,0 +1 @@
uid://cf5jsfq6agufc

View File

@ -0,0 +1,22 @@
using Godot;
namespace Rokojori
{
[Tool]
[GlobalClass ]
public partial class SetLabelText : Action
{
[Export]
public Label3D label;
[Export]
public string text;
protected override void _OnTrigger()
{
label.Text = text;
}
}
}

View File

@ -0,0 +1 @@
uid://bvomnqpw05n5w

View File

@ -5,6 +5,22 @@ namespace Rokojori
{
public static class ColorX
{
public static float GetColorScale( this Color c )
{
return Mathf.Max( 1f, Mathf.Max( c.R, Mathf.Max( c.G, c.B ) ) );
}
public static Color ScaleColor( this Color c, float scale )
{
return new Color( c.R * scale, c.G * scale, c.B * scale, c.A );
}
public static HSLColor ToHSL( this Color c, float scale = 1f )
{
return HSLColor.FromRGBA( c.ScaleColor( 1f / scale ) );
}
public static float r( this Vector4 rgba )
{
return rgba.X;

View File

@ -174,6 +174,43 @@ namespace Rokojori
return new HSLColor( h, s, l, a );
}
static float modPolarDegrees( float value )
{
return MathX.Repeat( value + 180.0f, 360.0f ) - 180.0f;
}
public static float hue360ToYB( float hue )
{
return modPolarDegrees( hue - 240.0f );
}
public static float ybToHue360( float yb )
{
return ( yb + 240.0f ) % 360.0f;
}
public static float changeHue360( float hue, float change )
{
float yb = hue360ToYB( hue );
float absYB = Mathf.Abs( yb );
absYB = Mathf.Clamp( absYB + change, 0.0f, 180.0f );
float realYB = Mathf.Sign( yb ) * absYB;
return ybToHue360( realYB );
}
public static float ShiftTemparatureOfHue( float hue, float offset, float blendRadius = 60f )
{
float distanceToYellow = Mathf.Min( 1.0f, Mathf.Abs( hue - 60.0f ) / blendRadius );
float distanceToBlue = Mathf.Min( 1.0f, Mathf.Abs( hue - 240.0f ) / blendRadius );
return changeHue360( hue, offset * distanceToYellow * distanceToBlue );
}
public static Color Lerp( Color x, Color y, float t )
{
var hx = new HSLColor( x );
@ -185,7 +222,7 @@ namespace Rokojori
}
public Color ToRGBA()
public Color ToRGBA( float scale = 1 )
{
var r = 0f;
var g = 0f;
@ -208,6 +245,10 @@ namespace Rokojori
b = Value( m1, m2, h - 120f );
}
r *= scale;
g *= scale;
b *= scale;
return new Color( r, g, b, a );
}

View File

@ -304,6 +304,15 @@ namespace Rokojori
public static string Normalize( string path, bool removeFirst = true, bool removeLast = true )
{
var protocollStart = path.IndexOf( "://" );
var protocoll = "";
if ( protocollStart != -1 )
{
protocoll = path.Substring( 0, protocollStart + 3 );
path = path.Substring( protocollStart + 3 );
}
path = Regex.Replace( path, @"\\", "/" );
path = Regex.Replace( path, @"/+", "/" );
@ -317,9 +326,7 @@ namespace Rokojori
path = Regex.Replace( path, @"/$", "" );
}
return path;
return protocoll + path;
}
public static string Join( params string[] paths )

View File

@ -104,6 +104,11 @@ namespace Rokojori
public static List<FilePath> GetFiles( string path, System.Func<FilePath,bool> evaluator = null, bool recursive = false )
{
if ( ! Directory.Exists( path ) )
{
return [];
}
var list = new List<FilePath>();
var files = Directory.GetFiles( path, "*", recursive ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly );

View File

@ -0,0 +1,12 @@
using Godot;
using System.Text;
using System.Collections.Generic;
namespace Rokojori
{
public class ResourceRunner<R,D,P> where R:Resource where P:Node
{
public D data;
}
}

View File

@ -0,0 +1 @@
uid://b0iux3mchi43r

View File

@ -12,5 +12,21 @@ namespace Rokojori
{
public static readonly string AddonLibraryPath = "res://addons/rokojori_action_library/";
public static readonly string RuntimePath = "res://addons/rokojori_action_library/Runtime/";
public static string ProjectPath()
{
return ProjectSettings.GlobalizePath( "res://" );
}
public static string ToGlobal( string path )
{
if ( path.StartsWith( "res://" ) )
{
return path.Replace( "res://", ProjectPath() );
}
return path;
}
}
}

View File

@ -0,0 +1,14 @@
using System.Collections;
using System.Collections.Generic;
using Godot;
using System;
using System.Threading.Tasks;
namespace Rokojori
{
[GlobalClass,Tool]
public partial class ExtendedMesh:Mesh
{
}
}

View File

@ -0,0 +1 @@
uid://lf7pc0al3lb8

View File

@ -0,0 +1,26 @@
using System.Collections;
using System.Collections.Generic;
using Godot;
using System;
namespace Rokojori
{
[Tool]
[GlobalClass]
public partial class MeshGenerator:Node
{
[Export]
public MeshGeneratorType generator;
[ExportToolButton( "Generate")]
public Callable generateButton => Callable.From( ()=>{ mesh = generator.Generate(); } );
[Export]
public ArrayMesh mesh;
}
}

View File

@ -0,0 +1 @@
uid://csr18y8chfxwo

View File

@ -0,0 +1,91 @@
using System.Collections;
using System.Collections.Generic;
using Godot;
using System;
namespace Rokojori
{
[Tool]
[GlobalClass]
public abstract partial class MeshGeneratorType:Resource
{
[Export]
public bool cacheMeshes = true;
public static readonly string cachePath = "res://.rokojori/cache/MeshGeneratorType";
public static string GetProjectCachePath( string cacheName )
{
return FilePath.Join( cachePath, cacheName + ".tres" );
}
public static ArrayMesh FromCache( string cacheName )
{
var path = GetProjectCachePath( cacheName );
var globalPath = Paths.ToGlobal( path );
RJLog.Log( path, globalPath );
if ( ! FilesSync.FileExists( globalPath ) )
{
return null;
}
return GD.Load<ArrayMesh>( path );
}
public static void ToCache( string cacheName, ArrayMesh arrayMesh )
{
var path = GetProjectCachePath( cacheName );
var globalPath = Paths.ToGlobal( path );
RJLog.Log( path, globalPath );
FilesSync.EnsureParentDirectoryExists( globalPath );
ResourceSaver.Save( arrayMesh, path, ResourceSaver.SaverFlags.Compress );
}
public ArrayMesh Generate()
{
var cachePath = GetCachePath();
if ( cachePath != null && Engine.IsEditorHint() )
{
this.LogInfo( "Checking cache for:", cachePath );
var cached = FromCache( cachePath );
if ( cached != null )
{
this.LogInfo( "Found cache for:", cachePath, cached.SurfaceGetArrayLen( 0 ) );
return cached;
}
this.LogInfo( "Not cached:", cachePath );
}
var mg = _GenerateMeshGeometry();
var arrayMesh = mg.GenerateMesh();
if ( cachePath != null && Engine.IsEditorHint() )
{
this.LogInfo( "To cache:", cachePath, arrayMesh.SurfaceGetArrayLen( 0 ) );
ToCache( cachePath, arrayMesh );
return FromCache( cachePath );
}
return arrayMesh;
}
protected abstract string GetCachePath();
protected abstract MeshGeometry _GenerateMeshGeometry();
}
}

View File

@ -0,0 +1 @@
uid://bv1dvb053gokl

View File

@ -0,0 +1,27 @@
using System.Collections;
using System.Collections.Generic;
using Godot;
using System;
namespace Rokojori
{
[Tool]
[GlobalClass]
public partial class UnitBillboardQuadsGenerator:MeshGeneratorType
{
[Export]
public int num = 1;
protected override string GetCachePath()
{
return "UnitBillboardQuadsGenerator-" + num;
}
protected override MeshGeometry _GenerateMeshGeometry()
{
return MeshGeometry.UnitBillboardQuads( num, 0f, 1f );
}
}
}

View File

@ -0,0 +1 @@
uid://djb5k01vcut20

View File

@ -863,7 +863,7 @@ namespace Rokojori
for ( int i = 0; i < num; i++ )
{
var t = num == 1 ? 0 : i / ( num - 1f );
var t = num <= 1 ? 0.5f : i / ( num - 1f );
var z = Mathf.Lerp( zMin, zMax, t );
var quad = BillboardQuad( 1f, z );

View File

@ -63,7 +63,7 @@ height = 1
noise = SubResource("FastNoiseLite_gxlxg")
seamless = true
[sub_resource type="CompositorEffect" id="CompositorEffect_mdsx3"]
[sub_resource type="CompositorEffect" id="CompositorEffect_fv6nb"]
resource_local_to_scene = false
resource_name = ""
enabled = true
@ -115,7 +115,7 @@ height = 256
noise = SubResource("FastNoiseLite_w6tyf")
seamless = true
[sub_resource type="CompositorEffect" id="CompositorEffect_wpvj8"]
[sub_resource type="CompositorEffect" id="CompositorEffect_faje8"]
resource_local_to_scene = false
resource_name = ""
enabled = true
@ -155,7 +155,7 @@ metadata/_custom_type_script = "uid://dvvfvlutisecy"
script = ExtResource("3_55j2s")
owner = SubResource("Resource_i5utj")
[sub_resource type="CompositorEffect" id="CompositorEffect_ysmsc"]
[sub_resource type="CompositorEffect" id="CompositorEffect_55j2s"]
resource_local_to_scene = false
resource_name = ""
enabled = true
@ -201,7 +201,7 @@ metadata/_custom_type_script = "uid://dvvfvlutisecy"
script = ExtResource("3_55j2s")
owner = SubResource("Resource_i5utj")
[sub_resource type="CompositorEffect" id="CompositorEffect_t5au6"]
[sub_resource type="CompositorEffect" id="CompositorEffect_rxqvv"]
resource_local_to_scene = false
resource_name = ""
enabled = true
@ -234,5 +234,5 @@ metadata/_custom_type_script = "uid://6jkixa201wux"
[resource]
script = ExtResource("8_v2hqv")
effects = [SubResource("CompositorEffect_mdsx3"), SubResource("CompositorEffect_wpvj8"), SubResource("CompositorEffect_ysmsc"), SubResource("CompositorEffect_t5au6")]
effects = [SubResource("CompositorEffect_fv6nb"), SubResource("CompositorEffect_faje8"), SubResource("CompositorEffect_55j2s"), SubResource("CompositorEffect_rxqvv")]
metadata/_custom_type_script = "uid://ckixweetchlo0"

View File

@ -47,7 +47,7 @@ fill_from = Vector2(0.5, 0.50427353)
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_g6idi"]
load_path = "res://.godot/imported/star-glow.png-61f0458024aeba1668f3516b3db84782.ctex"
[sub_resource type="CompositorEffect" id="CompositorEffect_ixqtu"]
[sub_resource type="CompositorEffect" id="CompositorEffect_e74ec"]
resource_local_to_scene = false
resource_name = ""
enabled = true
@ -55,7 +55,7 @@ effect_callback_type = 4
needs_motion_vectors = false
needs_normal_roughness = false
script = ExtResource("4_chktd")
opacity = 0.5578947
opacity = 0.0
blendMode = 1
overlayTexture = SubResource("CompressedTexture2D_g6idi")
overlayTint = Color(1, 1, 1, 0.050980393)
@ -94,7 +94,7 @@ use_hdr = true
fill = 1
fill_from = Vector2(0.5, 0.50427353)
[sub_resource type="CompositorEffect" id="CompositorEffect_m7r8b"]
[sub_resource type="CompositorEffect" id="CompositorEffect_bfksq"]
resource_local_to_scene = false
resource_name = ""
enabled = true
@ -102,7 +102,7 @@ effect_callback_type = 4
needs_motion_vectors = false
needs_normal_roughness = false
script = ExtResource("4_chktd")
opacity = 0.5578947
opacity = 0.0
blendMode = 1
overlayTexture = ExtResource("5_1gqhf")
overlayTint = Color(1, 1, 1, 0.21568628)
@ -128,7 +128,7 @@ curve = SubResource("Curve_nxurn")
script = ExtResource("3_eyvih")
owner = SubResource("Resource_1ntwo")
[sub_resource type="CompositorEffect" id="CompositorEffect_sw5v3"]
[sub_resource type="CompositorEffect" id="CompositorEffect_eyvih"]
resource_local_to_scene = false
resource_name = ""
enabled = true
@ -136,7 +136,7 @@ effect_callback_type = 4
needs_motion_vectors = false
needs_normal_roughness = false
script = ExtResource("6_t8xaw")
distortionAmount = 0.12
distortionAmount = 0.0
ellipseScale = 1.138
ringsDistribution = 0.7727
animationTargets = [SubResource("Resource_35pef")]
@ -156,7 +156,7 @@ curve = SubResource("Curve_71075")
script = ExtResource("3_eyvih")
owner = SubResource("Resource_1ntwo")
[sub_resource type="CompositorEffect" id="CompositorEffect_wi6eu"]
[sub_resource type="CompositorEffect" id="CompositorEffect_chktd"]
resource_local_to_scene = false
resource_name = ""
enabled = true
@ -164,7 +164,7 @@ effect_callback_type = 4
needs_motion_vectors = false
needs_normal_roughness = false
script = ExtResource("7_g2w8j")
amount = 1.0
amount = 0.0
num = 3
distortionAmount = 0.4369
distortionAngle = 168.8496
@ -198,7 +198,7 @@ curve = SubResource("Curve_su8gi")
script = ExtResource("3_eyvih")
owner = SubResource("Resource_1ntwo")
[sub_resource type="CompositorEffect" id="CompositorEffect_7720d"]
[sub_resource type="CompositorEffect" id="CompositorEffect_1gqhf"]
resource_local_to_scene = false
resource_name = ""
enabled = true
@ -206,7 +206,7 @@ effect_callback_type = 4
needs_motion_vectors = false
needs_normal_roughness = false
script = ExtResource("8_bfeok")
amount = 1.0
amount = 0.0
saturationOffset = 30.0
saturationGamma = 37.9747
lightnessOffset = 2.0
@ -217,5 +217,5 @@ metadata/_custom_type_script = "uid://pevgspwywsxi"
[resource]
script = ExtResource("9_fgrt2")
effects = [SubResource("CompositorEffect_ixqtu"), SubResource("CompositorEffect_m7r8b"), SubResource("CompositorEffect_sw5v3"), SubResource("CompositorEffect_wi6eu"), SubResource("CompositorEffect_7720d")]
effects = [SubResource("CompositorEffect_e74ec"), SubResource("CompositorEffect_bfksq"), SubResource("CompositorEffect_eyvih"), SubResource("CompositorEffect_chktd"), SubResource("CompositorEffect_1gqhf")]
metadata/_custom_type_script = "uid://ckixweetchlo0"

View File

@ -61,7 +61,7 @@ noise = SubResource("FastNoiseLite_3tnad")
color_ramp = SubResource("Gradient_0c48d")
seamless = true
[sub_resource type="CompositorEffect" id="CompositorEffect_ysmsc"]
[sub_resource type="CompositorEffect" id="CompositorEffect_nnbdi"]
resource_local_to_scene = false
resource_name = ""
enabled = true
@ -69,7 +69,7 @@ effect_callback_type = 4
needs_motion_vectors = false
needs_normal_roughness = false
script = ExtResource("4_qyiel")
amount = 0.1
amount = 0.0
blendMode = 0.0
inputFading = SubResource("GradientTexture2D_i46l2")
outputFading = SubResource("GradientTexture2D_d1ujc")
@ -82,7 +82,7 @@ smearingSteps = 10
smearing = 1.5
redShift = 0.1689
blueShift = -0.0889
lumaTint = Color(0.8206905, 0.5294989, 0.1740212, 1)
lumaTint = Color(2.3825946, 1.5737975, 0.5791954, 1)
lumaInputRange = Vector2(1.015, 1.5)
lumaOutputRange = Vector2(0, 1)
desaturation = 0.0
@ -143,7 +143,7 @@ colors = PackedColorArray(1, 1, 1, 1)
gradient = SubResource("Gradient_ie6m2")
width = 2
[sub_resource type="CompositorEffect" id="CompositorEffect_7axlu"]
[sub_resource type="CompositorEffect" id="CompositorEffect_c6fon"]
resource_local_to_scene = false
resource_name = ""
enabled = true
@ -151,7 +151,7 @@ effect_callback_type = 4
needs_motion_vectors = false
needs_normal_roughness = false
script = ExtResource("6_cc1ov")
amount = 1.0
amount = 0.0
lumaTint = Color(0.26849365, 0.1881681, 0.06346091, 1)
blurRadius = 2
lumaInputRange = Vector2(1, 1.5)
@ -179,7 +179,7 @@ metadata/_custom_type_script = "uid://dvvfvlutisecy"
script = ExtResource("3_c6fon")
owner = SubResource("Resource_d1ujc")
[sub_resource type="CompositorEffect" id="CompositorEffect_frwbc"]
[sub_resource type="CompositorEffect" id="CompositorEffect_qyiel"]
resource_local_to_scene = false
resource_name = ""
enabled = true
@ -187,9 +187,9 @@ effect_callback_type = 4
needs_motion_vectors = false
needs_normal_roughness = false
script = ExtResource("7_nnbdi")
amount = 1.0
amount = 0.0
num = 1
blendMode = 0.7151
blendMode = 0.51
distortionAmount = 0.3446
distortionAngle = 0.0
distortionAngleSpeed = 0.0
@ -198,7 +198,7 @@ redShift = 0.0415
blueShift = -0.0065
blurRadiusX = 5
blurRadiusY = 5
lumaTint = Color(1.340301, 0.78043133, 0, 1)
lumaTint = Color(4.2130003, 3.380445, 0.5407243, 1)
downSampling = 3
animationTargets = [SubResource("Resource_22k1k")]
compositorEffectID = SubResource("Resource_hpfyh")
@ -206,5 +206,5 @@ metadata/_custom_type_script = "uid://6jkixa201wux"
[resource]
script = ExtResource("7_txjlu")
effects = [SubResource("CompositorEffect_ysmsc"), SubResource("CompositorEffect_7axlu"), SubResource("CompositorEffect_frwbc")]
effects = [SubResource("CompositorEffect_nnbdi"), SubResource("CompositorEffect_c6fon"), SubResource("CompositorEffect_qyiel")]
metadata/_custom_type_script = "uid://ckixweetchlo0"

View File

@ -1,7 +1,8 @@
[gd_resource type="Resource" script_class="CompositorVFXPreset" load_steps=35 format=3 uid="uid://0blw3yhjw7y0"]
[gd_resource type="Resource" script_class="CompositorVFXPreset" load_steps=36 format=3 uid="uid://0blw3yhjw7y0"]
[ext_resource type="Script" uid="uid://cx5qcow1mmd11" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffectReferences/CompositorEffectOwner.cs" id="1_0ail8"]
[ext_resource type="Script" uid="uid://dvvfvlutisecy" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/AnimationTargets/CompFXMemberCurveTarget.cs" id="1_4xviq"]
[ext_resource type="Resource" uid="uid://bwhnq7w0tpgv" path="res://VFX/Action FX Compositor Effect Layer.tres" id="2_4xviq"]
[ext_resource type="Script" uid="uid://comuvej4dr22k" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffectReferences/RokojoriCompositorEffectID.cs" id="2_tc21q"]
[ext_resource type="Script" uid="uid://bx4j8ic80vl7f" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffects/Edge/DepthOutlines/DepthOutlinesEffect.cs" id="3_dryyw"]
[ext_resource type="Texture2D" uid="uid://c30nul6romace" path="res://addons/rokojori_action_library/Runtime/Procedural/Noise/RGB 3D Noise.png" id="5_orb2s"]
@ -25,6 +26,7 @@ script = ExtResource("1_0ail8")
[sub_resource type="Resource" id="Resource_p64cs"]
script = ExtResource("2_tc21q")
owner = SubResource("Resource_ie6m2")
layer = ExtResource("2_4xviq")
[sub_resource type="Curve" id="Curve_7axlu"]
_data = [Vector2(0, 1), 0.0, -18.573792, 0, 0, Vector2(0.07774799, 0.15679264), -0.687919, -0.687919, 0, 0, Vector2(1, 0), -0.069252, 0.0, 0, 0]
@ -48,7 +50,7 @@ point_count = 3
[sub_resource type="CurveTexture" id="CurveTexture_hpfyh"]
curve = SubResource("Curve_22k1k")
[sub_resource type="CompositorEffect" id="CompositorEffect_ie6m2"]
[sub_resource type="CompositorEffect" id="CompositorEffect_4xviq"]
resource_local_to_scene = false
resource_name = ""
enabled = true
@ -56,6 +58,7 @@ effect_callback_type = 4
needs_motion_vectors = false
needs_normal_roughness = false
script = ExtResource("3_dryyw")
amount = 0.0
outlineWidth = -0.0516
outlineWidthCurve = SubResource("CurveTexture_p64cs")
edgeColor = Color(0.14817011, 0.21073082, 0.29634023, 1)
@ -89,6 +92,7 @@ metadata/_custom_type_script = "uid://dvvfvlutisecy"
[sub_resource type="Resource" id="Resource_hpfyh"]
script = ExtResource("2_tc21q")
owner = SubResource("Resource_ie6m2")
layer = ExtResource("2_4xviq")
[sub_resource type="Gradient" id="Gradient_frwbc"]
offsets = PackedFloat32Array(1)
@ -97,7 +101,7 @@ colors = PackedColorArray(1, 1, 1, 1)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_w6tyf"]
gradient = SubResource("Gradient_frwbc")
[sub_resource type="CompositorEffect" id="CompositorEffect_i5utj"]
[sub_resource type="CompositorEffect" id="CompositorEffect_0m0g3"]
resource_local_to_scene = false
resource_name = ""
enabled = true
@ -106,6 +110,7 @@ needs_motion_vectors = false
needs_normal_roughness = false
script = ExtResource("6_hdnet")
distortionAmount = 0.0049
blendAmount = 0.0
smearingSteps = 1
smearing = 1.0
redShift = 0.0
@ -132,6 +137,7 @@ metadata/_custom_type_script = "uid://dvvfvlutisecy"
[sub_resource type="Resource" id="Resource_gxlxg"]
script = ExtResource("2_tc21q")
owner = SubResource("Resource_ie6m2")
layer = ExtResource("2_4xviq")
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_4n83u"]
load_path = "res://.godot/imported/RGB 3D Noise.png-daebfe00d2f3fcd5d3bc528f8a3972e1.ctex"
@ -143,7 +149,7 @@ colors = PackedColorArray(1, 1, 1, 1)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_ixn1d"]
gradient = SubResource("Gradient_72jau")
[sub_resource type="CompositorEffect" id="CompositorEffect_22k1k"]
[sub_resource type="CompositorEffect" id="CompositorEffect_orb2s"]
resource_local_to_scene = false
resource_name = ""
enabled = true
@ -152,6 +158,7 @@ needs_motion_vectors = false
needs_normal_roughness = false
script = ExtResource("6_hdnet")
distortionAmount = 0.0026
blendAmount = 0.0
smearingSteps = 1
smearing = 1.0
redShift = 0.0
@ -168,8 +175,9 @@ metadata/_custom_type_script = "uid://balixgskgouhm"
[sub_resource type="Resource" id="Resource_3tnad"]
script = ExtResource("2_tc21q")
owner = SubResource("Resource_ie6m2")
layer = ExtResource("2_4xviq")
[sub_resource type="CompositorEffect" id="CompositorEffect_y3g14"]
[sub_resource type="CompositorEffect" id="CompositorEffect_hdnet"]
resource_local_to_scene = false
resource_name = ""
enabled = true
@ -184,5 +192,5 @@ metadata/_custom_type_script = "uid://cjfxcl3cdhnku"
[resource]
script = ExtResource("6_orb2s")
effects = [SubResource("CompositorEffect_ie6m2"), SubResource("CompositorEffect_i5utj"), SubResource("CompositorEffect_22k1k"), SubResource("CompositorEffect_y3g14")]
effects = [SubResource("CompositorEffect_4xviq"), SubResource("CompositorEffect_0m0g3"), SubResource("CompositorEffect_orb2s"), SubResource("CompositorEffect_hdnet")]
metadata/_custom_type_script = "uid://ckixweetchlo0"

View File

@ -223,10 +223,7 @@ vec4 colorSpaceConversion( vec4 color, int mode )
return mode == 1 ? LINEARtoSRGB( color ) : SRGBtoLINEAR( color );
}
float modPolarDegrees( float value )
{
return mod( value + 180.0, 360.0 ) - 180.0;
}
vec3 changeHueOfRGB( vec3 rgb, float hueChange )
@ -237,6 +234,11 @@ vec3 changeHueOfRGB( vec3 rgb, float hueChange )
return HSLtoRGB( hsl );
}
float modPolarDegrees( float value )
{
return mod( value + 180.0, 360.0 ) - 180.0;
}
float hue360ToYB( float hue )
{
return modPolarDegrees( hue - 240.0 );

View File

@ -80,6 +80,7 @@ vec2 seamLessCoordinate( vec2 uv, vec2 seamRange, vec2 seamFade, vec2 type )
return mod( uv - seamFade * type, seamRange );
}
float perlinOctavesSeamless( vec2 uv, int octaves, float scale, float gain, vec2 seamRange, vec2 seamFade )
{
// uv = mod( uv , seamRange );
@ -109,57 +110,90 @@ float perlinOctavesSeamless( vec2 uv, int octaves, float scale, float gain, vec2
}
vec2 seamlessModulo( vec2 divident, vec2 divisor )
{
vec2 positiveDivident = mod( divident, divisor ) + divisor;
return mod( positiveDivident, divisor );
}
float perlinSeamlessWithRange( vec2 uv, vec2 repeat )
{
uv *= repeat;
vec2 i = floor( uv );
vec2 f = fract( uv );
vec2 fade = f;
vec2 i00 = mod( i + vec2( 0.0, 0.0 ), repeat );
vec2 i10 = mod( i + vec2( 1.0, 0.0 ), repeat );
vec2 i01 = mod( i + vec2( 0.0, 1.0 ), repeat );
vec2 i11 = mod( i + vec2( 1.0, 1.0 ), repeat );
float a = random( i00 );
float b = random( i10 );
float c = random( i01 );
float d = random( i11 );
return mix(
mix(a, b, fade.x),
mix(c, d, fade.x),
fade.y
);
}
float perlin3D( vec3 uvw )
{
vec3 gridIndex = floor( uvw );
vec3 gridFract = fract( uvw );
vec3 gridIndex = floor( uvw );
vec3 gridFract = fract( uvw );
vec3 blur = smoothstep( 0.0, 1.0, gridFract );
vec3 blur = smoothstep( 0.0, 1.0, gridFract );
vec3 blb = gridIndex + vec3(0.0, 0.0, 0.0);
vec3 brb = gridIndex + vec3(1.0, 0.0, 0.0);
vec3 tlb = gridIndex + vec3(0.0, 1.0, 0.0);
vec3 trb = gridIndex + vec3(1.0, 1.0, 0.0);
vec3 blf = gridIndex + vec3(0.0, 0.0, 1.0);
vec3 brf = gridIndex + vec3(1.0, 0.0, 1.0);
vec3 tlf = gridIndex + vec3(0.0, 1.0, 1.0);
vec3 trf = gridIndex + vec3(1.0, 1.0, 1.0);
vec3 blb = gridIndex + vec3(0.0, 0.0, 0.0);
vec3 brb = gridIndex + vec3(1.0, 0.0, 0.0);
vec3 tlb = gridIndex + vec3(0.0, 1.0, 0.0);
vec3 trb = gridIndex + vec3(1.0, 1.0, 0.0);
vec3 blf = gridIndex + vec3(0.0, 0.0, 1.0);
vec3 brf = gridIndex + vec3(1.0, 0.0, 1.0);
vec3 tlf = gridIndex + vec3(0.0, 1.0, 1.0);
vec3 trf = gridIndex + vec3(1.0, 1.0, 1.0);
vec3 gradBLB = random_v3( blb );
vec3 gradBRB = random_v3( brb );
vec3 gradTLB = random_v3( tlb );
vec3 gradTRB = random_v3( trb );
vec3 gradBLF = random_v3( blf );
vec3 gradBRF = random_v3( brf );
vec3 gradTLF = random_v3( tlf );
vec3 gradTRF = random_v3( trf );
vec3 gradBLB = random_v3( blb );
vec3 gradBRB = random_v3( brb );
vec3 gradTLB = random_v3( tlb );
vec3 gradTRB = random_v3( trb );
vec3 gradBLF = random_v3( blf );
vec3 gradBRF = random_v3( brf );
vec3 gradTLF = random_v3( tlf );
vec3 gradTRF = random_v3( trf );
vec3 distToPixelFromBLB = gridFract - vec3( 0.0, 0.0, 0.0 );
vec3 distToPixelFromBRB = gridFract - vec3( 1.0, 0.0, 0.0 );
vec3 distToPixelFromTLB = gridFract - vec3( 0.0, 1.0, 0.0 );
vec3 distToPixelFromTRB = gridFract - vec3( 1.0, 1.0, 0.0 );
vec3 distToPixelFromBLF = gridFract - vec3( 0.0, 0.0, 1.0 );
vec3 distToPixelFromBRF = gridFract - vec3( 1.0, 0.0, 1.0 );
vec3 distToPixelFromTLF = gridFract - vec3( 0.0, 1.0, 1.0 );
vec3 distToPixelFromTRF = gridFract - vec3( 1.0, 1.0, 1.0 );
vec3 distToPixelFromBLB = gridFract - vec3( 0.0, 0.0, 0.0 );
vec3 distToPixelFromBRB = gridFract - vec3( 1.0, 0.0, 0.0 );
vec3 distToPixelFromTLB = gridFract - vec3( 0.0, 1.0, 0.0 );
vec3 distToPixelFromTRB = gridFract - vec3( 1.0, 1.0, 0.0 );
vec3 distToPixelFromBLF = gridFract - vec3( 0.0, 0.0, 1.0 );
vec3 distToPixelFromBRF = gridFract - vec3( 1.0, 0.0, 1.0 );
vec3 distToPixelFromTLF = gridFract - vec3( 0.0, 1.0, 1.0 );
vec3 distToPixelFromTRF = gridFract - vec3( 1.0, 1.0, 1.0 );
float dotBLB = dot( gradBLB, distToPixelFromBLB );
float dotBRB = dot( gradBRB, distToPixelFromBRB );
float dotTLB = dot( gradTLB, distToPixelFromTLB );
float dotTRB = dot( gradTRB, distToPixelFromTRB );
float dotBLF = dot( gradBLF, distToPixelFromBLF );
float dotBRF = dot( gradBRF, distToPixelFromBRF );
float dotTLF = dot( gradTLF, distToPixelFromTLF );
float dotTRF = dot( gradTRF, distToPixelFromTRF );
float dotBLB = dot( gradBLB, distToPixelFromBLB );
float dotBRB = dot( gradBRB, distToPixelFromBRB );
float dotTLB = dot( gradTLB, distToPixelFromTLB );
float dotTRB = dot( gradTRB, distToPixelFromTRB );
float dotBLF = dot( gradBLF, distToPixelFromBLF );
float dotBRF = dot( gradBRF, distToPixelFromBRF );
float dotTLF = dot( gradTLF, distToPixelFromTLF );
float dotTRF = dot( gradTRF, distToPixelFromTRF );
return mix(
mix( mix(dotBLB, dotBRB, blur.x), mix(dotTLB, dotTRB, blur.x), blur.y ),
mix( mix(dotBLF, dotBRF, blur.x), mix(dotTLF, dotTRF, blur.x), blur.y ),
return mix(
mix( mix(dotBLB, dotBRB, blur.x), mix(dotTLB, dotTRB, blur.x), blur.y ),
mix( mix(dotBLF, dotBRF, blur.x), mix(dotTLF, dotTRF, blur.x), blur.y ),
blur.z
) + 0.5;
) + 0.5;
}
@ -172,56 +206,56 @@ float perlinPolar( vec2 uv )
float worley( vec2 uv, float columns, float rows )
{
vec2 index_uv = floor( vec2( uv.x * columns, uv.y * rows ) );
vec2 fract_uv = fract( vec2( uv.x * columns, uv.y * rows ) );
vec2 index_uv = floor( vec2( uv.x * columns, uv.y * rows ) );
vec2 fract_uv = fract( vec2( uv.x * columns, uv.y * rows ) );
float minimum_dist = 1.0;
float minimum_dist = 1.0;
for ( int y= -1; y <= 1; y++ )
for ( int y= -1; y <= 1; y++ )
{
for ( int x= -1; x <= 1; x++ )
for ( int x= -1; x <= 1; x++ )
{
vec2 neighbor = vec2( float( x ), float( y ) );
vec2 point = random_v2( index_uv + neighbor );
vec2 neighbor = vec2( float( x ), float( y ) );
vec2 point = random_v2( index_uv + neighbor );
vec2 diff = neighbor + point - fract_uv;
float dist = length (diff );
vec2 diff = neighbor + point - fract_uv;
float dist = length (diff );
minimum_dist = min( minimum_dist, dist );
}
}
minimum_dist = min( minimum_dist, dist );
}
}
return minimum_dist;
return minimum_dist;
}
vec2 voronoi( vec2 uv, float columns, float rows )
{
vec2 index_uv = floor( vec2( uv.x * columns, uv.y * rows ) );
vec2 fract_uv = fract( vec2( uv.x * columns, uv.y * rows ) );
vec2 index_uv = floor( vec2( uv.x * columns, uv.y * rows ) );
vec2 fract_uv = fract( vec2( uv.x * columns, uv.y * rows ) );
float minimum_dist = 1.0;
vec2 minimum_point;
float minimum_dist = 1.0;
vec2 minimum_point;
for ( int y= -1; y <= 1; y++ )
for ( int y= -1; y <= 1; y++ )
{
for ( int x= -1; x <= 1; x++ )
for ( int x= -1; x <= 1; x++ )
{
vec2 neighbor = vec2( float( x ), float( y ) );
vec2 point = random_v2( index_uv + neighbor );
vec2 neighbor = vec2( float( x ), float( y ) );
vec2 point = random_v2( index_uv + neighbor );
vec2 diff = neighbor + point - fract_uv;
float dist = length( diff );
vec2 diff = neighbor + point - fract_uv;
float dist = length( diff );
if ( dist < minimum_dist )
if ( dist < minimum_dist )
{
minimum_dist = dist;
minimum_point = point;
}
}
}
minimum_dist = dist;
minimum_point = point;
}
}
}
return minimum_point;
return minimum_point;
}
bool ditherDiscard( float ditherFadeValue, vec4 _FRAGCOORD )

View File

@ -0,0 +1,100 @@
// COLOR
group_uniforms Color;
uniform vec4 color : source_color = vec4( 0.887, 0.434, 0.233, 1.0 );
uniform float opacity = 1;
uniform sampler2D opacityCurve:source_color;
uniform float minHueRandom = 0;
uniform float maxHueRandom = 0;
uniform float shapeNoiseAmount:hint_range(0,1) = 0;
uniform float shapeNoiseScale = 1.0;
group_uniforms;
// SIZE
group_uniforms Size;
uniform float sizeX:hint_range(1,100) = 1;
uniform float sizeY:hint_range(1,100) = 1;
uniform float worldSizeScale = 1;
uniform float screenSizeScale = 1;
uniform float worldSize_vs_screenSize:hint_range(0,1) = 0.5;
uniform float randomScaleMin = 1.0;
uniform float randomScaleMax = 1.0;
uniform float extension = 1.0;
group_uniforms;
// ROTATION
group_uniforms Rotation;
uniform float rotation:hint_range(-360,360) = 0.0;
uniform float rotationOverX:hint_range(-360,360) = 0.0;
uniform float rotationOverY:hint_range(-360,360) = 0.0;
uniform float rotationPerLayer:hint_range(-360,360) = 0.0;
// uniform float vertexRotation:hint_range(-360,360) = 0.0;
// uniform float vertexRotationOverX:hint_range(-360,360) = 0.0;
// uniform float vertexRotationOverY:hint_range(-360,360) = 0.0;
// uniform float vertexRotationPerLayer:hint_range(-360,360) = 0.0;
group_uniforms;
// SCREEN OFFSET
group_uniforms ScreenOffset;
uniform vec2 screenOffset = vec2( 0, 0 );
uniform vec2 screenOffsetScale = vec2( 0, 0 );
uniform vec2 screenOffsetLayerSpread = vec2( 0, 0 );
group_uniforms;
// CHROMATIC ABERATION
group_uniforms ChromaticAberation;
uniform int chromaticAberationMode = 0;
uniform float chromaticAberationAmount:hint_range(0,100) = 0;
uniform int chromaticAberationSteps:hint_range(0,32) = 1;
uniform vec2 chromaticAberationDirection = vec2( 1.0, 1.0 );
uniform float chromaticAberationDirectionTowardsCenter:hint_range(-1,1) = 1.0;
uniform float chromaticAberationCenterScale:hint_range(0,1000) = 1.0;
uniform float chromaticAberationCenterOffset:hint_range(-1,1) = 1.0;
uniform vec3 chromaticAberationShifts = vec3( 0.95, 1.0, 1.05 );
uniform float chromaticAberationSmear = 1;
group_uniforms;
// FADING
group_uniforms Fading;
uniform int fadingMode = 0;
uniform sampler2D fading:source_color, repeat_disable, filter_linear;
uniform sampler2D opacityFading:source_color, repeat_disable, filter_linear;
uniform sampler2D sizeXfading:source_color, repeat_disable, filter_linear;
uniform sampler2D sizeYfading:source_color, repeat_disable, filter_linear;
uniform float fadingPower = 1.0;
uniform float opacityFadingPower = 1.0;
uniform float sizeXfadingPower = 1.0;
uniform float sizeYfadingPower = 1.0;
varying float opacityFadeValue;
group_uniforms;
// OCCLUSION
group_uniforms Occlusion;
uniform int occlusionMode = 0;
uniform sampler2D depthTexture:hint_depth_texture;
uniform float occlusionZOffset:hint_range(-30,30) = 0;
uniform int occlusionTestMaxSteps = 10;
uniform float occlusionTestStepStride = 1;
uniform float occlusionTest_ViewDependingScaleAmount:hint_range(0,1) = 0.5;
uniform float occlusionTest_ViewDependingDistance = 100;
uniform float occlusionToSize = 0.5;
varying float occlusionAlpha;
group_uniforms;
varying vec4 combinedColor;
varying vec2 centerDirection;
varying float zIndex;
// varying float nodeRotationOffset;

View File

@ -0,0 +1 @@
uid://dijr3jilsh8ue

View File

@ -0,0 +1,250 @@
void vertex()
{
float normalizedIndex = VERTEX.z;
VERTEX.z = 0.0;
zIndex = normalizedIndex;
vec3 viewOffset = viewToWorldDirection( vec3( 0, 0, occlusionZOffset ), INV_VIEW_MATRIX );
vec3 nodePositionView = worldToView( NODE_POSITION_WORLD + viewOffset, VIEW_MATRIX );
vec2 screenPosition = viewToScreen( nodePositionView, PROJECTION_MATRIX );
float fadeValue = 1.0;
float opacityValue = 1.0;
float sizeXFade = 1.0;
float sizeYFade = 1.0;
if ( fadingMode == 1 )
{
float edgeDistance = max( 0.0, -sdBox( screenPosition - vec2( 0.5 ), vec2( 0.5 ) ) ) * 2.0;
fadeValue = pow( edgeDistance, fadingPower );
opacityValue = pow( edgeDistance, opacityFadingPower );
sizeXFade = pow( edgeDistance, sizeXfadingPower );
sizeYFade = pow( edgeDistance, sizeYfadingPower );
}
else if ( fadingMode == 2 )
{
fadeValue = textureLod( fading, screenPosition, 0.0 ).r;
opacityValue = textureLod( opacityFading, screenPosition, 0.0 ).r;
sizeXFade = textureLod( sizeXfading, screenPosition, 0.0 ).r;
sizeYFade = textureLod( sizeYfading, screenPosition, 0.0 ).r;
}
float nodeScale = length( extractScale( MODEL_MATRIX ) );
float sX = sizeX * sizeXFade;
float sY = sizeY * sizeYFade;
vec2 uvPixelSize = vec2( 1.0, 1.0 ) / VIEWPORT_SIZE ;
vec2 scaledUVPixelSize = uvPixelSize * max( 1.0, nodePositionView.z / occlusionTest_ViewDependingDistance );
uvPixelSize = mix( uvPixelSize, scaledUVPixelSize, occlusionTest_ViewDependingScaleAmount );
float occlusionValue = occlusionMode == 0 ? 1.0 : occlusionMode == 1 ?
getQuickOcclusionAt( depthTexture, nodePositionView, uvPixelSize,
occlusionTestMaxSteps, occlusionTestStepStride,
PROJECTION_MATRIX, INV_PROJECTION_MATRIX ) :
getOcclusionAt( depthTexture, nodePositionView, uvPixelSize,
occlusionTestMaxSteps, occlusionTestStepStride,
PROJECTION_MATRIX, INV_PROJECTION_MATRIX );
occlusionAlpha = occlusionValue * fadeValue;
float camDist = length( NODE_POSITION_WORLD - CAMERA_POSITION_WORLD );
float occlusionSizeFactor = mix( 1.0, occlusionAlpha, occlusionToSize );
vec2 sizeScaled = vec2( sX, sY ) * occlusionSizeFactor * nodeScale;
vec2 size = mix( sizeScaled * worldSizeScale, sizeScaled * camDist * 0.1 * screenSizeScale, worldSize_vs_screenSize );
float randomScale = mix( randomScaleMin, randomScaleMax, random( vec2( normalizedIndex ) ) );
size *= randomScale;
size *= extension;
setFlareOffsetMatrix(
MODELVIEW_MATRIX, VIEW_MATRIX, MAIN_CAM_INV_VIEW_MATRIX, MODEL_MATRIX,
screenOffsetScale + screenOffsetLayerSpread * ( normalizedIndex * 2.0 - 1.0 ),
screenOffset
);
vec2 offsetScreenPosition = localToScreen( vec3( 0.0 ), MODELVIEW_MATRIX, PROJECTION_MATRIX );
float combinedRotation = rotation;
combinedRotation += rotationPerLayer * ( normalizedIndex * 2.0 - 1.0 );
combinedRotation += ( offsetScreenPosition.x * 2.0 - 1.0 ) * rotationOverX;
float combinedRotationRadians = combinedRotation / 180.0 * PI;
setFlareScaleRotation(
MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, MODEL_MATRIX,
vec3( size.x, size.y, 1.0 ), combinedRotationRadians
);
// nodeRotationOffset = ( offsetScreenPosition.x * 2.0 - 1.0 ) * rotationOverX;
// nodeRotationOffset += rotationPerLayer * ( normalizedIndex * 2.0 - 1.0 ) ;
centerDirection = ( offsetScreenPosition - screenPosition );
centerDirection.y *= -1.0;
centerDirection = -centerDirection;
centerDirection = rotate_v2( centerDirection, -combinedRotationRadians );
combinedColor = color;
float rgbScale = getRGBScale( combinedColor.rgb );
float randomHueOffset = mix( minHueRandom, maxHueRandom, random( vec2( normalizedIndex ) + vec2( 0.23, 0.13 ) ) );
combinedColor.rgb = changeHueOfRGB( combinedColor.rgb / rgbScale, randomHueOffset ) * rgbScale;
GENERATE_FLARE_VERTEX_DATA
opacityFadeValue = fadeValue * opacityValue;
float opacityMapValue = textureLod( opacityCurve, vec2( normalizedIndex, 0.0 ), 0.0 ).r;
opacityFadeValue *= opacityMapValue * occlusionAlpha * opacity;
UV = ( UV - vec2( 0.5 ) ) * extension + vec2( 0.5 );
// UV = rotateAround_v2( UV, ( nodeRotationOffset + rotation ) / 180.0 * 3.141592653, vec2(0.5) );
}
float mirrorValue( float x )
{
float t = mod( x, 2.0 );
return ( t <= 1.0 ) ? t : 2.0 - t;
}
vec2 mirrorUV( vec2 uv )
{
return vec2( mirrorValue( uv.x ), mirrorValue( uv.y ) );
}
vec2 handleOverflow( vec2 uv )
{
return clamp( uv, vec2( 0.0 ), vec2( 1.0 ) );
// return mirrorUV( uv );
}
vec4 sampleChromatic( vec2 uv, vec2 dir, int steps, vec3 shifts, float smear )
{
vec4 combinedChromatic = vec4( 0.0 );
float weights = 0.0;
for ( int i = -steps; i <= steps; i++ )
{
float t = float( i ) / float( steps );
float w = 1.0 - abs( t );
vec2 stepDir = dir * pow( smear, t );
vec2 rUV = uv + stepDir * shifts.r;
rUV = handleOverflow( rUV );
vec2 gUV = uv + stepDir * shifts.g;
gUV = handleOverflow( gUV );
vec2 bUV = uv + stepDir * shifts.b;
bUV = handleOverflow( bUV );
vec4 colorR = generateFlare( rUV, color, opacityFadeValue );
vec4 colorG = generateFlare( gUV, color, opacityFadeValue );
vec4 colorB = generateFlare( bUV, color, opacityFadeValue );
combinedChromatic.r += colorR.r * w;
combinedChromatic.g += colorG.g * w;
combinedChromatic.b += colorB.b * w;
combinedChromatic.a += colorG.a * w;
weights += w;
}
combinedChromatic /= weights;
return combinedChromatic;
}
void fragment()
{
vec4 flareColor = vec4( 0.0 );
float centerLength = length( centerDirection );
float caAmount = chromaticAberationAmount;
if ( abs( chromaticAberationDirectionTowardsCenter ) > 0.0 )
{
float maxLength = clamp( centerLength * 100.0, 0.0, 1.0 );
caAmount = maxLength * chromaticAberationAmount;
}
vec2 uv = UV;
float rx = clamp( perlin( ( vec2( zIndex * 12.03 ) + UV ) * shapeNoiseScale ), 0.0, 1.0 );
float noiseOpacity = mix( 1.0, rx, shapeNoiseAmount );
if ( chromaticAberationMode != 0 && caAmount > 0.0 && chromaticAberationSteps > 0 )
{
vec2 alignedDir = chromaticAberationDirection;
if ( length( alignedDir ) > 1.0 )
{
alignedDir = normalize( chromaticAberationDirection );
}
vec2 normDir = alignedDir;
if ( centerLength > 0.0 && chromaticAberationDirectionTowardsCenter != 0.0 )
{
float amount = chromaticAberationDirectionTowardsCenter;
vec2 normalizedCenterDirection = normalize( centerDirection );
vec2 centerDir = normalizedCenterDirection;
if ( amount < 0.0 )
{
amount = -amount;
centerDir = -centerDir;
}
alignedDir = mix( normDir, centerDir, amount );
alignedDir = normalize( alignedDir ) / vec2( 100.0 );
}
float centerScale = 1.0;
float centerTreshold = 0.1;
if ( centerLength < centerTreshold )
{
centerScale = centerLength / centerTreshold;
}
// flareColor.rgb = vec3( centerLength, centerScale, 1.0 );
// flareColor.a = 1.0;
flareColor = sampleChromatic( uv, alignedDir * caAmount * centerScale, chromaticAberationSteps, chromaticAberationShifts, chromaticAberationSmear );
}
else
{
flareColor = generateFlare( uv, color, opacityFadeValue );
}
ALBEDO = flareColor.rgb;
ALPHA = flareColor.a * noiseOpacity;
}

View File

@ -0,0 +1 @@
uid://7j2y6whs3pq7

View File

@ -0,0 +1,175 @@
using Godot;
namespace Rokojori
{
// Generated by ShaderClassGenerator
public class BaseFlareShader
{
/*
public static readonly CachedResource<Shader> shader = new CachedResource<Shader>(
"C:/rokojori/godot-projects/winter-tales/addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/BaseFlare/BaseFlare.gdshader"
);
*/
public static readonly ColorPropertyName color = ColorPropertyName.Create( "color" );
public static readonly FloatPropertyName opacity = FloatPropertyName.Create( "opacity" );
public static readonly Sampler2DPropertyName opacityCurve = Sampler2DPropertyName.Create( "opacityCurve" );
public static readonly FloatPropertyName minHueRandom = FloatPropertyName.Create( "minHueRandom" );
public static readonly FloatPropertyName maxHueRandom = FloatPropertyName.Create( "maxHueRandom" );
public static readonly FloatPropertyName shapeNoiseAmount = FloatPropertyName.Create( "shapeNoiseAmount" );
public static readonly FloatPropertyName shapeNoiseScale = FloatPropertyName.Create( "shapeNoiseScale" );
public static readonly FloatPropertyName sizeX = FloatPropertyName.Create( "sizeX" );
public static readonly FloatPropertyName sizeY = FloatPropertyName.Create( "sizeY" );
public static readonly FloatPropertyName worldSizeScale = FloatPropertyName.Create( "worldSizeScale" );
public static readonly FloatPropertyName screenSizeScale = FloatPropertyName.Create( "screenSizeScale" );
public static readonly FloatPropertyName worldSizeVsScreenSize = FloatPropertyName.Create( "worldSize_vs_screenSize" );
public static readonly FloatPropertyName randomScaleMin = FloatPropertyName.Create( "randomScaleMin" );
public static readonly FloatPropertyName randomScaleMax = FloatPropertyName.Create( "randomScaleMax" );
public static readonly FloatPropertyName extension = FloatPropertyName.Create( "extension" );
public static readonly FloatPropertyName rotation = FloatPropertyName.Create( "rotation" );
public static readonly FloatPropertyName rotationOverX = FloatPropertyName.Create( "rotationOverX" );
public static readonly FloatPropertyName rotationOverY = FloatPropertyName.Create( "rotationOverY" );
public static readonly FloatPropertyName rotationPerLayer = FloatPropertyName.Create( "rotationPerLayer" );
public static readonly Vector2PropertyName screenOffset = Vector2PropertyName.Create( "screenOffset" );
public static readonly Vector2PropertyName screenOffsetScale = Vector2PropertyName.Create( "screenOffsetScale" );
public static readonly Vector2PropertyName screenOffsetLayerSpread = Vector2PropertyName.Create( "screenOffsetLayerSpread" );
public static readonly IntPropertyName chromaticAberationMode = IntPropertyName.Create( "chromaticAberationMode" );
public static readonly FloatPropertyName chromaticAberationAmount = FloatPropertyName.Create( "chromaticAberationAmount" );
public static readonly IntPropertyName chromaticAberationSteps = IntPropertyName.Create( "chromaticAberationSteps" );
public static readonly Vector2PropertyName chromaticAberationDirection = Vector2PropertyName.Create( "chromaticAberationDirection" );
public static readonly FloatPropertyName chromaticAberationDirectionTowardsCenter = FloatPropertyName.Create( "chromaticAberationDirectionTowardsCenter" );
public static readonly FloatPropertyName chromaticAberationCenterScale = FloatPropertyName.Create( "chromaticAberationCenterScale" );
public static readonly FloatPropertyName chromaticAberationCenterOffset = FloatPropertyName.Create( "chromaticAberationCenterOffset" );
public static readonly Vector3PropertyName chromaticAberationShifts = Vector3PropertyName.Create( "chromaticAberationShifts" );
public static readonly FloatPropertyName chromaticAberationSmear = FloatPropertyName.Create( "chromaticAberationSmear" );
public static readonly IntPropertyName fadingMode = IntPropertyName.Create( "fadingMode" );
public static readonly Sampler2DPropertyName fading = Sampler2DPropertyName.Create( "fading" );
public static readonly Sampler2DPropertyName opacityFading = Sampler2DPropertyName.Create( "opacityFading" );
public static readonly Sampler2DPropertyName sizeXfading = Sampler2DPropertyName.Create( "sizeXfading" );
public static readonly Sampler2DPropertyName sizeYfading = Sampler2DPropertyName.Create( "sizeYfading" );
public static readonly FloatPropertyName fadingPower = FloatPropertyName.Create( "fadingPower" );
public static readonly FloatPropertyName opacityFadingPower = FloatPropertyName.Create( "opacityFadingPower" );
public static readonly FloatPropertyName sizeXfadingPower = FloatPropertyName.Create( "sizeXfadingPower" );
public static readonly FloatPropertyName sizeYfadingPower = FloatPropertyName.Create( "sizeYfadingPower" );
public static readonly IntPropertyName occlusionMode = IntPropertyName.Create( "occlusionMode" );
public static readonly FloatPropertyName occlusionZOffset = FloatPropertyName.Create( "occlusionZOffset" );
public static readonly IntPropertyName occlusionTestMaxSteps = IntPropertyName.Create( "occlusionTestMaxSteps" );
public static readonly FloatPropertyName occlusionTestStepStride = FloatPropertyName.Create( "occlusionTestStepStride" );
public static readonly FloatPropertyName occlusionTestViewDependingScaleAmount = FloatPropertyName.Create( "occlusionTest_ViewDependingScaleAmount" );
public static readonly FloatPropertyName occlusionTestViewDependingDistance = FloatPropertyName.Create( "occlusionTest_ViewDependingDistance" );
public static readonly FloatPropertyName occlusionToSize = FloatPropertyName.Create( "occlusionToSize" );
}
[Tool]
public partial class BaseFlareMaterial:CustomMaterial
{
public readonly CustomMaterialProperty<Color> color;
public readonly CustomMaterialProperty<float> opacity;
public readonly CustomMaterialProperty<Texture2D> opacityCurve;
public readonly CustomMaterialProperty<float> minHueRandom;
public readonly CustomMaterialProperty<float> maxHueRandom;
public readonly CustomMaterialProperty<float> shapeNoiseAmount;
public readonly CustomMaterialProperty<float> shapeNoiseScale;
public readonly CustomMaterialProperty<float> sizeX;
public readonly CustomMaterialProperty<float> sizeY;
public readonly CustomMaterialProperty<float> worldSizeScale;
public readonly CustomMaterialProperty<float> screenSizeScale;
public readonly CustomMaterialProperty<float> worldSizeVsScreenSize;
public readonly CustomMaterialProperty<float> randomScaleMin;
public readonly CustomMaterialProperty<float> randomScaleMax;
public readonly CustomMaterialProperty<float> extension;
public readonly CustomMaterialProperty<float> rotation;
public readonly CustomMaterialProperty<float> rotationOverX;
public readonly CustomMaterialProperty<float> rotationOverY;
public readonly CustomMaterialProperty<float> rotationPerLayer;
public readonly CustomMaterialProperty<Vector2> screenOffset;
public readonly CustomMaterialProperty<Vector2> screenOffsetScale;
public readonly CustomMaterialProperty<Vector2> screenOffsetLayerSpread;
public readonly CustomMaterialProperty<int> chromaticAberationMode;
public readonly CustomMaterialProperty<float> chromaticAberationAmount;
public readonly CustomMaterialProperty<int> chromaticAberationSteps;
public readonly CustomMaterialProperty<Vector2> chromaticAberationDirection;
public readonly CustomMaterialProperty<float> chromaticAberationDirectionTowardsCenter;
public readonly CustomMaterialProperty<float> chromaticAberationCenterScale;
public readonly CustomMaterialProperty<float> chromaticAberationCenterOffset;
public readonly CustomMaterialProperty<Vector3> chromaticAberationShifts;
public readonly CustomMaterialProperty<float> chromaticAberationSmear;
public readonly CustomMaterialProperty<int> fadingMode;
public readonly CustomMaterialProperty<Texture2D> fading;
public readonly CustomMaterialProperty<Texture2D> opacityFading;
public readonly CustomMaterialProperty<Texture2D> sizeXfading;
public readonly CustomMaterialProperty<Texture2D> sizeYfading;
public readonly CustomMaterialProperty<float> fadingPower;
public readonly CustomMaterialProperty<float> opacityFadingPower;
public readonly CustomMaterialProperty<float> sizeXfadingPower;
public readonly CustomMaterialProperty<float> sizeYfadingPower;
public readonly CustomMaterialProperty<int> occlusionMode;
public readonly CustomMaterialProperty<float> occlusionZOffset;
public readonly CustomMaterialProperty<int> occlusionTestMaxSteps;
public readonly CustomMaterialProperty<float> occlusionTestStepStride;
public readonly CustomMaterialProperty<float> occlusionTestViewDependingScaleAmount;
public readonly CustomMaterialProperty<float> occlusionTestViewDependingDistance;
public readonly CustomMaterialProperty<float> occlusionToSize;
public BaseFlareMaterial()
{
/*
Shader = BaseFlareShader.shader.Get();
*/
color = new CustomMaterialProperty<Color>( this, BaseFlareShader.color );
opacity = new CustomMaterialProperty<float>( this, BaseFlareShader.opacity );
opacityCurve = new CustomMaterialProperty<Texture2D>( this, BaseFlareShader.opacityCurve );
minHueRandom = new CustomMaterialProperty<float>( this, BaseFlareShader.minHueRandom );
maxHueRandom = new CustomMaterialProperty<float>( this, BaseFlareShader.maxHueRandom );
shapeNoiseAmount = new CustomMaterialProperty<float>( this, BaseFlareShader.shapeNoiseAmount );
shapeNoiseScale = new CustomMaterialProperty<float>( this, BaseFlareShader.shapeNoiseScale );
sizeX = new CustomMaterialProperty<float>( this, BaseFlareShader.sizeX );
sizeY = new CustomMaterialProperty<float>( this, BaseFlareShader.sizeY );
worldSizeScale = new CustomMaterialProperty<float>( this, BaseFlareShader.worldSizeScale );
screenSizeScale = new CustomMaterialProperty<float>( this, BaseFlareShader.screenSizeScale );
worldSizeVsScreenSize = new CustomMaterialProperty<float>( this, BaseFlareShader.worldSizeVsScreenSize );
randomScaleMin = new CustomMaterialProperty<float>( this, BaseFlareShader.randomScaleMin );
randomScaleMax = new CustomMaterialProperty<float>( this, BaseFlareShader.randomScaleMax );
extension = new CustomMaterialProperty<float>( this, BaseFlareShader.extension );
rotation = new CustomMaterialProperty<float>( this, BaseFlareShader.rotation );
rotationOverX = new CustomMaterialProperty<float>( this, BaseFlareShader.rotationOverX );
rotationOverY = new CustomMaterialProperty<float>( this, BaseFlareShader.rotationOverY );
rotationPerLayer = new CustomMaterialProperty<float>( this, BaseFlareShader.rotationPerLayer );
screenOffset = new CustomMaterialProperty<Vector2>( this, BaseFlareShader.screenOffset );
screenOffsetScale = new CustomMaterialProperty<Vector2>( this, BaseFlareShader.screenOffsetScale );
screenOffsetLayerSpread = new CustomMaterialProperty<Vector2>( this, BaseFlareShader.screenOffsetLayerSpread );
chromaticAberationMode = new CustomMaterialProperty<int>( this, BaseFlareShader.chromaticAberationMode );
chromaticAberationAmount = new CustomMaterialProperty<float>( this, BaseFlareShader.chromaticAberationAmount );
chromaticAberationSteps = new CustomMaterialProperty<int>( this, BaseFlareShader.chromaticAberationSteps );
chromaticAberationDirection = new CustomMaterialProperty<Vector2>( this, BaseFlareShader.chromaticAberationDirection );
chromaticAberationDirectionTowardsCenter = new CustomMaterialProperty<float>( this, BaseFlareShader.chromaticAberationDirectionTowardsCenter );
chromaticAberationCenterScale = new CustomMaterialProperty<float>( this, BaseFlareShader.chromaticAberationCenterScale );
chromaticAberationCenterOffset = new CustomMaterialProperty<float>( this, BaseFlareShader.chromaticAberationCenterOffset );
chromaticAberationShifts = new CustomMaterialProperty<Vector3>( this, BaseFlareShader.chromaticAberationShifts );
chromaticAberationSmear = new CustomMaterialProperty<float>( this, BaseFlareShader.chromaticAberationSmear );
fadingMode = new CustomMaterialProperty<int>( this, BaseFlareShader.fadingMode );
fading = new CustomMaterialProperty<Texture2D>( this, BaseFlareShader.fading );
opacityFading = new CustomMaterialProperty<Texture2D>( this, BaseFlareShader.opacityFading );
sizeXfading = new CustomMaterialProperty<Texture2D>( this, BaseFlareShader.sizeXfading );
sizeYfading = new CustomMaterialProperty<Texture2D>( this, BaseFlareShader.sizeYfading );
fadingPower = new CustomMaterialProperty<float>( this, BaseFlareShader.fadingPower );
opacityFadingPower = new CustomMaterialProperty<float>( this, BaseFlareShader.opacityFadingPower );
sizeXfadingPower = new CustomMaterialProperty<float>( this, BaseFlareShader.sizeXfadingPower );
sizeYfadingPower = new CustomMaterialProperty<float>( this, BaseFlareShader.sizeYfadingPower );
occlusionMode = new CustomMaterialProperty<int>( this, BaseFlareShader.occlusionMode );
occlusionZOffset = new CustomMaterialProperty<float>( this, BaseFlareShader.occlusionZOffset );
occlusionTestMaxSteps = new CustomMaterialProperty<int>( this, BaseFlareShader.occlusionTestMaxSteps );
occlusionTestStepStride = new CustomMaterialProperty<float>( this, BaseFlareShader.occlusionTestStepStride );
occlusionTestViewDependingScaleAmount = new CustomMaterialProperty<float>( this, BaseFlareShader.occlusionTestViewDependingScaleAmount );
occlusionTestViewDependingDistance = new CustomMaterialProperty<float>( this, BaseFlareShader.occlusionTestViewDependingDistance );
occlusionToSize = new CustomMaterialProperty<float>( this, BaseFlareShader.occlusionToSize );
}
}
}

View File

@ -0,0 +1 @@
uid://dg6f7yio6bhmg

View File

@ -0,0 +1,119 @@
#include "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/Flares.gdshaderinc"
// SHAPE
group_uniforms Shape;
uniform float shapeScale = 1.0;
uniform sampler2D radialFill:source_color, filter_linear, repeat_enable;
uniform float radialFillStrength = 1.0;
uniform float radialFillTile = 1.0;
uniform float radialFillOffset = 0.0;
uniform bool radialFillRepeat = false;
uniform sampler2D conicFill:source_color, filter_linear, repeat_enable;
uniform float conicFillStrength = 1.0;
uniform float conicFillTile = 1.0;
uniform float conicFillOffset = 0.0;
uniform bool conicFillRepeat = false;
uniform float fillMultiply = 0.0;
uniform float fillAdd = 0.0;
uniform float shapeColorize:hint_range(0,1) = 0.0;
uniform sampler2D radialMask:filter_linear, repeat_enable;
uniform float radialMaskStrength = 1.0;
uniform float radialMaskTile = 1.0;
uniform float radialMaskOffset = 0.0;
uniform bool radialMaskRepeat = false;
uniform sampler2D conicMask: filter_linear, repeat_enable;
uniform float conicMaskStrength = 1.0;
uniform float conicMaskTile = 1.0;
uniform float conicMaskOffset = 1.0;
uniform bool conicMaskRepeat = false;
uniform float maskMultiply = 0.0;
uniform float maskAdd = 0.0;
group_uniforms;
#include "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/BaseFlare/BaseFlare-Variables.gdshaderinc"
#define GENERATE_FLARE_VERTEX_DATA \
{ \
\
\
} \
vec3 colorize( vec3 _original, vec3 _color )
{
float _grey = ( _original.r + _original.g + _original.b ) / 3.0;
return _grey < 0.5 ? mix( vec3( 0.0 ), _color, _grey * 2.0 ) :
mix( _color, vec3( 1.0 ), ( _grey - 0.5 ) * 2.0 );
}
vec4 blendColor( vec4 _computedColor, vec4 _tintColor, float _colorize )
{
vec4 _mixed = _computedColor * _tintColor;
vec4 _colorized = vec4( colorize( _tintColor.rgb, _computedColor.rgb ), _computedColor.a * _tintColor.a );
return mix( _mixed, _colorized, _colorize );
}
vec2 polarUV( vec2 _uv, float angleOffset )
{
vec2 toCenter = _uv - vec2( 0.5 );
float d = length( toCenter );
float a = atan( toCenter.y, toCenter.x );
a = ( PI + a + angleOffset + PI * 2.0 * 0.75 ) / ( 2.0 * PI );
vec2 polarUV = vec2( d / 0.5, mod( a, 1.0 ) );
return polarUV;
}
vec4 sample( float x, sampler2D sampler, float strength, float tile, float offset, bool repeat )
{
x = x * tile + offset;
if ( ! repeat )
{
x = clamp( x, 0.0, 1.0 );
}
return textureLod( sampler, vec2( x, 0.0 ), 0 ) * strength;
}
vec4 generateFlare( vec2 _uv, vec4 _color, float _opacity )
{
_uv = ( _uv - vec2( 0.5 ) ) * shapeScale + vec2( 0.5 );
_uv = polarUV( _uv, 0.0 );
vec4 _radialFill = sample( _uv.x, radialFill, radialFillStrength, radialFillTile, radialFillOffset, radialFillRepeat );
vec4 _conicFill = sample( _uv.y, conicFill, conicFillStrength, conicFillTile, conicFillOffset, conicFillRepeat );
float _radialMask = sample( _uv.x, radialMask, radialMaskStrength, radialMaskTile, radialMaskOffset, radialMaskRepeat ).r;
float _conicMask = sample( _uv.y, conicMask, conicMaskStrength, conicMaskTile, conicMaskOffset, conicMaskRepeat ).r;
vec4 fill = _radialFill * _conicFill * fillMultiply + fillAdd * ( _radialFill + _conicFill );
float mask = _radialMask * _conicMask * maskMultiply + maskAdd * ( _radialMask + _conicMask );
vec4 mixedColor = fill;
mixedColor.a *= mask;
mixedColor = blendColor( mixedColor, _color, shapeColorize );
// mixedColor *= _color;
mixedColor.a *= _opacity;
// mixedColor = vec4( 1.0, 1.0, 1.0, _uv.x );
return mixedColor;
}
#include "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/BaseFlare/BaseFlare-VertexFragment.gdshaderinc"

View File

@ -0,0 +1 @@
uid://bj1s1dgcv5ouu

View File

@ -0,0 +1,4 @@
shader_type spatial;
render_mode blend_add, depth_test_disabled, cull_disabled, unshaded, fog_disabled;
#include "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/EllipseType/EllipseTypeFlare.gdshaderinc"

View File

@ -0,0 +1 @@
uid://bbb3acmgbp5p0

View File

@ -0,0 +1,159 @@
using Godot;
namespace Rokojori
{
// Generated by ShaderClassGenerator
public class EllipseTypeFlareAddShader
{
///*
public static readonly CachedResource<Shader> shader = new CachedResource<Shader>(
"res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/EllipseType/Variants/EllipseTypeFlareAdd.gdshader"
);
//*/
public static readonly FloatPropertyName shapeScale = FloatPropertyName.Create( "shapeScale" );
public static readonly Sampler2DPropertyName radialFill = Sampler2DPropertyName.Create( "radialFill" );
public static readonly FloatPropertyName radialFillStrength = FloatPropertyName.Create( "radialFillStrength" );
public static readonly FloatPropertyName radialFillTile = FloatPropertyName.Create( "radialFillTile" );
public static readonly FloatPropertyName radialFillOffset = FloatPropertyName.Create( "radialFillOffset" );
public static readonly BoolPropertyName radialFillRepeat = BoolPropertyName.Create( "radialFillRepeat" );
public static readonly Sampler2DPropertyName conicFill = Sampler2DPropertyName.Create( "conicFill" );
public static readonly FloatPropertyName conicFillStrength = FloatPropertyName.Create( "conicFillStrength" );
public static readonly FloatPropertyName conicFillTile = FloatPropertyName.Create( "conicFillTile" );
public static readonly FloatPropertyName conicFillOffset = FloatPropertyName.Create( "conicFillOffset" );
public static readonly BoolPropertyName conicFillRepeat = BoolPropertyName.Create( "conicFillRepeat" );
public static readonly FloatPropertyName fillMultiply = FloatPropertyName.Create( "fillMultiply" );
public static readonly FloatPropertyName fillAdd = FloatPropertyName.Create( "fillAdd" );
public static readonly FloatPropertyName shapeColorize = FloatPropertyName.Create( "shapeColorize" );
public static readonly Sampler2DPropertyName radialMask = Sampler2DPropertyName.Create( "radialMask" );
public static readonly FloatPropertyName radialMaskStrength = FloatPropertyName.Create( "radialMaskStrength" );
public static readonly FloatPropertyName radialMaskTile = FloatPropertyName.Create( "radialMaskTile" );
public static readonly FloatPropertyName radialMaskOffset = FloatPropertyName.Create( "radialMaskOffset" );
public static readonly BoolPropertyName radialMaskRepeat = BoolPropertyName.Create( "radialMaskRepeat" );
public static readonly Sampler2DPropertyName conicMask = Sampler2DPropertyName.Create( "conicMask" );
public static readonly FloatPropertyName conicMaskStrength = FloatPropertyName.Create( "conicMaskStrength" );
public static readonly FloatPropertyName conicMaskTile = FloatPropertyName.Create( "conicMaskTile" );
public static readonly FloatPropertyName conicMaskOffset = FloatPropertyName.Create( "conicMaskOffset" );
public static readonly BoolPropertyName conicMaskRepeat = BoolPropertyName.Create( "conicMaskRepeat" );
public static readonly FloatPropertyName maskMultiply = FloatPropertyName.Create( "maskMultiply" );
public static readonly FloatPropertyName maskAdd = FloatPropertyName.Create( "maskAdd" );
public static readonly ColorPropertyName color = ColorPropertyName.Create( "color" );
public static readonly FloatPropertyName opacity = FloatPropertyName.Create( "opacity" );
public static readonly Sampler2DPropertyName opacityCurve = Sampler2DPropertyName.Create( "opacityCurve" );
public static readonly FloatPropertyName minHueRandom = FloatPropertyName.Create( "minHueRandom" );
public static readonly FloatPropertyName maxHueRandom = FloatPropertyName.Create( "maxHueRandom" );
public static readonly FloatPropertyName shapeNoiseAmount = FloatPropertyName.Create( "shapeNoiseAmount" );
public static readonly FloatPropertyName shapeNoiseScale = FloatPropertyName.Create( "shapeNoiseScale" );
public static readonly FloatPropertyName sizeX = FloatPropertyName.Create( "sizeX" );
public static readonly FloatPropertyName sizeY = FloatPropertyName.Create( "sizeY" );
public static readonly FloatPropertyName worldSizeScale = FloatPropertyName.Create( "worldSizeScale" );
public static readonly FloatPropertyName screenSizeScale = FloatPropertyName.Create( "screenSizeScale" );
public static readonly FloatPropertyName worldSizeVsScreenSize = FloatPropertyName.Create( "worldSize_vs_screenSize" );
public static readonly FloatPropertyName randomScaleMin = FloatPropertyName.Create( "randomScaleMin" );
public static readonly FloatPropertyName randomScaleMax = FloatPropertyName.Create( "randomScaleMax" );
public static readonly FloatPropertyName extension = FloatPropertyName.Create( "extension" );
public static readonly FloatPropertyName rotation = FloatPropertyName.Create( "rotation" );
public static readonly FloatPropertyName rotationOverX = FloatPropertyName.Create( "rotationOverX" );
public static readonly FloatPropertyName rotationOverY = FloatPropertyName.Create( "rotationOverY" );
public static readonly FloatPropertyName rotationPerLayer = FloatPropertyName.Create( "rotationPerLayer" );
public static readonly Vector2PropertyName screenOffset = Vector2PropertyName.Create( "screenOffset" );
public static readonly Vector2PropertyName screenOffsetScale = Vector2PropertyName.Create( "screenOffsetScale" );
public static readonly Vector2PropertyName screenOffsetLayerSpread = Vector2PropertyName.Create( "screenOffsetLayerSpread" );
public static readonly IntPropertyName chromaticAberationMode = IntPropertyName.Create( "chromaticAberationMode" );
public static readonly FloatPropertyName chromaticAberationAmount = FloatPropertyName.Create( "chromaticAberationAmount" );
public static readonly IntPropertyName chromaticAberationSteps = IntPropertyName.Create( "chromaticAberationSteps" );
public static readonly Vector2PropertyName chromaticAberationDirection = Vector2PropertyName.Create( "chromaticAberationDirection" );
public static readonly FloatPropertyName chromaticAberationDirectionTowardsCenter = FloatPropertyName.Create( "chromaticAberationDirectionTowardsCenter" );
public static readonly FloatPropertyName chromaticAberationCenterScale = FloatPropertyName.Create( "chromaticAberationCenterScale" );
public static readonly FloatPropertyName chromaticAberationCenterOffset = FloatPropertyName.Create( "chromaticAberationCenterOffset" );
public static readonly Vector3PropertyName chromaticAberationShifts = Vector3PropertyName.Create( "chromaticAberationShifts" );
public static readonly FloatPropertyName chromaticAberationSmear = FloatPropertyName.Create( "chromaticAberationSmear" );
public static readonly IntPropertyName fadingMode = IntPropertyName.Create( "fadingMode" );
public static readonly Sampler2DPropertyName fading = Sampler2DPropertyName.Create( "fading" );
public static readonly Sampler2DPropertyName opacityFading = Sampler2DPropertyName.Create( "opacityFading" );
public static readonly Sampler2DPropertyName sizeXfading = Sampler2DPropertyName.Create( "sizeXfading" );
public static readonly Sampler2DPropertyName sizeYfading = Sampler2DPropertyName.Create( "sizeYfading" );
public static readonly FloatPropertyName fadingPower = FloatPropertyName.Create( "fadingPower" );
public static readonly FloatPropertyName opacityFadingPower = FloatPropertyName.Create( "opacityFadingPower" );
public static readonly FloatPropertyName sizeXfadingPower = FloatPropertyName.Create( "sizeXfadingPower" );
public static readonly FloatPropertyName sizeYfadingPower = FloatPropertyName.Create( "sizeYfadingPower" );
public static readonly IntPropertyName occlusionMode = IntPropertyName.Create( "occlusionMode" );
public static readonly FloatPropertyName occlusionZOffset = FloatPropertyName.Create( "occlusionZOffset" );
public static readonly IntPropertyName occlusionTestMaxSteps = IntPropertyName.Create( "occlusionTestMaxSteps" );
public static readonly FloatPropertyName occlusionTestStepStride = FloatPropertyName.Create( "occlusionTestStepStride" );
public static readonly FloatPropertyName occlusionTestViewDependingScaleAmount = FloatPropertyName.Create( "occlusionTest_ViewDependingScaleAmount" );
public static readonly FloatPropertyName occlusionTestViewDependingDistance = FloatPropertyName.Create( "occlusionTest_ViewDependingDistance" );
public static readonly FloatPropertyName occlusionToSize = FloatPropertyName.Create( "occlusionToSize" );
}
[Tool]
public partial class EllipseTypeFlareAddMaterial:BaseFlareMaterial
{
public readonly CustomMaterialProperty<float> shapeScale;
public readonly CustomMaterialProperty<Texture2D> radialFill;
public readonly CustomMaterialProperty<float> radialFillStrength;
public readonly CustomMaterialProperty<float> radialFillTile;
public readonly CustomMaterialProperty<float> radialFillOffset;
public readonly CustomMaterialProperty<bool> radialFillRepeat;
public readonly CustomMaterialProperty<Texture2D> conicFill;
public readonly CustomMaterialProperty<float> conicFillStrength;
public readonly CustomMaterialProperty<float> conicFillTile;
public readonly CustomMaterialProperty<float> conicFillOffset;
public readonly CustomMaterialProperty<bool> conicFillRepeat;
public readonly CustomMaterialProperty<float> fillMultiply;
public readonly CustomMaterialProperty<float> fillAdd;
public readonly CustomMaterialProperty<float> shapeColorize;
public readonly CustomMaterialProperty<Texture2D> radialMask;
public readonly CustomMaterialProperty<float> radialMaskStrength;
public readonly CustomMaterialProperty<float> radialMaskTile;
public readonly CustomMaterialProperty<float> radialMaskOffset;
public readonly CustomMaterialProperty<bool> radialMaskRepeat;
public readonly CustomMaterialProperty<Texture2D> conicMask;
public readonly CustomMaterialProperty<float> conicMaskStrength;
public readonly CustomMaterialProperty<float> conicMaskTile;
public readonly CustomMaterialProperty<float> conicMaskOffset;
public readonly CustomMaterialProperty<bool> conicMaskRepeat;
public readonly CustomMaterialProperty<float> maskMultiply;
public readonly CustomMaterialProperty<float> maskAdd;
public EllipseTypeFlareAddMaterial()
{
///*
Shader = EllipseTypeFlareAddShader.shader.Get();
//*/
shapeScale = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.shapeScale );
radialFill = new CustomMaterialProperty<Texture2D>( this, EllipseTypeFlareAddShader.radialFill );
radialFillStrength = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.radialFillStrength );
radialFillTile = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.radialFillTile );
radialFillOffset = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.radialFillOffset );
radialFillRepeat = new CustomMaterialProperty<bool>( this, EllipseTypeFlareAddShader.radialFillRepeat );
conicFill = new CustomMaterialProperty<Texture2D>( this, EllipseTypeFlareAddShader.conicFill );
conicFillStrength = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.conicFillStrength );
conicFillTile = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.conicFillTile );
conicFillOffset = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.conicFillOffset );
conicFillRepeat = new CustomMaterialProperty<bool>( this, EllipseTypeFlareAddShader.conicFillRepeat );
fillMultiply = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.fillMultiply );
fillAdd = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.fillAdd );
shapeColorize = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.shapeColorize );
radialMask = new CustomMaterialProperty<Texture2D>( this, EllipseTypeFlareAddShader.radialMask );
radialMaskStrength = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.radialMaskStrength );
radialMaskTile = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.radialMaskTile );
radialMaskOffset = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.radialMaskOffset );
radialMaskRepeat = new CustomMaterialProperty<bool>( this, EllipseTypeFlareAddShader.radialMaskRepeat );
conicMask = new CustomMaterialProperty<Texture2D>( this, EllipseTypeFlareAddShader.conicMask );
conicMaskStrength = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.conicMaskStrength );
conicMaskTile = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.conicMaskTile );
conicMaskOffset = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.conicMaskOffset );
conicMaskRepeat = new CustomMaterialProperty<bool>( this, EllipseTypeFlareAddShader.conicMaskRepeat );
maskMultiply = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.maskMultiply );
maskAdd = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.maskAdd );
}
}
}

View File

@ -0,0 +1 @@
uid://cc3jq0uc5ukxw

View File

@ -0,0 +1,4 @@
shader_type spatial;
render_mode blend_mix, depth_test_disabled, cull_disabled, unshaded, fog_disabled;
#include "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/EllipseType/EllipseTypeFlare.gdshaderinc"

View File

@ -0,0 +1 @@
uid://dhxsdn5ken8ed

View File

@ -0,0 +1,159 @@
using Godot;
namespace Rokojori
{
// Generated by ShaderClassGenerator
public class EllipseTypeFlareMixShader
{
///*
public static readonly CachedResource<Shader> shader = new CachedResource<Shader>(
"res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/EllipseType/Variants/EllipseTypeFlareMix.gdshader"
);
//*/
public static readonly FloatPropertyName shapeScale = FloatPropertyName.Create( "shapeScale" );
public static readonly Sampler2DPropertyName radialFill = Sampler2DPropertyName.Create( "radialFill" );
public static readonly FloatPropertyName radialFillStrength = FloatPropertyName.Create( "radialFillStrength" );
public static readonly FloatPropertyName radialFillTile = FloatPropertyName.Create( "radialFillTile" );
public static readonly FloatPropertyName radialFillOffset = FloatPropertyName.Create( "radialFillOffset" );
public static readonly BoolPropertyName radialFillRepeat = BoolPropertyName.Create( "radialFillRepeat" );
public static readonly Sampler2DPropertyName conicFill = Sampler2DPropertyName.Create( "conicFill" );
public static readonly FloatPropertyName conicFillStrength = FloatPropertyName.Create( "conicFillStrength" );
public static readonly FloatPropertyName conicFillTile = FloatPropertyName.Create( "conicFillTile" );
public static readonly FloatPropertyName conicFillOffset = FloatPropertyName.Create( "conicFillOffset" );
public static readonly BoolPropertyName conicFillRepeat = BoolPropertyName.Create( "conicFillRepeat" );
public static readonly FloatPropertyName fillMultiply = FloatPropertyName.Create( "fillMultiply" );
public static readonly FloatPropertyName fillAdd = FloatPropertyName.Create( "fillAdd" );
public static readonly FloatPropertyName shapeColorize = FloatPropertyName.Create( "shapeColorize" );
public static readonly Sampler2DPropertyName radialMask = Sampler2DPropertyName.Create( "radialMask" );
public static readonly FloatPropertyName radialMaskStrength = FloatPropertyName.Create( "radialMaskStrength" );
public static readonly FloatPropertyName radialMaskTile = FloatPropertyName.Create( "radialMaskTile" );
public static readonly FloatPropertyName radialMaskOffset = FloatPropertyName.Create( "radialMaskOffset" );
public static readonly BoolPropertyName radialMaskRepeat = BoolPropertyName.Create( "radialMaskRepeat" );
public static readonly Sampler2DPropertyName conicMask = Sampler2DPropertyName.Create( "conicMask" );
public static readonly FloatPropertyName conicMaskStrength = FloatPropertyName.Create( "conicMaskStrength" );
public static readonly FloatPropertyName conicMaskTile = FloatPropertyName.Create( "conicMaskTile" );
public static readonly FloatPropertyName conicMaskOffset = FloatPropertyName.Create( "conicMaskOffset" );
public static readonly BoolPropertyName conicMaskRepeat = BoolPropertyName.Create( "conicMaskRepeat" );
public static readonly FloatPropertyName maskMultiply = FloatPropertyName.Create( "maskMultiply" );
public static readonly FloatPropertyName maskAdd = FloatPropertyName.Create( "maskAdd" );
public static readonly ColorPropertyName color = ColorPropertyName.Create( "color" );
public static readonly FloatPropertyName opacity = FloatPropertyName.Create( "opacity" );
public static readonly Sampler2DPropertyName opacityCurve = Sampler2DPropertyName.Create( "opacityCurve" );
public static readonly FloatPropertyName minHueRandom = FloatPropertyName.Create( "minHueRandom" );
public static readonly FloatPropertyName maxHueRandom = FloatPropertyName.Create( "maxHueRandom" );
public static readonly FloatPropertyName shapeNoiseAmount = FloatPropertyName.Create( "shapeNoiseAmount" );
public static readonly FloatPropertyName shapeNoiseScale = FloatPropertyName.Create( "shapeNoiseScale" );
public static readonly FloatPropertyName sizeX = FloatPropertyName.Create( "sizeX" );
public static readonly FloatPropertyName sizeY = FloatPropertyName.Create( "sizeY" );
public static readonly FloatPropertyName worldSizeScale = FloatPropertyName.Create( "worldSizeScale" );
public static readonly FloatPropertyName screenSizeScale = FloatPropertyName.Create( "screenSizeScale" );
public static readonly FloatPropertyName worldSizeVsScreenSize = FloatPropertyName.Create( "worldSize_vs_screenSize" );
public static readonly FloatPropertyName randomScaleMin = FloatPropertyName.Create( "randomScaleMin" );
public static readonly FloatPropertyName randomScaleMax = FloatPropertyName.Create( "randomScaleMax" );
public static readonly FloatPropertyName extension = FloatPropertyName.Create( "extension" );
public static readonly FloatPropertyName rotation = FloatPropertyName.Create( "rotation" );
public static readonly FloatPropertyName rotationOverX = FloatPropertyName.Create( "rotationOverX" );
public static readonly FloatPropertyName rotationOverY = FloatPropertyName.Create( "rotationOverY" );
public static readonly FloatPropertyName rotationPerLayer = FloatPropertyName.Create( "rotationPerLayer" );
public static readonly Vector2PropertyName screenOffset = Vector2PropertyName.Create( "screenOffset" );
public static readonly Vector2PropertyName screenOffsetScale = Vector2PropertyName.Create( "screenOffsetScale" );
public static readonly Vector2PropertyName screenOffsetLayerSpread = Vector2PropertyName.Create( "screenOffsetLayerSpread" );
public static readonly IntPropertyName chromaticAberationMode = IntPropertyName.Create( "chromaticAberationMode" );
public static readonly FloatPropertyName chromaticAberationAmount = FloatPropertyName.Create( "chromaticAberationAmount" );
public static readonly IntPropertyName chromaticAberationSteps = IntPropertyName.Create( "chromaticAberationSteps" );
public static readonly Vector2PropertyName chromaticAberationDirection = Vector2PropertyName.Create( "chromaticAberationDirection" );
public static readonly FloatPropertyName chromaticAberationDirectionTowardsCenter = FloatPropertyName.Create( "chromaticAberationDirectionTowardsCenter" );
public static readonly FloatPropertyName chromaticAberationCenterScale = FloatPropertyName.Create( "chromaticAberationCenterScale" );
public static readonly FloatPropertyName chromaticAberationCenterOffset = FloatPropertyName.Create( "chromaticAberationCenterOffset" );
public static readonly Vector3PropertyName chromaticAberationShifts = Vector3PropertyName.Create( "chromaticAberationShifts" );
public static readonly FloatPropertyName chromaticAberationSmear = FloatPropertyName.Create( "chromaticAberationSmear" );
public static readonly IntPropertyName fadingMode = IntPropertyName.Create( "fadingMode" );
public static readonly Sampler2DPropertyName fading = Sampler2DPropertyName.Create( "fading" );
public static readonly Sampler2DPropertyName opacityFading = Sampler2DPropertyName.Create( "opacityFading" );
public static readonly Sampler2DPropertyName sizeXfading = Sampler2DPropertyName.Create( "sizeXfading" );
public static readonly Sampler2DPropertyName sizeYfading = Sampler2DPropertyName.Create( "sizeYfading" );
public static readonly FloatPropertyName fadingPower = FloatPropertyName.Create( "fadingPower" );
public static readonly FloatPropertyName opacityFadingPower = FloatPropertyName.Create( "opacityFadingPower" );
public static readonly FloatPropertyName sizeXfadingPower = FloatPropertyName.Create( "sizeXfadingPower" );
public static readonly FloatPropertyName sizeYfadingPower = FloatPropertyName.Create( "sizeYfadingPower" );
public static readonly IntPropertyName occlusionMode = IntPropertyName.Create( "occlusionMode" );
public static readonly FloatPropertyName occlusionZOffset = FloatPropertyName.Create( "occlusionZOffset" );
public static readonly IntPropertyName occlusionTestMaxSteps = IntPropertyName.Create( "occlusionTestMaxSteps" );
public static readonly FloatPropertyName occlusionTestStepStride = FloatPropertyName.Create( "occlusionTestStepStride" );
public static readonly FloatPropertyName occlusionTestViewDependingScaleAmount = FloatPropertyName.Create( "occlusionTest_ViewDependingScaleAmount" );
public static readonly FloatPropertyName occlusionTestViewDependingDistance = FloatPropertyName.Create( "occlusionTest_ViewDependingDistance" );
public static readonly FloatPropertyName occlusionToSize = FloatPropertyName.Create( "occlusionToSize" );
}
[Tool]
public partial class EllipseTypeFlareMixMaterial:BaseFlareMaterial
{
public readonly CustomMaterialProperty<float> shapeScale;
public readonly CustomMaterialProperty<Texture2D> radialFill;
public readonly CustomMaterialProperty<float> radialFillStrength;
public readonly CustomMaterialProperty<float> radialFillTile;
public readonly CustomMaterialProperty<float> radialFillOffset;
public readonly CustomMaterialProperty<bool> radialFillRepeat;
public readonly CustomMaterialProperty<Texture2D> conicFill;
public readonly CustomMaterialProperty<float> conicFillStrength;
public readonly CustomMaterialProperty<float> conicFillTile;
public readonly CustomMaterialProperty<float> conicFillOffset;
public readonly CustomMaterialProperty<bool> conicFillRepeat;
public readonly CustomMaterialProperty<float> fillMultiply;
public readonly CustomMaterialProperty<float> fillAdd;
public readonly CustomMaterialProperty<float> shapeColorize;
public readonly CustomMaterialProperty<Texture2D> radialMask;
public readonly CustomMaterialProperty<float> radialMaskStrength;
public readonly CustomMaterialProperty<float> radialMaskTile;
public readonly CustomMaterialProperty<float> radialMaskOffset;
public readonly CustomMaterialProperty<bool> radialMaskRepeat;
public readonly CustomMaterialProperty<Texture2D> conicMask;
public readonly CustomMaterialProperty<float> conicMaskStrength;
public readonly CustomMaterialProperty<float> conicMaskTile;
public readonly CustomMaterialProperty<float> conicMaskOffset;
public readonly CustomMaterialProperty<bool> conicMaskRepeat;
public readonly CustomMaterialProperty<float> maskMultiply;
public readonly CustomMaterialProperty<float> maskAdd;
public EllipseTypeFlareMixMaterial()
{
///*
Shader = EllipseTypeFlareMixShader.shader.Get();
//*/
shapeScale = new CustomMaterialProperty<float>( this, EllipseTypeFlareMixShader.shapeScale );
radialFill = new CustomMaterialProperty<Texture2D>( this, EllipseTypeFlareMixShader.radialFill );
radialFillStrength = new CustomMaterialProperty<float>( this, EllipseTypeFlareMixShader.radialFillStrength );
radialFillTile = new CustomMaterialProperty<float>( this, EllipseTypeFlareMixShader.radialFillTile );
radialFillOffset = new CustomMaterialProperty<float>( this, EllipseTypeFlareMixShader.radialFillOffset );
radialFillRepeat = new CustomMaterialProperty<bool>( this, EllipseTypeFlareMixShader.radialFillRepeat );
conicFill = new CustomMaterialProperty<Texture2D>( this, EllipseTypeFlareMixShader.conicFill );
conicFillStrength = new CustomMaterialProperty<float>( this, EllipseTypeFlareMixShader.conicFillStrength );
conicFillTile = new CustomMaterialProperty<float>( this, EllipseTypeFlareMixShader.conicFillTile );
conicFillOffset = new CustomMaterialProperty<float>( this, EllipseTypeFlareMixShader.conicFillOffset );
conicFillRepeat = new CustomMaterialProperty<bool>( this, EllipseTypeFlareMixShader.conicFillRepeat );
fillMultiply = new CustomMaterialProperty<float>( this, EllipseTypeFlareMixShader.fillMultiply );
fillAdd = new CustomMaterialProperty<float>( this, EllipseTypeFlareMixShader.fillAdd );
shapeColorize = new CustomMaterialProperty<float>( this, EllipseTypeFlareMixShader.shapeColorize );
radialMask = new CustomMaterialProperty<Texture2D>( this, EllipseTypeFlareMixShader.radialMask );
radialMaskStrength = new CustomMaterialProperty<float>( this, EllipseTypeFlareMixShader.radialMaskStrength );
radialMaskTile = new CustomMaterialProperty<float>( this, EllipseTypeFlareMixShader.radialMaskTile );
radialMaskOffset = new CustomMaterialProperty<float>( this, EllipseTypeFlareMixShader.radialMaskOffset );
radialMaskRepeat = new CustomMaterialProperty<bool>( this, EllipseTypeFlareMixShader.radialMaskRepeat );
conicMask = new CustomMaterialProperty<Texture2D>( this, EllipseTypeFlareMixShader.conicMask );
conicMaskStrength = new CustomMaterialProperty<float>( this, EllipseTypeFlareMixShader.conicMaskStrength );
conicMaskTile = new CustomMaterialProperty<float>( this, EllipseTypeFlareMixShader.conicMaskTile );
conicMaskOffset = new CustomMaterialProperty<float>( this, EllipseTypeFlareMixShader.conicMaskOffset );
conicMaskRepeat = new CustomMaterialProperty<bool>( this, EllipseTypeFlareMixShader.conicMaskRepeat );
maskMultiply = new CustomMaterialProperty<float>( this, EllipseTypeFlareMixShader.maskMultiply );
maskAdd = new CustomMaterialProperty<float>( this, EllipseTypeFlareMixShader.maskAdd );
}
}
}

View File

@ -0,0 +1 @@
uid://bwvyiolbcntu

View File

@ -0,0 +1,4 @@
shader_type spatial;
render_mode blend_mul, depth_test_disabled, cull_disabled, unshaded, fog_disabled;
#include "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/EllipseType/EllipseTypeFlare.gdshaderinc"

View File

@ -0,0 +1 @@
uid://cnw5dyqni2cc3

View File

@ -0,0 +1,159 @@
using Godot;
namespace Rokojori
{
// Generated by ShaderClassGenerator
public class EllipseTypeFlareMultiplyShader
{
///*
public static readonly CachedResource<Shader> shader = new CachedResource<Shader>(
"res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/EllipseType/Variants/EllipseTypeFlareMultiply.gdshader"
);
//*/
public static readonly FloatPropertyName shapeScale = FloatPropertyName.Create( "shapeScale" );
public static readonly Sampler2DPropertyName radialFill = Sampler2DPropertyName.Create( "radialFill" );
public static readonly FloatPropertyName radialFillStrength = FloatPropertyName.Create( "radialFillStrength" );
public static readonly FloatPropertyName radialFillTile = FloatPropertyName.Create( "radialFillTile" );
public static readonly FloatPropertyName radialFillOffset = FloatPropertyName.Create( "radialFillOffset" );
public static readonly BoolPropertyName radialFillRepeat = BoolPropertyName.Create( "radialFillRepeat" );
public static readonly Sampler2DPropertyName conicFill = Sampler2DPropertyName.Create( "conicFill" );
public static readonly FloatPropertyName conicFillStrength = FloatPropertyName.Create( "conicFillStrength" );
public static readonly FloatPropertyName conicFillTile = FloatPropertyName.Create( "conicFillTile" );
public static readonly FloatPropertyName conicFillOffset = FloatPropertyName.Create( "conicFillOffset" );
public static readonly BoolPropertyName conicFillRepeat = BoolPropertyName.Create( "conicFillRepeat" );
public static readonly FloatPropertyName fillMultiply = FloatPropertyName.Create( "fillMultiply" );
public static readonly FloatPropertyName fillAdd = FloatPropertyName.Create( "fillAdd" );
public static readonly FloatPropertyName shapeColorize = FloatPropertyName.Create( "shapeColorize" );
public static readonly Sampler2DPropertyName radialMask = Sampler2DPropertyName.Create( "radialMask" );
public static readonly FloatPropertyName radialMaskStrength = FloatPropertyName.Create( "radialMaskStrength" );
public static readonly FloatPropertyName radialMaskTile = FloatPropertyName.Create( "radialMaskTile" );
public static readonly FloatPropertyName radialMaskOffset = FloatPropertyName.Create( "radialMaskOffset" );
public static readonly BoolPropertyName radialMaskRepeat = BoolPropertyName.Create( "radialMaskRepeat" );
public static readonly Sampler2DPropertyName conicMask = Sampler2DPropertyName.Create( "conicMask" );
public static readonly FloatPropertyName conicMaskStrength = FloatPropertyName.Create( "conicMaskStrength" );
public static readonly FloatPropertyName conicMaskTile = FloatPropertyName.Create( "conicMaskTile" );
public static readonly FloatPropertyName conicMaskOffset = FloatPropertyName.Create( "conicMaskOffset" );
public static readonly BoolPropertyName conicMaskRepeat = BoolPropertyName.Create( "conicMaskRepeat" );
public static readonly FloatPropertyName maskMultiply = FloatPropertyName.Create( "maskMultiply" );
public static readonly FloatPropertyName maskAdd = FloatPropertyName.Create( "maskAdd" );
public static readonly ColorPropertyName color = ColorPropertyName.Create( "color" );
public static readonly FloatPropertyName opacity = FloatPropertyName.Create( "opacity" );
public static readonly Sampler2DPropertyName opacityCurve = Sampler2DPropertyName.Create( "opacityCurve" );
public static readonly FloatPropertyName minHueRandom = FloatPropertyName.Create( "minHueRandom" );
public static readonly FloatPropertyName maxHueRandom = FloatPropertyName.Create( "maxHueRandom" );
public static readonly FloatPropertyName shapeNoiseAmount = FloatPropertyName.Create( "shapeNoiseAmount" );
public static readonly FloatPropertyName shapeNoiseScale = FloatPropertyName.Create( "shapeNoiseScale" );
public static readonly FloatPropertyName sizeX = FloatPropertyName.Create( "sizeX" );
public static readonly FloatPropertyName sizeY = FloatPropertyName.Create( "sizeY" );
public static readonly FloatPropertyName worldSizeScale = FloatPropertyName.Create( "worldSizeScale" );
public static readonly FloatPropertyName screenSizeScale = FloatPropertyName.Create( "screenSizeScale" );
public static readonly FloatPropertyName worldSizeVsScreenSize = FloatPropertyName.Create( "worldSize_vs_screenSize" );
public static readonly FloatPropertyName randomScaleMin = FloatPropertyName.Create( "randomScaleMin" );
public static readonly FloatPropertyName randomScaleMax = FloatPropertyName.Create( "randomScaleMax" );
public static readonly FloatPropertyName extension = FloatPropertyName.Create( "extension" );
public static readonly FloatPropertyName rotation = FloatPropertyName.Create( "rotation" );
public static readonly FloatPropertyName rotationOverX = FloatPropertyName.Create( "rotationOverX" );
public static readonly FloatPropertyName rotationOverY = FloatPropertyName.Create( "rotationOverY" );
public static readonly FloatPropertyName rotationPerLayer = FloatPropertyName.Create( "rotationPerLayer" );
public static readonly Vector2PropertyName screenOffset = Vector2PropertyName.Create( "screenOffset" );
public static readonly Vector2PropertyName screenOffsetScale = Vector2PropertyName.Create( "screenOffsetScale" );
public static readonly Vector2PropertyName screenOffsetLayerSpread = Vector2PropertyName.Create( "screenOffsetLayerSpread" );
public static readonly IntPropertyName chromaticAberationMode = IntPropertyName.Create( "chromaticAberationMode" );
public static readonly FloatPropertyName chromaticAberationAmount = FloatPropertyName.Create( "chromaticAberationAmount" );
public static readonly IntPropertyName chromaticAberationSteps = IntPropertyName.Create( "chromaticAberationSteps" );
public static readonly Vector2PropertyName chromaticAberationDirection = Vector2PropertyName.Create( "chromaticAberationDirection" );
public static readonly FloatPropertyName chromaticAberationDirectionTowardsCenter = FloatPropertyName.Create( "chromaticAberationDirectionTowardsCenter" );
public static readonly FloatPropertyName chromaticAberationCenterScale = FloatPropertyName.Create( "chromaticAberationCenterScale" );
public static readonly FloatPropertyName chromaticAberationCenterOffset = FloatPropertyName.Create( "chromaticAberationCenterOffset" );
public static readonly Vector3PropertyName chromaticAberationShifts = Vector3PropertyName.Create( "chromaticAberationShifts" );
public static readonly FloatPropertyName chromaticAberationSmear = FloatPropertyName.Create( "chromaticAberationSmear" );
public static readonly IntPropertyName fadingMode = IntPropertyName.Create( "fadingMode" );
public static readonly Sampler2DPropertyName fading = Sampler2DPropertyName.Create( "fading" );
public static readonly Sampler2DPropertyName opacityFading = Sampler2DPropertyName.Create( "opacityFading" );
public static readonly Sampler2DPropertyName sizeXfading = Sampler2DPropertyName.Create( "sizeXfading" );
public static readonly Sampler2DPropertyName sizeYfading = Sampler2DPropertyName.Create( "sizeYfading" );
public static readonly FloatPropertyName fadingPower = FloatPropertyName.Create( "fadingPower" );
public static readonly FloatPropertyName opacityFadingPower = FloatPropertyName.Create( "opacityFadingPower" );
public static readonly FloatPropertyName sizeXfadingPower = FloatPropertyName.Create( "sizeXfadingPower" );
public static readonly FloatPropertyName sizeYfadingPower = FloatPropertyName.Create( "sizeYfadingPower" );
public static readonly IntPropertyName occlusionMode = IntPropertyName.Create( "occlusionMode" );
public static readonly FloatPropertyName occlusionZOffset = FloatPropertyName.Create( "occlusionZOffset" );
public static readonly IntPropertyName occlusionTestMaxSteps = IntPropertyName.Create( "occlusionTestMaxSteps" );
public static readonly FloatPropertyName occlusionTestStepStride = FloatPropertyName.Create( "occlusionTestStepStride" );
public static readonly FloatPropertyName occlusionTestViewDependingScaleAmount = FloatPropertyName.Create( "occlusionTest_ViewDependingScaleAmount" );
public static readonly FloatPropertyName occlusionTestViewDependingDistance = FloatPropertyName.Create( "occlusionTest_ViewDependingDistance" );
public static readonly FloatPropertyName occlusionToSize = FloatPropertyName.Create( "occlusionToSize" );
}
[Tool]
public partial class EllipseTypeFlareMultiplyMaterial:BaseFlareMaterial
{
public readonly CustomMaterialProperty<float> shapeScale;
public readonly CustomMaterialProperty<Texture2D> radialFill;
public readonly CustomMaterialProperty<float> radialFillStrength;
public readonly CustomMaterialProperty<float> radialFillTile;
public readonly CustomMaterialProperty<float> radialFillOffset;
public readonly CustomMaterialProperty<bool> radialFillRepeat;
public readonly CustomMaterialProperty<Texture2D> conicFill;
public readonly CustomMaterialProperty<float> conicFillStrength;
public readonly CustomMaterialProperty<float> conicFillTile;
public readonly CustomMaterialProperty<float> conicFillOffset;
public readonly CustomMaterialProperty<bool> conicFillRepeat;
public readonly CustomMaterialProperty<float> fillMultiply;
public readonly CustomMaterialProperty<float> fillAdd;
public readonly CustomMaterialProperty<float> shapeColorize;
public readonly CustomMaterialProperty<Texture2D> radialMask;
public readonly CustomMaterialProperty<float> radialMaskStrength;
public readonly CustomMaterialProperty<float> radialMaskTile;
public readonly CustomMaterialProperty<float> radialMaskOffset;
public readonly CustomMaterialProperty<bool> radialMaskRepeat;
public readonly CustomMaterialProperty<Texture2D> conicMask;
public readonly CustomMaterialProperty<float> conicMaskStrength;
public readonly CustomMaterialProperty<float> conicMaskTile;
public readonly CustomMaterialProperty<float> conicMaskOffset;
public readonly CustomMaterialProperty<bool> conicMaskRepeat;
public readonly CustomMaterialProperty<float> maskMultiply;
public readonly CustomMaterialProperty<float> maskAdd;
public EllipseTypeFlareMultiplyMaterial()
{
///*
Shader = EllipseTypeFlareMultiplyShader.shader.Get();
//*/
shapeScale = new CustomMaterialProperty<float>( this, EllipseTypeFlareMultiplyShader.shapeScale );
radialFill = new CustomMaterialProperty<Texture2D>( this, EllipseTypeFlareMultiplyShader.radialFill );
radialFillStrength = new CustomMaterialProperty<float>( this, EllipseTypeFlareMultiplyShader.radialFillStrength );
radialFillTile = new CustomMaterialProperty<float>( this, EllipseTypeFlareMultiplyShader.radialFillTile );
radialFillOffset = new CustomMaterialProperty<float>( this, EllipseTypeFlareMultiplyShader.radialFillOffset );
radialFillRepeat = new CustomMaterialProperty<bool>( this, EllipseTypeFlareMultiplyShader.radialFillRepeat );
conicFill = new CustomMaterialProperty<Texture2D>( this, EllipseTypeFlareMultiplyShader.conicFill );
conicFillStrength = new CustomMaterialProperty<float>( this, EllipseTypeFlareMultiplyShader.conicFillStrength );
conicFillTile = new CustomMaterialProperty<float>( this, EllipseTypeFlareMultiplyShader.conicFillTile );
conicFillOffset = new CustomMaterialProperty<float>( this, EllipseTypeFlareMultiplyShader.conicFillOffset );
conicFillRepeat = new CustomMaterialProperty<bool>( this, EllipseTypeFlareMultiplyShader.conicFillRepeat );
fillMultiply = new CustomMaterialProperty<float>( this, EllipseTypeFlareMultiplyShader.fillMultiply );
fillAdd = new CustomMaterialProperty<float>( this, EllipseTypeFlareMultiplyShader.fillAdd );
shapeColorize = new CustomMaterialProperty<float>( this, EllipseTypeFlareMultiplyShader.shapeColorize );
radialMask = new CustomMaterialProperty<Texture2D>( this, EllipseTypeFlareMultiplyShader.radialMask );
radialMaskStrength = new CustomMaterialProperty<float>( this, EllipseTypeFlareMultiplyShader.radialMaskStrength );
radialMaskTile = new CustomMaterialProperty<float>( this, EllipseTypeFlareMultiplyShader.radialMaskTile );
radialMaskOffset = new CustomMaterialProperty<float>( this, EllipseTypeFlareMultiplyShader.radialMaskOffset );
radialMaskRepeat = new CustomMaterialProperty<bool>( this, EllipseTypeFlareMultiplyShader.radialMaskRepeat );
conicMask = new CustomMaterialProperty<Texture2D>( this, EllipseTypeFlareMultiplyShader.conicMask );
conicMaskStrength = new CustomMaterialProperty<float>( this, EllipseTypeFlareMultiplyShader.conicMaskStrength );
conicMaskTile = new CustomMaterialProperty<float>( this, EllipseTypeFlareMultiplyShader.conicMaskTile );
conicMaskOffset = new CustomMaterialProperty<float>( this, EllipseTypeFlareMultiplyShader.conicMaskOffset );
conicMaskRepeat = new CustomMaterialProperty<bool>( this, EllipseTypeFlareMultiplyShader.conicMaskRepeat );
maskMultiply = new CustomMaterialProperty<float>( this, EllipseTypeFlareMultiplyShader.maskMultiply );
maskAdd = new CustomMaterialProperty<float>( this, EllipseTypeFlareMultiplyShader.maskAdd );
}
}
}

View File

@ -0,0 +1,4 @@
shader_type spatial;
render_mode blend_sub, depth_test_disabled, cull_disabled, unshaded, fog_disabled;
#include "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/EllipseType/EllipseTypeFlare.gdshaderinc"

View File

@ -0,0 +1,159 @@
using Godot;
namespace Rokojori
{
// Generated by ShaderClassGenerator
public class EllipseTypeFlareSubtractShader
{
///*
public static readonly CachedResource<Shader> shader = new CachedResource<Shader>(
"res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/EllipseType/Variants/EllipseTypeFlareSubtract.gdshader"
);
//*/
public static readonly FloatPropertyName shapeScale = FloatPropertyName.Create( "shapeScale" );
public static readonly Sampler2DPropertyName radialFill = Sampler2DPropertyName.Create( "radialFill" );
public static readonly FloatPropertyName radialFillStrength = FloatPropertyName.Create( "radialFillStrength" );
public static readonly FloatPropertyName radialFillTile = FloatPropertyName.Create( "radialFillTile" );
public static readonly FloatPropertyName radialFillOffset = FloatPropertyName.Create( "radialFillOffset" );
public static readonly BoolPropertyName radialFillRepeat = BoolPropertyName.Create( "radialFillRepeat" );
public static readonly Sampler2DPropertyName conicFill = Sampler2DPropertyName.Create( "conicFill" );
public static readonly FloatPropertyName conicFillStrength = FloatPropertyName.Create( "conicFillStrength" );
public static readonly FloatPropertyName conicFillTile = FloatPropertyName.Create( "conicFillTile" );
public static readonly FloatPropertyName conicFillOffset = FloatPropertyName.Create( "conicFillOffset" );
public static readonly BoolPropertyName conicFillRepeat = BoolPropertyName.Create( "conicFillRepeat" );
public static readonly FloatPropertyName fillMultiply = FloatPropertyName.Create( "fillMultiply" );
public static readonly FloatPropertyName fillAdd = FloatPropertyName.Create( "fillAdd" );
public static readonly FloatPropertyName shapeColorize = FloatPropertyName.Create( "shapeColorize" );
public static readonly Sampler2DPropertyName radialMask = Sampler2DPropertyName.Create( "radialMask" );
public static readonly FloatPropertyName radialMaskStrength = FloatPropertyName.Create( "radialMaskStrength" );
public static readonly FloatPropertyName radialMaskTile = FloatPropertyName.Create( "radialMaskTile" );
public static readonly FloatPropertyName radialMaskOffset = FloatPropertyName.Create( "radialMaskOffset" );
public static readonly BoolPropertyName radialMaskRepeat = BoolPropertyName.Create( "radialMaskRepeat" );
public static readonly Sampler2DPropertyName conicMask = Sampler2DPropertyName.Create( "conicMask" );
public static readonly FloatPropertyName conicMaskStrength = FloatPropertyName.Create( "conicMaskStrength" );
public static readonly FloatPropertyName conicMaskTile = FloatPropertyName.Create( "conicMaskTile" );
public static readonly FloatPropertyName conicMaskOffset = FloatPropertyName.Create( "conicMaskOffset" );
public static readonly BoolPropertyName conicMaskRepeat = BoolPropertyName.Create( "conicMaskRepeat" );
public static readonly FloatPropertyName maskMultiply = FloatPropertyName.Create( "maskMultiply" );
public static readonly FloatPropertyName maskAdd = FloatPropertyName.Create( "maskAdd" );
public static readonly ColorPropertyName color = ColorPropertyName.Create( "color" );
public static readonly FloatPropertyName opacity = FloatPropertyName.Create( "opacity" );
public static readonly Sampler2DPropertyName opacityCurve = Sampler2DPropertyName.Create( "opacityCurve" );
public static readonly FloatPropertyName minHueRandom = FloatPropertyName.Create( "minHueRandom" );
public static readonly FloatPropertyName maxHueRandom = FloatPropertyName.Create( "maxHueRandom" );
public static readonly FloatPropertyName shapeNoiseAmount = FloatPropertyName.Create( "shapeNoiseAmount" );
public static readonly FloatPropertyName shapeNoiseScale = FloatPropertyName.Create( "shapeNoiseScale" );
public static readonly FloatPropertyName sizeX = FloatPropertyName.Create( "sizeX" );
public static readonly FloatPropertyName sizeY = FloatPropertyName.Create( "sizeY" );
public static readonly FloatPropertyName worldSizeScale = FloatPropertyName.Create( "worldSizeScale" );
public static readonly FloatPropertyName screenSizeScale = FloatPropertyName.Create( "screenSizeScale" );
public static readonly FloatPropertyName worldSizeVsScreenSize = FloatPropertyName.Create( "worldSize_vs_screenSize" );
public static readonly FloatPropertyName randomScaleMin = FloatPropertyName.Create( "randomScaleMin" );
public static readonly FloatPropertyName randomScaleMax = FloatPropertyName.Create( "randomScaleMax" );
public static readonly FloatPropertyName extension = FloatPropertyName.Create( "extension" );
public static readonly FloatPropertyName rotation = FloatPropertyName.Create( "rotation" );
public static readonly FloatPropertyName rotationOverX = FloatPropertyName.Create( "rotationOverX" );
public static readonly FloatPropertyName rotationOverY = FloatPropertyName.Create( "rotationOverY" );
public static readonly FloatPropertyName rotationPerLayer = FloatPropertyName.Create( "rotationPerLayer" );
public static readonly Vector2PropertyName screenOffset = Vector2PropertyName.Create( "screenOffset" );
public static readonly Vector2PropertyName screenOffsetScale = Vector2PropertyName.Create( "screenOffsetScale" );
public static readonly Vector2PropertyName screenOffsetLayerSpread = Vector2PropertyName.Create( "screenOffsetLayerSpread" );
public static readonly IntPropertyName chromaticAberationMode = IntPropertyName.Create( "chromaticAberationMode" );
public static readonly FloatPropertyName chromaticAberationAmount = FloatPropertyName.Create( "chromaticAberationAmount" );
public static readonly IntPropertyName chromaticAberationSteps = IntPropertyName.Create( "chromaticAberationSteps" );
public static readonly Vector2PropertyName chromaticAberationDirection = Vector2PropertyName.Create( "chromaticAberationDirection" );
public static readonly FloatPropertyName chromaticAberationDirectionTowardsCenter = FloatPropertyName.Create( "chromaticAberationDirectionTowardsCenter" );
public static readonly FloatPropertyName chromaticAberationCenterScale = FloatPropertyName.Create( "chromaticAberationCenterScale" );
public static readonly FloatPropertyName chromaticAberationCenterOffset = FloatPropertyName.Create( "chromaticAberationCenterOffset" );
public static readonly Vector3PropertyName chromaticAberationShifts = Vector3PropertyName.Create( "chromaticAberationShifts" );
public static readonly FloatPropertyName chromaticAberationSmear = FloatPropertyName.Create( "chromaticAberationSmear" );
public static readonly IntPropertyName fadingMode = IntPropertyName.Create( "fadingMode" );
public static readonly Sampler2DPropertyName fading = Sampler2DPropertyName.Create( "fading" );
public static readonly Sampler2DPropertyName opacityFading = Sampler2DPropertyName.Create( "opacityFading" );
public static readonly Sampler2DPropertyName sizeXfading = Sampler2DPropertyName.Create( "sizeXfading" );
public static readonly Sampler2DPropertyName sizeYfading = Sampler2DPropertyName.Create( "sizeYfading" );
public static readonly FloatPropertyName fadingPower = FloatPropertyName.Create( "fadingPower" );
public static readonly FloatPropertyName opacityFadingPower = FloatPropertyName.Create( "opacityFadingPower" );
public static readonly FloatPropertyName sizeXfadingPower = FloatPropertyName.Create( "sizeXfadingPower" );
public static readonly FloatPropertyName sizeYfadingPower = FloatPropertyName.Create( "sizeYfadingPower" );
public static readonly IntPropertyName occlusionMode = IntPropertyName.Create( "occlusionMode" );
public static readonly FloatPropertyName occlusionZOffset = FloatPropertyName.Create( "occlusionZOffset" );
public static readonly IntPropertyName occlusionTestMaxSteps = IntPropertyName.Create( "occlusionTestMaxSteps" );
public static readonly FloatPropertyName occlusionTestStepStride = FloatPropertyName.Create( "occlusionTestStepStride" );
public static readonly FloatPropertyName occlusionTestViewDependingScaleAmount = FloatPropertyName.Create( "occlusionTest_ViewDependingScaleAmount" );
public static readonly FloatPropertyName occlusionTestViewDependingDistance = FloatPropertyName.Create( "occlusionTest_ViewDependingDistance" );
public static readonly FloatPropertyName occlusionToSize = FloatPropertyName.Create( "occlusionToSize" );
}
[Tool]
public partial class EllipseTypeFlareSubtractMaterial:BaseFlareMaterial
{
public readonly CustomMaterialProperty<float> shapeScale;
public readonly CustomMaterialProperty<Texture2D> radialFill;
public readonly CustomMaterialProperty<float> radialFillStrength;
public readonly CustomMaterialProperty<float> radialFillTile;
public readonly CustomMaterialProperty<float> radialFillOffset;
public readonly CustomMaterialProperty<bool> radialFillRepeat;
public readonly CustomMaterialProperty<Texture2D> conicFill;
public readonly CustomMaterialProperty<float> conicFillStrength;
public readonly CustomMaterialProperty<float> conicFillTile;
public readonly CustomMaterialProperty<float> conicFillOffset;
public readonly CustomMaterialProperty<bool> conicFillRepeat;
public readonly CustomMaterialProperty<float> fillMultiply;
public readonly CustomMaterialProperty<float> fillAdd;
public readonly CustomMaterialProperty<float> shapeColorize;
public readonly CustomMaterialProperty<Texture2D> radialMask;
public readonly CustomMaterialProperty<float> radialMaskStrength;
public readonly CustomMaterialProperty<float> radialMaskTile;
public readonly CustomMaterialProperty<float> radialMaskOffset;
public readonly CustomMaterialProperty<bool> radialMaskRepeat;
public readonly CustomMaterialProperty<Texture2D> conicMask;
public readonly CustomMaterialProperty<float> conicMaskStrength;
public readonly CustomMaterialProperty<float> conicMaskTile;
public readonly CustomMaterialProperty<float> conicMaskOffset;
public readonly CustomMaterialProperty<bool> conicMaskRepeat;
public readonly CustomMaterialProperty<float> maskMultiply;
public readonly CustomMaterialProperty<float> maskAdd;
public EllipseTypeFlareSubtractMaterial()
{
///*
Shader = EllipseTypeFlareSubtractShader.shader.Get();
//*/
shapeScale = new CustomMaterialProperty<float>( this, EllipseTypeFlareSubtractShader.shapeScale );
radialFill = new CustomMaterialProperty<Texture2D>( this, EllipseTypeFlareSubtractShader.radialFill );
radialFillStrength = new CustomMaterialProperty<float>( this, EllipseTypeFlareSubtractShader.radialFillStrength );
radialFillTile = new CustomMaterialProperty<float>( this, EllipseTypeFlareSubtractShader.radialFillTile );
radialFillOffset = new CustomMaterialProperty<float>( this, EllipseTypeFlareSubtractShader.radialFillOffset );
radialFillRepeat = new CustomMaterialProperty<bool>( this, EllipseTypeFlareSubtractShader.radialFillRepeat );
conicFill = new CustomMaterialProperty<Texture2D>( this, EllipseTypeFlareSubtractShader.conicFill );
conicFillStrength = new CustomMaterialProperty<float>( this, EllipseTypeFlareSubtractShader.conicFillStrength );
conicFillTile = new CustomMaterialProperty<float>( this, EllipseTypeFlareSubtractShader.conicFillTile );
conicFillOffset = new CustomMaterialProperty<float>( this, EllipseTypeFlareSubtractShader.conicFillOffset );
conicFillRepeat = new CustomMaterialProperty<bool>( this, EllipseTypeFlareSubtractShader.conicFillRepeat );
fillMultiply = new CustomMaterialProperty<float>( this, EllipseTypeFlareSubtractShader.fillMultiply );
fillAdd = new CustomMaterialProperty<float>( this, EllipseTypeFlareSubtractShader.fillAdd );
shapeColorize = new CustomMaterialProperty<float>( this, EllipseTypeFlareSubtractShader.shapeColorize );
radialMask = new CustomMaterialProperty<Texture2D>( this, EllipseTypeFlareSubtractShader.radialMask );
radialMaskStrength = new CustomMaterialProperty<float>( this, EllipseTypeFlareSubtractShader.radialMaskStrength );
radialMaskTile = new CustomMaterialProperty<float>( this, EllipseTypeFlareSubtractShader.radialMaskTile );
radialMaskOffset = new CustomMaterialProperty<float>( this, EllipseTypeFlareSubtractShader.radialMaskOffset );
radialMaskRepeat = new CustomMaterialProperty<bool>( this, EllipseTypeFlareSubtractShader.radialMaskRepeat );
conicMask = new CustomMaterialProperty<Texture2D>( this, EllipseTypeFlareSubtractShader.conicMask );
conicMaskStrength = new CustomMaterialProperty<float>( this, EllipseTypeFlareSubtractShader.conicMaskStrength );
conicMaskTile = new CustomMaterialProperty<float>( this, EllipseTypeFlareSubtractShader.conicMaskTile );
conicMaskOffset = new CustomMaterialProperty<float>( this, EllipseTypeFlareSubtractShader.conicMaskOffset );
conicMaskRepeat = new CustomMaterialProperty<bool>( this, EllipseTypeFlareSubtractShader.conicMaskRepeat );
maskMultiply = new CustomMaterialProperty<float>( this, EllipseTypeFlareSubtractShader.maskMultiply );
maskAdd = new CustomMaterialProperty<float>( this, EllipseTypeFlareSubtractShader.maskAdd );
}
}
}

View File

@ -4,10 +4,10 @@ namespace Rokojori
{
// Generated by ShaderClassGenerator
public class GlowFlareMixShader
public class FlareSuperBaseShader
{
public static readonly CachedResource<Shader> shader = new CachedResource<Shader>(
"res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/GlowFlare/GlowFlareMix.gdshader"
"C:/rokojori/godot-projects/winter-tales/addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/FlareSuperBase.gdshader"
);
public static readonly ColorPropertyName color = ColorPropertyName.Create( "color" );
@ -24,10 +24,6 @@ namespace Rokojori
public static readonly FloatPropertyName worldSizeVsScreenSize = FloatPropertyName.Create( "worldSize_vs_screenSize" );
public static readonly Vector2PropertyName screenOffsetScale = Vector2PropertyName.Create( "screenOffsetScale" );
public static readonly Vector2PropertyName screenOffsetLayerSpread = Vector2PropertyName.Create( "screenOffsetLayerSpread" );
public static readonly Sampler2DPropertyName fading = Sampler2DPropertyName.Create( "fading" );
public static readonly Sampler2DPropertyName opacityFading = Sampler2DPropertyName.Create( "opacityFading" );
public static readonly Sampler2DPropertyName sizeXfading = Sampler2DPropertyName.Create( "sizeXfading" );
public static readonly Sampler2DPropertyName sizeYfading = Sampler2DPropertyName.Create( "sizeYfading" );
public static readonly BoolPropertyName useQuickOcclusionTest = BoolPropertyName.Create( "useQuickOcclusionTest" );
public static readonly FloatPropertyName occlusionZOffset = FloatPropertyName.Create( "occlusionZOffset" );
public static readonly IntPropertyName occlusionTestMaxSteps = IntPropertyName.Create( "occlusionTestMaxSteps" );
@ -38,7 +34,7 @@ namespace Rokojori
}
[Tool]
public partial class GlowFlareMixMaterial:CustomMaterial
public partial class FlareSuperBaseMaterial:CustomMaterial
{
@ -56,10 +52,6 @@ namespace Rokojori
public readonly CustomMaterialProperty<float> worldSizeVsScreenSize;
public readonly CustomMaterialProperty<Vector2> screenOffsetScale;
public readonly CustomMaterialProperty<Vector2> screenOffsetLayerSpread;
public readonly CustomMaterialProperty<Texture2D> fading;
public readonly CustomMaterialProperty<Texture2D> opacityFading;
public readonly CustomMaterialProperty<Texture2D> sizeXfading;
public readonly CustomMaterialProperty<Texture2D> sizeYfading;
public readonly CustomMaterialProperty<bool> useQuickOcclusionTest;
public readonly CustomMaterialProperty<float> occlusionZOffset;
public readonly CustomMaterialProperty<int> occlusionTestMaxSteps;
@ -67,34 +59,30 @@ namespace Rokojori
public readonly CustomMaterialProperty<float> occlusionTestViewDependingScaleAmount;
public readonly CustomMaterialProperty<float> occlusionTestViewDependingDistance;
public GlowFlareMixMaterial()
public FlareSuperBaseMaterial()
{
Shader = GlowFlareMixShader.shader.Get();
Shader = FlareSuperBaseShader.shader.Get();
color = new CustomMaterialProperty<Color>( this, GlowFlareMixShader.color );
opacity = new CustomMaterialProperty<float>( this, GlowFlareMixShader.opacity );
opacityCurve = new CustomMaterialProperty<Texture2D>( this, GlowFlareMixShader.opacityCurve );
colorDistortion = new CustomMaterialProperty<float>( this, GlowFlareMixShader.colorDistortion );
alphaDistortion = new CustomMaterialProperty<float>( this, GlowFlareMixShader.alphaDistortion );
centerHsl = new CustomMaterialProperty<Vector4>( this, GlowFlareMixShader.centerHsl );
outsideHsl = new CustomMaterialProperty<Vector4>( this, GlowFlareMixShader.outsideHsl );
sizeX = new CustomMaterialProperty<float>( this, GlowFlareMixShader.sizeX );
sizeY = new CustomMaterialProperty<float>( this, GlowFlareMixShader.sizeY );
worldSizeScale = new CustomMaterialProperty<float>( this, GlowFlareMixShader.worldSizeScale );
screenSizeScale = new CustomMaterialProperty<float>( this, GlowFlareMixShader.screenSizeScale );
worldSizeVsScreenSize = new CustomMaterialProperty<float>( this, GlowFlareMixShader.worldSizeVsScreenSize );
screenOffsetScale = new CustomMaterialProperty<Vector2>( this, GlowFlareMixShader.screenOffsetScale );
screenOffsetLayerSpread = new CustomMaterialProperty<Vector2>( this, GlowFlareMixShader.screenOffsetLayerSpread );
fading = new CustomMaterialProperty<Texture2D>( this, GlowFlareMixShader.fading );
opacityFading = new CustomMaterialProperty<Texture2D>( this, GlowFlareMixShader.opacityFading );
sizeXfading = new CustomMaterialProperty<Texture2D>( this, GlowFlareMixShader.sizeXfading );
sizeYfading = new CustomMaterialProperty<Texture2D>( this, GlowFlareMixShader.sizeYfading );
useQuickOcclusionTest = new CustomMaterialProperty<bool>( this, GlowFlareMixShader.useQuickOcclusionTest );
occlusionZOffset = new CustomMaterialProperty<float>( this, GlowFlareMixShader.occlusionZOffset );
occlusionTestMaxSteps = new CustomMaterialProperty<int>( this, GlowFlareMixShader.occlusionTestMaxSteps );
occlusionTestStepStride = new CustomMaterialProperty<float>( this, GlowFlareMixShader.occlusionTestStepStride );
occlusionTestViewDependingScaleAmount = new CustomMaterialProperty<float>( this, GlowFlareMixShader.occlusionTestViewDependingScaleAmount );
occlusionTestViewDependingDistance = new CustomMaterialProperty<float>( this, GlowFlareMixShader.occlusionTestViewDependingDistance );
color = new CustomMaterialProperty<Color>( this, FlareSuperBaseShader.color );
opacity = new CustomMaterialProperty<float>( this, FlareSuperBaseShader.opacity );
opacityCurve = new CustomMaterialProperty<Texture2D>( this, FlareSuperBaseShader.opacityCurve );
colorDistortion = new CustomMaterialProperty<float>( this, FlareSuperBaseShader.colorDistortion );
alphaDistortion = new CustomMaterialProperty<float>( this, FlareSuperBaseShader.alphaDistortion );
centerHsl = new CustomMaterialProperty<Vector4>( this, FlareSuperBaseShader.centerHsl );
outsideHsl = new CustomMaterialProperty<Vector4>( this, FlareSuperBaseShader.outsideHsl );
sizeX = new CustomMaterialProperty<float>( this, FlareSuperBaseShader.sizeX );
sizeY = new CustomMaterialProperty<float>( this, FlareSuperBaseShader.sizeY );
worldSizeScale = new CustomMaterialProperty<float>( this, FlareSuperBaseShader.worldSizeScale );
screenSizeScale = new CustomMaterialProperty<float>( this, FlareSuperBaseShader.screenSizeScale );
worldSizeVsScreenSize = new CustomMaterialProperty<float>( this, FlareSuperBaseShader.worldSizeVsScreenSize );
screenOffsetScale = new CustomMaterialProperty<Vector2>( this, FlareSuperBaseShader.screenOffsetScale );
screenOffsetLayerSpread = new CustomMaterialProperty<Vector2>( this, FlareSuperBaseShader.screenOffsetLayerSpread );
useQuickOcclusionTest = new CustomMaterialProperty<bool>( this, FlareSuperBaseShader.useQuickOcclusionTest );
occlusionZOffset = new CustomMaterialProperty<float>( this, FlareSuperBaseShader.occlusionZOffset );
occlusionTestMaxSteps = new CustomMaterialProperty<int>( this, FlareSuperBaseShader.occlusionTestMaxSteps );
occlusionTestStepStride = new CustomMaterialProperty<float>( this, FlareSuperBaseShader.occlusionTestStepStride );
occlusionTestViewDependingScaleAmount = new CustomMaterialProperty<float>( this, FlareSuperBaseShader.occlusionTestViewDependingScaleAmount );
occlusionTestViewDependingDistance = new CustomMaterialProperty<float>( this, FlareSuperBaseShader.occlusionTestViewDependingDistance );
}
}

View File

@ -0,0 +1 @@
uid://ckl8r152vrngh

View File

@ -1,7 +1,17 @@
void setFlareBillboard(
inout mat4 _MODELVIEW_MATRIX, inout mat3 _MODELVIEW_NORMAL_MATRIX,
mat4 _VIEW_MATRIX, mat4 _MAIN_CAM_INV_VIEW_MATRIX, mat4 _MODEL_MATRIX,
vec3 scale, vec2 _screenOffsetScale
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Colors.gdshaderinc"
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Math.gdshaderinc"
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Transform.gdshaderinc"
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Depth.gdshaderinc"
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/SDF.gdshaderinc"
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Noise.gdshaderinc"
void setFlareOffsetMatrix(
inout mat4 _MODELVIEW_MATRIX,
mat4 _VIEW_MATRIX,
mat4 _MAIN_CAM_INV_VIEW_MATRIX,
mat4 _MODEL_MATRIX,
vec2 _screenOffsetScale,
vec2 _offset
)
{
_MODELVIEW_MATRIX = _VIEW_MATRIX * mat4(
@ -11,22 +21,47 @@ void setFlareBillboard(
_MODEL_MATRIX[ 3 ]
);
vec3 viewPosition = _MODELVIEW_MATRIX[ 3 ].xyz;
vec3 _viewPosition = _MODELVIEW_MATRIX[ 3 ].xyz;
viewPosition.xy += viewPosition.xy * _screenOffsetScale;
_MODELVIEW_MATRIX[ 3 ].xyz = viewPosition;
_viewPosition.xy += _viewPosition.xy * _screenOffsetScale + _offset;
float scaleX = length( _MODEL_MATRIX[ 0 ].xyz ) * scale.x;
float scaleY = length( _MODEL_MATRIX[ 1 ].xyz ) * scale.y;
float scaleZ = length( _MODEL_MATRIX[ 2 ].xyz ) * scale.z;
_MODELVIEW_MATRIX = _MODELVIEW_MATRIX * mat4(
vec4( scaleX, 0.0, 0.0, 0.0 ),
vec4( 0.0, scaleY, 0.0, 0.0 ),
vec4( 0.0, 0.0, scaleZ, 0.0 ),
vec4( 0.0, 0.0, 0.0, 1.0 )
);
_MODELVIEW_NORMAL_MATRIX = mat3( _MODELVIEW_MATRIX);
_MODELVIEW_MATRIX[ 3 ].xyz = _viewPosition;
}
void setFlareScaleRotation(
inout mat4 _MODELVIEW_MATRIX,
inout mat3 _MODELVIEW_NORMAL_MATRIX,
mat4 _MODEL_MATRIX,
vec3 _scale, float _vertexRotation
)
{
// _MODELVIEW_MATRIX = _VIEW_MATRIX * mat4(
// _MAIN_CAM_INV_VIEW_MATRIX[ 0 ],
// _MAIN_CAM_INV_VIEW_MATRIX[ 1 ],
// _MAIN_CAM_INV_VIEW_MATRIX[ 2 ],
// _MODEL_MATRIX[ 3 ]
// );
// vec3 _viewPosition = _MODELVIEW_MATRIX[ 3 ].xyz;
// _viewPosition.xy += _viewPosition.xy * _screenOffsetScale;
// _MODELVIEW_MATRIX[ 3 ].xyz = _viewPosition;
float _scaleX = length( _MODEL_MATRIX[ 0 ].xyz ) * _scale.x;
float _scaleY = length( _MODEL_MATRIX[ 1 ].xyz ) * _scale.y;
float _scaleZ = length( _MODEL_MATRIX[ 2 ].xyz ) * _scale.z;
_MODELVIEW_MATRIX = _MODELVIEW_MATRIX * rotationZ_m4( _vertexRotation ) * mat4(
vec4( _scaleX, 0.0, 0.0, 0.0 ),
vec4( 0.0, _scaleY, 0.0, 0.0 ),
vec4( 0.0, 0.0, _scaleZ, 0.0 ),
vec4( 0.0, 0.0, 0.0, 1.0 )
) ;
_MODELVIEW_NORMAL_MATRIX = mat3( _MODELVIEW_MATRIX );
}

View File

@ -1 +0,0 @@
uid://cqyc7q1cj6yso

View File

@ -1,102 +0,0 @@
using Godot;
namespace Rokojori
{
// Generated by ShaderClassGenerator
public class GlowFlareAddShader
{
public static readonly CachedResource<Shader> shader = new CachedResource<Shader>(
"res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/GlowFlare/GlowFlareAdd.gdshader"
);
public static readonly ColorPropertyName color = ColorPropertyName.Create( "color" );
public static readonly FloatPropertyName opacity = FloatPropertyName.Create( "opacity" );
public static readonly Sampler2DPropertyName opacityCurve = Sampler2DPropertyName.Create( "opacityCurve" );
public static readonly FloatPropertyName colorDistortion = FloatPropertyName.Create( "colorDistortion" );
public static readonly FloatPropertyName alphaDistortion = FloatPropertyName.Create( "alphaDistortion" );
public static readonly Vector4PropertyName centerHsl = Vector4PropertyName.Create( "centerHSL" );
public static readonly Vector4PropertyName outsideHsl = Vector4PropertyName.Create( "outsideHSL" );
public static readonly FloatPropertyName sizeX = FloatPropertyName.Create( "sizeX" );
public static readonly FloatPropertyName sizeY = FloatPropertyName.Create( "sizeY" );
public static readonly FloatPropertyName worldSizeScale = FloatPropertyName.Create( "worldSizeScale" );
public static readonly FloatPropertyName screenSizeScale = FloatPropertyName.Create( "screenSizeScale" );
public static readonly FloatPropertyName worldSizeVsScreenSize = FloatPropertyName.Create( "worldSize_vs_screenSize" );
public static readonly Vector2PropertyName screenOffsetScale = Vector2PropertyName.Create( "screenOffsetScale" );
public static readonly Vector2PropertyName screenOffsetLayerSpread = Vector2PropertyName.Create( "screenOffsetLayerSpread" );
public static readonly Sampler2DPropertyName fading = Sampler2DPropertyName.Create( "fading" );
public static readonly Sampler2DPropertyName opacityFading = Sampler2DPropertyName.Create( "opacityFading" );
public static readonly Sampler2DPropertyName sizeXfading = Sampler2DPropertyName.Create( "sizeXfading" );
public static readonly Sampler2DPropertyName sizeYfading = Sampler2DPropertyName.Create( "sizeYfading" );
public static readonly BoolPropertyName useQuickOcclusionTest = BoolPropertyName.Create( "useQuickOcclusionTest" );
public static readonly FloatPropertyName occlusionZOffset = FloatPropertyName.Create( "occlusionZOffset" );
public static readonly IntPropertyName occlusionTestMaxSteps = IntPropertyName.Create( "occlusionTestMaxSteps" );
public static readonly FloatPropertyName occlusionTestStepStride = FloatPropertyName.Create( "occlusionTestStepStride" );
public static readonly FloatPropertyName occlusionTestViewDependingScaleAmount = FloatPropertyName.Create( "occlusionTest_ViewDependingScaleAmount" );
public static readonly FloatPropertyName occlusionTestViewDependingDistance = FloatPropertyName.Create( "occlusionTest_ViewDependingDistance" );
}
[Tool]
public partial class GlowFlareAddMaterial:CustomMaterial
{
public readonly CustomMaterialProperty<Color> color;
public readonly CustomMaterialProperty<float> opacity;
public readonly CustomMaterialProperty<Texture2D> opacityCurve;
public readonly CustomMaterialProperty<float> colorDistortion;
public readonly CustomMaterialProperty<float> alphaDistortion;
public readonly CustomMaterialProperty<Vector4> centerHsl;
public readonly CustomMaterialProperty<Vector4> outsideHsl;
public readonly CustomMaterialProperty<float> sizeX;
public readonly CustomMaterialProperty<float> sizeY;
public readonly CustomMaterialProperty<float> worldSizeScale;
public readonly CustomMaterialProperty<float> screenSizeScale;
public readonly CustomMaterialProperty<float> worldSizeVsScreenSize;
public readonly CustomMaterialProperty<Vector2> screenOffsetScale;
public readonly CustomMaterialProperty<Vector2> screenOffsetLayerSpread;
public readonly CustomMaterialProperty<Texture2D> fading;
public readonly CustomMaterialProperty<Texture2D> opacityFading;
public readonly CustomMaterialProperty<Texture2D> sizeXfading;
public readonly CustomMaterialProperty<Texture2D> sizeYfading;
public readonly CustomMaterialProperty<bool> useQuickOcclusionTest;
public readonly CustomMaterialProperty<float> occlusionZOffset;
public readonly CustomMaterialProperty<int> occlusionTestMaxSteps;
public readonly CustomMaterialProperty<float> occlusionTestStepStride;
public readonly CustomMaterialProperty<float> occlusionTestViewDependingScaleAmount;
public readonly CustomMaterialProperty<float> occlusionTestViewDependingDistance;
public GlowFlareAddMaterial()
{
Shader = GlowFlareAddShader.shader.Get();
color = new CustomMaterialProperty<Color>( this, GlowFlareAddShader.color );
opacity = new CustomMaterialProperty<float>( this, GlowFlareAddShader.opacity );
opacityCurve = new CustomMaterialProperty<Texture2D>( this, GlowFlareAddShader.opacityCurve );
colorDistortion = new CustomMaterialProperty<float>( this, GlowFlareAddShader.colorDistortion );
alphaDistortion = new CustomMaterialProperty<float>( this, GlowFlareAddShader.alphaDistortion );
centerHsl = new CustomMaterialProperty<Vector4>( this, GlowFlareAddShader.centerHsl );
outsideHsl = new CustomMaterialProperty<Vector4>( this, GlowFlareAddShader.outsideHsl );
sizeX = new CustomMaterialProperty<float>( this, GlowFlareAddShader.sizeX );
sizeY = new CustomMaterialProperty<float>( this, GlowFlareAddShader.sizeY );
worldSizeScale = new CustomMaterialProperty<float>( this, GlowFlareAddShader.worldSizeScale );
screenSizeScale = new CustomMaterialProperty<float>( this, GlowFlareAddShader.screenSizeScale );
worldSizeVsScreenSize = new CustomMaterialProperty<float>( this, GlowFlareAddShader.worldSizeVsScreenSize );
screenOffsetScale = new CustomMaterialProperty<Vector2>( this, GlowFlareAddShader.screenOffsetScale );
screenOffsetLayerSpread = new CustomMaterialProperty<Vector2>( this, GlowFlareAddShader.screenOffsetLayerSpread );
fading = new CustomMaterialProperty<Texture2D>( this, GlowFlareAddShader.fading );
opacityFading = new CustomMaterialProperty<Texture2D>( this, GlowFlareAddShader.opacityFading );
sizeXfading = new CustomMaterialProperty<Texture2D>( this, GlowFlareAddShader.sizeXfading );
sizeYfading = new CustomMaterialProperty<Texture2D>( this, GlowFlareAddShader.sizeYfading );
useQuickOcclusionTest = new CustomMaterialProperty<bool>( this, GlowFlareAddShader.useQuickOcclusionTest );
occlusionZOffset = new CustomMaterialProperty<float>( this, GlowFlareAddShader.occlusionZOffset );
occlusionTestMaxSteps = new CustomMaterialProperty<int>( this, GlowFlareAddShader.occlusionTestMaxSteps );
occlusionTestStepStride = new CustomMaterialProperty<float>( this, GlowFlareAddShader.occlusionTestStepStride );
occlusionTestViewDependingScaleAmount = new CustomMaterialProperty<float>( this, GlowFlareAddShader.occlusionTestViewDependingScaleAmount );
occlusionTestViewDependingDistance = new CustomMaterialProperty<float>( this, GlowFlareAddShader.occlusionTestViewDependingDistance );
}
}
}

View File

@ -1 +0,0 @@
uid://b751ojo6ggfls

View File

@ -1,178 +0,0 @@
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Colors.gdshaderinc"
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Math.gdshaderinc"
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Transform.gdshaderinc"
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Depth.gdshaderinc"
#include "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/Flares.gdshaderinc"
// COLOR
group_uniforms Color;
uniform sampler2D depthTexture:hint_depth_texture;
uniform vec4 color : source_color = vec4( 0.887, 0.434, 0.233, 1.0 );
uniform float opacity = 1;
uniform sampler2D opacityCurve:source_color;
uniform float colorDistortion:hint_range(0.2,20) = 2;
uniform float alphaDistortion:hint_range(0.2,20) = 2;
uniform vec4 centerHSL = vec4( 0.08, 0.0, 0.18, 1.0 );
varying vec4 centerColor;
uniform vec4 outsideHSL = vec4( -0.05, 1.65, 0.02, 0.0 );
varying vec4 outsideColor;
group_uniforms;
// SIZE
group_uniforms Size;
uniform float sizeX:hint_range(1,100) = 1;
uniform float sizeY:hint_range(1,100) = 1;
uniform float worldSizeScale = 1;
uniform float screenSizeScale = 1;
uniform float worldSize_vs_screenSize:hint_range(0,1) = 0.5;
group_uniforms;
// SCREEN OFFSET
group_uniforms ScreenOffset;
uniform vec2 screenOffsetScale = vec2( 0, 0 );
uniform vec2 screenOffsetLayerSpread = vec2( 0, 0 );
group_uniforms;
// Fading
group_uniforms Fading;
uniform sampler2D fading:source_color, repeat_disable, filter_linear;
uniform sampler2D opacityFading:source_color, repeat_disable, filter_linear;
uniform sampler2D sizeXfading:source_color, repeat_disable, filter_linear;
uniform sampler2D sizeYfading:source_color, repeat_disable, filter_linear;
varying float opacityFadeValue;
group_uniforms;
// OCCLUSION
group_uniforms Occlusion;
uniform bool useQuickOcclusionTest = false;
uniform float occlusionZOffset:hint_range(-30,30) = 0;
uniform int occlusionTestMaxSteps = 10;
uniform float occlusionTestStepStride = 1;
uniform float occlusionTest_ViewDependingScaleAmount:hint_range(0,1) = 0.5;
uniform float occlusionTest_ViewDependingDistance = 100;
varying float occlusionAlpha;
group_uniforms;
// void setFlareBillboard(
// inout mat4 _MODELVIEW_MATRIX, inout mat3 _MODELVIEW_NORMAL_MATRIX,
// mat4 _VIEW_MATRIX, mat4 _MAIN_CAM_INV_VIEW_MATRIX, mat4 _MODEL_MATRIX,
// vec3 scale, vec2 _screenOffsetScale
// )
// {
// _MODELVIEW_MATRIX = _VIEW_MATRIX * mat4(
// _MAIN_CAM_INV_VIEW_MATRIX[ 0 ],
// _MAIN_CAM_INV_VIEW_MATRIX[ 1 ],
// _MAIN_CAM_INV_VIEW_MATRIX[ 2 ],
// _MODEL_MATRIX[ 3 ]
// );
// vec3 viewPosition = _MODELVIEW_MATRIX[ 3 ].xyz;
// viewPosition.xy += viewPosition.xy * _screenOffsetScale;
// _MODELVIEW_MATRIX[ 3 ].xyz = viewPosition;
// float scaleX = length( _MODEL_MATRIX[ 0 ].xyz ) * scale.x;
// float scaleY = length( _MODEL_MATRIX[ 1 ].xyz ) * scale.y;
// float scaleZ = length( _MODEL_MATRIX[ 2 ].xyz ) * scale.z;
// _MODELVIEW_MATRIX = _MODELVIEW_MATRIX * mat4(
// vec4( scaleX, 0.0, 0.0, 0.0 ),
// vec4( 0.0, scaleY, 0.0, 0.0 ),
// vec4( 0.0, 0.0, scaleZ, 0.0 ),
// vec4( 0.0, 0.0, 0.0, 1.0 )
// );
// _MODELVIEW_NORMAL_MATRIX = mat3( _MODELVIEW_MATRIX);
// }
void vertex()
{
float normalizedIndex = VERTEX.z;
VERTEX.z = 0.0;
vec3 viewOffset = viewToWorldDirection( vec3( 0, 0, occlusionZOffset ), INV_VIEW_MATRIX );
vec3 nodePositionView = worldToView( NODE_POSITION_WORLD + viewOffset, VIEW_MATRIX );
vec2 screenPosition = viewToScreen( nodePositionView, PROJECTION_MATRIX );
float fadeValue = textureLod( fading, screenPosition, 0.0 ).r;
float opacityValue = textureLod( opacityFading, screenPosition, 0.0 ).r;
float sizeXFade = textureLod( sizeXfading, screenPosition, 0.0 ).r;
float sizeYFade = textureLod( sizeYfading, screenPosition, 0.0 ).r;
float nodeScale = length( extractScale( MODEL_MATRIX ) );
float sX = sizeX * sizeXFade;
float sY = sizeY * sizeYFade;
vec2 uvPixelSize = vec2( 1.0, 1.0 ) / VIEWPORT_SIZE ;
vec2 scaledUVPixelSize = uvPixelSize * max( 1.0, nodePositionView.z / occlusionTest_ViewDependingDistance );
uvPixelSize = mix( uvPixelSize, scaledUVPixelSize, occlusionTest_ViewDependingScaleAmount );
float occlusionValue = useQuickOcclusionTest ?
getQuickOcclusionAt( depthTexture, nodePositionView, uvPixelSize,
occlusionTestMaxSteps, occlusionTestStepStride,
PROJECTION_MATRIX, INV_PROJECTION_MATRIX ) :
getOcclusionAt( depthTexture, nodePositionView, uvPixelSize,
occlusionTestMaxSteps, occlusionTestStepStride,
PROJECTION_MATRIX, INV_PROJECTION_MATRIX );
occlusionAlpha = occlusionValue * fadeValue;
float camDist = length( NODE_POSITION_WORLD - CAMERA_POSITION_WORLD );
vec2 sizeScaled = vec2( sX, sY ) * occlusionAlpha * nodeScale;
vec2 size = mix( sizeScaled * worldSizeScale, sizeScaled * camDist * 0.1 * screenSizeScale, worldSize_vs_screenSize );
setFlareBillboard(
MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX,
VIEW_MATRIX, MAIN_CAM_INV_VIEW_MATRIX, MODEL_MATRIX,
vec3( size.x, size.y, 1.0 ), screenOffsetScale + screenOffsetLayerSpread * ( normalizedIndex * 2.0 - 1.0 )
);
vec3 hsl = RGBtoHSL( color.rgb );
vec3 shiftedHSL = shiftHSL( hsl, centerHSL.rgb, 60.0 );
vec3 shiftedRGB = HSLtoRGB( shiftedHSL );
centerColor = vec4( shiftRGBwithHSL( color.rgb, centerHSL.rgb, 60.0 ), centerHSL.a * color.a );
outsideColor = vec4( shiftRGBwithHSL( color.rgb, outsideHSL.rgb, 60.0 ), outsideHSL.a * color.a );
opacityFadeValue = fadeValue * opacityValue;
float opacityMapValue = textureLod( opacityCurve, vec2( normalizedIndex, 0.0 ), 0.0 ).r;
opacityFadeValue *= opacityMapValue;
}
void fragment()
{
float distanceToCircle = 1.0 - min( 1, length( UV - vec2( 0.5, 0.5 ) ) / 0.5 );
float alpha = pow( distanceToCircle, alphaDistortion );
alpha = min( 1, alpha );
distanceToCircle = pow( distanceToCircle, colorDistortion );
float t = min( 1, distanceToCircle );
vec4 mixedColor = mixThreeColors( outsideColor, color, centerColor, t );
mixedColor.a *= alpha;
ALBEDO = mixedColor.rgb;
ALPHA = mixedColor.a * occlusionAlpha * opacity * opacityFadeValue;
}

View File

@ -1 +0,0 @@
uid://dv4j06odwqjvu

View File

@ -1 +0,0 @@
uid://bvjxbgnsu8pcj

View File

@ -1 +0,0 @@
uid://cusgp711ny0pc

View File

@ -0,0 +1,89 @@
#include "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/Flares.gdshaderinc"
// SHAPE
group_uniforms Shape;
uniform int shapeType:hint_range(0,12);
uniform float shapeScale:hint_range(0,1) = 0.5;
uniform float minShapeDistance = 0;
uniform float maxShapeDistance = 0.1;
uniform float minShapeDistanceColor = -0.5;
uniform float maxShapeDistanceColor = 0;
uniform float shapeColorDistortion:hint_range(0.2,20) = 1;
uniform float shapeAlphaDistortion:hint_range(0.2,20) = 1;
uniform vec4 innerHSL = vec4( 0.0, 0.0, 0.0, 1.0 );
uniform vec4 outerHSL = vec4( 0.0, 0.0, 0.0, 1.0 );
group_uniforms;
varying vec4 innerColor;
varying vec4 outerColor;
#include "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/BaseFlare/BaseFlare-Variables.gdshaderinc"
#define GENERATE_FLARE_VERTEX_DATA \
{ \
float _rgbScale = getRGBScale( combinedColor ); \
innerColor = vec4( shiftRGBwithHSL( combinedColor.rgb / _rgbScale, innerHSL.rgb, 60.0) * _rgbScale, innerHSL.a * combinedColor.a ); \
outerColor = vec4( shiftRGBwithHSL( combinedColor.rgb / _rgbScale, outerHSL.rgb, 60.0) * _rgbScale, outerHSL.a * combinedColor.a ); \
} \
float getShapeDistance(
int _shapeType, float _shapeScale, float _shapeRotation, vec2 _uv, float _minShapeDistance, float _maxShapeDistance )
{
float distance = 0.0;
// _shapeRotation += 180.0;
_uv -= vec2( 0.5 );
_uv = rotate_v2( _uv, _shapeRotation / 180.0 * 3.141592653 );
_uv /= _shapeScale;
if ( _shapeType == 0 ) { distance = sdCircle( _uv, 0.5 ); }
else if ( _shapeType == 1 ) { distance = sdRoundedX( _uv, 0.5, 0.2 ); }
else if ( _shapeType == 2 ) { distance = sdEquilateralTriangle( _uv, 0.666 ); }
else if ( _shapeType == 3 ) { distance = sdBox( _uv, vec2( 0.5 ) ); }
else if ( _shapeType == 4 ) { distance = sdPentagon( _uv, 0.5 ); }
else if ( _shapeType == 5 ) { distance = sdHexagon( _uv, 0.5 ); }
else if ( _shapeType == 6 ) { distance = sdOctogon( _uv, 0.5 ); }
else if ( _shapeType == 7 ) { distance = sdHexagram( _uv, 0.333); }
else if ( _shapeType == 8 ) { distance = sdPentagram( _uv, 0.6666 ); }
else if ( _shapeType == 9 ) { distance = sdMoon( _uv, 0.0, 0.5, 0.4 ); }
else if ( _shapeType == 10 ) { distance = sdMoon( _uv, 0.5, 0.5, 0.4 ); }
else if ( _shapeType == 11 ) { distance = sdMoon( _uv, 0.1, 0.5, 0.3 ); }
else if ( _shapeType == 12 ) { distance = sdHeart( _uv ); }
return distance;
}
vec4 generateFlare( vec2 _uv, vec4 _color, float _opacity )
{
float distance = getShapeDistance( shapeType, shapeScale, 0, _uv, minShapeDistance, maxShapeDistance );
float normalizedAlphaDistance = normalizeToRange01( distance, minShapeDistance, maxShapeDistance );
float alphaT = 1.0 - normalizedAlphaDistance;
float normalizedColorDistance = normalizeToRange01( distance, minShapeDistanceColor, maxShapeDistanceColor );
float colorT = 1.0 - normalizedColorDistance;
colorT = pow( colorT, shapeColorDistortion );
alphaT = pow( alphaT, shapeAlphaDistortion );
float t = min( 1, colorT );
vec4 mixedColor = mixThreeColors( outerColor, _color, innerColor, t );
mixedColor.a *= alphaT * _opacity;
return mixedColor;
}
#include "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/BaseFlare/BaseFlare-VertexFragment.gdshaderinc"

View File

@ -0,0 +1 @@
uid://bot3nu2eheylq

View File

@ -1,4 +1,4 @@
shader_type spatial;
render_mode blend_add, depth_test_disabled, cull_disabled, unshaded, fog_disabled;
#include "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/GlowFlare/GlowFlareBase.gdshaderinc"
#include "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/SDFType/SDFTypeFlare.gdshaderinc"

View File

@ -0,0 +1 @@
uid://bghg0b1pecnwd

View File

@ -0,0 +1,111 @@
using Godot;
namespace Rokojori
{
// Generated by ShaderClassGenerator
public class SDFTypeFlareAddShader
{
///*
public static readonly CachedResource<Shader> shader = new CachedResource<Shader>(
"res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/SDFType/Variants/SDFTypeFlareAdd.gdshader"
);
//*/
public static readonly IntPropertyName shapeType = IntPropertyName.Create( "shapeType" );
public static readonly FloatPropertyName shapeScale = FloatPropertyName.Create( "shapeScale" );
public static readonly FloatPropertyName minShapeDistance = FloatPropertyName.Create( "minShapeDistance" );
public static readonly FloatPropertyName maxShapeDistance = FloatPropertyName.Create( "maxShapeDistance" );
public static readonly FloatPropertyName minShapeDistanceColor = FloatPropertyName.Create( "minShapeDistanceColor" );
public static readonly FloatPropertyName maxShapeDistanceColor = FloatPropertyName.Create( "maxShapeDistanceColor" );
public static readonly FloatPropertyName shapeColorDistortion = FloatPropertyName.Create( "shapeColorDistortion" );
public static readonly FloatPropertyName shapeAlphaDistortion = FloatPropertyName.Create( "shapeAlphaDistortion" );
public static readonly Vector4PropertyName innerHsl = Vector4PropertyName.Create( "innerHSL" );
public static readonly Vector4PropertyName outerHsl = Vector4PropertyName.Create( "outerHSL" );
public static readonly ColorPropertyName color = ColorPropertyName.Create( "color" );
public static readonly FloatPropertyName opacity = FloatPropertyName.Create( "opacity" );
public static readonly Sampler2DPropertyName opacityCurve = Sampler2DPropertyName.Create( "opacityCurve" );
public static readonly FloatPropertyName minHueRandom = FloatPropertyName.Create( "minHueRandom" );
public static readonly FloatPropertyName maxHueRandom = FloatPropertyName.Create( "maxHueRandom" );
public static readonly FloatPropertyName shapeNoiseAmount = FloatPropertyName.Create( "shapeNoiseAmount" );
public static readonly FloatPropertyName shapeNoiseScale = FloatPropertyName.Create( "shapeNoiseScale" );
public static readonly FloatPropertyName sizeX = FloatPropertyName.Create( "sizeX" );
public static readonly FloatPropertyName sizeY = FloatPropertyName.Create( "sizeY" );
public static readonly FloatPropertyName worldSizeScale = FloatPropertyName.Create( "worldSizeScale" );
public static readonly FloatPropertyName screenSizeScale = FloatPropertyName.Create( "screenSizeScale" );
public static readonly FloatPropertyName worldSizeVsScreenSize = FloatPropertyName.Create( "worldSize_vs_screenSize" );
public static readonly FloatPropertyName randomScaleMin = FloatPropertyName.Create( "randomScaleMin" );
public static readonly FloatPropertyName randomScaleMax = FloatPropertyName.Create( "randomScaleMax" );
public static readonly FloatPropertyName extension = FloatPropertyName.Create( "extension" );
public static readonly FloatPropertyName rotation = FloatPropertyName.Create( "rotation" );
public static readonly FloatPropertyName rotationOverX = FloatPropertyName.Create( "rotationOverX" );
public static readonly FloatPropertyName rotationOverY = FloatPropertyName.Create( "rotationOverY" );
public static readonly FloatPropertyName rotationPerLayer = FloatPropertyName.Create( "rotationPerLayer" );
public static readonly Vector2PropertyName screenOffset = Vector2PropertyName.Create( "screenOffset" );
public static readonly Vector2PropertyName screenOffsetScale = Vector2PropertyName.Create( "screenOffsetScale" );
public static readonly Vector2PropertyName screenOffsetLayerSpread = Vector2PropertyName.Create( "screenOffsetLayerSpread" );
public static readonly IntPropertyName chromaticAberationMode = IntPropertyName.Create( "chromaticAberationMode" );
public static readonly FloatPropertyName chromaticAberationAmount = FloatPropertyName.Create( "chromaticAberationAmount" );
public static readonly IntPropertyName chromaticAberationSteps = IntPropertyName.Create( "chromaticAberationSteps" );
public static readonly Vector2PropertyName chromaticAberationDirection = Vector2PropertyName.Create( "chromaticAberationDirection" );
public static readonly FloatPropertyName chromaticAberationDirectionTowardsCenter = FloatPropertyName.Create( "chromaticAberationDirectionTowardsCenter" );
public static readonly FloatPropertyName chromaticAberationCenterScale = FloatPropertyName.Create( "chromaticAberationCenterScale" );
public static readonly FloatPropertyName chromaticAberationCenterOffset = FloatPropertyName.Create( "chromaticAberationCenterOffset" );
public static readonly Vector3PropertyName chromaticAberationShifts = Vector3PropertyName.Create( "chromaticAberationShifts" );
public static readonly FloatPropertyName chromaticAberationSmear = FloatPropertyName.Create( "chromaticAberationSmear" );
public static readonly IntPropertyName fadingMode = IntPropertyName.Create( "fadingMode" );
public static readonly Sampler2DPropertyName fading = Sampler2DPropertyName.Create( "fading" );
public static readonly Sampler2DPropertyName opacityFading = Sampler2DPropertyName.Create( "opacityFading" );
public static readonly Sampler2DPropertyName sizeXfading = Sampler2DPropertyName.Create( "sizeXfading" );
public static readonly Sampler2DPropertyName sizeYfading = Sampler2DPropertyName.Create( "sizeYfading" );
public static readonly FloatPropertyName fadingPower = FloatPropertyName.Create( "fadingPower" );
public static readonly FloatPropertyName opacityFadingPower = FloatPropertyName.Create( "opacityFadingPower" );
public static readonly FloatPropertyName sizeXfadingPower = FloatPropertyName.Create( "sizeXfadingPower" );
public static readonly FloatPropertyName sizeYfadingPower = FloatPropertyName.Create( "sizeYfadingPower" );
public static readonly IntPropertyName occlusionMode = IntPropertyName.Create( "occlusionMode" );
public static readonly FloatPropertyName occlusionZOffset = FloatPropertyName.Create( "occlusionZOffset" );
public static readonly IntPropertyName occlusionTestMaxSteps = IntPropertyName.Create( "occlusionTestMaxSteps" );
public static readonly FloatPropertyName occlusionTestStepStride = FloatPropertyName.Create( "occlusionTestStepStride" );
public static readonly FloatPropertyName occlusionTestViewDependingScaleAmount = FloatPropertyName.Create( "occlusionTest_ViewDependingScaleAmount" );
public static readonly FloatPropertyName occlusionTestViewDependingDistance = FloatPropertyName.Create( "occlusionTest_ViewDependingDistance" );
public static readonly FloatPropertyName occlusionToSize = FloatPropertyName.Create( "occlusionToSize" );
}
[Tool]
public partial class SDFTypeFlareAddMaterial:BaseFlareMaterial
{
public readonly CustomMaterialProperty<int> shapeType;
public readonly CustomMaterialProperty<float> shapeScale;
public readonly CustomMaterialProperty<float> minShapeDistance;
public readonly CustomMaterialProperty<float> maxShapeDistance;
public readonly CustomMaterialProperty<float> minShapeDistanceColor;
public readonly CustomMaterialProperty<float> maxShapeDistanceColor;
public readonly CustomMaterialProperty<float> shapeColorDistortion;
public readonly CustomMaterialProperty<float> shapeAlphaDistortion;
public readonly CustomMaterialProperty<Vector4> innerHsl;
public readonly CustomMaterialProperty<Vector4> outerHsl;
public SDFTypeFlareAddMaterial()
{
///*
Shader = SDFTypeFlareAddShader.shader.Get();
//*/
shapeType = new CustomMaterialProperty<int>( this, SDFTypeFlareAddShader.shapeType );
shapeScale = new CustomMaterialProperty<float>( this, SDFTypeFlareAddShader.shapeScale );
minShapeDistance = new CustomMaterialProperty<float>( this, SDFTypeFlareAddShader.minShapeDistance );
maxShapeDistance = new CustomMaterialProperty<float>( this, SDFTypeFlareAddShader.maxShapeDistance );
minShapeDistanceColor = new CustomMaterialProperty<float>( this, SDFTypeFlareAddShader.minShapeDistanceColor );
maxShapeDistanceColor = new CustomMaterialProperty<float>( this, SDFTypeFlareAddShader.maxShapeDistanceColor );
shapeColorDistortion = new CustomMaterialProperty<float>( this, SDFTypeFlareAddShader.shapeColorDistortion );
shapeAlphaDistortion = new CustomMaterialProperty<float>( this, SDFTypeFlareAddShader.shapeAlphaDistortion );
innerHsl = new CustomMaterialProperty<Vector4>( this, SDFTypeFlareAddShader.innerHsl );
outerHsl = new CustomMaterialProperty<Vector4>( this, SDFTypeFlareAddShader.outerHsl );
}
}
}

View File

@ -0,0 +1 @@
uid://pitbnp6cpk4f

View File

@ -1,4 +1,4 @@
shader_type spatial;
render_mode blend_mix, depth_test_disabled, cull_disabled, unshaded, fog_disabled;
#include "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/GlowFlare/GlowFlareBase.gdshaderinc"
#include "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/SDFType/SDFTypeFlare.gdshaderinc"

View File

@ -0,0 +1 @@
uid://k5rstlw8ssw8

View File

@ -0,0 +1,111 @@
using Godot;
namespace Rokojori
{
// Generated by ShaderClassGenerator
public class SDFTypeFlareMixShader
{
///*
public static readonly CachedResource<Shader> shader = new CachedResource<Shader>(
"res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/SDFType/Variants/SDFTypeFlareMix.gdshader"
);
//*/
public static readonly IntPropertyName shapeType = IntPropertyName.Create( "shapeType" );
public static readonly FloatPropertyName shapeScale = FloatPropertyName.Create( "shapeScale" );
public static readonly FloatPropertyName minShapeDistance = FloatPropertyName.Create( "minShapeDistance" );
public static readonly FloatPropertyName maxShapeDistance = FloatPropertyName.Create( "maxShapeDistance" );
public static readonly FloatPropertyName minShapeDistanceColor = FloatPropertyName.Create( "minShapeDistanceColor" );
public static readonly FloatPropertyName maxShapeDistanceColor = FloatPropertyName.Create( "maxShapeDistanceColor" );
public static readonly FloatPropertyName shapeColorDistortion = FloatPropertyName.Create( "shapeColorDistortion" );
public static readonly FloatPropertyName shapeAlphaDistortion = FloatPropertyName.Create( "shapeAlphaDistortion" );
public static readonly Vector4PropertyName innerHsl = Vector4PropertyName.Create( "innerHSL" );
public static readonly Vector4PropertyName outerHsl = Vector4PropertyName.Create( "outerHSL" );
public static readonly ColorPropertyName color = ColorPropertyName.Create( "color" );
public static readonly FloatPropertyName opacity = FloatPropertyName.Create( "opacity" );
public static readonly Sampler2DPropertyName opacityCurve = Sampler2DPropertyName.Create( "opacityCurve" );
public static readonly FloatPropertyName minHueRandom = FloatPropertyName.Create( "minHueRandom" );
public static readonly FloatPropertyName maxHueRandom = FloatPropertyName.Create( "maxHueRandom" );
public static readonly FloatPropertyName shapeNoiseAmount = FloatPropertyName.Create( "shapeNoiseAmount" );
public static readonly FloatPropertyName shapeNoiseScale = FloatPropertyName.Create( "shapeNoiseScale" );
public static readonly FloatPropertyName sizeX = FloatPropertyName.Create( "sizeX" );
public static readonly FloatPropertyName sizeY = FloatPropertyName.Create( "sizeY" );
public static readonly FloatPropertyName worldSizeScale = FloatPropertyName.Create( "worldSizeScale" );
public static readonly FloatPropertyName screenSizeScale = FloatPropertyName.Create( "screenSizeScale" );
public static readonly FloatPropertyName worldSizeVsScreenSize = FloatPropertyName.Create( "worldSize_vs_screenSize" );
public static readonly FloatPropertyName randomScaleMin = FloatPropertyName.Create( "randomScaleMin" );
public static readonly FloatPropertyName randomScaleMax = FloatPropertyName.Create( "randomScaleMax" );
public static readonly FloatPropertyName extension = FloatPropertyName.Create( "extension" );
public static readonly FloatPropertyName rotation = FloatPropertyName.Create( "rotation" );
public static readonly FloatPropertyName rotationOverX = FloatPropertyName.Create( "rotationOverX" );
public static readonly FloatPropertyName rotationOverY = FloatPropertyName.Create( "rotationOverY" );
public static readonly FloatPropertyName rotationPerLayer = FloatPropertyName.Create( "rotationPerLayer" );
public static readonly Vector2PropertyName screenOffset = Vector2PropertyName.Create( "screenOffset" );
public static readonly Vector2PropertyName screenOffsetScale = Vector2PropertyName.Create( "screenOffsetScale" );
public static readonly Vector2PropertyName screenOffsetLayerSpread = Vector2PropertyName.Create( "screenOffsetLayerSpread" );
public static readonly IntPropertyName chromaticAberationMode = IntPropertyName.Create( "chromaticAberationMode" );
public static readonly FloatPropertyName chromaticAberationAmount = FloatPropertyName.Create( "chromaticAberationAmount" );
public static readonly IntPropertyName chromaticAberationSteps = IntPropertyName.Create( "chromaticAberationSteps" );
public static readonly Vector2PropertyName chromaticAberationDirection = Vector2PropertyName.Create( "chromaticAberationDirection" );
public static readonly FloatPropertyName chromaticAberationDirectionTowardsCenter = FloatPropertyName.Create( "chromaticAberationDirectionTowardsCenter" );
public static readonly FloatPropertyName chromaticAberationCenterScale = FloatPropertyName.Create( "chromaticAberationCenterScale" );
public static readonly FloatPropertyName chromaticAberationCenterOffset = FloatPropertyName.Create( "chromaticAberationCenterOffset" );
public static readonly Vector3PropertyName chromaticAberationShifts = Vector3PropertyName.Create( "chromaticAberationShifts" );
public static readonly FloatPropertyName chromaticAberationSmear = FloatPropertyName.Create( "chromaticAberationSmear" );
public static readonly IntPropertyName fadingMode = IntPropertyName.Create( "fadingMode" );
public static readonly Sampler2DPropertyName fading = Sampler2DPropertyName.Create( "fading" );
public static readonly Sampler2DPropertyName opacityFading = Sampler2DPropertyName.Create( "opacityFading" );
public static readonly Sampler2DPropertyName sizeXfading = Sampler2DPropertyName.Create( "sizeXfading" );
public static readonly Sampler2DPropertyName sizeYfading = Sampler2DPropertyName.Create( "sizeYfading" );
public static readonly FloatPropertyName fadingPower = FloatPropertyName.Create( "fadingPower" );
public static readonly FloatPropertyName opacityFadingPower = FloatPropertyName.Create( "opacityFadingPower" );
public static readonly FloatPropertyName sizeXfadingPower = FloatPropertyName.Create( "sizeXfadingPower" );
public static readonly FloatPropertyName sizeYfadingPower = FloatPropertyName.Create( "sizeYfadingPower" );
public static readonly IntPropertyName occlusionMode = IntPropertyName.Create( "occlusionMode" );
public static readonly FloatPropertyName occlusionZOffset = FloatPropertyName.Create( "occlusionZOffset" );
public static readonly IntPropertyName occlusionTestMaxSteps = IntPropertyName.Create( "occlusionTestMaxSteps" );
public static readonly FloatPropertyName occlusionTestStepStride = FloatPropertyName.Create( "occlusionTestStepStride" );
public static readonly FloatPropertyName occlusionTestViewDependingScaleAmount = FloatPropertyName.Create( "occlusionTest_ViewDependingScaleAmount" );
public static readonly FloatPropertyName occlusionTestViewDependingDistance = FloatPropertyName.Create( "occlusionTest_ViewDependingDistance" );
public static readonly FloatPropertyName occlusionToSize = FloatPropertyName.Create( "occlusionToSize" );
}
[Tool]
public partial class SDFTypeFlareMixMaterial:BaseFlareMaterial
{
public readonly CustomMaterialProperty<int> shapeType;
public readonly CustomMaterialProperty<float> shapeScale;
public readonly CustomMaterialProperty<float> minShapeDistance;
public readonly CustomMaterialProperty<float> maxShapeDistance;
public readonly CustomMaterialProperty<float> minShapeDistanceColor;
public readonly CustomMaterialProperty<float> maxShapeDistanceColor;
public readonly CustomMaterialProperty<float> shapeColorDistortion;
public readonly CustomMaterialProperty<float> shapeAlphaDistortion;
public readonly CustomMaterialProperty<Vector4> innerHsl;
public readonly CustomMaterialProperty<Vector4> outerHsl;
public SDFTypeFlareMixMaterial()
{
///*
Shader = SDFTypeFlareMixShader.shader.Get();
//*/
shapeType = new CustomMaterialProperty<int>( this, SDFTypeFlareMixShader.shapeType );
shapeScale = new CustomMaterialProperty<float>( this, SDFTypeFlareMixShader.shapeScale );
minShapeDistance = new CustomMaterialProperty<float>( this, SDFTypeFlareMixShader.minShapeDistance );
maxShapeDistance = new CustomMaterialProperty<float>( this, SDFTypeFlareMixShader.maxShapeDistance );
minShapeDistanceColor = new CustomMaterialProperty<float>( this, SDFTypeFlareMixShader.minShapeDistanceColor );
maxShapeDistanceColor = new CustomMaterialProperty<float>( this, SDFTypeFlareMixShader.maxShapeDistanceColor );
shapeColorDistortion = new CustomMaterialProperty<float>( this, SDFTypeFlareMixShader.shapeColorDistortion );
shapeAlphaDistortion = new CustomMaterialProperty<float>( this, SDFTypeFlareMixShader.shapeAlphaDistortion );
innerHsl = new CustomMaterialProperty<Vector4>( this, SDFTypeFlareMixShader.innerHsl );
outerHsl = new CustomMaterialProperty<Vector4>( this, SDFTypeFlareMixShader.outerHsl );
}
}
}

View File

@ -0,0 +1 @@
uid://bvoka7aow2t65

View File

@ -0,0 +1,4 @@
shader_type spatial;
render_mode blend_mul, depth_test_disabled, cull_disabled, unshaded, fog_disabled;
#include "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/SDFType/SDFTypeFlare.gdshaderinc"

View File

@ -0,0 +1 @@
uid://gmstpp074nd3

View File

@ -0,0 +1,111 @@
using Godot;
namespace Rokojori
{
// Generated by ShaderClassGenerator
public class SDFTypeFlareMultiplyShader
{
///*
public static readonly CachedResource<Shader> shader = new CachedResource<Shader>(
"res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/SDFType/Variants/SDFTypeFlareMultiply.gdshader"
);
//*/
public static readonly IntPropertyName shapeType = IntPropertyName.Create( "shapeType" );
public static readonly FloatPropertyName shapeScale = FloatPropertyName.Create( "shapeScale" );
public static readonly FloatPropertyName minShapeDistance = FloatPropertyName.Create( "minShapeDistance" );
public static readonly FloatPropertyName maxShapeDistance = FloatPropertyName.Create( "maxShapeDistance" );
public static readonly FloatPropertyName minShapeDistanceColor = FloatPropertyName.Create( "minShapeDistanceColor" );
public static readonly FloatPropertyName maxShapeDistanceColor = FloatPropertyName.Create( "maxShapeDistanceColor" );
public static readonly FloatPropertyName shapeColorDistortion = FloatPropertyName.Create( "shapeColorDistortion" );
public static readonly FloatPropertyName shapeAlphaDistortion = FloatPropertyName.Create( "shapeAlphaDistortion" );
public static readonly Vector4PropertyName innerHsl = Vector4PropertyName.Create( "innerHSL" );
public static readonly Vector4PropertyName outerHsl = Vector4PropertyName.Create( "outerHSL" );
public static readonly ColorPropertyName color = ColorPropertyName.Create( "color" );
public static readonly FloatPropertyName opacity = FloatPropertyName.Create( "opacity" );
public static readonly Sampler2DPropertyName opacityCurve = Sampler2DPropertyName.Create( "opacityCurve" );
public static readonly FloatPropertyName minHueRandom = FloatPropertyName.Create( "minHueRandom" );
public static readonly FloatPropertyName maxHueRandom = FloatPropertyName.Create( "maxHueRandom" );
public static readonly FloatPropertyName shapeNoiseAmount = FloatPropertyName.Create( "shapeNoiseAmount" );
public static readonly FloatPropertyName shapeNoiseScale = FloatPropertyName.Create( "shapeNoiseScale" );
public static readonly FloatPropertyName sizeX = FloatPropertyName.Create( "sizeX" );
public static readonly FloatPropertyName sizeY = FloatPropertyName.Create( "sizeY" );
public static readonly FloatPropertyName worldSizeScale = FloatPropertyName.Create( "worldSizeScale" );
public static readonly FloatPropertyName screenSizeScale = FloatPropertyName.Create( "screenSizeScale" );
public static readonly FloatPropertyName worldSizeVsScreenSize = FloatPropertyName.Create( "worldSize_vs_screenSize" );
public static readonly FloatPropertyName randomScaleMin = FloatPropertyName.Create( "randomScaleMin" );
public static readonly FloatPropertyName randomScaleMax = FloatPropertyName.Create( "randomScaleMax" );
public static readonly FloatPropertyName extension = FloatPropertyName.Create( "extension" );
public static readonly FloatPropertyName rotation = FloatPropertyName.Create( "rotation" );
public static readonly FloatPropertyName rotationOverX = FloatPropertyName.Create( "rotationOverX" );
public static readonly FloatPropertyName rotationOverY = FloatPropertyName.Create( "rotationOverY" );
public static readonly FloatPropertyName rotationPerLayer = FloatPropertyName.Create( "rotationPerLayer" );
public static readonly Vector2PropertyName screenOffset = Vector2PropertyName.Create( "screenOffset" );
public static readonly Vector2PropertyName screenOffsetScale = Vector2PropertyName.Create( "screenOffsetScale" );
public static readonly Vector2PropertyName screenOffsetLayerSpread = Vector2PropertyName.Create( "screenOffsetLayerSpread" );
public static readonly IntPropertyName chromaticAberationMode = IntPropertyName.Create( "chromaticAberationMode" );
public static readonly FloatPropertyName chromaticAberationAmount = FloatPropertyName.Create( "chromaticAberationAmount" );
public static readonly IntPropertyName chromaticAberationSteps = IntPropertyName.Create( "chromaticAberationSteps" );
public static readonly Vector2PropertyName chromaticAberationDirection = Vector2PropertyName.Create( "chromaticAberationDirection" );
public static readonly FloatPropertyName chromaticAberationDirectionTowardsCenter = FloatPropertyName.Create( "chromaticAberationDirectionTowardsCenter" );
public static readonly FloatPropertyName chromaticAberationCenterScale = FloatPropertyName.Create( "chromaticAberationCenterScale" );
public static readonly FloatPropertyName chromaticAberationCenterOffset = FloatPropertyName.Create( "chromaticAberationCenterOffset" );
public static readonly Vector3PropertyName chromaticAberationShifts = Vector3PropertyName.Create( "chromaticAberationShifts" );
public static readonly FloatPropertyName chromaticAberationSmear = FloatPropertyName.Create( "chromaticAberationSmear" );
public static readonly IntPropertyName fadingMode = IntPropertyName.Create( "fadingMode" );
public static readonly Sampler2DPropertyName fading = Sampler2DPropertyName.Create( "fading" );
public static readonly Sampler2DPropertyName opacityFading = Sampler2DPropertyName.Create( "opacityFading" );
public static readonly Sampler2DPropertyName sizeXfading = Sampler2DPropertyName.Create( "sizeXfading" );
public static readonly Sampler2DPropertyName sizeYfading = Sampler2DPropertyName.Create( "sizeYfading" );
public static readonly FloatPropertyName fadingPower = FloatPropertyName.Create( "fadingPower" );
public static readonly FloatPropertyName opacityFadingPower = FloatPropertyName.Create( "opacityFadingPower" );
public static readonly FloatPropertyName sizeXfadingPower = FloatPropertyName.Create( "sizeXfadingPower" );
public static readonly FloatPropertyName sizeYfadingPower = FloatPropertyName.Create( "sizeYfadingPower" );
public static readonly IntPropertyName occlusionMode = IntPropertyName.Create( "occlusionMode" );
public static readonly FloatPropertyName occlusionZOffset = FloatPropertyName.Create( "occlusionZOffset" );
public static readonly IntPropertyName occlusionTestMaxSteps = IntPropertyName.Create( "occlusionTestMaxSteps" );
public static readonly FloatPropertyName occlusionTestStepStride = FloatPropertyName.Create( "occlusionTestStepStride" );
public static readonly FloatPropertyName occlusionTestViewDependingScaleAmount = FloatPropertyName.Create( "occlusionTest_ViewDependingScaleAmount" );
public static readonly FloatPropertyName occlusionTestViewDependingDistance = FloatPropertyName.Create( "occlusionTest_ViewDependingDistance" );
public static readonly FloatPropertyName occlusionToSize = FloatPropertyName.Create( "occlusionToSize" );
}
[Tool]
public partial class SDFTypeFlareMultiplyMaterial:BaseFlareMaterial
{
public readonly CustomMaterialProperty<int> shapeType;
public readonly CustomMaterialProperty<float> shapeScale;
public readonly CustomMaterialProperty<float> minShapeDistance;
public readonly CustomMaterialProperty<float> maxShapeDistance;
public readonly CustomMaterialProperty<float> minShapeDistanceColor;
public readonly CustomMaterialProperty<float> maxShapeDistanceColor;
public readonly CustomMaterialProperty<float> shapeColorDistortion;
public readonly CustomMaterialProperty<float> shapeAlphaDistortion;
public readonly CustomMaterialProperty<Vector4> innerHsl;
public readonly CustomMaterialProperty<Vector4> outerHsl;
public SDFTypeFlareMultiplyMaterial()
{
///*
Shader = SDFTypeFlareMultiplyShader.shader.Get();
//*/
shapeType = new CustomMaterialProperty<int>( this, SDFTypeFlareMultiplyShader.shapeType );
shapeScale = new CustomMaterialProperty<float>( this, SDFTypeFlareMultiplyShader.shapeScale );
minShapeDistance = new CustomMaterialProperty<float>( this, SDFTypeFlareMultiplyShader.minShapeDistance );
maxShapeDistance = new CustomMaterialProperty<float>( this, SDFTypeFlareMultiplyShader.maxShapeDistance );
minShapeDistanceColor = new CustomMaterialProperty<float>( this, SDFTypeFlareMultiplyShader.minShapeDistanceColor );
maxShapeDistanceColor = new CustomMaterialProperty<float>( this, SDFTypeFlareMultiplyShader.maxShapeDistanceColor );
shapeColorDistortion = new CustomMaterialProperty<float>( this, SDFTypeFlareMultiplyShader.shapeColorDistortion );
shapeAlphaDistortion = new CustomMaterialProperty<float>( this, SDFTypeFlareMultiplyShader.shapeAlphaDistortion );
innerHsl = new CustomMaterialProperty<Vector4>( this, SDFTypeFlareMultiplyShader.innerHsl );
outerHsl = new CustomMaterialProperty<Vector4>( this, SDFTypeFlareMultiplyShader.outerHsl );
}
}
}

View File

@ -0,0 +1 @@
uid://dcn3nwgoweygd

View File

@ -0,0 +1,4 @@
shader_type spatial;
render_mode blend_sub, depth_test_disabled, cull_disabled, unshaded, fog_disabled;
#include "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/SDFType/SDFTypeFlare.gdshaderinc"

View File

@ -0,0 +1 @@
uid://cawtys20qq5yx

View File

@ -0,0 +1,111 @@
using Godot;
namespace Rokojori
{
// Generated by ShaderClassGenerator
public class SDFTypeFlareSubtractShader
{
///*
public static readonly CachedResource<Shader> shader = new CachedResource<Shader>(
"res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/SDFType/Variants/SDFTypeFlareSubtract.gdshader"
);
//*/
public static readonly IntPropertyName shapeType = IntPropertyName.Create( "shapeType" );
public static readonly FloatPropertyName shapeScale = FloatPropertyName.Create( "shapeScale" );
public static readonly FloatPropertyName minShapeDistance = FloatPropertyName.Create( "minShapeDistance" );
public static readonly FloatPropertyName maxShapeDistance = FloatPropertyName.Create( "maxShapeDistance" );
public static readonly FloatPropertyName minShapeDistanceColor = FloatPropertyName.Create( "minShapeDistanceColor" );
public static readonly FloatPropertyName maxShapeDistanceColor = FloatPropertyName.Create( "maxShapeDistanceColor" );
public static readonly FloatPropertyName shapeColorDistortion = FloatPropertyName.Create( "shapeColorDistortion" );
public static readonly FloatPropertyName shapeAlphaDistortion = FloatPropertyName.Create( "shapeAlphaDistortion" );
public static readonly Vector4PropertyName innerHsl = Vector4PropertyName.Create( "innerHSL" );
public static readonly Vector4PropertyName outerHsl = Vector4PropertyName.Create( "outerHSL" );
public static readonly ColorPropertyName color = ColorPropertyName.Create( "color" );
public static readonly FloatPropertyName opacity = FloatPropertyName.Create( "opacity" );
public static readonly Sampler2DPropertyName opacityCurve = Sampler2DPropertyName.Create( "opacityCurve" );
public static readonly FloatPropertyName minHueRandom = FloatPropertyName.Create( "minHueRandom" );
public static readonly FloatPropertyName maxHueRandom = FloatPropertyName.Create( "maxHueRandom" );
public static readonly FloatPropertyName shapeNoiseAmount = FloatPropertyName.Create( "shapeNoiseAmount" );
public static readonly FloatPropertyName shapeNoiseScale = FloatPropertyName.Create( "shapeNoiseScale" );
public static readonly FloatPropertyName sizeX = FloatPropertyName.Create( "sizeX" );
public static readonly FloatPropertyName sizeY = FloatPropertyName.Create( "sizeY" );
public static readonly FloatPropertyName worldSizeScale = FloatPropertyName.Create( "worldSizeScale" );
public static readonly FloatPropertyName screenSizeScale = FloatPropertyName.Create( "screenSizeScale" );
public static readonly FloatPropertyName worldSizeVsScreenSize = FloatPropertyName.Create( "worldSize_vs_screenSize" );
public static readonly FloatPropertyName randomScaleMin = FloatPropertyName.Create( "randomScaleMin" );
public static readonly FloatPropertyName randomScaleMax = FloatPropertyName.Create( "randomScaleMax" );
public static readonly FloatPropertyName extension = FloatPropertyName.Create( "extension" );
public static readonly FloatPropertyName rotation = FloatPropertyName.Create( "rotation" );
public static readonly FloatPropertyName rotationOverX = FloatPropertyName.Create( "rotationOverX" );
public static readonly FloatPropertyName rotationOverY = FloatPropertyName.Create( "rotationOverY" );
public static readonly FloatPropertyName rotationPerLayer = FloatPropertyName.Create( "rotationPerLayer" );
public static readonly Vector2PropertyName screenOffset = Vector2PropertyName.Create( "screenOffset" );
public static readonly Vector2PropertyName screenOffsetScale = Vector2PropertyName.Create( "screenOffsetScale" );
public static readonly Vector2PropertyName screenOffsetLayerSpread = Vector2PropertyName.Create( "screenOffsetLayerSpread" );
public static readonly IntPropertyName chromaticAberationMode = IntPropertyName.Create( "chromaticAberationMode" );
public static readonly FloatPropertyName chromaticAberationAmount = FloatPropertyName.Create( "chromaticAberationAmount" );
public static readonly IntPropertyName chromaticAberationSteps = IntPropertyName.Create( "chromaticAberationSteps" );
public static readonly Vector2PropertyName chromaticAberationDirection = Vector2PropertyName.Create( "chromaticAberationDirection" );
public static readonly FloatPropertyName chromaticAberationDirectionTowardsCenter = FloatPropertyName.Create( "chromaticAberationDirectionTowardsCenter" );
public static readonly FloatPropertyName chromaticAberationCenterScale = FloatPropertyName.Create( "chromaticAberationCenterScale" );
public static readonly FloatPropertyName chromaticAberationCenterOffset = FloatPropertyName.Create( "chromaticAberationCenterOffset" );
public static readonly Vector3PropertyName chromaticAberationShifts = Vector3PropertyName.Create( "chromaticAberationShifts" );
public static readonly FloatPropertyName chromaticAberationSmear = FloatPropertyName.Create( "chromaticAberationSmear" );
public static readonly IntPropertyName fadingMode = IntPropertyName.Create( "fadingMode" );
public static readonly Sampler2DPropertyName fading = Sampler2DPropertyName.Create( "fading" );
public static readonly Sampler2DPropertyName opacityFading = Sampler2DPropertyName.Create( "opacityFading" );
public static readonly Sampler2DPropertyName sizeXfading = Sampler2DPropertyName.Create( "sizeXfading" );
public static readonly Sampler2DPropertyName sizeYfading = Sampler2DPropertyName.Create( "sizeYfading" );
public static readonly FloatPropertyName fadingPower = FloatPropertyName.Create( "fadingPower" );
public static readonly FloatPropertyName opacityFadingPower = FloatPropertyName.Create( "opacityFadingPower" );
public static readonly FloatPropertyName sizeXfadingPower = FloatPropertyName.Create( "sizeXfadingPower" );
public static readonly FloatPropertyName sizeYfadingPower = FloatPropertyName.Create( "sizeYfadingPower" );
public static readonly IntPropertyName occlusionMode = IntPropertyName.Create( "occlusionMode" );
public static readonly FloatPropertyName occlusionZOffset = FloatPropertyName.Create( "occlusionZOffset" );
public static readonly IntPropertyName occlusionTestMaxSteps = IntPropertyName.Create( "occlusionTestMaxSteps" );
public static readonly FloatPropertyName occlusionTestStepStride = FloatPropertyName.Create( "occlusionTestStepStride" );
public static readonly FloatPropertyName occlusionTestViewDependingScaleAmount = FloatPropertyName.Create( "occlusionTest_ViewDependingScaleAmount" );
public static readonly FloatPropertyName occlusionTestViewDependingDistance = FloatPropertyName.Create( "occlusionTest_ViewDependingDistance" );
public static readonly FloatPropertyName occlusionToSize = FloatPropertyName.Create( "occlusionToSize" );
}
[Tool]
public partial class SDFTypeFlareSubtractMaterial:BaseFlareMaterial
{
public readonly CustomMaterialProperty<int> shapeType;
public readonly CustomMaterialProperty<float> shapeScale;
public readonly CustomMaterialProperty<float> minShapeDistance;
public readonly CustomMaterialProperty<float> maxShapeDistance;
public readonly CustomMaterialProperty<float> minShapeDistanceColor;
public readonly CustomMaterialProperty<float> maxShapeDistanceColor;
public readonly CustomMaterialProperty<float> shapeColorDistortion;
public readonly CustomMaterialProperty<float> shapeAlphaDistortion;
public readonly CustomMaterialProperty<Vector4> innerHsl;
public readonly CustomMaterialProperty<Vector4> outerHsl;
public SDFTypeFlareSubtractMaterial()
{
///*
Shader = SDFTypeFlareSubtractShader.shader.Get();
//*/
shapeType = new CustomMaterialProperty<int>( this, SDFTypeFlareSubtractShader.shapeType );
shapeScale = new CustomMaterialProperty<float>( this, SDFTypeFlareSubtractShader.shapeScale );
minShapeDistance = new CustomMaterialProperty<float>( this, SDFTypeFlareSubtractShader.minShapeDistance );
maxShapeDistance = new CustomMaterialProperty<float>( this, SDFTypeFlareSubtractShader.maxShapeDistance );
minShapeDistanceColor = new CustomMaterialProperty<float>( this, SDFTypeFlareSubtractShader.minShapeDistanceColor );
maxShapeDistanceColor = new CustomMaterialProperty<float>( this, SDFTypeFlareSubtractShader.maxShapeDistanceColor );
shapeColorDistortion = new CustomMaterialProperty<float>( this, SDFTypeFlareSubtractShader.shapeColorDistortion );
shapeAlphaDistortion = new CustomMaterialProperty<float>( this, SDFTypeFlareSubtractShader.shapeAlphaDistortion );
innerHsl = new CustomMaterialProperty<Vector4>( this, SDFTypeFlareSubtractShader.innerHsl );
outerHsl = new CustomMaterialProperty<Vector4>( this, SDFTypeFlareSubtractShader.outerHsl );
}
}
}

View File

@ -0,0 +1 @@
uid://ctiiphbrfpvk1

View File

@ -1 +0,0 @@
uid://ibo7qa8hf6he

View File

@ -1,135 +0,0 @@
using Godot;
namespace Rokojori
{
// Generated by ShaderClassGenerator
public class ShapeFlareAddShader
{
public static readonly CachedResource<Shader> shader = new CachedResource<Shader>(
"res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/ShapeFlare/ShapeFlareAdd.gdshader"
);
public static readonly IntPropertyName shapeType = IntPropertyName.Create( "shapeType" );
public static readonly FloatPropertyName shapeScale = FloatPropertyName.Create( "shapeScale" );
public static readonly FloatPropertyName shapeRotation = FloatPropertyName.Create( "shapeRotation" );
public static readonly FloatPropertyName minShapeDistance = FloatPropertyName.Create( "minShapeDistance" );
public static readonly FloatPropertyName maxShapeDistance = FloatPropertyName.Create( "maxShapeDistance" );
public static readonly ColorPropertyName color = ColorPropertyName.Create( "color" );
public static readonly FloatPropertyName opacity = FloatPropertyName.Create( "opacity" );
public static readonly Sampler2DPropertyName opacityCurve = Sampler2DPropertyName.Create( "opacityCurve" );
public static readonly FloatPropertyName colorDistortion = FloatPropertyName.Create( "colorDistortion" );
public static readonly FloatPropertyName alphaDistortion = FloatPropertyName.Create( "alphaDistortion" );
public static readonly Vector4PropertyName centerHsl = Vector4PropertyName.Create( "centerHSL" );
public static readonly Vector4PropertyName outsideHsl = Vector4PropertyName.Create( "outsideHSL" );
public static readonly FloatPropertyName minHueRandom = FloatPropertyName.Create( "minHueRandom" );
public static readonly FloatPropertyName maxHueRandom = FloatPropertyName.Create( "maxHueRandom" );
public static readonly FloatPropertyName minShapeDistanceColor = FloatPropertyName.Create( "minShapeDistanceColor" );
public static readonly FloatPropertyName maxShapeDistanceColor = FloatPropertyName.Create( "maxShapeDistanceColor" );
public static readonly FloatPropertyName sizeX = FloatPropertyName.Create( "sizeX" );
public static readonly FloatPropertyName sizeY = FloatPropertyName.Create( "sizeY" );
public static readonly FloatPropertyName worldSizeScale = FloatPropertyName.Create( "worldSizeScale" );
public static readonly FloatPropertyName screenSizeScale = FloatPropertyName.Create( "screenSizeScale" );
public static readonly FloatPropertyName worldSizeVsScreenSize = FloatPropertyName.Create( "worldSize_vs_screenSize" );
public static readonly FloatPropertyName randomScaleMin = FloatPropertyName.Create( "randomScaleMin" );
public static readonly FloatPropertyName randomScaleMax = FloatPropertyName.Create( "randomScaleMax" );
public static readonly Vector2PropertyName screenOffsetScale = Vector2PropertyName.Create( "screenOffsetScale" );
public static readonly Vector2PropertyName screenOffsetLayerSpread = Vector2PropertyName.Create( "screenOffsetLayerSpread" );
public static readonly Sampler2DPropertyName fading = Sampler2DPropertyName.Create( "fading" );
public static readonly Sampler2DPropertyName opacityFading = Sampler2DPropertyName.Create( "opacityFading" );
public static readonly Sampler2DPropertyName sizeXfading = Sampler2DPropertyName.Create( "sizeXfading" );
public static readonly Sampler2DPropertyName sizeYfading = Sampler2DPropertyName.Create( "sizeYfading" );
public static readonly BoolPropertyName useQuickOcclusionTest = BoolPropertyName.Create( "useQuickOcclusionTest" );
public static readonly FloatPropertyName occlusionZOffset = FloatPropertyName.Create( "occlusionZOffset" );
public static readonly IntPropertyName occlusionTestMaxSteps = IntPropertyName.Create( "occlusionTestMaxSteps" );
public static readonly FloatPropertyName occlusionTestStepStride = FloatPropertyName.Create( "occlusionTestStepStride" );
public static readonly FloatPropertyName occlusionTestViewDependingScaleAmount = FloatPropertyName.Create( "occlusionTest_ViewDependingScaleAmount" );
public static readonly FloatPropertyName occlusionTestViewDependingDistance = FloatPropertyName.Create( "occlusionTest_ViewDependingDistance" );
}
[Tool]
public partial class ShapeFlareAddMaterial:CustomMaterial
{
public readonly CustomMaterialProperty<int> shapeType;
public readonly CustomMaterialProperty<float> shapeScale;
public readonly CustomMaterialProperty<float> shapeRotation;
public readonly CustomMaterialProperty<float> minShapeDistance;
public readonly CustomMaterialProperty<float> maxShapeDistance;
public readonly CustomMaterialProperty<Color> color;
public readonly CustomMaterialProperty<float> opacity;
public readonly CustomMaterialProperty<Texture2D> opacityCurve;
public readonly CustomMaterialProperty<float> colorDistortion;
public readonly CustomMaterialProperty<float> alphaDistortion;
public readonly CustomMaterialProperty<Vector4> centerHsl;
public readonly CustomMaterialProperty<Vector4> outsideHsl;
public readonly CustomMaterialProperty<float> minHueRandom;
public readonly CustomMaterialProperty<float> maxHueRandom;
public readonly CustomMaterialProperty<float> minShapeDistanceColor;
public readonly CustomMaterialProperty<float> maxShapeDistanceColor;
public readonly CustomMaterialProperty<float> sizeX;
public readonly CustomMaterialProperty<float> sizeY;
public readonly CustomMaterialProperty<float> worldSizeScale;
public readonly CustomMaterialProperty<float> screenSizeScale;
public readonly CustomMaterialProperty<float> worldSizeVsScreenSize;
public readonly CustomMaterialProperty<float> randomScaleMin;
public readonly CustomMaterialProperty<float> randomScaleMax;
public readonly CustomMaterialProperty<Vector2> screenOffsetScale;
public readonly CustomMaterialProperty<Vector2> screenOffsetLayerSpread;
public readonly CustomMaterialProperty<Texture2D> fading;
public readonly CustomMaterialProperty<Texture2D> opacityFading;
public readonly CustomMaterialProperty<Texture2D> sizeXfading;
public readonly CustomMaterialProperty<Texture2D> sizeYfading;
public readonly CustomMaterialProperty<bool> useQuickOcclusionTest;
public readonly CustomMaterialProperty<float> occlusionZOffset;
public readonly CustomMaterialProperty<int> occlusionTestMaxSteps;
public readonly CustomMaterialProperty<float> occlusionTestStepStride;
public readonly CustomMaterialProperty<float> occlusionTestViewDependingScaleAmount;
public readonly CustomMaterialProperty<float> occlusionTestViewDependingDistance;
public ShapeFlareAddMaterial()
{
Shader = ShapeFlareAddShader.shader.Get();
shapeType = new CustomMaterialProperty<int>( this, ShapeFlareAddShader.shapeType );
shapeScale = new CustomMaterialProperty<float>( this, ShapeFlareAddShader.shapeScale );
shapeRotation = new CustomMaterialProperty<float>( this, ShapeFlareAddShader.shapeRotation );
minShapeDistance = new CustomMaterialProperty<float>( this, ShapeFlareAddShader.minShapeDistance );
maxShapeDistance = new CustomMaterialProperty<float>( this, ShapeFlareAddShader.maxShapeDistance );
color = new CustomMaterialProperty<Color>( this, ShapeFlareAddShader.color );
opacity = new CustomMaterialProperty<float>( this, ShapeFlareAddShader.opacity );
opacityCurve = new CustomMaterialProperty<Texture2D>( this, ShapeFlareAddShader.opacityCurve );
colorDistortion = new CustomMaterialProperty<float>( this, ShapeFlareAddShader.colorDistortion );
alphaDistortion = new CustomMaterialProperty<float>( this, ShapeFlareAddShader.alphaDistortion );
centerHsl = new CustomMaterialProperty<Vector4>( this, ShapeFlareAddShader.centerHsl );
outsideHsl = new CustomMaterialProperty<Vector4>( this, ShapeFlareAddShader.outsideHsl );
minHueRandom = new CustomMaterialProperty<float>( this, ShapeFlareAddShader.minHueRandom );
maxHueRandom = new CustomMaterialProperty<float>( this, ShapeFlareAddShader.maxHueRandom );
minShapeDistanceColor = new CustomMaterialProperty<float>( this, ShapeFlareAddShader.minShapeDistanceColor );
maxShapeDistanceColor = new CustomMaterialProperty<float>( this, ShapeFlareAddShader.maxShapeDistanceColor );
sizeX = new CustomMaterialProperty<float>( this, ShapeFlareAddShader.sizeX );
sizeY = new CustomMaterialProperty<float>( this, ShapeFlareAddShader.sizeY );
worldSizeScale = new CustomMaterialProperty<float>( this, ShapeFlareAddShader.worldSizeScale );
screenSizeScale = new CustomMaterialProperty<float>( this, ShapeFlareAddShader.screenSizeScale );
worldSizeVsScreenSize = new CustomMaterialProperty<float>( this, ShapeFlareAddShader.worldSizeVsScreenSize );
randomScaleMin = new CustomMaterialProperty<float>( this, ShapeFlareAddShader.randomScaleMin );
randomScaleMax = new CustomMaterialProperty<float>( this, ShapeFlareAddShader.randomScaleMax );
screenOffsetScale = new CustomMaterialProperty<Vector2>( this, ShapeFlareAddShader.screenOffsetScale );
screenOffsetLayerSpread = new CustomMaterialProperty<Vector2>( this, ShapeFlareAddShader.screenOffsetLayerSpread );
fading = new CustomMaterialProperty<Texture2D>( this, ShapeFlareAddShader.fading );
opacityFading = new CustomMaterialProperty<Texture2D>( this, ShapeFlareAddShader.opacityFading );
sizeXfading = new CustomMaterialProperty<Texture2D>( this, ShapeFlareAddShader.sizeXfading );
sizeYfading = new CustomMaterialProperty<Texture2D>( this, ShapeFlareAddShader.sizeYfading );
useQuickOcclusionTest = new CustomMaterialProperty<bool>( this, ShapeFlareAddShader.useQuickOcclusionTest );
occlusionZOffset = new CustomMaterialProperty<float>( this, ShapeFlareAddShader.occlusionZOffset );
occlusionTestMaxSteps = new CustomMaterialProperty<int>( this, ShapeFlareAddShader.occlusionTestMaxSteps );
occlusionTestStepStride = new CustomMaterialProperty<float>( this, ShapeFlareAddShader.occlusionTestStepStride );
occlusionTestViewDependingScaleAmount = new CustomMaterialProperty<float>( this, ShapeFlareAddShader.occlusionTestViewDependingScaleAmount );
occlusionTestViewDependingDistance = new CustomMaterialProperty<float>( this, ShapeFlareAddShader.occlusionTestViewDependingDistance );
}
}
}

View File

@ -1 +0,0 @@
uid://btnca61nvu55p

View File

@ -1,241 +0,0 @@
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Colors.gdshaderinc"
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Math.gdshaderinc"
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Transform.gdshaderinc"
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Depth.gdshaderinc"
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/SDF.gdshaderinc"
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Noise.gdshaderinc"
#include "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/Flares.gdshaderinc"
// SHAPE
group_uniforms Shape;
uniform int shapeType:hint_range(0,12);
uniform float shapeScale:hint_range(0,1) = 0.5;
uniform float shapeRotation:hint_range(-180,180) = 0;
uniform float minShapeDistance = 0;
uniform float maxShapeDistance = 0.05;
group_uniforms;
// COLOR
group_uniforms Color;
uniform sampler2D depthTexture:hint_depth_texture;
uniform vec4 color : source_color = vec4( 0.887, 0.434, 0.233, 1.0 );
uniform float opacity = 1;
uniform sampler2D opacityCurve:source_color;
uniform float colorDistortion:hint_range(0.2,20) = 2;
uniform float alphaDistortion:hint_range(0.2,20) = 2;
uniform vec4 centerHSL = vec4( 0.08, 0.0, 0.18, 1.0 );
varying vec4 centerColor;
uniform vec4 outsideHSL = vec4( -0.05, 1.65, 0.02, 0.0 );
varying vec4 outsideColor;
uniform float minHueRandom = 0;
uniform float maxHueRandom = 0;
uniform float minShapeDistanceColor = 0;
uniform float maxShapeDistanceColor = 0.05;
group_uniforms;
// SIZE
group_uniforms Size;
uniform float sizeX:hint_range(1,100) = 1;
uniform float sizeY:hint_range(1,100) = 1;
uniform float worldSizeScale = 1;
uniform float screenSizeScale = 1;
uniform float worldSize_vs_screenSize:hint_range(0,1) = 0.5;
uniform float randomScaleMin = 1.0;
uniform float randomScaleMax = 1.0;
group_uniforms;
// SCREEN OFFSET
group_uniforms ScreenOffset;
uniform vec2 screenOffsetScale = vec2( 0, 0 );
uniform vec2 screenOffsetLayerSpread = vec2( 0, 0 );
group_uniforms;
// Fading
group_uniforms Fading;
// uniform sampler2D fading:source_color, repeat_disable, filter_linear;
// uniform sampler2D opacityFading:source_color, repeat_disable, filter_linear;
// uniform sampler2D sizeXfading:source_color, repeat_disable, filter_linear;
// uniform sampler2D sizeYfading:source_color, repeat_disable, filter_linear;
uniform float fadingPower = 1.0;
uniform float opacityFadingPower = 1.0;
uniform float sizeXfadingPower = 1.0;
uniform float sizeYfadingPower = 1.0;
varying float opacityFadeValue;
group_uniforms;
// OCCLUSION
group_uniforms Occlusion;
uniform bool useQuickOcclusionTest = false;
uniform float occlusionZOffset:hint_range(-30,30) = 0;
uniform int occlusionTestMaxSteps = 10;
uniform float occlusionTestStepStride = 1;
uniform float occlusionTest_ViewDependingScaleAmount:hint_range(0,1) = 0.5;
uniform float occlusionTest_ViewDependingDistance = 100;
varying float occlusionAlpha;
group_uniforms;
float getShapeDistance(
int _shapeType, float _shapeScale, float _shapeRotation, vec2 _uv, float _minShapeDistance, float _maxShapeDistance )
{
float distance = 0.0;
_shapeRotation += 180.0;
_uv -= vec2( 0.5 );
_uv = rotate_v2( _uv, _shapeRotation / 180.0 * 3.141592653 );
_uv /= _shapeScale;
if ( _shapeType == 0 ) { distance = sdCircle( _uv, 0.5 ); }
else if ( _shapeType == 1 ) { distance = sdRoundedX( _uv, 0.5, 0.2 ); }
else if ( _shapeType == 2 ) { distance = sdEquilateralTriangle( _uv, 0.666 ); }
else if ( _shapeType == 3 ) { distance = sdBox( _uv, vec2( 0.5 ) ); }
else if ( _shapeType == 4 ) { distance = sdPentagon( _uv, 0.5 ); }
else if ( _shapeType == 5 ) { distance = sdHexagon( _uv, 0.5 ); }
else if ( _shapeType == 6 ) { distance = sdOctogon( _uv, 0.5 ); }
else if ( _shapeType == 7 ) { distance = sdHexagram( _uv, 0.333); }
else if ( _shapeType == 8 ) { distance = sdPentagram( _uv, 0.6666 ); }
else if ( _shapeType == 9 ) { distance = sdMoon( _uv, 0.0, 0.5, 0.4 ); }
else if ( _shapeType == 10 ) { distance = sdMoon( _uv, 0.5, 0.5, 0.4 ); }
else if ( _shapeType == 11 ) { distance = sdMoon( _uv, 0.1, 0.5, 0.3 ); }
else if ( _shapeType == 12 ) { distance = sdHeart( _uv ); }
return distance;
// float normalizedDistance = normalizeToRange01( distance, _minShapeDistance, _maxShapeDistance );
// return 1.0 - normalizedDistance;
}
varying vec4 combinedColor;
void vertex()
{
float normalizedIndex = VERTEX.z;
VERTEX.z = 0.0;
vec3 viewOffset = viewToWorldDirection( vec3( 0, 0, occlusionZOffset ), INV_VIEW_MATRIX );
vec3 nodePositionView = worldToView( NODE_POSITION_WORLD + viewOffset, VIEW_MATRIX );
vec2 screenPosition = viewToScreen( nodePositionView, PROJECTION_MATRIX );
float edgeDistance = max( 0.0, -sdBox( screenPosition - vec2( 0.5 ), vec2( 0.5 ) ) ) * 2.0;
// float fadeValue = textureLod( fading, screenPosition, 0.0 ).r;
// float opacityValue = textureLod( opacityFading, screenPosition, 0.0 ).r;
// float sizeXFade = textureLod( sizeXfading, screenPosition, 0.0 ).r;
// float sizeYFade = textureLod( sizeYfading, screenPosition, 0.0 ).r;
float fadeValue = pow( edgeDistance, fadingPower );
float opacityValue = pow( edgeDistance, opacityFadingPower );
float sizeXFade = pow( edgeDistance, sizeXfadingPower );
float sizeYFade = pow( edgeDistance, sizeYfadingPower );
float nodeScale = length( extractScale( MODEL_MATRIX ) );
float sX = sizeX * sizeXFade;
float sY = sizeY * sizeYFade;
vec2 uvPixelSize = vec2( 1.0, 1.0 ) / VIEWPORT_SIZE ;
vec2 scaledUVPixelSize = uvPixelSize * max( 1.0, nodePositionView.z / occlusionTest_ViewDependingDistance );
uvPixelSize = mix( uvPixelSize, scaledUVPixelSize, occlusionTest_ViewDependingScaleAmount );
float occlusionValue = useQuickOcclusionTest ?
getQuickOcclusionAt( depthTexture, nodePositionView, uvPixelSize,
occlusionTestMaxSteps, occlusionTestStepStride,
PROJECTION_MATRIX, INV_PROJECTION_MATRIX ) :
getOcclusionAt( depthTexture, nodePositionView, uvPixelSize,
occlusionTestMaxSteps, occlusionTestStepStride,
PROJECTION_MATRIX, INV_PROJECTION_MATRIX );
occlusionAlpha = occlusionValue * fadeValue;
float camDist = length( NODE_POSITION_WORLD - CAMERA_POSITION_WORLD );
vec2 sizeScaled = vec2( sX, sY ) * occlusionAlpha * nodeScale;
vec2 size = mix( sizeScaled * worldSizeScale, sizeScaled * camDist * 0.1 * screenSizeScale, worldSize_vs_screenSize );
float randomScale = mix( randomScaleMin, randomScaleMax, random( vec2( normalizedIndex ) ) );
size *= randomScale;
setFlareBillboard(
MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX,
VIEW_MATRIX, MAIN_CAM_INV_VIEW_MATRIX, MODEL_MATRIX,
vec3( size.x, size.y, 1.0 ), screenOffsetScale + screenOffsetLayerSpread * ( normalizedIndex * 2.0 - 1.0 )
);
vec3 hsl = RGBtoHSL( color.rgb );
vec3 shiftedHSL = shiftHSL( hsl, centerHSL.rgb, 60.0 );
vec3 shiftedRGB = HSLtoRGB( shiftedHSL );
combinedColor = color;
float rgbScale = getRGBScale( combinedColor.rgb );
float randomHueOffset = mix( minHueRandom, maxHueRandom, random( vec2( normalizedIndex ) + vec2( 0.23, 0.13 ) ) );
combinedColor.rgb = changeHueOfRGB( combinedColor.rgb / rgbScale, randomHueOffset ) * rgbScale;
rgbScale = getRGBScale( combinedColor.rgb );
centerColor = vec4( shiftRGBwithHSL( combinedColor.rgb / rgbScale, centerHSL.rgb, 60.0 ) * rgbScale, centerHSL.a * color.a );
outsideColor = vec4( shiftRGBwithHSL( combinedColor.rgb / rgbScale, outsideHSL.rgb, 60.0 ) * rgbScale, outsideHSL.a * color.a );
opacityFadeValue = fadeValue * opacityValue;
float opacityMapValue = textureLod( opacityCurve, vec2( normalizedIndex, 0.0 ), 0.0 ).r;
opacityFadeValue *= opacityMapValue;
}
void fragment()
{
// float distanceToCircle = 1.0 - min( 1, length( UV - vec2( 0.5, 0.5 ) ) / 0.5 );
// float normalizedDistance = normalizeToRange01( distance, _minShapeDistance, _maxShapeDistance );
// return 1.0 - normalizedDistance;
float distance = getShapeDistance( shapeType, shapeScale, -shapeRotation, UV, minShapeDistance, maxShapeDistance );
float normalizedAlphaDistance = normalizeToRange01( distance, minShapeDistance, maxShapeDistance );
float alphaT = 1.0 - normalizedAlphaDistance;
float normalizedColorDistance = normalizeToRange01( distance, minShapeDistanceColor, maxShapeDistanceColor );
float colorT = 1.0 - normalizedColorDistance;
colorT = pow( colorT, colorDistortion );
alphaT = pow( alphaT, alphaDistortion );
float t = min( 1, colorT );
vec4 mixedColor = mixThreeColors( outsideColor, combinedColor, centerColor, t );
// mixedColor = outsideColor;
mixedColor.a *= alphaT;
ALBEDO = mixedColor.rgb;
ALPHA = mixedColor.a * occlusionAlpha * opacity * opacityFadeValue;
}

View File

@ -1 +0,0 @@
uid://yy2pi2u1bg4n

View File

@ -1,135 +0,0 @@
using Godot;
namespace Rokojori
{
// Generated by ShaderClassGenerator
public class ShapeFlareMixShader
{
public static readonly CachedResource<Shader> shader = new CachedResource<Shader>(
"res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/ShapeFlare/ShapeFlareMix.gdshader"
);
public static readonly IntPropertyName shapeType = IntPropertyName.Create( "shapeType" );
public static readonly FloatPropertyName shapeScale = FloatPropertyName.Create( "shapeScale" );
public static readonly FloatPropertyName shapeRotation = FloatPropertyName.Create( "shapeRotation" );
public static readonly FloatPropertyName minShapeDistance = FloatPropertyName.Create( "minShapeDistance" );
public static readonly FloatPropertyName maxShapeDistance = FloatPropertyName.Create( "maxShapeDistance" );
public static readonly ColorPropertyName color = ColorPropertyName.Create( "color" );
public static readonly FloatPropertyName opacity = FloatPropertyName.Create( "opacity" );
public static readonly Sampler2DPropertyName opacityCurve = Sampler2DPropertyName.Create( "opacityCurve" );
public static readonly FloatPropertyName colorDistortion = FloatPropertyName.Create( "colorDistortion" );
public static readonly FloatPropertyName alphaDistortion = FloatPropertyName.Create( "alphaDistortion" );
public static readonly Vector4PropertyName centerHsl = Vector4PropertyName.Create( "centerHSL" );
public static readonly Vector4PropertyName outsideHsl = Vector4PropertyName.Create( "outsideHSL" );
public static readonly FloatPropertyName minHueRandom = FloatPropertyName.Create( "minHueRandom" );
public static readonly FloatPropertyName maxHueRandom = FloatPropertyName.Create( "maxHueRandom" );
public static readonly FloatPropertyName minShapeDistanceColor = FloatPropertyName.Create( "minShapeDistanceColor" );
public static readonly FloatPropertyName maxShapeDistanceColor = FloatPropertyName.Create( "maxShapeDistanceColor" );
public static readonly FloatPropertyName sizeX = FloatPropertyName.Create( "sizeX" );
public static readonly FloatPropertyName sizeY = FloatPropertyName.Create( "sizeY" );
public static readonly FloatPropertyName worldSizeScale = FloatPropertyName.Create( "worldSizeScale" );
public static readonly FloatPropertyName screenSizeScale = FloatPropertyName.Create( "screenSizeScale" );
public static readonly FloatPropertyName worldSizeVsScreenSize = FloatPropertyName.Create( "worldSize_vs_screenSize" );
public static readonly FloatPropertyName randomScaleMin = FloatPropertyName.Create( "randomScaleMin" );
public static readonly FloatPropertyName randomScaleMax = FloatPropertyName.Create( "randomScaleMax" );
public static readonly Vector2PropertyName screenOffsetScale = Vector2PropertyName.Create( "screenOffsetScale" );
public static readonly Vector2PropertyName screenOffsetLayerSpread = Vector2PropertyName.Create( "screenOffsetLayerSpread" );
public static readonly Sampler2DPropertyName fading = Sampler2DPropertyName.Create( "fading" );
public static readonly Sampler2DPropertyName opacityFading = Sampler2DPropertyName.Create( "opacityFading" );
public static readonly Sampler2DPropertyName sizeXfading = Sampler2DPropertyName.Create( "sizeXfading" );
public static readonly Sampler2DPropertyName sizeYfading = Sampler2DPropertyName.Create( "sizeYfading" );
public static readonly BoolPropertyName useQuickOcclusionTest = BoolPropertyName.Create( "useQuickOcclusionTest" );
public static readonly FloatPropertyName occlusionZOffset = FloatPropertyName.Create( "occlusionZOffset" );
public static readonly IntPropertyName occlusionTestMaxSteps = IntPropertyName.Create( "occlusionTestMaxSteps" );
public static readonly FloatPropertyName occlusionTestStepStride = FloatPropertyName.Create( "occlusionTestStepStride" );
public static readonly FloatPropertyName occlusionTestViewDependingScaleAmount = FloatPropertyName.Create( "occlusionTest_ViewDependingScaleAmount" );
public static readonly FloatPropertyName occlusionTestViewDependingDistance = FloatPropertyName.Create( "occlusionTest_ViewDependingDistance" );
}
[Tool]
public partial class ShapeFlareMixMaterial:CustomMaterial
{
public readonly CustomMaterialProperty<int> shapeType;
public readonly CustomMaterialProperty<float> shapeScale;
public readonly CustomMaterialProperty<float> shapeRotation;
public readonly CustomMaterialProperty<float> minShapeDistance;
public readonly CustomMaterialProperty<float> maxShapeDistance;
public readonly CustomMaterialProperty<Color> color;
public readonly CustomMaterialProperty<float> opacity;
public readonly CustomMaterialProperty<Texture2D> opacityCurve;
public readonly CustomMaterialProperty<float> colorDistortion;
public readonly CustomMaterialProperty<float> alphaDistortion;
public readonly CustomMaterialProperty<Vector4> centerHsl;
public readonly CustomMaterialProperty<Vector4> outsideHsl;
public readonly CustomMaterialProperty<float> minHueRandom;
public readonly CustomMaterialProperty<float> maxHueRandom;
public readonly CustomMaterialProperty<float> minShapeDistanceColor;
public readonly CustomMaterialProperty<float> maxShapeDistanceColor;
public readonly CustomMaterialProperty<float> sizeX;
public readonly CustomMaterialProperty<float> sizeY;
public readonly CustomMaterialProperty<float> worldSizeScale;
public readonly CustomMaterialProperty<float> screenSizeScale;
public readonly CustomMaterialProperty<float> worldSizeVsScreenSize;
public readonly CustomMaterialProperty<float> randomScaleMin;
public readonly CustomMaterialProperty<float> randomScaleMax;
public readonly CustomMaterialProperty<Vector2> screenOffsetScale;
public readonly CustomMaterialProperty<Vector2> screenOffsetLayerSpread;
public readonly CustomMaterialProperty<Texture2D> fading;
public readonly CustomMaterialProperty<Texture2D> opacityFading;
public readonly CustomMaterialProperty<Texture2D> sizeXfading;
public readonly CustomMaterialProperty<Texture2D> sizeYfading;
public readonly CustomMaterialProperty<bool> useQuickOcclusionTest;
public readonly CustomMaterialProperty<float> occlusionZOffset;
public readonly CustomMaterialProperty<int> occlusionTestMaxSteps;
public readonly CustomMaterialProperty<float> occlusionTestStepStride;
public readonly CustomMaterialProperty<float> occlusionTestViewDependingScaleAmount;
public readonly CustomMaterialProperty<float> occlusionTestViewDependingDistance;
public ShapeFlareMixMaterial()
{
Shader = ShapeFlareMixShader.shader.Get();
shapeType = new CustomMaterialProperty<int>( this, ShapeFlareMixShader.shapeType );
shapeScale = new CustomMaterialProperty<float>( this, ShapeFlareMixShader.shapeScale );
shapeRotation = new CustomMaterialProperty<float>( this, ShapeFlareMixShader.shapeRotation );
minShapeDistance = new CustomMaterialProperty<float>( this, ShapeFlareMixShader.minShapeDistance );
maxShapeDistance = new CustomMaterialProperty<float>( this, ShapeFlareMixShader.maxShapeDistance );
color = new CustomMaterialProperty<Color>( this, ShapeFlareMixShader.color );
opacity = new CustomMaterialProperty<float>( this, ShapeFlareMixShader.opacity );
opacityCurve = new CustomMaterialProperty<Texture2D>( this, ShapeFlareMixShader.opacityCurve );
colorDistortion = new CustomMaterialProperty<float>( this, ShapeFlareMixShader.colorDistortion );
alphaDistortion = new CustomMaterialProperty<float>( this, ShapeFlareMixShader.alphaDistortion );
centerHsl = new CustomMaterialProperty<Vector4>( this, ShapeFlareMixShader.centerHsl );
outsideHsl = new CustomMaterialProperty<Vector4>( this, ShapeFlareMixShader.outsideHsl );
minHueRandom = new CustomMaterialProperty<float>( this, ShapeFlareMixShader.minHueRandom );
maxHueRandom = new CustomMaterialProperty<float>( this, ShapeFlareMixShader.maxHueRandom );
minShapeDistanceColor = new CustomMaterialProperty<float>( this, ShapeFlareMixShader.minShapeDistanceColor );
maxShapeDistanceColor = new CustomMaterialProperty<float>( this, ShapeFlareMixShader.maxShapeDistanceColor );
sizeX = new CustomMaterialProperty<float>( this, ShapeFlareMixShader.sizeX );
sizeY = new CustomMaterialProperty<float>( this, ShapeFlareMixShader.sizeY );
worldSizeScale = new CustomMaterialProperty<float>( this, ShapeFlareMixShader.worldSizeScale );
screenSizeScale = new CustomMaterialProperty<float>( this, ShapeFlareMixShader.screenSizeScale );
worldSizeVsScreenSize = new CustomMaterialProperty<float>( this, ShapeFlareMixShader.worldSizeVsScreenSize );
randomScaleMin = new CustomMaterialProperty<float>( this, ShapeFlareMixShader.randomScaleMin );
randomScaleMax = new CustomMaterialProperty<float>( this, ShapeFlareMixShader.randomScaleMax );
screenOffsetScale = new CustomMaterialProperty<Vector2>( this, ShapeFlareMixShader.screenOffsetScale );
screenOffsetLayerSpread = new CustomMaterialProperty<Vector2>( this, ShapeFlareMixShader.screenOffsetLayerSpread );
fading = new CustomMaterialProperty<Texture2D>( this, ShapeFlareMixShader.fading );
opacityFading = new CustomMaterialProperty<Texture2D>( this, ShapeFlareMixShader.opacityFading );
sizeXfading = new CustomMaterialProperty<Texture2D>( this, ShapeFlareMixShader.sizeXfading );
sizeYfading = new CustomMaterialProperty<Texture2D>( this, ShapeFlareMixShader.sizeYfading );
useQuickOcclusionTest = new CustomMaterialProperty<bool>( this, ShapeFlareMixShader.useQuickOcclusionTest );
occlusionZOffset = new CustomMaterialProperty<float>( this, ShapeFlareMixShader.occlusionZOffset );
occlusionTestMaxSteps = new CustomMaterialProperty<int>( this, ShapeFlareMixShader.occlusionTestMaxSteps );
occlusionTestStepStride = new CustomMaterialProperty<float>( this, ShapeFlareMixShader.occlusionTestStepStride );
occlusionTestViewDependingScaleAmount = new CustomMaterialProperty<float>( this, ShapeFlareMixShader.occlusionTestViewDependingScaleAmount );
occlusionTestViewDependingDistance = new CustomMaterialProperty<float>( this, ShapeFlareMixShader.occlusionTestViewDependingDistance );
}
}
}

View File

@ -1 +0,0 @@
uid://chr1ackucqmih

View File

@ -0,0 +1,180 @@
#include "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/Flares.gdshaderinc"
// SHAPE
group_uniforms Shape;
uniform float speedMultiply:hint_range(0,1) = 1;
uniform vec4 innerHSL = vec4( 0.0, 0.0, 0.0, 1.0 );
uniform vec4 outerHSL = vec4( 0.0, 0.0, 0.0, 1.0 );
uniform float colorFillRange:hint_range(0,5) = 0.5;
uniform float colorFillDistributionPower:hint_range(0.01,5) = 1.0;
varying vec4 innerColor;
varying vec4 outerColor;
group_uniforms Shape.Streaks;
uniform float streaksFrequency:hint_range(0,8) = 1.0;
uniform float streaksRotation:hint_range(0,16) = 0.0;
uniform float streaksRotationSpeed:hint_range(-1,1) = 0.0;
uniform float streaksNoise:hint_range(0,2) = 0.0;
uniform float streaksNoiseOffset:hint_range(-2,2) = 0.0;
uniform float streaksNoiseScroll:hint_range(-1,1) = 0.0;
group_uniforms;
group_uniforms Shape.Streaks2;
uniform bool streaks2enabled = false;
uniform float streaks_add_vs_mult:hint_range(0,1) = 0.0;
uniform float streaks2Multiply:hint_range(0,5) = 1.0;
uniform float streaksFrequency2:hint_range(0,8) = 0.0;
uniform float streaksRotation2:hint_range(0,16) = 0.0;
uniform float streaksRotationSpeed2:hint_range(-1,1) = 0.0;
uniform float streaksNoise2:hint_range(0,2) = 0.0;
uniform float streaksNoiseOffset2:hint_range(-2,2) = 0.0;
uniform float streaksNoiseScroll2:hint_range(-1,1) = 0.0;
group_uniforms;
group_uniforms Shape.Mask;
uniform float maskScale:hint_range(0,1) = 0.5;
uniform float maskRange:hint_range(0,2) = 0.0;
uniform float maskRangeOscillation:hint_range(0,1) = 0.1;
uniform float maskRangeOscillationSpeed:hint_range(0,1) = 0.1;
uniform float maskInnerSize:hint_range(0,2) = 1.0;
uniform float maskFrequency:hint_range(0,2) = 0.0;
uniform float maskRotation:hint_range(0,1) = 0.1;
uniform float maskRotationSpeed:hint_range(-1,1) = 0.0;
group_uniforms;
group_uniforms Shape.Blend;
uniform float blendingRange:hint_range(0,0.5) = 0.1;
group_uniforms;
#include "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/BaseFlare/BaseFlare-Variables.gdshaderinc"
#define GENERATE_FLARE_VERTEX_DATA \
{ \
float _rgbScale = getRGBScale( combinedColor ); \
innerColor = vec4( shiftRGBwithHSL( combinedColor.rgb / _rgbScale, innerHSL.rgb, 60.0) * _rgbScale, innerHSL.a * combinedColor.a ); \
outerColor = vec4( shiftRGBwithHSL( combinedColor.rgb / _rgbScale, outerHSL.rgb, 60.0) * _rgbScale, outerHSL.a * combinedColor.a ); \
} \
vec2 polarUV( vec2 _uv, float angleOffset )
{
vec2 toCenter = _uv - vec2( 0.5 );
float d = length( toCenter );
float a = atan( toCenter.y, toCenter.x );
a = ( PI + a + angleOffset + PI * 2.0 * 0.75 ) / ( 2.0 * PI );
vec2 polarUV = vec2( d, mod( a, 1.0 ) );
return polarUV;
}
float generateStreaks(
vec2 _polarUV,
vec2 _polarUV2,
float blendAmount,
float _streaksFrequency,
float _streaksRotation,
float _streaksRotationSpeed,
float _streaksNoise,
float _streaksNoiseOffset,
float _streaksNoiseScroll
)
{
vec2 textureUVScale = max( vec2( _streaksNoise, _streaksFrequency ), 0.001 );
vec2 animatedRotation = vec2( _streaksNoiseOffset + speedMultiply * TIME * _streaksNoiseScroll,
_streaksRotation + speedMultiply * TIME * _streaksRotationSpeed );
vec2 _tUV = _polarUV * textureUVScale + animatedRotation;
vec2 _tUV2 = _polarUV2 * textureUVScale + animatedRotation;
float mainLayer = perlinSeamlessWithRange( _tUV, vec2( 50.0 ) );
float fadeLayer = perlinSeamlessWithRange( _tUV2 + vec2( 0.0, -0.5 * textureUVScale.y ), vec2( 50.0 ) );
float layersMixed = mix( mainLayer, fadeLayer, blendAmount );
return layersMixed;
}
vec4 generateFlare( vec2 _uv, vec4 _color, float _opacity )
{
float offset = 0.5;
float halfBlend = blendingRange * 0.5;
vec2 _polarUV = polarUV( _uv, 0.0 );
vec2 _polarUV2 = polarUV( _uv, PI * 2.0 * offset );
float r = _polarUV.x;
float a = _polarUV.y;
float blendAmount = mod( a + ( 1.0 - halfBlend ) + halfBlend + ( 1.0 - halfBlend ), 1.0 );
if ( blendAmount > ( 1.0 - halfBlend * 2.0 ) )
{
float t = normalizeToRange01( blendAmount, 1.0, 1.0 - halfBlend * 2.0 );
blendAmount = triangle( t );
}
else
{
blendAmount = 0.0;
}
float streaks = generateStreaks( _polarUV, _polarUV2, blendAmount,
streaksFrequency, streaksRotation, streaksRotationSpeed,
streaksNoise, streaksNoiseOffset, streaksNoiseScroll
);
if ( streaks2enabled )
{
float streaks2 = streaks2Multiply * generateStreaks( _polarUV, _polarUV2, blendAmount,
streaksFrequency2, streaksRotation2, streaksRotationSpeed2,
streaksNoise2, streaksNoiseOffset2, streaksNoiseScroll2
);
float streaksMult = streaks * streaks2;
float streaksAdd = streaks + streaks2;
streaks = mix( streaksAdd, streaksMult, streaks_add_vs_mult );
}
float colorT = clamp( r * colorFillRange, 0.0, 1.0 );
colorT = pow( colorT, colorFillDistributionPower );
vec4 mixedColor = mixThreeColors( innerColor, _color, outerColor, colorT );
mixedColor.a *= streaks;
float animatedRotationRange = maskRange + sin( TIME * PI * 2.0 * maskRangeOscillationSpeed ) * maskRangeOscillation;
float lengthRandom = perlinSeamlessWithRange( vec2( _polarUV.y * maskFrequency + maskRotation + speedMultiply * TIME * maskRotationSpeed, 0.0 ), vec2( 50.0 ) ) * animatedRotationRange * 2.0 - animatedRotationRange;
float lengthRandom2 = perlinSeamlessWithRange( vec2( _polarUV2.y * maskFrequency + maskRotation + speedMultiply * TIME * maskRotationSpeed, 0.0 ), vec2( 50.0 ) ) * animatedRotationRange * 2.0 - animatedRotationRange;
float length = max( mix( lengthRandom, lengthRandom2, blendAmount ) + maskInnerSize, 0.001 );
float streak = smoothstep( length * maskScale, 0.0, r );
mixedColor.a *= streak;
// mixedColor *= _color;
mixedColor.a *= _opacity;
return mixedColor;
}
#include "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/BaseFlare/BaseFlare-VertexFragment.gdshaderinc"

View File

@ -0,0 +1 @@
uid://8ctaenaswit7

View File

@ -1,4 +1,4 @@
shader_type spatial;
render_mode blend_add, depth_test_disabled, cull_disabled, unshaded, fog_disabled;
#include "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/ShapeFlare/ShapeFlareBase.gdshaderinc"
#include "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/StarType/StarTypeFlare.gdshaderinc"

View File

@ -0,0 +1 @@
uid://d3ua8bynj1b8m

View File

@ -0,0 +1,168 @@
using Godot;
namespace Rokojori
{
// Generated by ShaderClassGenerator
public class StarTypeFlareAddShader
{
///*
public static readonly CachedResource<Shader> shader = new CachedResource<Shader>(
"res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/StarType/Variants/StarTypeFlareAdd.gdshader"
);
//*/
public static readonly FloatPropertyName speedMultiply = FloatPropertyName.Create( "speedMultiply" );
public static readonly Vector4PropertyName innerHsl = Vector4PropertyName.Create( "innerHSL" );
public static readonly Vector4PropertyName outerHsl = Vector4PropertyName.Create( "outerHSL" );
public static readonly FloatPropertyName colorFillRange = FloatPropertyName.Create( "colorFillRange" );
public static readonly FloatPropertyName colorFillDistributionPower = FloatPropertyName.Create( "colorFillDistributionPower" );
public static readonly FloatPropertyName streaksFrequency = FloatPropertyName.Create( "streaksFrequency" );
public static readonly FloatPropertyName streaksRotation = FloatPropertyName.Create( "streaksRotation" );
public static readonly FloatPropertyName streaksRotationSpeed = FloatPropertyName.Create( "streaksRotationSpeed" );
public static readonly FloatPropertyName streaksNoise = FloatPropertyName.Create( "streaksNoise" );
public static readonly FloatPropertyName streaksNoiseOffset = FloatPropertyName.Create( "streaksNoiseOffset" );
public static readonly FloatPropertyName streaksNoiseScroll = FloatPropertyName.Create( "streaksNoiseScroll" );
public static readonly BoolPropertyName streaks2Enabled = BoolPropertyName.Create( "streaks2enabled" );
public static readonly FloatPropertyName streaksAddVsMult = FloatPropertyName.Create( "streaks_add_vs_mult" );
public static readonly FloatPropertyName streaks2Multiply = FloatPropertyName.Create( "streaks2Multiply" );
public static readonly FloatPropertyName streaksFrequency2 = FloatPropertyName.Create( "streaksFrequency2" );
public static readonly FloatPropertyName streaksRotation2 = FloatPropertyName.Create( "streaksRotation2" );
public static readonly FloatPropertyName streaksRotationSpeed2 = FloatPropertyName.Create( "streaksRotationSpeed2" );
public static readonly FloatPropertyName streaksNoise2 = FloatPropertyName.Create( "streaksNoise2" );
public static readonly FloatPropertyName streaksNoiseOffset2 = FloatPropertyName.Create( "streaksNoiseOffset2" );
public static readonly FloatPropertyName streaksNoiseScroll2 = FloatPropertyName.Create( "streaksNoiseScroll2" );
public static readonly FloatPropertyName maskScale = FloatPropertyName.Create( "maskScale" );
public static readonly FloatPropertyName maskRange = FloatPropertyName.Create( "maskRange" );
public static readonly FloatPropertyName maskRangeOscillation = FloatPropertyName.Create( "maskRangeOscillation" );
public static readonly FloatPropertyName maskRangeOscillationSpeed = FloatPropertyName.Create( "maskRangeOscillationSpeed" );
public static readonly FloatPropertyName maskInnerSize = FloatPropertyName.Create( "maskInnerSize" );
public static readonly FloatPropertyName maskFrequency = FloatPropertyName.Create( "maskFrequency" );
public static readonly FloatPropertyName maskRotation = FloatPropertyName.Create( "maskRotation" );
public static readonly FloatPropertyName maskRotationSpeed = FloatPropertyName.Create( "maskRotationSpeed" );
public static readonly FloatPropertyName blendingRange = FloatPropertyName.Create( "blendingRange" );
public static readonly ColorPropertyName color = ColorPropertyName.Create( "color" );
public static readonly FloatPropertyName opacity = FloatPropertyName.Create( "opacity" );
public static readonly Sampler2DPropertyName opacityCurve = Sampler2DPropertyName.Create( "opacityCurve" );
public static readonly FloatPropertyName minHueRandom = FloatPropertyName.Create( "minHueRandom" );
public static readonly FloatPropertyName maxHueRandom = FloatPropertyName.Create( "maxHueRandom" );
public static readonly FloatPropertyName shapeNoiseAmount = FloatPropertyName.Create( "shapeNoiseAmount" );
public static readonly FloatPropertyName shapeNoiseScale = FloatPropertyName.Create( "shapeNoiseScale" );
public static readonly FloatPropertyName sizeX = FloatPropertyName.Create( "sizeX" );
public static readonly FloatPropertyName sizeY = FloatPropertyName.Create( "sizeY" );
public static readonly FloatPropertyName worldSizeScale = FloatPropertyName.Create( "worldSizeScale" );
public static readonly FloatPropertyName screenSizeScale = FloatPropertyName.Create( "screenSizeScale" );
public static readonly FloatPropertyName worldSizeVsScreenSize = FloatPropertyName.Create( "worldSize_vs_screenSize" );
public static readonly FloatPropertyName randomScaleMin = FloatPropertyName.Create( "randomScaleMin" );
public static readonly FloatPropertyName randomScaleMax = FloatPropertyName.Create( "randomScaleMax" );
public static readonly FloatPropertyName extension = FloatPropertyName.Create( "extension" );
public static readonly FloatPropertyName rotation = FloatPropertyName.Create( "rotation" );
public static readonly FloatPropertyName rotationOverX = FloatPropertyName.Create( "rotationOverX" );
public static readonly FloatPropertyName rotationOverY = FloatPropertyName.Create( "rotationOverY" );
public static readonly FloatPropertyName rotationPerLayer = FloatPropertyName.Create( "rotationPerLayer" );
public static readonly Vector2PropertyName screenOffset = Vector2PropertyName.Create( "screenOffset" );
public static readonly Vector2PropertyName screenOffsetScale = Vector2PropertyName.Create( "screenOffsetScale" );
public static readonly Vector2PropertyName screenOffsetLayerSpread = Vector2PropertyName.Create( "screenOffsetLayerSpread" );
public static readonly IntPropertyName chromaticAberationMode = IntPropertyName.Create( "chromaticAberationMode" );
public static readonly FloatPropertyName chromaticAberationAmount = FloatPropertyName.Create( "chromaticAberationAmount" );
public static readonly IntPropertyName chromaticAberationSteps = IntPropertyName.Create( "chromaticAberationSteps" );
public static readonly Vector2PropertyName chromaticAberationDirection = Vector2PropertyName.Create( "chromaticAberationDirection" );
public static readonly FloatPropertyName chromaticAberationDirectionTowardsCenter = FloatPropertyName.Create( "chromaticAberationDirectionTowardsCenter" );
public static readonly FloatPropertyName chromaticAberationCenterScale = FloatPropertyName.Create( "chromaticAberationCenterScale" );
public static readonly FloatPropertyName chromaticAberationCenterOffset = FloatPropertyName.Create( "chromaticAberationCenterOffset" );
public static readonly Vector3PropertyName chromaticAberationShifts = Vector3PropertyName.Create( "chromaticAberationShifts" );
public static readonly FloatPropertyName chromaticAberationSmear = FloatPropertyName.Create( "chromaticAberationSmear" );
public static readonly IntPropertyName fadingMode = IntPropertyName.Create( "fadingMode" );
public static readonly Sampler2DPropertyName fading = Sampler2DPropertyName.Create( "fading" );
public static readonly Sampler2DPropertyName opacityFading = Sampler2DPropertyName.Create( "opacityFading" );
public static readonly Sampler2DPropertyName sizeXfading = Sampler2DPropertyName.Create( "sizeXfading" );
public static readonly Sampler2DPropertyName sizeYfading = Sampler2DPropertyName.Create( "sizeYfading" );
public static readonly FloatPropertyName fadingPower = FloatPropertyName.Create( "fadingPower" );
public static readonly FloatPropertyName opacityFadingPower = FloatPropertyName.Create( "opacityFadingPower" );
public static readonly FloatPropertyName sizeXfadingPower = FloatPropertyName.Create( "sizeXfadingPower" );
public static readonly FloatPropertyName sizeYfadingPower = FloatPropertyName.Create( "sizeYfadingPower" );
public static readonly IntPropertyName occlusionMode = IntPropertyName.Create( "occlusionMode" );
public static readonly FloatPropertyName occlusionZOffset = FloatPropertyName.Create( "occlusionZOffset" );
public static readonly IntPropertyName occlusionTestMaxSteps = IntPropertyName.Create( "occlusionTestMaxSteps" );
public static readonly FloatPropertyName occlusionTestStepStride = FloatPropertyName.Create( "occlusionTestStepStride" );
public static readonly FloatPropertyName occlusionTestViewDependingScaleAmount = FloatPropertyName.Create( "occlusionTest_ViewDependingScaleAmount" );
public static readonly FloatPropertyName occlusionTestViewDependingDistance = FloatPropertyName.Create( "occlusionTest_ViewDependingDistance" );
public static readonly FloatPropertyName occlusionToSize = FloatPropertyName.Create( "occlusionToSize" );
}
[Tool]
public partial class StarTypeFlareAddMaterial:BaseFlareMaterial
{
public readonly CustomMaterialProperty<float> speedMultiply;
public readonly CustomMaterialProperty<Vector4> innerHsl;
public readonly CustomMaterialProperty<Vector4> outerHsl;
public readonly CustomMaterialProperty<float> colorFillRange;
public readonly CustomMaterialProperty<float> colorFillDistributionPower;
public readonly CustomMaterialProperty<float> streaksFrequency;
public readonly CustomMaterialProperty<float> streaksRotation;
public readonly CustomMaterialProperty<float> streaksRotationSpeed;
public readonly CustomMaterialProperty<float> streaksNoise;
public readonly CustomMaterialProperty<float> streaksNoiseOffset;
public readonly CustomMaterialProperty<float> streaksNoiseScroll;
public readonly CustomMaterialProperty<bool> streaks2Enabled;
public readonly CustomMaterialProperty<float> streaksAddVsMult;
public readonly CustomMaterialProperty<float> streaks2Multiply;
public readonly CustomMaterialProperty<float> streaksFrequency2;
public readonly CustomMaterialProperty<float> streaksRotation2;
public readonly CustomMaterialProperty<float> streaksRotationSpeed2;
public readonly CustomMaterialProperty<float> streaksNoise2;
public readonly CustomMaterialProperty<float> streaksNoiseOffset2;
public readonly CustomMaterialProperty<float> streaksNoiseScroll2;
public readonly CustomMaterialProperty<float> maskScale;
public readonly CustomMaterialProperty<float> maskRange;
public readonly CustomMaterialProperty<float> maskRangeOscillation;
public readonly CustomMaterialProperty<float> maskRangeOscillationSpeed;
public readonly CustomMaterialProperty<float> maskInnerSize;
public readonly CustomMaterialProperty<float> maskFrequency;
public readonly CustomMaterialProperty<float> maskRotation;
public readonly CustomMaterialProperty<float> maskRotationSpeed;
public readonly CustomMaterialProperty<float> blendingRange;
public StarTypeFlareAddMaterial()
{
///*
Shader = StarTypeFlareAddShader.shader.Get();
//*/
speedMultiply = new CustomMaterialProperty<float>( this, StarTypeFlareAddShader.speedMultiply );
innerHsl = new CustomMaterialProperty<Vector4>( this, StarTypeFlareAddShader.innerHsl );
outerHsl = new CustomMaterialProperty<Vector4>( this, StarTypeFlareAddShader.outerHsl );
colorFillRange = new CustomMaterialProperty<float>( this, StarTypeFlareAddShader.colorFillRange );
colorFillDistributionPower = new CustomMaterialProperty<float>( this, StarTypeFlareAddShader.colorFillDistributionPower );
streaksFrequency = new CustomMaterialProperty<float>( this, StarTypeFlareAddShader.streaksFrequency );
streaksRotation = new CustomMaterialProperty<float>( this, StarTypeFlareAddShader.streaksRotation );
streaksRotationSpeed = new CustomMaterialProperty<float>( this, StarTypeFlareAddShader.streaksRotationSpeed );
streaksNoise = new CustomMaterialProperty<float>( this, StarTypeFlareAddShader.streaksNoise );
streaksNoiseOffset = new CustomMaterialProperty<float>( this, StarTypeFlareAddShader.streaksNoiseOffset );
streaksNoiseScroll = new CustomMaterialProperty<float>( this, StarTypeFlareAddShader.streaksNoiseScroll );
streaks2Enabled = new CustomMaterialProperty<bool>( this, StarTypeFlareAddShader.streaks2Enabled );
streaksAddVsMult = new CustomMaterialProperty<float>( this, StarTypeFlareAddShader.streaksAddVsMult );
streaks2Multiply = new CustomMaterialProperty<float>( this, StarTypeFlareAddShader.streaks2Multiply );
streaksFrequency2 = new CustomMaterialProperty<float>( this, StarTypeFlareAddShader.streaksFrequency2 );
streaksRotation2 = new CustomMaterialProperty<float>( this, StarTypeFlareAddShader.streaksRotation2 );
streaksRotationSpeed2 = new CustomMaterialProperty<float>( this, StarTypeFlareAddShader.streaksRotationSpeed2 );
streaksNoise2 = new CustomMaterialProperty<float>( this, StarTypeFlareAddShader.streaksNoise2 );
streaksNoiseOffset2 = new CustomMaterialProperty<float>( this, StarTypeFlareAddShader.streaksNoiseOffset2 );
streaksNoiseScroll2 = new CustomMaterialProperty<float>( this, StarTypeFlareAddShader.streaksNoiseScroll2 );
maskScale = new CustomMaterialProperty<float>( this, StarTypeFlareAddShader.maskScale );
maskRange = new CustomMaterialProperty<float>( this, StarTypeFlareAddShader.maskRange );
maskRangeOscillation = new CustomMaterialProperty<float>( this, StarTypeFlareAddShader.maskRangeOscillation );
maskRangeOscillationSpeed = new CustomMaterialProperty<float>( this, StarTypeFlareAddShader.maskRangeOscillationSpeed );
maskInnerSize = new CustomMaterialProperty<float>( this, StarTypeFlareAddShader.maskInnerSize );
maskFrequency = new CustomMaterialProperty<float>( this, StarTypeFlareAddShader.maskFrequency );
maskRotation = new CustomMaterialProperty<float>( this, StarTypeFlareAddShader.maskRotation );
maskRotationSpeed = new CustomMaterialProperty<float>( this, StarTypeFlareAddShader.maskRotationSpeed );
blendingRange = new CustomMaterialProperty<float>( this, StarTypeFlareAddShader.blendingRange );
}
}
}

View File

@ -0,0 +1 @@
uid://dsip3doyfw03i

View File

@ -1,4 +1,4 @@
shader_type spatial;
render_mode blend_mix, depth_test_disabled, cull_disabled, unshaded, fog_disabled;
#include "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/ShapeFlare/ShapeFlareBase.gdshaderinc"
#include "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/StarType/StarTypeFlare.gdshaderinc"

View File

@ -0,0 +1 @@
uid://dijnka3rbg2s0

Some files were not shown because too many files have changed in this diff Show More