mirror of
https://github.com/italicsjenga/slang-shaders.git
synced 2024-11-22 15:51:30 +11:00
Merge pull request #336 from hunterk/third_try
add kokoko3k's aio bezel shaders
This commit is contained in:
commit
bc2141a6fa
250
bezel/koko-aio/FXAA-bloom.slangp
Normal file
250
bezel/koko-aio/FXAA-bloom.slangp
Normal file
|
@ -0,0 +1,250 @@
|
|||
shaders = "17"
|
||||
shader0 = "shaders/first_pass.slang"
|
||||
filter_linear0 = "false"
|
||||
wrap_mode0 = "mirrored_repeat"
|
||||
mipmap_input0 = "false"
|
||||
alias0 = "first_pass"
|
||||
float_framebuffer0 = "false"
|
||||
srgb_framebuffer0 = "false"
|
||||
scale_type_x0 = "source"
|
||||
scale_x0 = "2.000000"
|
||||
scale_type_y0 = "source"
|
||||
scale_y0 = "2.000000"
|
||||
shader1 = "shaders/fxaa.slang"
|
||||
filter_linear1 = "true"
|
||||
wrap_mode1 = "mirrored_repeat"
|
||||
mipmap_input1 = "true"
|
||||
alias1 = "FXAA_pass"
|
||||
float_framebuffer1 = "false"
|
||||
srgb_framebuffer1 = "false"
|
||||
scale_type_x1 = "source"
|
||||
scale_x1 = "1.000000"
|
||||
scale_type_y1 = "source"
|
||||
scale_y1 = "1.000000"
|
||||
shader2 = "shaders/shift_and_bleed.slang"
|
||||
filter_linear2 = "true"
|
||||
wrap_mode2 = "mirrored_repeat"
|
||||
mipmap_input2 = "false"
|
||||
alias2 = "shift_and_bleed_pass"
|
||||
float_framebuffer2 = "false"
|
||||
srgb_framebuffer2 = "false"
|
||||
scale_type_x2 = "source"
|
||||
scale_x2 = "1.000000"
|
||||
scale_type_y2 = "source"
|
||||
scale_y2 = "1.000000"
|
||||
shader3 = "shaders/in_glow.slang"
|
||||
filter_linear3 = "true"
|
||||
wrap_mode3 = "mirrored_repeat"
|
||||
mipmap_input3 = "false"
|
||||
alias3 = "in_glow_pass"
|
||||
float_framebuffer3 = "true"
|
||||
srgb_framebuffer3 = "false"
|
||||
scale_type_x3 = "source"
|
||||
scale_x3 = "1.000000"
|
||||
scale_type_y3 = "source"
|
||||
scale_y3 = "1.000000"
|
||||
shader4 = "shaders/halo.slang"
|
||||
filter_linear4 = "true"
|
||||
wrap_mode4 = "mirrored_repeat"
|
||||
mipmap_input4 = "false"
|
||||
alias4 = "halo_pass"
|
||||
float_framebuffer4 = "true"
|
||||
srgb_framebuffer4 = "false"
|
||||
scale_type_x4 = "source"
|
||||
scale_x4 = "1.000000"
|
||||
scale_type_y4 = "source"
|
||||
scale_y4 = "1.000000"
|
||||
shader5 = "shaders/avglum_pass.slang"
|
||||
filter_linear5 = "true"
|
||||
wrap_mode5 = "mirrored_repeat"
|
||||
mipmap_input5 = "false"
|
||||
alias5 = "avglum_pass"
|
||||
float_framebuffer5 = "false"
|
||||
srgb_framebuffer5 = "false"
|
||||
scale_type_x5 = "source"
|
||||
scale_x5 = "0.500000"
|
||||
scale_type_y5 = "source"
|
||||
scale_y5 = "0.500000"
|
||||
shader6 = "shaders/reflection_blur_h.slang"
|
||||
filter_linear6 = "true"
|
||||
wrap_mode6 = "mirrored_repeat"
|
||||
mipmap_input6 = "false"
|
||||
alias6 = "reflected_blurred_pass1"
|
||||
float_framebuffer6 = "false"
|
||||
srgb_framebuffer6 = "false"
|
||||
scale_type_x6 = "source"
|
||||
scale_x6 = "1.000000"
|
||||
scale_type_y6 = "source"
|
||||
scale_y6 = "1.000000"
|
||||
shader7 = "shaders/reflection_blur_v.slang"
|
||||
filter_linear7 = "true"
|
||||
wrap_mode7 = "mirrored_repeat"
|
||||
mipmap_input7 = "false"
|
||||
alias7 = "reflected_blurred_pass2"
|
||||
float_framebuffer7 = "false"
|
||||
srgb_framebuffer7 = "false"
|
||||
scale_type_x7 = "source"
|
||||
scale_x7 = "1.000000"
|
||||
scale_type_y7 = "source"
|
||||
scale_y7 = "1.000000"
|
||||
shader8 = "shaders/bloom_pass_1.slang"
|
||||
filter_linear8 = "true"
|
||||
wrap_mode8 = "mirrored_repeat"
|
||||
mipmap_input8 = "false"
|
||||
alias8 = "bloom_pass_1"
|
||||
float_framebuffer8 = "true"
|
||||
srgb_framebuffer8 = "false"
|
||||
scale_type_x8 = "source"
|
||||
scale_x8 = "1.000000"
|
||||
scale_type_y8 = "source"
|
||||
scale_y8 = "1.000000"
|
||||
shader9 = "shaders/bloom_pass_2.slang"
|
||||
filter_linear9 = "true"
|
||||
wrap_mode9 = "clamp_to_edge"
|
||||
mipmap_input9 = "false"
|
||||
alias9 = "bloom_pass_2"
|
||||
float_framebuffer9 = "false"
|
||||
srgb_framebuffer9 = "false"
|
||||
scale_type_x9 = "source"
|
||||
scale_x9 = "0.500000"
|
||||
scale_type_y9 = "source"
|
||||
scale_y9 = "0.500000"
|
||||
shader10 = "shaders/bloom_pass_3.slang"
|
||||
filter_linear10 = "true"
|
||||
wrap_mode10 = "clamp_to_edge"
|
||||
mipmap_input10 = "false"
|
||||
alias10 = "bloom_pass_3"
|
||||
float_framebuffer10 = "false"
|
||||
srgb_framebuffer10 = "false"
|
||||
scale_type_x10 = "source"
|
||||
scale_x10 = "1.000000"
|
||||
scale_type_y10 = "source"
|
||||
scale_y10 = "1.000000"
|
||||
shader11 = "shaders/bloom_pass_4.slang"
|
||||
filter_linear11 = "true"
|
||||
wrap_mode11 = "mirrored_repeat"
|
||||
mipmap_input11 = "false"
|
||||
alias11 = "bloom_pass_final"
|
||||
float_framebuffer11 = "false"
|
||||
srgb_framebuffer11 = "false"
|
||||
scale_type_x11 = "source"
|
||||
scale_x11 = "1.000000"
|
||||
scale_type_y11 = "source"
|
||||
scale_y11 = "1.000000"
|
||||
shader12 = "shaders/ambi_push_pass.slang"
|
||||
filter_linear12 = "true"
|
||||
wrap_mode12 = "mirrored_repeat"
|
||||
mipmap_input12 = "false"
|
||||
alias12 = "ambi_push_pass"
|
||||
float_framebuffer12 = "true"
|
||||
srgb_framebuffer12 = "false"
|
||||
scale_type_x12 = "source"
|
||||
scale_x12 = "1.000000"
|
||||
scale_type_y12 = "source"
|
||||
scale_y12 = "1.000000"
|
||||
shader13 = "shaders/ambi_pre_pass.slang"
|
||||
filter_linear13 = "true"
|
||||
wrap_mode13 = "clamp_to_border"
|
||||
mipmap_input13 = "true"
|
||||
alias13 = "ambi_pre_pass1"
|
||||
float_framebuffer13 = "false"
|
||||
srgb_framebuffer13 = "false"
|
||||
scale_type_x13 = "source"
|
||||
scale_x13 = "1.000000"
|
||||
scale_type_y13 = "source"
|
||||
scale_y13 = "1.000000"
|
||||
shader14 = "shaders/ambi_temporal_pass.slang"
|
||||
filter_linear14 = "true"
|
||||
wrap_mode14 = "clamp_to_border"
|
||||
mipmap_input14 = "false"
|
||||
alias14 = "ambi_temporal_pass"
|
||||
float_framebuffer14 = "true"
|
||||
srgb_framebuffer14 = "false"
|
||||
scale_type_x14 = "source"
|
||||
scale_x14 = "1.000000"
|
||||
scale_type_y14 = "source"
|
||||
scale_y14 = "1.000000"
|
||||
shader15 = "shaders/isrotated.slang"
|
||||
filter_linear15 = "true"
|
||||
wrap_mode15 = "mirrored_repeat"
|
||||
mipmap_input15 = "false"
|
||||
alias15 = "isrotated_pass"
|
||||
float_framebuffer15 = "false"
|
||||
srgb_framebuffer15 = "false"
|
||||
scale_type_x15 = "viewport"
|
||||
scale_x15 = "0.100000"
|
||||
scale_type_y15 = "viewport"
|
||||
scale_y15 = "0.100000"
|
||||
shader16 = "shaders/final_pass.slang"
|
||||
filter_linear16 = "true"
|
||||
wrap_mode16 = "mirrored_repeat"
|
||||
mipmap_input16 = "false"
|
||||
alias16 = "final_pass"
|
||||
float_framebuffer16 = "false"
|
||||
srgb_framebuffer16 = "false"
|
||||
scale_type_x16 = "viewport"
|
||||
scale_x16 = "1.000000"
|
||||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
SATURATION = "1.100000"
|
||||
GAMMA_OUT = "0.500000"
|
||||
DO_FXAA = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_SAT_BLEED = "1.000000"
|
||||
SAT_BLEED_PAL = "1.000000"
|
||||
SAT_BLEED_STRENGTH = "0.500000"
|
||||
SAT_BLEED_SIZE_LEFT = "3.000000"
|
||||
SAT_BLEED_SIZE_RIGHT = "3.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.300000"
|
||||
IN_GLOW_WH = "7.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.425000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.100000"
|
||||
SCANLINE_DARK = "0.700000"
|
||||
SCANLINE_COMPENSATION = "0.200000"
|
||||
SCANLINES_BLEEDING = "1.000000"
|
||||
SCANLINE_FLICKERING = "0.000000"
|
||||
SCANLINE_FLICKERING_POWER = "0.500000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "0.750000"
|
||||
BLOOM_GAMMA_OUT = "1.000000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.500000"
|
||||
GEOM_WARP_Y = "0.500000"
|
||||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_INNER_ZOOM = "-0.005000"
|
||||
BEZEL_FRAME_ZOOM = "0.139000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.400000"
|
||||
AMBI_POWER = "5.000000"
|
||||
DO_VIGNETTE = "1.000000"
|
||||
V_SIZE = "2.700000"
|
||||
V_POWER = "1.050000"
|
||||
DO_SPOT = "1.000000"
|
||||
S_POSITION = "194.000000"
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
monitor_body_linear = "true"
|
||||
monitor_body_wrap_mode = "clamp_to_edge"
|
||||
monitor_body_mipmap = "true"
|
||||
bg_under = "textures/background_under.png"
|
||||
bg_under_linear = "true"
|
||||
bg_under_wrap_mode = "mirrored_repeat"
|
||||
bg_under_mipmap = "true"
|
||||
bg_over = "textures/background_over.png"
|
||||
bg_over_linear = "true"
|
||||
bg_over_wrap_mode = "mirrored_repeat"
|
||||
bg_over_mipmap = "true"
|
674
bezel/koko-aio/LICENSE
Normal file
674
bezel/koko-aio/LICENSE
Normal file
|
@ -0,0 +1,674 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<https://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<https://www.gnu.org/licenses/why-not-lgpl.html>.
|
237
bezel/koko-aio/docs.md
Normal file
237
bezel/koko-aio/docs.md
Normal file
|
@ -0,0 +1,237 @@
|
|||
**koko-aio-slang parameters documentation**
|
||||
|
||||
|
||||
**Shift RGB components:**
|
||||
Shift R,G,B components separately to mimic chroma
|
||||
dephasing and color aberrations.
|
||||
By varying Red, Green and Blue offsets, the relative component will be
|
||||
shifted column by column, row by row.
|
||||
|
||||
**Saturated color bleeding:**
|
||||
Will cause an horizontal chroma bleed which cheaply mimics the effect of
|
||||
poor composite video signals.
|
||||
It can be used with RGB shifting and image blurring to give the picture
|
||||
an ntsc look without dealing with specific encoding/decoding stuffs.
|
||||
|
||||
**Color corrections:**
|
||||
Modify luminance, saturation, contrast, brightness and color temperature of the
|
||||
"input" signal.
|
||||
Gamma correction is applied to the final processed picture.
|
||||
|
||||
**FXAA:**
|
||||
Apply the well known antialiasing effect by Nvidia.
|
||||
Use it if you don't want to blur the image and you still don't like
|
||||
jagged or too much pixelated images.
|
||||
|
||||
**Scanlines:**
|
||||
Emulate CRT scanlines.
|
||||
|
||||
Scanlines gap brightness:
|
||||
controls how "little" they will look pronunced.
|
||||
You can even use a negative value to make the scanline more evident,
|
||||
but graphical glitches may occour.
|
||||
Scanlines gap brightness:
|
||||
Controls how much the gap between scanlines is dark
|
||||
Compensate brightness loss:
|
||||
Will make scanlines brighter, where possible, to compensate for the loss of brightness
|
||||
gicen by the dark gap between them.
|
||||
Scanlines bleeding:
|
||||
will cause the scanline itself to light the scanline gap (dark) part.
|
||||
You may use it to keep a good brightness overrall picture level.
|
||||
Interlace flicker:
|
||||
Emulates the flickerin issues present on crt interlaced screens
|
||||
where the brighter lines flickers wien they are near dark ones.
|
||||
You can choose to produce the flickering: never, always or only
|
||||
when the input picture is considered interlaced.
|
||||
The threshold for that is defined in config.inc
|
||||
with the parameter: MIN\_LINES\_INTERLACED.
|
||||
Disable on interlaced screen:
|
||||
You can choose to completely disable scanline emulation when
|
||||
the input picture is considered interlaced.
|
||||
|
||||
**Input power/glowing:**
|
||||
Emulate the CRT glowing "feature", so that the brighter areas of
|
||||
the image will light their surroundings.
|
||||
|
||||
Input signal glow strength:
|
||||
The input signal gain
|
||||
Sharpness:
|
||||
How much the glow will "spread".
|
||||
When pushed to its maximum value, no blurring will occour.
|
||||
Gamma:
|
||||
Controls how much the signal has to be bright to produce the glow.
|
||||
Post gain:
|
||||
This will cause the glowed image to be added to the input signal.
|
||||
This allows to emulate glow and haloing in a single pass.
|
||||
However the haloing should be applied after the mask emulation.
|
||||
Likely to be removed in a future release.
|
||||
|
||||
**RGB Masks and/or Darklines:**
|
||||
Emulates CRT RGB phosphors (RGB Mask),
|
||||
slotmasks and aperturegrille (Darklines).
|
||||
|
||||
(HiDPI) Vmask and Darklines multiplier:
|
||||
This shader is tuned for 1080p, but ff you have an HiDPI display
|
||||
you may want to scale this filter by a factor.
|
||||
Vmask Strength:
|
||||
How much will the RGB mask be visible.
|
||||
RGB Mask: (LoDPI) Green,Magenta -> BGR:
|
||||
By exploiting common monitors RGB subpixel order, this causes
|
||||
the RGB mask, to be emulated by using just 2 pixels instead of 3.
|
||||
Very useful for 1080p (or lower) displays and to keep more brightness.
|
||||
RGB Mask: Horizontal Gap between triads:
|
||||
In real displays rgb triads are separated by a black space.
|
||||
You can emulate it by turning this feature on.
|
||||
RGB Mask: affect bright colors:
|
||||
Emulating RGB masks will lower the resulting image brightness and you
|
||||
just cant push input signal brightness without "burning" the signal.
|
||||
By using this option, the RGB mask will be less evident on brighter
|
||||
colors. However, since this will make the image to look somehow "dull",
|
||||
it is advised to use the "Halo" feature instead (see later).
|
||||
Darklines: strength:
|
||||
How much will the horizontal darklines be visible.
|
||||
Darklines: offset by triads:
|
||||
When drawing "straight" horizontal darklines, you can emulate CRT aperture grille.
|
||||
But if you want slotmasks instead, you need to vertically
|
||||
offset them every RGB triad.
|
||||
Darklines: period (triad height):
|
||||
Basically tells the shader how much a triad has to be high.
|
||||
Darklines: affect bright colors:
|
||||
See "RGB Mask: affect bright colors"
|
||||
|
||||
**Halo:**
|
||||
Emulates the effect of the brighter pixels reflected by the CRT glass
|
||||
that lights nearby zones (a sort of tight bloom).
|
||||
The light is meant to be spreaded in a way that it nulls the effect of the
|
||||
dark scanline parts, darklines and the RGB masks.
|
||||
So you can use this to restore the brightness and color saturation
|
||||
loss when using features like scanlines, darklines or RGB masks.
|
||||
|
||||
**Bloom:**
|
||||
Acts like Halo, but affects a much wider area and is more configurable.
|
||||
By using this effect and playing with its parameters, you can achieve funny
|
||||
or even artistic results.
|
||||
|
||||
Final mix:
|
||||
Modulates between the original images and the bloomed one.
|
||||
Radius:
|
||||
Controls how much the bloom has to be wide.
|
||||
Quality:
|
||||
How much the shape of the bloomed picture will reflect the original one.
|
||||
Input Gamma:
|
||||
Use this as a threshold to control how much a pixel has to be bright
|
||||
to produce a bloom effect.
|
||||
Power multiplier:
|
||||
Just apply a gain to the final bloom.
|
||||
Output Gamma:
|
||||
Play with it.
|
||||
Strength on bright areas:
|
||||
Since the light produced by the bloom effect is added to the underlying
|
||||
image, it can produce burn effects on the already bright areas.
|
||||
This is actually an hack that will avoid to bloom them.
|
||||
Don't use too low values.
|
||||
Bypass:
|
||||
See how the bloomed image looks alone.
|
||||
|
||||
**Curvature:**
|
||||
Emulates a curved CRT display.
|
||||
|
||||
WARP X, WARP Y:
|
||||
control how much the display is curved along its axes.
|
||||
Corner radius, Corner sharpness:
|
||||
Control the "smoothness" of the display corners.
|
||||
|
||||
**Bezel:**
|
||||
Draws a monitor frame with simulated reflections from the game content.
|
||||
The monitor frame is an image loaded by the shader and is shipped
|
||||
in the "textures" shader subdirectory, named "monitor\_body.png"
|
||||
It has been made with the following rules that may come handy
|
||||
only if you want to edit it; otherwise go on.
|
||||
- The red channel represents the luminance information
|
||||
- The green channel represents the highlights
|
||||
- The alpha channel in the inner frame represents the part of the bezel
|
||||
that will be filled by the game content
|
||||
- The blue channel represents the part of the bezel that will be filled by the game reflection.
|
||||
|
||||
Bezel color (red,green,blue) and contrast:
|
||||
Allows to choose the color of the monitor frame.
|
||||
Image zoom:
|
||||
Allows to shrink or expand the game content to fit the monitor frame.
|
||||
Frame zoom:
|
||||
Allows to shrink or expand the monitor frame to fit the game content.
|
||||
Image Border:
|
||||
Draws a black border around the game content.
|
||||
|
||||
**Backgound image:**
|
||||
Draws an image on screen picked from the "textures" shader subdirectory,
|
||||
named: background.png<br>
|
||||
**-> It is needed that you set retroarch aspect to "Full" <-**
|
||||
( Settings, Video, Scaling, Aspect Ratio = Full )
|
||||
The image is painted "under" the game content and under the monitor frame by
|
||||
default, and his alpha channel will let you see ambient lighs (see next).
|
||||
|
||||
Image over content (alpha channel driven)?:
|
||||
...however you can paint the image over the game content and over the
|
||||
monitor frame itself by selecting this option.
|
||||
If you do so, the alpha channel of the background image will be used to
|
||||
let you view the underlying content.
|
||||
|
||||
**Ambient light leds:**
|
||||
Emulates the presence of led strips under the monitor that lights the
|
||||
surroundings according to the edges of the game content.
|
||||
-**\> It is needed that you set retroarch aspect to "Full" <-**
|
||||
( Settings, Video, Scaling, Aspect Ratio = Full )
|
||||
|
||||
Slowness:
|
||||
How much will the leds will take to reflect the game content.
|
||||
It may sound silly to make them slow, but if they reacts too fast,
|
||||
they may distract you.
|
||||
Keep in mynd that there is a scene detection logic that will make them
|
||||
react as fast as possible when a scene change is detected.
|
||||
Light Falloff:
|
||||
How wide is the area illuminated.
|
||||
Led power:
|
||||
Leds post gain.
|
||||
Note: To avoid burn-in effects, keep Light Falloff + Led power < 1.4
|
||||
|
||||
|
||||
**Aspect Ratio:**
|
||||
When using effects that need Retroarch aspect ratio option
|
||||
to be set to "full", you have to provide the source aspect
|
||||
ratio to the shader.
|
||||
|
||||
Aspect Ratio Numerator:
|
||||
Setting non positive value here will switch to a predefined
|
||||
aspect ratio from the following list:
|
||||
0 = 1.33 MAME
|
||||
-1 = 1.55 NTSC
|
||||
-2 = 1.25 PAL
|
||||
-3 = 8/7 Snes
|
||||
-4 = 10/7 Megadrive
|
||||
-5 = Uncorrected
|
||||
Aspect Ratio Denominator:
|
||||
As long as Aspect Ratio Numerator is positive, this will
|
||||
be used as the denominator of the fraction.
|
||||
|
||||
**Luminosity dependant zoom:**
|
||||
On older CRT monitors, the picture gets bigger when the image was brighter.
|
||||
|
||||
**Vignette:**
|
||||
Will cause uneven brightness of the image, more at the center,
|
||||
less at the edges.
|
||||
|
||||
**Spot:**
|
||||
Simulates external light reflected by the monitor glass.
|
||||
|
||||
**Alternate line blanking:**
|
||||
CRT monitors \*real\* refresh was amazing, today is just "meh" in most cases.
|
||||
This emmulates the low pixel persistance of CRT monitors
|
||||
and reduces the motion blur, typical of LCD displays, by blanking even/odd
|
||||
screen lines on even/odd frames, by sacrificing image brightness, ofc.
|
||||
|
||||
Frame insertion strength:
|
||||
How much the line will be blanked.
|
||||
Dark lines period:
|
||||
You can blank single line or a group of them at once.
|
||||
See what performs better on your display.
|
||||
|
295
bezel/koko-aio/koko-aio.slangp
Normal file
295
bezel/koko-aio/koko-aio.slangp
Normal file
|
@ -0,0 +1,295 @@
|
|||
# TODO:
|
||||
# Guess more aspect ratios: edit. nope: Guessing is impossible..
|
||||
# Update pipeline graph
|
||||
|
||||
# Investigate the possible use of mipmapping in bloom function too.
|
||||
# Try to move flickering scanlines into main, maybe by faking them with screenlines?
|
||||
|
||||
|
||||
# Performances:
|
||||
# haswell igp: i5-4590 CPU @ 3.30GHz
|
||||
# Output on aspect: full, 1080p, 16:9, 60fps
|
||||
# All measurements made with aspect=full, so as long as ambient light is not used, the whole screen is filled by the shader.
|
||||
# This means that all the measurements, but ambient light itself are likely higher than real use.
|
||||
|
||||
# input: mame, dynamite dux: 26/09/2022 27/10/2022 02/11/2022
|
||||
# GPU% Delta% vs Basal:
|
||||
# no shader: 11 -23.6 11 10 10
|
||||
# basal: 34.6 0.0 31.5 29.5 27.7
|
||||
# FXAA: 37.5 2.9 34.15 32.2
|
||||
# scanlines: 36.5 1.9 32.3 31.5
|
||||
# ...flickering: 36.2 1.6 32.4 32
|
||||
#input glow gamma 3: 40 5.4 36.75 35.2
|
||||
# rgb mask: 35.7 1.1 32.60 33.4 **
|
||||
# slotmask: 36.5 1.9 33.6 32.1
|
||||
# halo gamma 3: 40.0 5.4 36.9 35.5
|
||||
# bloom(q2): 38 3.4 35.8 35 30.5
|
||||
# color corrections: 35 0.4 31.6 29.5
|
||||
# curvature warp: 39.2 4.6 33.5 34.1
|
||||
# vignette+spot: 35.2 0.6 33.2 34
|
||||
# ambient light: 38 3.4 32.1 33.6
|
||||
# Bezel: 37.5 33.7
|
||||
#-----------------------------------------------
|
||||
#Total basal + all the features: 72.2 65.3 65.2 61.2 (bloom q1)
|
||||
|
||||
# Koko-aio shader is meant to be an all-in one crt shader.
|
||||
# It can be configured with many parameters, so that can be
|
||||
# scaled to run on even on modest gpus while still developed to
|
||||
# run with heavier presets on at least Haswell+ iGpus.
|
||||
# It is not meant to simulate the internal behaviour of CRT displays,
|
||||
# but to give users the parameters to make their monitors to look similar.
|
||||
# Several presets are included.
|
||||
|
||||
# Actually it provides emulation for:
|
||||
# scanlines, screenlines, RGB vertical masks, horizontal slot masks,
|
||||
# glowing, haloing, blooming, gamma and SATURATION correction,pixel_outi
|
||||
# black frame insertions, interlace emulation, antialiasing.
|
||||
|
||||
# External code by:
|
||||
# * CRT - Guest - Dr.Venom (single pass bloom function)
|
||||
# * Nvidia (FXAA)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# Bezel texture contains the following infomations:
|
||||
# - The red channel represents the luminance information
|
||||
# - The green channel represents the highlights
|
||||
# - The alpha channel in the inner frame represents the part of the bezel that will be filled by the game content
|
||||
# - The blue channel represents the part of the bezel that will be filled by the game reflection.
|
||||
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
monitor_body_linear = "true"
|
||||
# Does this work?
|
||||
monitor_body_wrap_mode = "clamp_to_edge"
|
||||
monitor_body_mipmap = "true"
|
||||
|
||||
bg_under = "textures/background_under.png"
|
||||
bg_under_linear = "true"
|
||||
bg_under_wrap_mode = "mirrored_repeat"
|
||||
bg_under_mipmap = "true"
|
||||
|
||||
bg_over = "textures/background_over.png"
|
||||
bg_over_linear = "true"
|
||||
bg_over_wrap_mode = "mirrored_repeat"
|
||||
bg_over_mipmap = "true"
|
||||
|
||||
shaders = 17
|
||||
# For P-uae defaults, doubling just y0 seems the best option.
|
||||
# 90% of games are lowres in vertical size and p-uae defaults
|
||||
# to 720 pixels width, which is enough for this preset to work as intended.
|
||||
# Rest warned, that when a game sets an interlaced resolution, p-uae
|
||||
# will output even 560 h-lines which, doubled, will result in
|
||||
# 1120 h lines. too much even for a 1080p screen.
|
||||
# Auto-Cropping/overscan emulation could be added in a future release.
|
||||
# For other emulators/systems, probably it is best and safe to doulbe x0 too.
|
||||
|
||||
# In the first pass we draw an optional black border around the image for bezel purposes
|
||||
# and scale the image to something better usable by FXAA
|
||||
# Scaling y to 2x is needed by flickering scanlines pass.
|
||||
|
||||
shader0 = shaders/first_pass.slang
|
||||
alias0 = "first_pass"
|
||||
filter_linear0 = false
|
||||
scale_type0 = source
|
||||
scale_x0 = 2.0
|
||||
scale_y0 = 2.0
|
||||
wrap_mode0 = "mirrored_repeat"
|
||||
float_framebuffer0 = false
|
||||
|
||||
# Nvidia fxaa pass:
|
||||
# works good for "SD" resolutions
|
||||
shader1 = shaders/fxaa.slang
|
||||
alias1 = "FXAA_pass"
|
||||
filter_linear1 = true
|
||||
scale_type1 = source
|
||||
scale1 = 1.0
|
||||
|
||||
# FXAA don't really need any mipmap, but avglum_pass several passes after it does.
|
||||
# and for the weird way retroarch manages mipmaps, specify that FXAA_pass wants mipmaps
|
||||
# makes first_pass mipmaps available to everyone.
|
||||
# even if theoretically not needed, texture() occurrence in FXAA_pass needed to be switched
|
||||
# to textureLod(..,0.0) or it acts weird, don't ask me why.
|
||||
# yay.
|
||||
|
||||
mipmap_input1 = true
|
||||
wrap_mode1 = "mirrored_repeat"
|
||||
float_framebuffer1 = false
|
||||
|
||||
|
||||
shader2 = shaders/shift_and_bleed.slang
|
||||
alias2 = "shift_and_bleed_pass"
|
||||
filter_linear2 = true
|
||||
scale2 = 1.0
|
||||
scale_type2 = source
|
||||
float_framebuffer2 = false
|
||||
mipmap_input2 = false
|
||||
wrap_mode2 = "mirrored_repeat"
|
||||
|
||||
|
||||
|
||||
# Blur and glow the image as requested
|
||||
# This pass aims to simulate the signal input power.
|
||||
# Glowing will be used to weighting the scanlines.
|
||||
# In this pass we also generate flickering scanlines by blindly blanking
|
||||
# alternate lines at #frame interval
|
||||
|
||||
shader3 = shaders/in_glow.slang
|
||||
alias3 = "in_glow_pass"
|
||||
filter_linear3 = true
|
||||
scale3 = 1.0
|
||||
scale_type3 = source
|
||||
float_framebuffer3 = true
|
||||
wrap_mode3 = "mirrored_repeat"
|
||||
|
||||
|
||||
# This essentially is the same as glowing by a code point of view.
|
||||
# But this pass will be added later on instead of mixed
|
||||
|
||||
shader4 = shaders/halo.slang
|
||||
alias4 = "halo_pass"
|
||||
filter_linear4 = true
|
||||
scale4 = 1.0
|
||||
scale_type4 = source
|
||||
float_framebuffer4 = true
|
||||
mipmap_input4 = false
|
||||
wrap_mode4 = "mirrored_repeat"
|
||||
|
||||
# Get the average luminance needed by ambilight here, because:
|
||||
# * mipmap_input only works on "Source" texture
|
||||
# * the following pass does not use the previous one
|
||||
# * the previous pass represents scene changes.
|
||||
|
||||
# The rgb channels of the following pass contains luminance info
|
||||
# Used by the bezel code to light up the bezel corners.
|
||||
# The alpha channel contains the sum/3.0 of rgb channels
|
||||
# used to detect scene changes.
|
||||
|
||||
shader5 = shaders/avglum_pass.slang
|
||||
alias5 = "avglum_pass"
|
||||
filter_linear5 = true
|
||||
scale_type5 = source
|
||||
scale5 = 0.5
|
||||
wrap_mode5 = "mirrored_repeat"
|
||||
mipmap_input5 = false
|
||||
|
||||
# The following 2 passes will blur the mirrored part of main pass
|
||||
# to emulate bezel reflections.
|
||||
|
||||
shader6 = shaders/reflection_blur_h.slang
|
||||
alias6 = "reflected_blurred_pass1"
|
||||
filter_linear6 = true
|
||||
scale_type6 = source
|
||||
scale6 = 1.0
|
||||
wrap_mode6 = "mirrored_repeat"
|
||||
|
||||
shader7 = shaders/reflection_blur_v.slang
|
||||
alias7 = "reflected_blurred_pass2"
|
||||
filter_linear7 = true
|
||||
scale_type7 = source
|
||||
scale7 = 1.0
|
||||
wrap_mode7 = "mirrored_repeat"
|
||||
|
||||
|
||||
# In the subsequent passes we do first a fast bloom by first
|
||||
# sampling the original texture and scale it down to keep
|
||||
# it fast, next we do subsequent blurd of the bloomed
|
||||
# pass.
|
||||
|
||||
shader8 = shaders/bloom_pass_1.slang
|
||||
alias8 = "bloom_pass_1"
|
||||
filter_linear8 = true
|
||||
scale_type8 = source
|
||||
scale8 = 1.0
|
||||
# I NEED TO SET **THIS** TO mirrored_repeat TO HAVE THE PREVIOUS PASS mirrored_repeated (!?)
|
||||
wrap_mode8 = "mirrored_repeat"
|
||||
float_framebuffer8 = true
|
||||
|
||||
|
||||
shader9 = shaders/bloom_pass_2.slang
|
||||
alias9 = "bloom_pass_2"
|
||||
filter_linear9 = true
|
||||
scale_type9 = source
|
||||
scale9 = 0.5
|
||||
wrap_mode9 = "clamp_to_edge"
|
||||
|
||||
|
||||
shader10 = shaders/bloom_pass_3.slang
|
||||
alias10 = "bloom_pass_3"
|
||||
filter_linear10 = true
|
||||
scale_type10 = source
|
||||
scale10 = 1.0
|
||||
wrap_mode10 = "clamp_to_edge"
|
||||
|
||||
|
||||
shader11 = shaders/bloom_pass_4.slang
|
||||
alias11 = "bloom_pass_final"
|
||||
filter_linear11 = true
|
||||
scale_type11 = source
|
||||
scale11 = 1.0
|
||||
wrap_mode11 = "mirrored_repeat"
|
||||
|
||||
|
||||
# Back led lights:
|
||||
# Since the next pass will need mipmaps of the original image, and is only possible to get mipmaps
|
||||
from the very previous pass, the next one will just passthrough the original image
|
||||
#
|
||||
|
||||
shader12 = shaders/ambi_push_pass.slang
|
||||
alias12 = "ambi_push_pass"
|
||||
# I NEED TO SET **THIS** TO true TO HAVE THE PREVIOUS PASS linearly filtered
|
||||
filter_linear12 = true
|
||||
scale_type12 = source
|
||||
scale12 = 1.0
|
||||
wrap_mode12 = "mirrored_repeat"
|
||||
mipmap_input12 = false
|
||||
float_framebuffer12 = true
|
||||
|
||||
# Gather mipmaps from prevous pass and use them to light virtual leds under the virtual monitor
|
||||
shader13 = shaders/ambi_pre_pass.slang
|
||||
alias13 = "ambi_pre_pass1"
|
||||
filter_linear13 = true
|
||||
scale_type13 = source
|
||||
scale13 = 1.0
|
||||
mipmap_input13 = true
|
||||
wrap_mode13 = "clamp_to_border"
|
||||
float_framebuffer13 = false
|
||||
|
||||
# Temporally smooth led lights.
|
||||
shader14 = shaders/ambi_temporal_pass.slang
|
||||
alias14 = "ambi_temporal_pass"
|
||||
filter_linear14 = true
|
||||
scale_type14 = source
|
||||
float_framebuffer14 = true
|
||||
|
||||
|
||||
# In this pass we gather information about the rotated state of the source
|
||||
# This information can only be taken when a pass scales to viewport
|
||||
# So use a low output resolution to keep things as light as possible.
|
||||
# The feedback of this pass will be queried by previous ones.
|
||||
# I tried to move this into final_pass, but the gpu consumption was higher.
|
||||
|
||||
shader15 = shaders/isrotated.slang
|
||||
alias15 = "isrotated_pass"
|
||||
filter_linear15 = true
|
||||
scale15 = 0.1
|
||||
scale_type15 = viewport
|
||||
wrap_mode15 = "mirrored_repeat"
|
||||
|
||||
# In this pass we emulate scanlines, glowing,
|
||||
# RGB vertical mask, slot mask,haloing and color corrections
|
||||
|
||||
# This pass pass will do the composition of the previous passes
|
||||
# with the bloomed image, vignette and spot light, black frame insertions
|
||||
# and Bezel emulation
|
||||
|
||||
shader16 = shaders/final_pass.slang
|
||||
alias16 = "final_pass"
|
||||
filter_linear16 = true
|
||||
scale_type16 = viewport
|
||||
scale16 = 1.0
|
||||
wrap_mode16 = "mirrored_repeat"
|
||||
|
238
bezel/koko-aio/monitor-BASE.slangp
Normal file
238
bezel/koko-aio/monitor-BASE.slangp
Normal file
|
@ -0,0 +1,238 @@
|
|||
shaders = "17"
|
||||
shader0 = "shaders/first_pass.slang"
|
||||
filter_linear0 = "false"
|
||||
wrap_mode0 = "mirrored_repeat"
|
||||
mipmap_input0 = "false"
|
||||
alias0 = "first_pass"
|
||||
float_framebuffer0 = "false"
|
||||
srgb_framebuffer0 = "false"
|
||||
scale_type_x0 = "source"
|
||||
scale_x0 = "2.000000"
|
||||
scale_type_y0 = "source"
|
||||
scale_y0 = "2.000000"
|
||||
shader1 = "shaders/fxaa.slang"
|
||||
filter_linear1 = "true"
|
||||
wrap_mode1 = "mirrored_repeat"
|
||||
mipmap_input1 = "true"
|
||||
alias1 = "FXAA_pass"
|
||||
float_framebuffer1 = "false"
|
||||
srgb_framebuffer1 = "false"
|
||||
scale_type_x1 = "source"
|
||||
scale_x1 = "1.000000"
|
||||
scale_type_y1 = "source"
|
||||
scale_y1 = "1.000000"
|
||||
shader2 = "shaders/shift_and_bleed.slang"
|
||||
filter_linear2 = "true"
|
||||
wrap_mode2 = "mirrored_repeat"
|
||||
mipmap_input2 = "false"
|
||||
alias2 = "shift_and_bleed_pass"
|
||||
float_framebuffer2 = "false"
|
||||
srgb_framebuffer2 = "false"
|
||||
scale_type_x2 = "source"
|
||||
scale_x2 = "1.000000"
|
||||
scale_type_y2 = "source"
|
||||
scale_y2 = "1.000000"
|
||||
shader3 = "shaders/in_glow.slang"
|
||||
filter_linear3 = "true"
|
||||
wrap_mode3 = "mirrored_repeat"
|
||||
mipmap_input3 = "false"
|
||||
alias3 = "in_glow_pass"
|
||||
float_framebuffer3 = "true"
|
||||
srgb_framebuffer3 = "false"
|
||||
scale_type_x3 = "source"
|
||||
scale_x3 = "1.000000"
|
||||
scale_type_y3 = "source"
|
||||
scale_y3 = "1.000000"
|
||||
shader4 = "shaders/halo.slang"
|
||||
filter_linear4 = "true"
|
||||
wrap_mode4 = "mirrored_repeat"
|
||||
mipmap_input4 = "false"
|
||||
alias4 = "halo_pass"
|
||||
float_framebuffer4 = "true"
|
||||
srgb_framebuffer4 = "false"
|
||||
scale_type_x4 = "source"
|
||||
scale_x4 = "1.000000"
|
||||
scale_type_y4 = "source"
|
||||
scale_y4 = "1.000000"
|
||||
shader5 = "shaders/avglum_pass.slang"
|
||||
filter_linear5 = "true"
|
||||
wrap_mode5 = "mirrored_repeat"
|
||||
mipmap_input5 = "false"
|
||||
alias5 = "avglum_pass"
|
||||
float_framebuffer5 = "false"
|
||||
srgb_framebuffer5 = "false"
|
||||
scale_type_x5 = "source"
|
||||
scale_x5 = "0.500000"
|
||||
scale_type_y5 = "source"
|
||||
scale_y5 = "0.500000"
|
||||
shader6 = "shaders/reflection_blur_h.slang"
|
||||
filter_linear6 = "true"
|
||||
wrap_mode6 = "mirrored_repeat"
|
||||
mipmap_input6 = "false"
|
||||
alias6 = "reflected_blurred_pass1"
|
||||
float_framebuffer6 = "false"
|
||||
srgb_framebuffer6 = "false"
|
||||
scale_type_x6 = "source"
|
||||
scale_x6 = "1.000000"
|
||||
scale_type_y6 = "source"
|
||||
scale_y6 = "1.000000"
|
||||
shader7 = "shaders/reflection_blur_v.slang"
|
||||
filter_linear7 = "true"
|
||||
wrap_mode7 = "mirrored_repeat"
|
||||
mipmap_input7 = "false"
|
||||
alias7 = "reflected_blurred_pass2"
|
||||
float_framebuffer7 = "false"
|
||||
srgb_framebuffer7 = "false"
|
||||
scale_type_x7 = "source"
|
||||
scale_x7 = "1.000000"
|
||||
scale_type_y7 = "source"
|
||||
scale_y7 = "1.000000"
|
||||
shader8 = "shaders/bloom_pass_1.slang"
|
||||
filter_linear8 = "true"
|
||||
wrap_mode8 = "mirrored_repeat"
|
||||
mipmap_input8 = "false"
|
||||
alias8 = "bloom_pass_1"
|
||||
float_framebuffer8 = "true"
|
||||
srgb_framebuffer8 = "false"
|
||||
scale_type_x8 = "source"
|
||||
scale_x8 = "1.000000"
|
||||
scale_type_y8 = "source"
|
||||
scale_y8 = "1.000000"
|
||||
shader9 = "shaders/bloom_pass_2.slang"
|
||||
filter_linear9 = "true"
|
||||
wrap_mode9 = "clamp_to_edge"
|
||||
mipmap_input9 = "false"
|
||||
alias9 = "bloom_pass_2"
|
||||
float_framebuffer9 = "false"
|
||||
srgb_framebuffer9 = "false"
|
||||
scale_type_x9 = "source"
|
||||
scale_x9 = "0.500000"
|
||||
scale_type_y9 = "source"
|
||||
scale_y9 = "0.500000"
|
||||
shader10 = "shaders/bloom_pass_3.slang"
|
||||
filter_linear10 = "true"
|
||||
wrap_mode10 = "clamp_to_edge"
|
||||
mipmap_input10 = "false"
|
||||
alias10 = "bloom_pass_3"
|
||||
float_framebuffer10 = "false"
|
||||
srgb_framebuffer10 = "false"
|
||||
scale_type_x10 = "source"
|
||||
scale_x10 = "1.000000"
|
||||
scale_type_y10 = "source"
|
||||
scale_y10 = "1.000000"
|
||||
shader11 = "shaders/bloom_pass_4.slang"
|
||||
filter_linear11 = "true"
|
||||
wrap_mode11 = "mirrored_repeat"
|
||||
mipmap_input11 = "false"
|
||||
alias11 = "bloom_pass_final"
|
||||
float_framebuffer11 = "false"
|
||||
srgb_framebuffer11 = "false"
|
||||
scale_type_x11 = "source"
|
||||
scale_x11 = "1.000000"
|
||||
scale_type_y11 = "source"
|
||||
scale_y11 = "1.000000"
|
||||
shader12 = "shaders/ambi_push_pass.slang"
|
||||
filter_linear12 = "true"
|
||||
wrap_mode12 = "mirrored_repeat"
|
||||
mipmap_input12 = "false"
|
||||
alias12 = "ambi_push_pass"
|
||||
float_framebuffer12 = "true"
|
||||
srgb_framebuffer12 = "false"
|
||||
scale_type_x12 = "source"
|
||||
scale_x12 = "1.000000"
|
||||
scale_type_y12 = "source"
|
||||
scale_y12 = "1.000000"
|
||||
shader13 = "shaders/ambi_pre_pass.slang"
|
||||
filter_linear13 = "true"
|
||||
wrap_mode13 = "clamp_to_border"
|
||||
mipmap_input13 = "true"
|
||||
alias13 = "ambi_pre_pass1"
|
||||
float_framebuffer13 = "false"
|
||||
srgb_framebuffer13 = "false"
|
||||
scale_type_x13 = "source"
|
||||
scale_x13 = "1.000000"
|
||||
scale_type_y13 = "source"
|
||||
scale_y13 = "1.000000"
|
||||
shader14 = "shaders/ambi_temporal_pass.slang"
|
||||
filter_linear14 = "true"
|
||||
wrap_mode14 = "clamp_to_border"
|
||||
mipmap_input14 = "false"
|
||||
alias14 = "ambi_temporal_pass"
|
||||
float_framebuffer14 = "true"
|
||||
srgb_framebuffer14 = "false"
|
||||
scale_type_x14 = "source"
|
||||
scale_x14 = "1.000000"
|
||||
scale_type_y14 = "source"
|
||||
scale_y14 = "1.000000"
|
||||
shader15 = "shaders/isrotated.slang"
|
||||
filter_linear15 = "true"
|
||||
wrap_mode15 = "mirrored_repeat"
|
||||
mipmap_input15 = "false"
|
||||
alias15 = "isrotated_pass"
|
||||
float_framebuffer15 = "false"
|
||||
srgb_framebuffer15 = "false"
|
||||
scale_type_x15 = "viewport"
|
||||
scale_x15 = "0.100000"
|
||||
scale_type_y15 = "viewport"
|
||||
scale_y15 = "0.100000"
|
||||
shader16 = "shaders/final_pass.slang"
|
||||
filter_linear16 = "true"
|
||||
wrap_mode16 = "mirrored_repeat"
|
||||
mipmap_input16 = "false"
|
||||
alias16 = "final_pass"
|
||||
float_framebuffer16 = "false"
|
||||
srgb_framebuffer16 = "false"
|
||||
scale_type_x16 = "viewport"
|
||||
scale_x16 = "1.000000"
|
||||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.200000"
|
||||
GAMMA_OUT = "0.500000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.900000"
|
||||
IN_GLOW_WH = "7.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.450000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.150000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINES_BLEEDING = "0.825000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.150000"
|
||||
GEOM_WARP_Y = "0.150000"
|
||||
GEOM_CORNER_SMOOTH = "200.000000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.400000"
|
||||
AMBI_POWER = "1.000000"
|
||||
V_SIZE = "2.700000"
|
||||
V_POWER = "1.050000"
|
||||
S_POSITION = "194.000000"
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
monitor_body_linear = "true"
|
||||
monitor_body_wrap_mode = "clamp_to_edge"
|
||||
monitor_body_mipmap = "true"
|
||||
bg_under = "textures/background_under.png"
|
||||
bg_under_linear = "true"
|
||||
bg_under_wrap_mode = "mirrored_repeat"
|
||||
bg_under_mipmap = "true"
|
||||
bg_over = "textures/background_over.png"
|
||||
bg_over_linear = "true"
|
||||
bg_over_wrap_mode = "mirrored_repeat"
|
||||
bg_over_mipmap = "true"
|
257
bezel/koko-aio/monitor-Commodore_1084S-wider.slangp
Normal file
257
bezel/koko-aio/monitor-Commodore_1084S-wider.slangp
Normal file
|
@ -0,0 +1,257 @@
|
|||
shaders = "17"
|
||||
shader0 = "shaders/first_pass.slang"
|
||||
filter_linear0 = "false"
|
||||
wrap_mode0 = "mirrored_repeat"
|
||||
mipmap_input0 = "false"
|
||||
alias0 = "first_pass"
|
||||
float_framebuffer0 = "false"
|
||||
srgb_framebuffer0 = "false"
|
||||
scale_type_x0 = "source"
|
||||
scale_x0 = "2.000000"
|
||||
scale_type_y0 = "source"
|
||||
scale_y0 = "2.000000"
|
||||
shader1 = "shaders/fxaa.slang"
|
||||
filter_linear1 = "true"
|
||||
wrap_mode1 = "mirrored_repeat"
|
||||
mipmap_input1 = "true"
|
||||
alias1 = "FXAA_pass"
|
||||
float_framebuffer1 = "false"
|
||||
srgb_framebuffer1 = "false"
|
||||
scale_type_x1 = "source"
|
||||
scale_x1 = "1.000000"
|
||||
scale_type_y1 = "source"
|
||||
scale_y1 = "1.000000"
|
||||
shader2 = "shaders/shift_and_bleed.slang"
|
||||
filter_linear2 = "true"
|
||||
wrap_mode2 = "mirrored_repeat"
|
||||
mipmap_input2 = "false"
|
||||
alias2 = "shift_and_bleed_pass"
|
||||
float_framebuffer2 = "false"
|
||||
srgb_framebuffer2 = "false"
|
||||
scale_type_x2 = "source"
|
||||
scale_x2 = "1.000000"
|
||||
scale_type_y2 = "source"
|
||||
scale_y2 = "1.000000"
|
||||
shader3 = "shaders/in_glow.slang"
|
||||
filter_linear3 = "true"
|
||||
wrap_mode3 = "mirrored_repeat"
|
||||
mipmap_input3 = "false"
|
||||
alias3 = "in_glow_pass"
|
||||
float_framebuffer3 = "true"
|
||||
srgb_framebuffer3 = "false"
|
||||
scale_type_x3 = "source"
|
||||
scale_x3 = "1.000000"
|
||||
scale_type_y3 = "source"
|
||||
scale_y3 = "1.000000"
|
||||
shader4 = "shaders/halo.slang"
|
||||
filter_linear4 = "true"
|
||||
wrap_mode4 = "mirrored_repeat"
|
||||
mipmap_input4 = "false"
|
||||
alias4 = "halo_pass"
|
||||
float_framebuffer4 = "true"
|
||||
srgb_framebuffer4 = "false"
|
||||
scale_type_x4 = "source"
|
||||
scale_x4 = "1.000000"
|
||||
scale_type_y4 = "source"
|
||||
scale_y4 = "1.000000"
|
||||
shader5 = "shaders/avglum_pass.slang"
|
||||
filter_linear5 = "true"
|
||||
wrap_mode5 = "mirrored_repeat"
|
||||
mipmap_input5 = "false"
|
||||
alias5 = "avglum_pass"
|
||||
float_framebuffer5 = "false"
|
||||
srgb_framebuffer5 = "false"
|
||||
scale_type_x5 = "source"
|
||||
scale_x5 = "0.500000"
|
||||
scale_type_y5 = "source"
|
||||
scale_y5 = "0.500000"
|
||||
shader6 = "shaders/reflection_blur_h.slang"
|
||||
filter_linear6 = "true"
|
||||
wrap_mode6 = "mirrored_repeat"
|
||||
mipmap_input6 = "false"
|
||||
alias6 = "reflected_blurred_pass1"
|
||||
float_framebuffer6 = "false"
|
||||
srgb_framebuffer6 = "false"
|
||||
scale_type_x6 = "source"
|
||||
scale_x6 = "1.000000"
|
||||
scale_type_y6 = "source"
|
||||
scale_y6 = "1.000000"
|
||||
shader7 = "shaders/reflection_blur_v.slang"
|
||||
filter_linear7 = "true"
|
||||
wrap_mode7 = "mirrored_repeat"
|
||||
mipmap_input7 = "false"
|
||||
alias7 = "reflected_blurred_pass2"
|
||||
float_framebuffer7 = "false"
|
||||
srgb_framebuffer7 = "false"
|
||||
scale_type_x7 = "source"
|
||||
scale_x7 = "1.000000"
|
||||
scale_type_y7 = "source"
|
||||
scale_y7 = "1.000000"
|
||||
shader8 = "shaders/bloom_pass_1.slang"
|
||||
filter_linear8 = "true"
|
||||
wrap_mode8 = "mirrored_repeat"
|
||||
mipmap_input8 = "false"
|
||||
alias8 = "bloom_pass_1"
|
||||
float_framebuffer8 = "true"
|
||||
srgb_framebuffer8 = "false"
|
||||
scale_type_x8 = "source"
|
||||
scale_x8 = "1.000000"
|
||||
scale_type_y8 = "source"
|
||||
scale_y8 = "1.000000"
|
||||
shader9 = "shaders/bloom_pass_2.slang"
|
||||
filter_linear9 = "true"
|
||||
wrap_mode9 = "clamp_to_edge"
|
||||
mipmap_input9 = "false"
|
||||
alias9 = "bloom_pass_2"
|
||||
float_framebuffer9 = "false"
|
||||
srgb_framebuffer9 = "false"
|
||||
scale_type_x9 = "source"
|
||||
scale_x9 = "0.500000"
|
||||
scale_type_y9 = "source"
|
||||
scale_y9 = "0.500000"
|
||||
shader10 = "shaders/bloom_pass_3.slang"
|
||||
filter_linear10 = "true"
|
||||
wrap_mode10 = "clamp_to_edge"
|
||||
mipmap_input10 = "false"
|
||||
alias10 = "bloom_pass_3"
|
||||
float_framebuffer10 = "false"
|
||||
srgb_framebuffer10 = "false"
|
||||
scale_type_x10 = "source"
|
||||
scale_x10 = "1.000000"
|
||||
scale_type_y10 = "source"
|
||||
scale_y10 = "1.000000"
|
||||
shader11 = "shaders/bloom_pass_4.slang"
|
||||
filter_linear11 = "true"
|
||||
wrap_mode11 = "mirrored_repeat"
|
||||
mipmap_input11 = "false"
|
||||
alias11 = "bloom_pass_final"
|
||||
float_framebuffer11 = "false"
|
||||
srgb_framebuffer11 = "false"
|
||||
scale_type_x11 = "source"
|
||||
scale_x11 = "1.000000"
|
||||
scale_type_y11 = "source"
|
||||
scale_y11 = "1.000000"
|
||||
shader12 = "shaders/ambi_push_pass.slang"
|
||||
filter_linear12 = "true"
|
||||
wrap_mode12 = "mirrored_repeat"
|
||||
mipmap_input12 = "false"
|
||||
alias12 = "ambi_push_pass"
|
||||
float_framebuffer12 = "true"
|
||||
srgb_framebuffer12 = "false"
|
||||
scale_type_x12 = "source"
|
||||
scale_x12 = "1.000000"
|
||||
scale_type_y12 = "source"
|
||||
scale_y12 = "1.000000"
|
||||
shader13 = "shaders/ambi_pre_pass.slang"
|
||||
filter_linear13 = "true"
|
||||
wrap_mode13 = "clamp_to_border"
|
||||
mipmap_input13 = "true"
|
||||
alias13 = "ambi_pre_pass1"
|
||||
float_framebuffer13 = "false"
|
||||
srgb_framebuffer13 = "false"
|
||||
scale_type_x13 = "source"
|
||||
scale_x13 = "1.000000"
|
||||
scale_type_y13 = "source"
|
||||
scale_y13 = "1.000000"
|
||||
shader14 = "shaders/ambi_temporal_pass.slang"
|
||||
filter_linear14 = "true"
|
||||
wrap_mode14 = "clamp_to_border"
|
||||
mipmap_input14 = "false"
|
||||
alias14 = "ambi_temporal_pass"
|
||||
float_framebuffer14 = "true"
|
||||
srgb_framebuffer14 = "false"
|
||||
scale_type_x14 = "source"
|
||||
scale_x14 = "1.000000"
|
||||
scale_type_y14 = "source"
|
||||
scale_y14 = "1.000000"
|
||||
shader15 = "shaders/isrotated.slang"
|
||||
filter_linear15 = "true"
|
||||
wrap_mode15 = "mirrored_repeat"
|
||||
mipmap_input15 = "false"
|
||||
alias15 = "isrotated_pass"
|
||||
float_framebuffer15 = "false"
|
||||
srgb_framebuffer15 = "false"
|
||||
scale_type_x15 = "viewport"
|
||||
scale_x15 = "0.100000"
|
||||
scale_type_y15 = "viewport"
|
||||
scale_y15 = "0.100000"
|
||||
shader16 = "shaders/final_pass.slang"
|
||||
filter_linear16 = "true"
|
||||
wrap_mode16 = "mirrored_repeat"
|
||||
mipmap_input16 = "false"
|
||||
alias16 = "final_pass"
|
||||
float_framebuffer16 = "false"
|
||||
srgb_framebuffer16 = "false"
|
||||
scale_type_x16 = "viewport"
|
||||
scale_x16 = "1.000000"
|
||||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.200000"
|
||||
GAMMA_OUT = "0.500000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.900000"
|
||||
IN_GLOW_WH = "7.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.700000"
|
||||
DARKLINES_PERIOD = "2.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.450000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.150000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINES_BLEEDING = "0.825000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "1.200000"
|
||||
GEOM_WARP_Y = "1.000001"
|
||||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_R = "0.020000"
|
||||
BEZEL_G = "0.000000"
|
||||
BEZEL_B = "-0.020000"
|
||||
BEZEL_CON = "1.280000"
|
||||
BEZEL_INNER_ZOOM = "-0.450000"
|
||||
BEZEL_FRAME_ZOOM = "-0.190000"
|
||||
BEZEL_IMAGE_BORDER = "1.030000"
|
||||
DO_BG_IMAGE = "1.000000"
|
||||
BG_IMAGE_OVER = "1.000000"
|
||||
BG_IMAGE_OFFX = "0.002000"
|
||||
BG_IMAGE_OFFY = "0.005000"
|
||||
BG_IMAGE_ZOOM = "1.091004"
|
||||
DO_AMBILIGHT = "0.000000"
|
||||
AMBI_FALLOFF = "0.400000"
|
||||
AMBI_POWER = "1.000000"
|
||||
DO_VIGNETTE = "1.000000"
|
||||
V_SIZE = "2.000000"
|
||||
V_POWER = "1.050000"
|
||||
DO_SPOT = "1.000000"
|
||||
S_POSITION = "194.000000"
|
||||
S_SIZE = "0.640000"
|
||||
S_POWER = "0.250000"
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
monitor_body_linear = "true"
|
||||
monitor_body_wrap_mode = "clamp_to_edge"
|
||||
monitor_body_mipmap = "true"
|
||||
bg_under = "textures/background_under.png"
|
||||
bg_under_linear = "true"
|
||||
bg_under_wrap_mode = "mirrored_repeat"
|
||||
bg_under_mipmap = "true"
|
||||
bg_over = "textures/background_over.png"
|
||||
bg_over_linear = "true"
|
||||
bg_over_wrap_mode = "mirrored_repeat"
|
||||
bg_over_mipmap = "true"
|
255
bezel/koko-aio/monitor-Commodore_1084S.slangp
Normal file
255
bezel/koko-aio/monitor-Commodore_1084S.slangp
Normal file
|
@ -0,0 +1,255 @@
|
|||
shaders = "17"
|
||||
shader0 = "shaders/first_pass.slang"
|
||||
filter_linear0 = "false"
|
||||
wrap_mode0 = "mirrored_repeat"
|
||||
mipmap_input0 = "false"
|
||||
alias0 = "first_pass"
|
||||
float_framebuffer0 = "false"
|
||||
srgb_framebuffer0 = "false"
|
||||
scale_type_x0 = "source"
|
||||
scale_x0 = "2.000000"
|
||||
scale_type_y0 = "source"
|
||||
scale_y0 = "2.000000"
|
||||
shader1 = "shaders/fxaa.slang"
|
||||
filter_linear1 = "true"
|
||||
wrap_mode1 = "mirrored_repeat"
|
||||
mipmap_input1 = "true"
|
||||
alias1 = "FXAA_pass"
|
||||
float_framebuffer1 = "false"
|
||||
srgb_framebuffer1 = "false"
|
||||
scale_type_x1 = "source"
|
||||
scale_x1 = "1.000000"
|
||||
scale_type_y1 = "source"
|
||||
scale_y1 = "1.000000"
|
||||
shader2 = "shaders/shift_and_bleed.slang"
|
||||
filter_linear2 = "true"
|
||||
wrap_mode2 = "mirrored_repeat"
|
||||
mipmap_input2 = "false"
|
||||
alias2 = "shift_and_bleed_pass"
|
||||
float_framebuffer2 = "false"
|
||||
srgb_framebuffer2 = "false"
|
||||
scale_type_x2 = "source"
|
||||
scale_x2 = "1.000000"
|
||||
scale_type_y2 = "source"
|
||||
scale_y2 = "1.000000"
|
||||
shader3 = "shaders/in_glow.slang"
|
||||
filter_linear3 = "true"
|
||||
wrap_mode3 = "mirrored_repeat"
|
||||
mipmap_input3 = "false"
|
||||
alias3 = "in_glow_pass"
|
||||
float_framebuffer3 = "true"
|
||||
srgb_framebuffer3 = "false"
|
||||
scale_type_x3 = "source"
|
||||
scale_x3 = "1.000000"
|
||||
scale_type_y3 = "source"
|
||||
scale_y3 = "1.000000"
|
||||
shader4 = "shaders/halo.slang"
|
||||
filter_linear4 = "true"
|
||||
wrap_mode4 = "mirrored_repeat"
|
||||
mipmap_input4 = "false"
|
||||
alias4 = "halo_pass"
|
||||
float_framebuffer4 = "true"
|
||||
srgb_framebuffer4 = "false"
|
||||
scale_type_x4 = "source"
|
||||
scale_x4 = "1.000000"
|
||||
scale_type_y4 = "source"
|
||||
scale_y4 = "1.000000"
|
||||
shader5 = "shaders/avglum_pass.slang"
|
||||
filter_linear5 = "true"
|
||||
wrap_mode5 = "mirrored_repeat"
|
||||
mipmap_input5 = "false"
|
||||
alias5 = "avglum_pass"
|
||||
float_framebuffer5 = "false"
|
||||
srgb_framebuffer5 = "false"
|
||||
scale_type_x5 = "source"
|
||||
scale_x5 = "0.500000"
|
||||
scale_type_y5 = "source"
|
||||
scale_y5 = "0.500000"
|
||||
shader6 = "shaders/reflection_blur_h.slang"
|
||||
filter_linear6 = "true"
|
||||
wrap_mode6 = "mirrored_repeat"
|
||||
mipmap_input6 = "false"
|
||||
alias6 = "reflected_blurred_pass1"
|
||||
float_framebuffer6 = "false"
|
||||
srgb_framebuffer6 = "false"
|
||||
scale_type_x6 = "source"
|
||||
scale_x6 = "1.000000"
|
||||
scale_type_y6 = "source"
|
||||
scale_y6 = "1.000000"
|
||||
shader7 = "shaders/reflection_blur_v.slang"
|
||||
filter_linear7 = "true"
|
||||
wrap_mode7 = "mirrored_repeat"
|
||||
mipmap_input7 = "false"
|
||||
alias7 = "reflected_blurred_pass2"
|
||||
float_framebuffer7 = "false"
|
||||
srgb_framebuffer7 = "false"
|
||||
scale_type_x7 = "source"
|
||||
scale_x7 = "1.000000"
|
||||
scale_type_y7 = "source"
|
||||
scale_y7 = "1.000000"
|
||||
shader8 = "shaders/bloom_pass_1.slang"
|
||||
filter_linear8 = "true"
|
||||
wrap_mode8 = "mirrored_repeat"
|
||||
mipmap_input8 = "false"
|
||||
alias8 = "bloom_pass_1"
|
||||
float_framebuffer8 = "true"
|
||||
srgb_framebuffer8 = "false"
|
||||
scale_type_x8 = "source"
|
||||
scale_x8 = "1.000000"
|
||||
scale_type_y8 = "source"
|
||||
scale_y8 = "1.000000"
|
||||
shader9 = "shaders/bloom_pass_2.slang"
|
||||
filter_linear9 = "true"
|
||||
wrap_mode9 = "clamp_to_edge"
|
||||
mipmap_input9 = "false"
|
||||
alias9 = "bloom_pass_2"
|
||||
float_framebuffer9 = "false"
|
||||
srgb_framebuffer9 = "false"
|
||||
scale_type_x9 = "source"
|
||||
scale_x9 = "0.500000"
|
||||
scale_type_y9 = "source"
|
||||
scale_y9 = "0.500000"
|
||||
shader10 = "shaders/bloom_pass_3.slang"
|
||||
filter_linear10 = "true"
|
||||
wrap_mode10 = "clamp_to_edge"
|
||||
mipmap_input10 = "false"
|
||||
alias10 = "bloom_pass_3"
|
||||
float_framebuffer10 = "false"
|
||||
srgb_framebuffer10 = "false"
|
||||
scale_type_x10 = "source"
|
||||
scale_x10 = "1.000000"
|
||||
scale_type_y10 = "source"
|
||||
scale_y10 = "1.000000"
|
||||
shader11 = "shaders/bloom_pass_4.slang"
|
||||
filter_linear11 = "true"
|
||||
wrap_mode11 = "mirrored_repeat"
|
||||
mipmap_input11 = "false"
|
||||
alias11 = "bloom_pass_final"
|
||||
float_framebuffer11 = "false"
|
||||
srgb_framebuffer11 = "false"
|
||||
scale_type_x11 = "source"
|
||||
scale_x11 = "1.000000"
|
||||
scale_type_y11 = "source"
|
||||
scale_y11 = "1.000000"
|
||||
shader12 = "shaders/ambi_push_pass.slang"
|
||||
filter_linear12 = "true"
|
||||
wrap_mode12 = "mirrored_repeat"
|
||||
mipmap_input12 = "false"
|
||||
alias12 = "ambi_push_pass"
|
||||
float_framebuffer12 = "true"
|
||||
srgb_framebuffer12 = "false"
|
||||
scale_type_x12 = "source"
|
||||
scale_x12 = "1.000000"
|
||||
scale_type_y12 = "source"
|
||||
scale_y12 = "1.000000"
|
||||
shader13 = "shaders/ambi_pre_pass.slang"
|
||||
filter_linear13 = "true"
|
||||
wrap_mode13 = "clamp_to_border"
|
||||
mipmap_input13 = "true"
|
||||
alias13 = "ambi_pre_pass1"
|
||||
float_framebuffer13 = "false"
|
||||
srgb_framebuffer13 = "false"
|
||||
scale_type_x13 = "source"
|
||||
scale_x13 = "1.000000"
|
||||
scale_type_y13 = "source"
|
||||
scale_y13 = "1.000000"
|
||||
shader14 = "shaders/ambi_temporal_pass.slang"
|
||||
filter_linear14 = "true"
|
||||
wrap_mode14 = "clamp_to_border"
|
||||
mipmap_input14 = "false"
|
||||
alias14 = "ambi_temporal_pass"
|
||||
float_framebuffer14 = "true"
|
||||
srgb_framebuffer14 = "false"
|
||||
scale_type_x14 = "source"
|
||||
scale_x14 = "1.000000"
|
||||
scale_type_y14 = "source"
|
||||
scale_y14 = "1.000000"
|
||||
shader15 = "shaders/isrotated.slang"
|
||||
filter_linear15 = "true"
|
||||
wrap_mode15 = "mirrored_repeat"
|
||||
mipmap_input15 = "false"
|
||||
alias15 = "isrotated_pass"
|
||||
float_framebuffer15 = "false"
|
||||
srgb_framebuffer15 = "false"
|
||||
scale_type_x15 = "viewport"
|
||||
scale_x15 = "0.100000"
|
||||
scale_type_y15 = "viewport"
|
||||
scale_y15 = "0.100000"
|
||||
shader16 = "shaders/final_pass.slang"
|
||||
filter_linear16 = "true"
|
||||
wrap_mode16 = "mirrored_repeat"
|
||||
mipmap_input16 = "false"
|
||||
alias16 = "final_pass"
|
||||
float_framebuffer16 = "false"
|
||||
srgb_framebuffer16 = "false"
|
||||
scale_type_x16 = "viewport"
|
||||
scale_x16 = "1.000000"
|
||||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.200000"
|
||||
GAMMA_OUT = "0.500000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.900000"
|
||||
IN_GLOW_WH = "7.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.700000"
|
||||
DARKLINES_PERIOD = "2.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.450000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.150000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINES_BLEEDING = "0.825000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "1.400000"
|
||||
GEOM_WARP_Y = "1.600000"
|
||||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_R = "0.030000"
|
||||
BEZEL_G = "0.000000"
|
||||
BEZEL_B = "-0.030000"
|
||||
BEZEL_INNER_ZOOM = "-0.590000"
|
||||
BEZEL_FRAME_ZOOM = "-0.300000"
|
||||
BEZEL_IMAGE_BORDER = "1.040000"
|
||||
DO_BG_IMAGE = "1.000000"
|
||||
BG_IMAGE_OVER = "1.000000"
|
||||
BG_IMAGE_OFFX = "0.001000"
|
||||
BG_IMAGE_OFFY = "0.006000"
|
||||
DO_AMBILIGHT = "0.000000"
|
||||
AMBI_FALLOFF = "0.400000"
|
||||
AMBI_POWER = "1.000000"
|
||||
DO_VIGNETTE = "1.000000"
|
||||
V_SIZE = "2.000000"
|
||||
V_POWER = "1.050000"
|
||||
DO_SPOT = "1.000000"
|
||||
S_POSITION = "194.000000"
|
||||
S_SIZE = "0.640000"
|
||||
S_POWER = "0.250000"
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
monitor_body_linear = "true"
|
||||
monitor_body_wrap_mode = "clamp_to_edge"
|
||||
monitor_body_mipmap = "true"
|
||||
bg_under = "textures/background_under.png"
|
||||
bg_under_linear = "true"
|
||||
bg_under_wrap_mode = "mirrored_repeat"
|
||||
bg_under_mipmap = "true"
|
||||
bg_over = "textures/background_over.png"
|
||||
bg_over_linear = "true"
|
||||
bg_over_wrap_mode = "mirrored_repeat"
|
||||
bg_over_mipmap = "true"
|
244
bezel/koko-aio/monitor-bloom-bezel.slangp
Normal file
244
bezel/koko-aio/monitor-bloom-bezel.slangp
Normal file
|
@ -0,0 +1,244 @@
|
|||
shaders = "17"
|
||||
shader0 = "shaders/first_pass.slang"
|
||||
filter_linear0 = "false"
|
||||
wrap_mode0 = "mirrored_repeat"
|
||||
mipmap_input0 = "false"
|
||||
alias0 = "first_pass"
|
||||
float_framebuffer0 = "false"
|
||||
srgb_framebuffer0 = "false"
|
||||
scale_type_x0 = "source"
|
||||
scale_x0 = "2.000000"
|
||||
scale_type_y0 = "source"
|
||||
scale_y0 = "2.000000"
|
||||
shader1 = "shaders/fxaa.slang"
|
||||
filter_linear1 = "true"
|
||||
wrap_mode1 = "mirrored_repeat"
|
||||
mipmap_input1 = "true"
|
||||
alias1 = "FXAA_pass"
|
||||
float_framebuffer1 = "false"
|
||||
srgb_framebuffer1 = "false"
|
||||
scale_type_x1 = "source"
|
||||
scale_x1 = "1.000000"
|
||||
scale_type_y1 = "source"
|
||||
scale_y1 = "1.000000"
|
||||
shader2 = "shaders/shift_and_bleed.slang"
|
||||
filter_linear2 = "true"
|
||||
wrap_mode2 = "mirrored_repeat"
|
||||
mipmap_input2 = "false"
|
||||
alias2 = "shift_and_bleed_pass"
|
||||
float_framebuffer2 = "false"
|
||||
srgb_framebuffer2 = "false"
|
||||
scale_type_x2 = "source"
|
||||
scale_x2 = "1.000000"
|
||||
scale_type_y2 = "source"
|
||||
scale_y2 = "1.000000"
|
||||
shader3 = "shaders/in_glow.slang"
|
||||
filter_linear3 = "true"
|
||||
wrap_mode3 = "mirrored_repeat"
|
||||
mipmap_input3 = "false"
|
||||
alias3 = "in_glow_pass"
|
||||
float_framebuffer3 = "true"
|
||||
srgb_framebuffer3 = "false"
|
||||
scale_type_x3 = "source"
|
||||
scale_x3 = "1.000000"
|
||||
scale_type_y3 = "source"
|
||||
scale_y3 = "1.000000"
|
||||
shader4 = "shaders/halo.slang"
|
||||
filter_linear4 = "true"
|
||||
wrap_mode4 = "mirrored_repeat"
|
||||
mipmap_input4 = "false"
|
||||
alias4 = "halo_pass"
|
||||
float_framebuffer4 = "true"
|
||||
srgb_framebuffer4 = "false"
|
||||
scale_type_x4 = "source"
|
||||
scale_x4 = "1.000000"
|
||||
scale_type_y4 = "source"
|
||||
scale_y4 = "1.000000"
|
||||
shader5 = "shaders/avglum_pass.slang"
|
||||
filter_linear5 = "true"
|
||||
wrap_mode5 = "mirrored_repeat"
|
||||
mipmap_input5 = "false"
|
||||
alias5 = "avglum_pass"
|
||||
float_framebuffer5 = "false"
|
||||
srgb_framebuffer5 = "false"
|
||||
scale_type_x5 = "source"
|
||||
scale_x5 = "0.500000"
|
||||
scale_type_y5 = "source"
|
||||
scale_y5 = "0.500000"
|
||||
shader6 = "shaders/reflection_blur_h.slang"
|
||||
filter_linear6 = "true"
|
||||
wrap_mode6 = "mirrored_repeat"
|
||||
mipmap_input6 = "false"
|
||||
alias6 = "reflected_blurred_pass1"
|
||||
float_framebuffer6 = "false"
|
||||
srgb_framebuffer6 = "false"
|
||||
scale_type_x6 = "source"
|
||||
scale_x6 = "1.000000"
|
||||
scale_type_y6 = "source"
|
||||
scale_y6 = "1.000000"
|
||||
shader7 = "shaders/reflection_blur_v.slang"
|
||||
filter_linear7 = "true"
|
||||
wrap_mode7 = "mirrored_repeat"
|
||||
mipmap_input7 = "false"
|
||||
alias7 = "reflected_blurred_pass2"
|
||||
float_framebuffer7 = "false"
|
||||
srgb_framebuffer7 = "false"
|
||||
scale_type_x7 = "source"
|
||||
scale_x7 = "1.000000"
|
||||
scale_type_y7 = "source"
|
||||
scale_y7 = "1.000000"
|
||||
shader8 = "shaders/bloom_pass_1.slang"
|
||||
filter_linear8 = "true"
|
||||
wrap_mode8 = "mirrored_repeat"
|
||||
mipmap_input8 = "false"
|
||||
alias8 = "bloom_pass_1"
|
||||
float_framebuffer8 = "true"
|
||||
srgb_framebuffer8 = "false"
|
||||
scale_type_x8 = "source"
|
||||
scale_x8 = "1.000000"
|
||||
scale_type_y8 = "source"
|
||||
scale_y8 = "1.000000"
|
||||
shader9 = "shaders/bloom_pass_2.slang"
|
||||
filter_linear9 = "true"
|
||||
wrap_mode9 = "clamp_to_edge"
|
||||
mipmap_input9 = "false"
|
||||
alias9 = "bloom_pass_2"
|
||||
float_framebuffer9 = "false"
|
||||
srgb_framebuffer9 = "false"
|
||||
scale_type_x9 = "source"
|
||||
scale_x9 = "0.500000"
|
||||
scale_type_y9 = "source"
|
||||
scale_y9 = "0.500000"
|
||||
shader10 = "shaders/bloom_pass_3.slang"
|
||||
filter_linear10 = "true"
|
||||
wrap_mode10 = "clamp_to_edge"
|
||||
mipmap_input10 = "false"
|
||||
alias10 = "bloom_pass_3"
|
||||
float_framebuffer10 = "false"
|
||||
srgb_framebuffer10 = "false"
|
||||
scale_type_x10 = "source"
|
||||
scale_x10 = "1.000000"
|
||||
scale_type_y10 = "source"
|
||||
scale_y10 = "1.000000"
|
||||
shader11 = "shaders/bloom_pass_4.slang"
|
||||
filter_linear11 = "true"
|
||||
wrap_mode11 = "mirrored_repeat"
|
||||
mipmap_input11 = "false"
|
||||
alias11 = "bloom_pass_final"
|
||||
float_framebuffer11 = "false"
|
||||
srgb_framebuffer11 = "false"
|
||||
scale_type_x11 = "source"
|
||||
scale_x11 = "1.000000"
|
||||
scale_type_y11 = "source"
|
||||
scale_y11 = "1.000000"
|
||||
shader12 = "shaders/ambi_push_pass.slang"
|
||||
filter_linear12 = "true"
|
||||
wrap_mode12 = "mirrored_repeat"
|
||||
mipmap_input12 = "false"
|
||||
alias12 = "ambi_push_pass"
|
||||
float_framebuffer12 = "true"
|
||||
srgb_framebuffer12 = "false"
|
||||
scale_type_x12 = "source"
|
||||
scale_x12 = "1.000000"
|
||||
scale_type_y12 = "source"
|
||||
scale_y12 = "1.000000"
|
||||
shader13 = "shaders/ambi_pre_pass.slang"
|
||||
filter_linear13 = "true"
|
||||
wrap_mode13 = "clamp_to_border"
|
||||
mipmap_input13 = "true"
|
||||
alias13 = "ambi_pre_pass1"
|
||||
float_framebuffer13 = "false"
|
||||
srgb_framebuffer13 = "false"
|
||||
scale_type_x13 = "source"
|
||||
scale_x13 = "1.000000"
|
||||
scale_type_y13 = "source"
|
||||
scale_y13 = "1.000000"
|
||||
shader14 = "shaders/ambi_temporal_pass.slang"
|
||||
filter_linear14 = "true"
|
||||
wrap_mode14 = "clamp_to_border"
|
||||
mipmap_input14 = "false"
|
||||
alias14 = "ambi_temporal_pass"
|
||||
float_framebuffer14 = "true"
|
||||
srgb_framebuffer14 = "false"
|
||||
scale_type_x14 = "source"
|
||||
scale_x14 = "1.000000"
|
||||
scale_type_y14 = "source"
|
||||
scale_y14 = "1.000000"
|
||||
shader15 = "shaders/isrotated.slang"
|
||||
filter_linear15 = "true"
|
||||
wrap_mode15 = "mirrored_repeat"
|
||||
mipmap_input15 = "false"
|
||||
alias15 = "isrotated_pass"
|
||||
float_framebuffer15 = "false"
|
||||
srgb_framebuffer15 = "false"
|
||||
scale_type_x15 = "viewport"
|
||||
scale_x15 = "0.100000"
|
||||
scale_type_y15 = "viewport"
|
||||
scale_y15 = "0.100000"
|
||||
shader16 = "shaders/final_pass.slang"
|
||||
filter_linear16 = "true"
|
||||
wrap_mode16 = "mirrored_repeat"
|
||||
mipmap_input16 = "false"
|
||||
alias16 = "final_pass"
|
||||
float_framebuffer16 = "false"
|
||||
srgb_framebuffer16 = "false"
|
||||
scale_type_x16 = "viewport"
|
||||
scale_x16 = "1.000000"
|
||||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.200000"
|
||||
GAMMA_OUT = "0.500000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.900000"
|
||||
IN_GLOW_WH = "7.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.000000"
|
||||
DARKLINES_PERIOD = "2.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.450000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.150000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINES_BLEEDING = "0.825000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.800000"
|
||||
GEOM_WARP_Y = "0.850000"
|
||||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.600000"
|
||||
AMBI_POWER = "2.000000"
|
||||
DO_VIGNETTE = "1.000000"
|
||||
V_SIZE = "2.700000"
|
||||
V_POWER = "1.050000"
|
||||
DO_SPOT = "1.000000"
|
||||
S_POSITION = "194.000000"
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
monitor_body_linear = "true"
|
||||
monitor_body_wrap_mode = "clamp_to_edge"
|
||||
monitor_body_mipmap = "true"
|
||||
bg_under = "textures/background_under.png"
|
||||
bg_under_linear = "true"
|
||||
bg_under_wrap_mode = "mirrored_repeat"
|
||||
bg_under_mipmap = "true"
|
||||
bg_over = "textures/background_over.png"
|
||||
bg_over_linear = "true"
|
||||
bg_over_wrap_mode = "mirrored_repeat"
|
||||
bg_over_mipmap = "true"
|
245
bezel/koko-aio/monitor-bloom-bezelwider.slangp
Normal file
245
bezel/koko-aio/monitor-bloom-bezelwider.slangp
Normal file
|
@ -0,0 +1,245 @@
|
|||
shaders = "17"
|
||||
shader0 = "shaders/first_pass.slang"
|
||||
filter_linear0 = "false"
|
||||
wrap_mode0 = "mirrored_repeat"
|
||||
mipmap_input0 = "false"
|
||||
alias0 = "first_pass"
|
||||
float_framebuffer0 = "false"
|
||||
srgb_framebuffer0 = "false"
|
||||
scale_type_x0 = "source"
|
||||
scale_x0 = "2.000000"
|
||||
scale_type_y0 = "source"
|
||||
scale_y0 = "2.000000"
|
||||
shader1 = "shaders/fxaa.slang"
|
||||
filter_linear1 = "true"
|
||||
wrap_mode1 = "mirrored_repeat"
|
||||
mipmap_input1 = "true"
|
||||
alias1 = "FXAA_pass"
|
||||
float_framebuffer1 = "false"
|
||||
srgb_framebuffer1 = "false"
|
||||
scale_type_x1 = "source"
|
||||
scale_x1 = "1.000000"
|
||||
scale_type_y1 = "source"
|
||||
scale_y1 = "1.000000"
|
||||
shader2 = "shaders/shift_and_bleed.slang"
|
||||
filter_linear2 = "true"
|
||||
wrap_mode2 = "mirrored_repeat"
|
||||
mipmap_input2 = "false"
|
||||
alias2 = "shift_and_bleed_pass"
|
||||
float_framebuffer2 = "false"
|
||||
srgb_framebuffer2 = "false"
|
||||
scale_type_x2 = "source"
|
||||
scale_x2 = "1.000000"
|
||||
scale_type_y2 = "source"
|
||||
scale_y2 = "1.000000"
|
||||
shader3 = "shaders/in_glow.slang"
|
||||
filter_linear3 = "true"
|
||||
wrap_mode3 = "mirrored_repeat"
|
||||
mipmap_input3 = "false"
|
||||
alias3 = "in_glow_pass"
|
||||
float_framebuffer3 = "true"
|
||||
srgb_framebuffer3 = "false"
|
||||
scale_type_x3 = "source"
|
||||
scale_x3 = "1.000000"
|
||||
scale_type_y3 = "source"
|
||||
scale_y3 = "1.000000"
|
||||
shader4 = "shaders/halo.slang"
|
||||
filter_linear4 = "true"
|
||||
wrap_mode4 = "mirrored_repeat"
|
||||
mipmap_input4 = "false"
|
||||
alias4 = "halo_pass"
|
||||
float_framebuffer4 = "true"
|
||||
srgb_framebuffer4 = "false"
|
||||
scale_type_x4 = "source"
|
||||
scale_x4 = "1.000000"
|
||||
scale_type_y4 = "source"
|
||||
scale_y4 = "1.000000"
|
||||
shader5 = "shaders/avglum_pass.slang"
|
||||
filter_linear5 = "true"
|
||||
wrap_mode5 = "mirrored_repeat"
|
||||
mipmap_input5 = "false"
|
||||
alias5 = "avglum_pass"
|
||||
float_framebuffer5 = "false"
|
||||
srgb_framebuffer5 = "false"
|
||||
scale_type_x5 = "source"
|
||||
scale_x5 = "0.500000"
|
||||
scale_type_y5 = "source"
|
||||
scale_y5 = "0.500000"
|
||||
shader6 = "shaders/reflection_blur_h.slang"
|
||||
filter_linear6 = "true"
|
||||
wrap_mode6 = "mirrored_repeat"
|
||||
mipmap_input6 = "false"
|
||||
alias6 = "reflected_blurred_pass1"
|
||||
float_framebuffer6 = "false"
|
||||
srgb_framebuffer6 = "false"
|
||||
scale_type_x6 = "source"
|
||||
scale_x6 = "1.000000"
|
||||
scale_type_y6 = "source"
|
||||
scale_y6 = "1.000000"
|
||||
shader7 = "shaders/reflection_blur_v.slang"
|
||||
filter_linear7 = "true"
|
||||
wrap_mode7 = "mirrored_repeat"
|
||||
mipmap_input7 = "false"
|
||||
alias7 = "reflected_blurred_pass2"
|
||||
float_framebuffer7 = "false"
|
||||
srgb_framebuffer7 = "false"
|
||||
scale_type_x7 = "source"
|
||||
scale_x7 = "1.000000"
|
||||
scale_type_y7 = "source"
|
||||
scale_y7 = "1.000000"
|
||||
shader8 = "shaders/bloom_pass_1.slang"
|
||||
filter_linear8 = "true"
|
||||
wrap_mode8 = "mirrored_repeat"
|
||||
mipmap_input8 = "false"
|
||||
alias8 = "bloom_pass_1"
|
||||
float_framebuffer8 = "true"
|
||||
srgb_framebuffer8 = "false"
|
||||
scale_type_x8 = "source"
|
||||
scale_x8 = "1.000000"
|
||||
scale_type_y8 = "source"
|
||||
scale_y8 = "1.000000"
|
||||
shader9 = "shaders/bloom_pass_2.slang"
|
||||
filter_linear9 = "true"
|
||||
wrap_mode9 = "clamp_to_edge"
|
||||
mipmap_input9 = "false"
|
||||
alias9 = "bloom_pass_2"
|
||||
float_framebuffer9 = "false"
|
||||
srgb_framebuffer9 = "false"
|
||||
scale_type_x9 = "source"
|
||||
scale_x9 = "0.500000"
|
||||
scale_type_y9 = "source"
|
||||
scale_y9 = "0.500000"
|
||||
shader10 = "shaders/bloom_pass_3.slang"
|
||||
filter_linear10 = "true"
|
||||
wrap_mode10 = "clamp_to_edge"
|
||||
mipmap_input10 = "false"
|
||||
alias10 = "bloom_pass_3"
|
||||
float_framebuffer10 = "false"
|
||||
srgb_framebuffer10 = "false"
|
||||
scale_type_x10 = "source"
|
||||
scale_x10 = "1.000000"
|
||||
scale_type_y10 = "source"
|
||||
scale_y10 = "1.000000"
|
||||
shader11 = "shaders/bloom_pass_4.slang"
|
||||
filter_linear11 = "true"
|
||||
wrap_mode11 = "mirrored_repeat"
|
||||
mipmap_input11 = "false"
|
||||
alias11 = "bloom_pass_final"
|
||||
float_framebuffer11 = "false"
|
||||
srgb_framebuffer11 = "false"
|
||||
scale_type_x11 = "source"
|
||||
scale_x11 = "1.000000"
|
||||
scale_type_y11 = "source"
|
||||
scale_y11 = "1.000000"
|
||||
shader12 = "shaders/ambi_push_pass.slang"
|
||||
filter_linear12 = "true"
|
||||
wrap_mode12 = "mirrored_repeat"
|
||||
mipmap_input12 = "false"
|
||||
alias12 = "ambi_push_pass"
|
||||
float_framebuffer12 = "true"
|
||||
srgb_framebuffer12 = "false"
|
||||
scale_type_x12 = "source"
|
||||
scale_x12 = "1.000000"
|
||||
scale_type_y12 = "source"
|
||||
scale_y12 = "1.000000"
|
||||
shader13 = "shaders/ambi_pre_pass.slang"
|
||||
filter_linear13 = "true"
|
||||
wrap_mode13 = "clamp_to_border"
|
||||
mipmap_input13 = "true"
|
||||
alias13 = "ambi_pre_pass1"
|
||||
float_framebuffer13 = "false"
|
||||
srgb_framebuffer13 = "false"
|
||||
scale_type_x13 = "source"
|
||||
scale_x13 = "1.000000"
|
||||
scale_type_y13 = "source"
|
||||
scale_y13 = "1.000000"
|
||||
shader14 = "shaders/ambi_temporal_pass.slang"
|
||||
filter_linear14 = "true"
|
||||
wrap_mode14 = "clamp_to_border"
|
||||
mipmap_input14 = "false"
|
||||
alias14 = "ambi_temporal_pass"
|
||||
float_framebuffer14 = "true"
|
||||
srgb_framebuffer14 = "false"
|
||||
scale_type_x14 = "source"
|
||||
scale_x14 = "1.000000"
|
||||
scale_type_y14 = "source"
|
||||
scale_y14 = "1.000000"
|
||||
shader15 = "shaders/isrotated.slang"
|
||||
filter_linear15 = "true"
|
||||
wrap_mode15 = "mirrored_repeat"
|
||||
mipmap_input15 = "false"
|
||||
alias15 = "isrotated_pass"
|
||||
float_framebuffer15 = "false"
|
||||
srgb_framebuffer15 = "false"
|
||||
scale_type_x15 = "viewport"
|
||||
scale_x15 = "0.100000"
|
||||
scale_type_y15 = "viewport"
|
||||
scale_y15 = "0.100000"
|
||||
shader16 = "shaders/final_pass.slang"
|
||||
filter_linear16 = "true"
|
||||
wrap_mode16 = "mirrored_repeat"
|
||||
mipmap_input16 = "false"
|
||||
alias16 = "final_pass"
|
||||
float_framebuffer16 = "false"
|
||||
srgb_framebuffer16 = "false"
|
||||
scale_type_x16 = "viewport"
|
||||
scale_x16 = "1.000000"
|
||||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.200000"
|
||||
GAMMA_OUT = "0.500000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.900000"
|
||||
IN_GLOW_WH = "7.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.450000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.150000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINES_BLEEDING = "0.825000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.500000"
|
||||
GEOM_WARP_Y = "0.500000"
|
||||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_INNER_ZOOM = "-0.005000"
|
||||
BEZEL_FRAME_ZOOM = "0.139000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.400000"
|
||||
AMBI_POWER = "5.000000"
|
||||
DO_VIGNETTE = "1.000000"
|
||||
V_SIZE = "2.700000"
|
||||
V_POWER = "1.050000"
|
||||
DO_SPOT = "1.000000"
|
||||
S_POSITION = "194.000000"
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
monitor_body_linear = "true"
|
||||
monitor_body_wrap_mode = "clamp_to_edge"
|
||||
monitor_body_mipmap = "true"
|
||||
bg_under = "textures/background_under.png"
|
||||
bg_under_linear = "true"
|
||||
bg_under_wrap_mode = "mirrored_repeat"
|
||||
bg_under_mipmap = "true"
|
||||
bg_over = "textures/background_over.png"
|
||||
bg_over_linear = "true"
|
||||
bg_over_wrap_mode = "mirrored_repeat"
|
||||
bg_over_mipmap = "true"
|
239
bezel/koko-aio/monitor-bloom.slangp
Normal file
239
bezel/koko-aio/monitor-bloom.slangp
Normal file
|
@ -0,0 +1,239 @@
|
|||
shaders = "17"
|
||||
shader0 = "shaders/first_pass.slang"
|
||||
filter_linear0 = "false"
|
||||
wrap_mode0 = "mirrored_repeat"
|
||||
mipmap_input0 = "false"
|
||||
alias0 = "first_pass"
|
||||
float_framebuffer0 = "false"
|
||||
srgb_framebuffer0 = "false"
|
||||
scale_type_x0 = "source"
|
||||
scale_x0 = "2.000000"
|
||||
scale_type_y0 = "source"
|
||||
scale_y0 = "2.000000"
|
||||
shader1 = "shaders/fxaa.slang"
|
||||
filter_linear1 = "true"
|
||||
wrap_mode1 = "mirrored_repeat"
|
||||
mipmap_input1 = "true"
|
||||
alias1 = "FXAA_pass"
|
||||
float_framebuffer1 = "false"
|
||||
srgb_framebuffer1 = "false"
|
||||
scale_type_x1 = "source"
|
||||
scale_x1 = "1.000000"
|
||||
scale_type_y1 = "source"
|
||||
scale_y1 = "1.000000"
|
||||
shader2 = "shaders/shift_and_bleed.slang"
|
||||
filter_linear2 = "true"
|
||||
wrap_mode2 = "mirrored_repeat"
|
||||
mipmap_input2 = "false"
|
||||
alias2 = "shift_and_bleed_pass"
|
||||
float_framebuffer2 = "false"
|
||||
srgb_framebuffer2 = "false"
|
||||
scale_type_x2 = "source"
|
||||
scale_x2 = "1.000000"
|
||||
scale_type_y2 = "source"
|
||||
scale_y2 = "1.000000"
|
||||
shader3 = "shaders/in_glow.slang"
|
||||
filter_linear3 = "true"
|
||||
wrap_mode3 = "mirrored_repeat"
|
||||
mipmap_input3 = "false"
|
||||
alias3 = "in_glow_pass"
|
||||
float_framebuffer3 = "true"
|
||||
srgb_framebuffer3 = "false"
|
||||
scale_type_x3 = "source"
|
||||
scale_x3 = "1.000000"
|
||||
scale_type_y3 = "source"
|
||||
scale_y3 = "1.000000"
|
||||
shader4 = "shaders/halo.slang"
|
||||
filter_linear4 = "true"
|
||||
wrap_mode4 = "mirrored_repeat"
|
||||
mipmap_input4 = "false"
|
||||
alias4 = "halo_pass"
|
||||
float_framebuffer4 = "true"
|
||||
srgb_framebuffer4 = "false"
|
||||
scale_type_x4 = "source"
|
||||
scale_x4 = "1.000000"
|
||||
scale_type_y4 = "source"
|
||||
scale_y4 = "1.000000"
|
||||
shader5 = "shaders/avglum_pass.slang"
|
||||
filter_linear5 = "true"
|
||||
wrap_mode5 = "mirrored_repeat"
|
||||
mipmap_input5 = "false"
|
||||
alias5 = "avglum_pass"
|
||||
float_framebuffer5 = "false"
|
||||
srgb_framebuffer5 = "false"
|
||||
scale_type_x5 = "source"
|
||||
scale_x5 = "0.500000"
|
||||
scale_type_y5 = "source"
|
||||
scale_y5 = "0.500000"
|
||||
shader6 = "shaders/reflection_blur_h.slang"
|
||||
filter_linear6 = "true"
|
||||
wrap_mode6 = "mirrored_repeat"
|
||||
mipmap_input6 = "false"
|
||||
alias6 = "reflected_blurred_pass1"
|
||||
float_framebuffer6 = "false"
|
||||
srgb_framebuffer6 = "false"
|
||||
scale_type_x6 = "source"
|
||||
scale_x6 = "1.000000"
|
||||
scale_type_y6 = "source"
|
||||
scale_y6 = "1.000000"
|
||||
shader7 = "shaders/reflection_blur_v.slang"
|
||||
filter_linear7 = "true"
|
||||
wrap_mode7 = "mirrored_repeat"
|
||||
mipmap_input7 = "false"
|
||||
alias7 = "reflected_blurred_pass2"
|
||||
float_framebuffer7 = "false"
|
||||
srgb_framebuffer7 = "false"
|
||||
scale_type_x7 = "source"
|
||||
scale_x7 = "1.000000"
|
||||
scale_type_y7 = "source"
|
||||
scale_y7 = "1.000000"
|
||||
shader8 = "shaders/bloom_pass_1.slang"
|
||||
filter_linear8 = "true"
|
||||
wrap_mode8 = "mirrored_repeat"
|
||||
mipmap_input8 = "false"
|
||||
alias8 = "bloom_pass_1"
|
||||
float_framebuffer8 = "true"
|
||||
srgb_framebuffer8 = "false"
|
||||
scale_type_x8 = "source"
|
||||
scale_x8 = "1.000000"
|
||||
scale_type_y8 = "source"
|
||||
scale_y8 = "1.000000"
|
||||
shader9 = "shaders/bloom_pass_2.slang"
|
||||
filter_linear9 = "true"
|
||||
wrap_mode9 = "clamp_to_edge"
|
||||
mipmap_input9 = "false"
|
||||
alias9 = "bloom_pass_2"
|
||||
float_framebuffer9 = "false"
|
||||
srgb_framebuffer9 = "false"
|
||||
scale_type_x9 = "source"
|
||||
scale_x9 = "0.500000"
|
||||
scale_type_y9 = "source"
|
||||
scale_y9 = "0.500000"
|
||||
shader10 = "shaders/bloom_pass_3.slang"
|
||||
filter_linear10 = "true"
|
||||
wrap_mode10 = "clamp_to_edge"
|
||||
mipmap_input10 = "false"
|
||||
alias10 = "bloom_pass_3"
|
||||
float_framebuffer10 = "false"
|
||||
srgb_framebuffer10 = "false"
|
||||
scale_type_x10 = "source"
|
||||
scale_x10 = "1.000000"
|
||||
scale_type_y10 = "source"
|
||||
scale_y10 = "1.000000"
|
||||
shader11 = "shaders/bloom_pass_4.slang"
|
||||
filter_linear11 = "true"
|
||||
wrap_mode11 = "mirrored_repeat"
|
||||
mipmap_input11 = "false"
|
||||
alias11 = "bloom_pass_final"
|
||||
float_framebuffer11 = "false"
|
||||
srgb_framebuffer11 = "false"
|
||||
scale_type_x11 = "source"
|
||||
scale_x11 = "1.000000"
|
||||
scale_type_y11 = "source"
|
||||
scale_y11 = "1.000000"
|
||||
shader12 = "shaders/ambi_push_pass.slang"
|
||||
filter_linear12 = "true"
|
||||
wrap_mode12 = "mirrored_repeat"
|
||||
mipmap_input12 = "false"
|
||||
alias12 = "ambi_push_pass"
|
||||
float_framebuffer12 = "true"
|
||||
srgb_framebuffer12 = "false"
|
||||
scale_type_x12 = "source"
|
||||
scale_x12 = "1.000000"
|
||||
scale_type_y12 = "source"
|
||||
scale_y12 = "1.000000"
|
||||
shader13 = "shaders/ambi_pre_pass.slang"
|
||||
filter_linear13 = "true"
|
||||
wrap_mode13 = "clamp_to_border"
|
||||
mipmap_input13 = "true"
|
||||
alias13 = "ambi_pre_pass1"
|
||||
float_framebuffer13 = "false"
|
||||
srgb_framebuffer13 = "false"
|
||||
scale_type_x13 = "source"
|
||||
scale_x13 = "1.000000"
|
||||
scale_type_y13 = "source"
|
||||
scale_y13 = "1.000000"
|
||||
shader14 = "shaders/ambi_temporal_pass.slang"
|
||||
filter_linear14 = "true"
|
||||
wrap_mode14 = "clamp_to_border"
|
||||
mipmap_input14 = "false"
|
||||
alias14 = "ambi_temporal_pass"
|
||||
float_framebuffer14 = "true"
|
||||
srgb_framebuffer14 = "false"
|
||||
scale_type_x14 = "source"
|
||||
scale_x14 = "1.000000"
|
||||
scale_type_y14 = "source"
|
||||
scale_y14 = "1.000000"
|
||||
shader15 = "shaders/isrotated.slang"
|
||||
filter_linear15 = "true"
|
||||
wrap_mode15 = "mirrored_repeat"
|
||||
mipmap_input15 = "false"
|
||||
alias15 = "isrotated_pass"
|
||||
float_framebuffer15 = "false"
|
||||
srgb_framebuffer15 = "false"
|
||||
scale_type_x15 = "viewport"
|
||||
scale_x15 = "0.100000"
|
||||
scale_type_y15 = "viewport"
|
||||
scale_y15 = "0.100000"
|
||||
shader16 = "shaders/final_pass.slang"
|
||||
filter_linear16 = "true"
|
||||
wrap_mode16 = "mirrored_repeat"
|
||||
mipmap_input16 = "false"
|
||||
alias16 = "final_pass"
|
||||
float_framebuffer16 = "false"
|
||||
srgb_framebuffer16 = "false"
|
||||
scale_type_x16 = "viewport"
|
||||
scale_x16 = "1.000000"
|
||||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.200000"
|
||||
GAMMA_OUT = "0.500000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.900000"
|
||||
IN_GLOW_WH = "7.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.450000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.150000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINES_BLEEDING = "0.825000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.150000"
|
||||
GEOM_WARP_Y = "0.150000"
|
||||
GEOM_CORNER_SMOOTH = "200.000000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.400000"
|
||||
AMBI_POWER = "1.000000"
|
||||
V_SIZE = "2.700000"
|
||||
V_POWER = "1.050000"
|
||||
S_POSITION = "194.000000"
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
monitor_body_linear = "true"
|
||||
monitor_body_wrap_mode = "clamp_to_edge"
|
||||
monitor_body_mipmap = "true"
|
||||
bg_under = "textures/background_under.png"
|
||||
bg_under_linear = "true"
|
||||
bg_under_wrap_mode = "mirrored_repeat"
|
||||
bg_under_mipmap = "true"
|
||||
bg_over = "textures/background_over.png"
|
||||
bg_over_linear = "true"
|
||||
bg_over_wrap_mode = "mirrored_repeat"
|
||||
bg_over_mipmap = "true"
|
246
bezel/koko-aio/monitor-slotmask-bloom-bezel-backimage.slangp
Normal file
246
bezel/koko-aio/monitor-slotmask-bloom-bezel-backimage.slangp
Normal file
|
@ -0,0 +1,246 @@
|
|||
shaders = "17"
|
||||
shader0 = "shaders/first_pass.slang"
|
||||
filter_linear0 = "false"
|
||||
wrap_mode0 = "mirrored_repeat"
|
||||
mipmap_input0 = "false"
|
||||
alias0 = "first_pass"
|
||||
float_framebuffer0 = "false"
|
||||
srgb_framebuffer0 = "false"
|
||||
scale_type_x0 = "source"
|
||||
scale_x0 = "2.000000"
|
||||
scale_type_y0 = "source"
|
||||
scale_y0 = "2.000000"
|
||||
shader1 = "shaders/fxaa.slang"
|
||||
filter_linear1 = "true"
|
||||
wrap_mode1 = "mirrored_repeat"
|
||||
mipmap_input1 = "true"
|
||||
alias1 = "FXAA_pass"
|
||||
float_framebuffer1 = "false"
|
||||
srgb_framebuffer1 = "false"
|
||||
scale_type_x1 = "source"
|
||||
scale_x1 = "1.000000"
|
||||
scale_type_y1 = "source"
|
||||
scale_y1 = "1.000000"
|
||||
shader2 = "shaders/shift_and_bleed.slang"
|
||||
filter_linear2 = "true"
|
||||
wrap_mode2 = "mirrored_repeat"
|
||||
mipmap_input2 = "false"
|
||||
alias2 = "shift_and_bleed_pass"
|
||||
float_framebuffer2 = "false"
|
||||
srgb_framebuffer2 = "false"
|
||||
scale_type_x2 = "source"
|
||||
scale_x2 = "1.000000"
|
||||
scale_type_y2 = "source"
|
||||
scale_y2 = "1.000000"
|
||||
shader3 = "shaders/in_glow.slang"
|
||||
filter_linear3 = "true"
|
||||
wrap_mode3 = "mirrored_repeat"
|
||||
mipmap_input3 = "false"
|
||||
alias3 = "in_glow_pass"
|
||||
float_framebuffer3 = "true"
|
||||
srgb_framebuffer3 = "false"
|
||||
scale_type_x3 = "source"
|
||||
scale_x3 = "1.000000"
|
||||
scale_type_y3 = "source"
|
||||
scale_y3 = "1.000000"
|
||||
shader4 = "shaders/halo.slang"
|
||||
filter_linear4 = "true"
|
||||
wrap_mode4 = "mirrored_repeat"
|
||||
mipmap_input4 = "false"
|
||||
alias4 = "halo_pass"
|
||||
float_framebuffer4 = "true"
|
||||
srgb_framebuffer4 = "false"
|
||||
scale_type_x4 = "source"
|
||||
scale_x4 = "1.000000"
|
||||
scale_type_y4 = "source"
|
||||
scale_y4 = "1.000000"
|
||||
shader5 = "shaders/avglum_pass.slang"
|
||||
filter_linear5 = "true"
|
||||
wrap_mode5 = "mirrored_repeat"
|
||||
mipmap_input5 = "false"
|
||||
alias5 = "avglum_pass"
|
||||
float_framebuffer5 = "false"
|
||||
srgb_framebuffer5 = "false"
|
||||
scale_type_x5 = "source"
|
||||
scale_x5 = "0.500000"
|
||||
scale_type_y5 = "source"
|
||||
scale_y5 = "0.500000"
|
||||
shader6 = "shaders/reflection_blur_h.slang"
|
||||
filter_linear6 = "true"
|
||||
wrap_mode6 = "mirrored_repeat"
|
||||
mipmap_input6 = "false"
|
||||
alias6 = "reflected_blurred_pass1"
|
||||
float_framebuffer6 = "false"
|
||||
srgb_framebuffer6 = "false"
|
||||
scale_type_x6 = "source"
|
||||
scale_x6 = "1.000000"
|
||||
scale_type_y6 = "source"
|
||||
scale_y6 = "1.000000"
|
||||
shader7 = "shaders/reflection_blur_v.slang"
|
||||
filter_linear7 = "true"
|
||||
wrap_mode7 = "mirrored_repeat"
|
||||
mipmap_input7 = "false"
|
||||
alias7 = "reflected_blurred_pass2"
|
||||
float_framebuffer7 = "false"
|
||||
srgb_framebuffer7 = "false"
|
||||
scale_type_x7 = "source"
|
||||
scale_x7 = "1.000000"
|
||||
scale_type_y7 = "source"
|
||||
scale_y7 = "1.000000"
|
||||
shader8 = "shaders/bloom_pass_1.slang"
|
||||
filter_linear8 = "true"
|
||||
wrap_mode8 = "mirrored_repeat"
|
||||
mipmap_input8 = "false"
|
||||
alias8 = "bloom_pass_1"
|
||||
float_framebuffer8 = "true"
|
||||
srgb_framebuffer8 = "false"
|
||||
scale_type_x8 = "source"
|
||||
scale_x8 = "1.000000"
|
||||
scale_type_y8 = "source"
|
||||
scale_y8 = "1.000000"
|
||||
shader9 = "shaders/bloom_pass_2.slang"
|
||||
filter_linear9 = "true"
|
||||
wrap_mode9 = "clamp_to_edge"
|
||||
mipmap_input9 = "false"
|
||||
alias9 = "bloom_pass_2"
|
||||
float_framebuffer9 = "false"
|
||||
srgb_framebuffer9 = "false"
|
||||
scale_type_x9 = "source"
|
||||
scale_x9 = "0.500000"
|
||||
scale_type_y9 = "source"
|
||||
scale_y9 = "0.500000"
|
||||
shader10 = "shaders/bloom_pass_3.slang"
|
||||
filter_linear10 = "true"
|
||||
wrap_mode10 = "clamp_to_edge"
|
||||
mipmap_input10 = "false"
|
||||
alias10 = "bloom_pass_3"
|
||||
float_framebuffer10 = "false"
|
||||
srgb_framebuffer10 = "false"
|
||||
scale_type_x10 = "source"
|
||||
scale_x10 = "1.000000"
|
||||
scale_type_y10 = "source"
|
||||
scale_y10 = "1.000000"
|
||||
shader11 = "shaders/bloom_pass_4.slang"
|
||||
filter_linear11 = "true"
|
||||
wrap_mode11 = "mirrored_repeat"
|
||||
mipmap_input11 = "false"
|
||||
alias11 = "bloom_pass_final"
|
||||
float_framebuffer11 = "false"
|
||||
srgb_framebuffer11 = "false"
|
||||
scale_type_x11 = "source"
|
||||
scale_x11 = "1.000000"
|
||||
scale_type_y11 = "source"
|
||||
scale_y11 = "1.000000"
|
||||
shader12 = "shaders/ambi_push_pass.slang"
|
||||
filter_linear12 = "true"
|
||||
wrap_mode12 = "mirrored_repeat"
|
||||
mipmap_input12 = "false"
|
||||
alias12 = "ambi_push_pass"
|
||||
float_framebuffer12 = "true"
|
||||
srgb_framebuffer12 = "false"
|
||||
scale_type_x12 = "source"
|
||||
scale_x12 = "1.000000"
|
||||
scale_type_y12 = "source"
|
||||
scale_y12 = "1.000000"
|
||||
shader13 = "shaders/ambi_pre_pass.slang"
|
||||
filter_linear13 = "true"
|
||||
wrap_mode13 = "clamp_to_border"
|
||||
mipmap_input13 = "true"
|
||||
alias13 = "ambi_pre_pass1"
|
||||
float_framebuffer13 = "false"
|
||||
srgb_framebuffer13 = "false"
|
||||
scale_type_x13 = "source"
|
||||
scale_x13 = "1.000000"
|
||||
scale_type_y13 = "source"
|
||||
scale_y13 = "1.000000"
|
||||
shader14 = "shaders/ambi_temporal_pass.slang"
|
||||
filter_linear14 = "true"
|
||||
wrap_mode14 = "clamp_to_border"
|
||||
mipmap_input14 = "false"
|
||||
alias14 = "ambi_temporal_pass"
|
||||
float_framebuffer14 = "true"
|
||||
srgb_framebuffer14 = "false"
|
||||
scale_type_x14 = "source"
|
||||
scale_x14 = "1.000000"
|
||||
scale_type_y14 = "source"
|
||||
scale_y14 = "1.000000"
|
||||
shader15 = "shaders/isrotated.slang"
|
||||
filter_linear15 = "true"
|
||||
wrap_mode15 = "mirrored_repeat"
|
||||
mipmap_input15 = "false"
|
||||
alias15 = "isrotated_pass"
|
||||
float_framebuffer15 = "false"
|
||||
srgb_framebuffer15 = "false"
|
||||
scale_type_x15 = "viewport"
|
||||
scale_x15 = "0.100000"
|
||||
scale_type_y15 = "viewport"
|
||||
scale_y15 = "0.100000"
|
||||
shader16 = "shaders/final_pass.slang"
|
||||
filter_linear16 = "true"
|
||||
wrap_mode16 = "mirrored_repeat"
|
||||
mipmap_input16 = "false"
|
||||
alias16 = "final_pass"
|
||||
float_framebuffer16 = "false"
|
||||
srgb_framebuffer16 = "false"
|
||||
scale_type_x16 = "viewport"
|
||||
scale_x16 = "1.000000"
|
||||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.200000"
|
||||
GAMMA_OUT = "0.500000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.900000"
|
||||
IN_GLOW_WH = "7.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.700000"
|
||||
DARKLINES_PERIOD = "2.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.450000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.150000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINES_BLEEDING = "0.825000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.800000"
|
||||
GEOM_WARP_Y = "0.850000"
|
||||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
DO_BG_IMAGE = "1.000000"
|
||||
AMBI_STEPS = "5.000000"
|
||||
AMBI_FALLOFF = "0.600000"
|
||||
AMBI_POWER = "2.000000"
|
||||
DO_VIGNETTE = "1.000000"
|
||||
V_SIZE = "2.700000"
|
||||
V_POWER = "1.050000"
|
||||
DO_SPOT = "1.000000"
|
||||
S_POSITION = "194.000000"
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
monitor_body_linear = "true"
|
||||
monitor_body_wrap_mode = "clamp_to_edge"
|
||||
monitor_body_mipmap = "true"
|
||||
bg_under = "textures/background_under.png"
|
||||
bg_under_linear = "true"
|
||||
bg_under_wrap_mode = "mirrored_repeat"
|
||||
bg_under_mipmap = "true"
|
||||
bg_over = "textures/background_over.png"
|
||||
bg_over_linear = "true"
|
||||
bg_over_wrap_mode = "mirrored_repeat"
|
||||
bg_over_mipmap = "true"
|
244
bezel/koko-aio/monitor-slotmask-bloom-bezel.slangp
Normal file
244
bezel/koko-aio/monitor-slotmask-bloom-bezel.slangp
Normal file
|
@ -0,0 +1,244 @@
|
|||
shaders = "17"
|
||||
shader0 = "shaders/first_pass.slang"
|
||||
filter_linear0 = "false"
|
||||
wrap_mode0 = "mirrored_repeat"
|
||||
mipmap_input0 = "false"
|
||||
alias0 = "first_pass"
|
||||
float_framebuffer0 = "false"
|
||||
srgb_framebuffer0 = "false"
|
||||
scale_type_x0 = "source"
|
||||
scale_x0 = "2.000000"
|
||||
scale_type_y0 = "source"
|
||||
scale_y0 = "2.000000"
|
||||
shader1 = "shaders/fxaa.slang"
|
||||
filter_linear1 = "true"
|
||||
wrap_mode1 = "mirrored_repeat"
|
||||
mipmap_input1 = "true"
|
||||
alias1 = "FXAA_pass"
|
||||
float_framebuffer1 = "false"
|
||||
srgb_framebuffer1 = "false"
|
||||
scale_type_x1 = "source"
|
||||
scale_x1 = "1.000000"
|
||||
scale_type_y1 = "source"
|
||||
scale_y1 = "1.000000"
|
||||
shader2 = "shaders/shift_and_bleed.slang"
|
||||
filter_linear2 = "true"
|
||||
wrap_mode2 = "mirrored_repeat"
|
||||
mipmap_input2 = "false"
|
||||
alias2 = "shift_and_bleed_pass"
|
||||
float_framebuffer2 = "false"
|
||||
srgb_framebuffer2 = "false"
|
||||
scale_type_x2 = "source"
|
||||
scale_x2 = "1.000000"
|
||||
scale_type_y2 = "source"
|
||||
scale_y2 = "1.000000"
|
||||
shader3 = "shaders/in_glow.slang"
|
||||
filter_linear3 = "true"
|
||||
wrap_mode3 = "mirrored_repeat"
|
||||
mipmap_input3 = "false"
|
||||
alias3 = "in_glow_pass"
|
||||
float_framebuffer3 = "true"
|
||||
srgb_framebuffer3 = "false"
|
||||
scale_type_x3 = "source"
|
||||
scale_x3 = "1.000000"
|
||||
scale_type_y3 = "source"
|
||||
scale_y3 = "1.000000"
|
||||
shader4 = "shaders/halo.slang"
|
||||
filter_linear4 = "true"
|
||||
wrap_mode4 = "mirrored_repeat"
|
||||
mipmap_input4 = "false"
|
||||
alias4 = "halo_pass"
|
||||
float_framebuffer4 = "true"
|
||||
srgb_framebuffer4 = "false"
|
||||
scale_type_x4 = "source"
|
||||
scale_x4 = "1.000000"
|
||||
scale_type_y4 = "source"
|
||||
scale_y4 = "1.000000"
|
||||
shader5 = "shaders/avglum_pass.slang"
|
||||
filter_linear5 = "true"
|
||||
wrap_mode5 = "mirrored_repeat"
|
||||
mipmap_input5 = "false"
|
||||
alias5 = "avglum_pass"
|
||||
float_framebuffer5 = "false"
|
||||
srgb_framebuffer5 = "false"
|
||||
scale_type_x5 = "source"
|
||||
scale_x5 = "0.500000"
|
||||
scale_type_y5 = "source"
|
||||
scale_y5 = "0.500000"
|
||||
shader6 = "shaders/reflection_blur_h.slang"
|
||||
filter_linear6 = "true"
|
||||
wrap_mode6 = "mirrored_repeat"
|
||||
mipmap_input6 = "false"
|
||||
alias6 = "reflected_blurred_pass1"
|
||||
float_framebuffer6 = "false"
|
||||
srgb_framebuffer6 = "false"
|
||||
scale_type_x6 = "source"
|
||||
scale_x6 = "1.000000"
|
||||
scale_type_y6 = "source"
|
||||
scale_y6 = "1.000000"
|
||||
shader7 = "shaders/reflection_blur_v.slang"
|
||||
filter_linear7 = "true"
|
||||
wrap_mode7 = "mirrored_repeat"
|
||||
mipmap_input7 = "false"
|
||||
alias7 = "reflected_blurred_pass2"
|
||||
float_framebuffer7 = "false"
|
||||
srgb_framebuffer7 = "false"
|
||||
scale_type_x7 = "source"
|
||||
scale_x7 = "1.000000"
|
||||
scale_type_y7 = "source"
|
||||
scale_y7 = "1.000000"
|
||||
shader8 = "shaders/bloom_pass_1.slang"
|
||||
filter_linear8 = "true"
|
||||
wrap_mode8 = "mirrored_repeat"
|
||||
mipmap_input8 = "false"
|
||||
alias8 = "bloom_pass_1"
|
||||
float_framebuffer8 = "true"
|
||||
srgb_framebuffer8 = "false"
|
||||
scale_type_x8 = "source"
|
||||
scale_x8 = "1.000000"
|
||||
scale_type_y8 = "source"
|
||||
scale_y8 = "1.000000"
|
||||
shader9 = "shaders/bloom_pass_2.slang"
|
||||
filter_linear9 = "true"
|
||||
wrap_mode9 = "clamp_to_edge"
|
||||
mipmap_input9 = "false"
|
||||
alias9 = "bloom_pass_2"
|
||||
float_framebuffer9 = "false"
|
||||
srgb_framebuffer9 = "false"
|
||||
scale_type_x9 = "source"
|
||||
scale_x9 = "0.500000"
|
||||
scale_type_y9 = "source"
|
||||
scale_y9 = "0.500000"
|
||||
shader10 = "shaders/bloom_pass_3.slang"
|
||||
filter_linear10 = "true"
|
||||
wrap_mode10 = "clamp_to_edge"
|
||||
mipmap_input10 = "false"
|
||||
alias10 = "bloom_pass_3"
|
||||
float_framebuffer10 = "false"
|
||||
srgb_framebuffer10 = "false"
|
||||
scale_type_x10 = "source"
|
||||
scale_x10 = "1.000000"
|
||||
scale_type_y10 = "source"
|
||||
scale_y10 = "1.000000"
|
||||
shader11 = "shaders/bloom_pass_4.slang"
|
||||
filter_linear11 = "true"
|
||||
wrap_mode11 = "mirrored_repeat"
|
||||
mipmap_input11 = "false"
|
||||
alias11 = "bloom_pass_final"
|
||||
float_framebuffer11 = "false"
|
||||
srgb_framebuffer11 = "false"
|
||||
scale_type_x11 = "source"
|
||||
scale_x11 = "1.000000"
|
||||
scale_type_y11 = "source"
|
||||
scale_y11 = "1.000000"
|
||||
shader12 = "shaders/ambi_push_pass.slang"
|
||||
filter_linear12 = "true"
|
||||
wrap_mode12 = "mirrored_repeat"
|
||||
mipmap_input12 = "false"
|
||||
alias12 = "ambi_push_pass"
|
||||
float_framebuffer12 = "true"
|
||||
srgb_framebuffer12 = "false"
|
||||
scale_type_x12 = "source"
|
||||
scale_x12 = "1.000000"
|
||||
scale_type_y12 = "source"
|
||||
scale_y12 = "1.000000"
|
||||
shader13 = "shaders/ambi_pre_pass.slang"
|
||||
filter_linear13 = "true"
|
||||
wrap_mode13 = "clamp_to_border"
|
||||
mipmap_input13 = "true"
|
||||
alias13 = "ambi_pre_pass1"
|
||||
float_framebuffer13 = "false"
|
||||
srgb_framebuffer13 = "false"
|
||||
scale_type_x13 = "source"
|
||||
scale_x13 = "1.000000"
|
||||
scale_type_y13 = "source"
|
||||
scale_y13 = "1.000000"
|
||||
shader14 = "shaders/ambi_temporal_pass.slang"
|
||||
filter_linear14 = "true"
|
||||
wrap_mode14 = "clamp_to_border"
|
||||
mipmap_input14 = "false"
|
||||
alias14 = "ambi_temporal_pass"
|
||||
float_framebuffer14 = "true"
|
||||
srgb_framebuffer14 = "false"
|
||||
scale_type_x14 = "source"
|
||||
scale_x14 = "1.000000"
|
||||
scale_type_y14 = "source"
|
||||
scale_y14 = "1.000000"
|
||||
shader15 = "shaders/isrotated.slang"
|
||||
filter_linear15 = "true"
|
||||
wrap_mode15 = "mirrored_repeat"
|
||||
mipmap_input15 = "false"
|
||||
alias15 = "isrotated_pass"
|
||||
float_framebuffer15 = "false"
|
||||
srgb_framebuffer15 = "false"
|
||||
scale_type_x15 = "viewport"
|
||||
scale_x15 = "0.100000"
|
||||
scale_type_y15 = "viewport"
|
||||
scale_y15 = "0.100000"
|
||||
shader16 = "shaders/final_pass.slang"
|
||||
filter_linear16 = "true"
|
||||
wrap_mode16 = "mirrored_repeat"
|
||||
mipmap_input16 = "false"
|
||||
alias16 = "final_pass"
|
||||
float_framebuffer16 = "false"
|
||||
srgb_framebuffer16 = "false"
|
||||
scale_type_x16 = "viewport"
|
||||
scale_x16 = "1.000000"
|
||||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.200000"
|
||||
GAMMA_OUT = "0.500000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.900000"
|
||||
IN_GLOW_WH = "7.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.700000"
|
||||
DARKLINES_PERIOD = "2.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.450000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.150000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINES_BLEEDING = "0.825000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.800000"
|
||||
GEOM_WARP_Y = "0.850000"
|
||||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.600000"
|
||||
AMBI_POWER = "2.000000"
|
||||
DO_VIGNETTE = "1.000000"
|
||||
V_SIZE = "2.700000"
|
||||
V_POWER = "1.050000"
|
||||
DO_SPOT = "1.000000"
|
||||
S_POSITION = "194.000000"
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
monitor_body_linear = "true"
|
||||
monitor_body_wrap_mode = "clamp_to_edge"
|
||||
monitor_body_mipmap = "true"
|
||||
bg_under = "textures/background_under.png"
|
||||
bg_under_linear = "true"
|
||||
bg_under_wrap_mode = "mirrored_repeat"
|
||||
bg_under_mipmap = "true"
|
||||
bg_over = "textures/background_over.png"
|
||||
bg_over_linear = "true"
|
||||
bg_over_wrap_mode = "mirrored_repeat"
|
||||
bg_over_mipmap = "true"
|
245
bezel/koko-aio/monitor-slotmask-bloom-bezelwider.slangp
Normal file
245
bezel/koko-aio/monitor-slotmask-bloom-bezelwider.slangp
Normal file
|
@ -0,0 +1,245 @@
|
|||
shaders = "17"
|
||||
shader0 = "shaders/first_pass.slang"
|
||||
filter_linear0 = "false"
|
||||
wrap_mode0 = "mirrored_repeat"
|
||||
mipmap_input0 = "false"
|
||||
alias0 = "first_pass"
|
||||
float_framebuffer0 = "false"
|
||||
srgb_framebuffer0 = "false"
|
||||
scale_type_x0 = "source"
|
||||
scale_x0 = "2.000000"
|
||||
scale_type_y0 = "source"
|
||||
scale_y0 = "2.000000"
|
||||
shader1 = "shaders/fxaa.slang"
|
||||
filter_linear1 = "true"
|
||||
wrap_mode1 = "mirrored_repeat"
|
||||
mipmap_input1 = "true"
|
||||
alias1 = "FXAA_pass"
|
||||
float_framebuffer1 = "false"
|
||||
srgb_framebuffer1 = "false"
|
||||
scale_type_x1 = "source"
|
||||
scale_x1 = "1.000000"
|
||||
scale_type_y1 = "source"
|
||||
scale_y1 = "1.000000"
|
||||
shader2 = "shaders/shift_and_bleed.slang"
|
||||
filter_linear2 = "true"
|
||||
wrap_mode2 = "mirrored_repeat"
|
||||
mipmap_input2 = "false"
|
||||
alias2 = "shift_and_bleed_pass"
|
||||
float_framebuffer2 = "false"
|
||||
srgb_framebuffer2 = "false"
|
||||
scale_type_x2 = "source"
|
||||
scale_x2 = "1.000000"
|
||||
scale_type_y2 = "source"
|
||||
scale_y2 = "1.000000"
|
||||
shader3 = "shaders/in_glow.slang"
|
||||
filter_linear3 = "true"
|
||||
wrap_mode3 = "mirrored_repeat"
|
||||
mipmap_input3 = "false"
|
||||
alias3 = "in_glow_pass"
|
||||
float_framebuffer3 = "true"
|
||||
srgb_framebuffer3 = "false"
|
||||
scale_type_x3 = "source"
|
||||
scale_x3 = "1.000000"
|
||||
scale_type_y3 = "source"
|
||||
scale_y3 = "1.000000"
|
||||
shader4 = "shaders/halo.slang"
|
||||
filter_linear4 = "true"
|
||||
wrap_mode4 = "mirrored_repeat"
|
||||
mipmap_input4 = "false"
|
||||
alias4 = "halo_pass"
|
||||
float_framebuffer4 = "true"
|
||||
srgb_framebuffer4 = "false"
|
||||
scale_type_x4 = "source"
|
||||
scale_x4 = "1.000000"
|
||||
scale_type_y4 = "source"
|
||||
scale_y4 = "1.000000"
|
||||
shader5 = "shaders/avglum_pass.slang"
|
||||
filter_linear5 = "true"
|
||||
wrap_mode5 = "mirrored_repeat"
|
||||
mipmap_input5 = "false"
|
||||
alias5 = "avglum_pass"
|
||||
float_framebuffer5 = "false"
|
||||
srgb_framebuffer5 = "false"
|
||||
scale_type_x5 = "source"
|
||||
scale_x5 = "0.500000"
|
||||
scale_type_y5 = "source"
|
||||
scale_y5 = "0.500000"
|
||||
shader6 = "shaders/reflection_blur_h.slang"
|
||||
filter_linear6 = "true"
|
||||
wrap_mode6 = "mirrored_repeat"
|
||||
mipmap_input6 = "false"
|
||||
alias6 = "reflected_blurred_pass1"
|
||||
float_framebuffer6 = "false"
|
||||
srgb_framebuffer6 = "false"
|
||||
scale_type_x6 = "source"
|
||||
scale_x6 = "1.000000"
|
||||
scale_type_y6 = "source"
|
||||
scale_y6 = "1.000000"
|
||||
shader7 = "shaders/reflection_blur_v.slang"
|
||||
filter_linear7 = "true"
|
||||
wrap_mode7 = "mirrored_repeat"
|
||||
mipmap_input7 = "false"
|
||||
alias7 = "reflected_blurred_pass2"
|
||||
float_framebuffer7 = "false"
|
||||
srgb_framebuffer7 = "false"
|
||||
scale_type_x7 = "source"
|
||||
scale_x7 = "1.000000"
|
||||
scale_type_y7 = "source"
|
||||
scale_y7 = "1.000000"
|
||||
shader8 = "shaders/bloom_pass_1.slang"
|
||||
filter_linear8 = "true"
|
||||
wrap_mode8 = "mirrored_repeat"
|
||||
mipmap_input8 = "false"
|
||||
alias8 = "bloom_pass_1"
|
||||
float_framebuffer8 = "true"
|
||||
srgb_framebuffer8 = "false"
|
||||
scale_type_x8 = "source"
|
||||
scale_x8 = "1.000000"
|
||||
scale_type_y8 = "source"
|
||||
scale_y8 = "1.000000"
|
||||
shader9 = "shaders/bloom_pass_2.slang"
|
||||
filter_linear9 = "true"
|
||||
wrap_mode9 = "clamp_to_edge"
|
||||
mipmap_input9 = "false"
|
||||
alias9 = "bloom_pass_2"
|
||||
float_framebuffer9 = "false"
|
||||
srgb_framebuffer9 = "false"
|
||||
scale_type_x9 = "source"
|
||||
scale_x9 = "0.500000"
|
||||
scale_type_y9 = "source"
|
||||
scale_y9 = "0.500000"
|
||||
shader10 = "shaders/bloom_pass_3.slang"
|
||||
filter_linear10 = "true"
|
||||
wrap_mode10 = "clamp_to_edge"
|
||||
mipmap_input10 = "false"
|
||||
alias10 = "bloom_pass_3"
|
||||
float_framebuffer10 = "false"
|
||||
srgb_framebuffer10 = "false"
|
||||
scale_type_x10 = "source"
|
||||
scale_x10 = "1.000000"
|
||||
scale_type_y10 = "source"
|
||||
scale_y10 = "1.000000"
|
||||
shader11 = "shaders/bloom_pass_4.slang"
|
||||
filter_linear11 = "true"
|
||||
wrap_mode11 = "mirrored_repeat"
|
||||
mipmap_input11 = "false"
|
||||
alias11 = "bloom_pass_final"
|
||||
float_framebuffer11 = "false"
|
||||
srgb_framebuffer11 = "false"
|
||||
scale_type_x11 = "source"
|
||||
scale_x11 = "1.000000"
|
||||
scale_type_y11 = "source"
|
||||
scale_y11 = "1.000000"
|
||||
shader12 = "shaders/ambi_push_pass.slang"
|
||||
filter_linear12 = "true"
|
||||
wrap_mode12 = "mirrored_repeat"
|
||||
mipmap_input12 = "false"
|
||||
alias12 = "ambi_push_pass"
|
||||
float_framebuffer12 = "true"
|
||||
srgb_framebuffer12 = "false"
|
||||
scale_type_x12 = "source"
|
||||
scale_x12 = "1.000000"
|
||||
scale_type_y12 = "source"
|
||||
scale_y12 = "1.000000"
|
||||
shader13 = "shaders/ambi_pre_pass.slang"
|
||||
filter_linear13 = "true"
|
||||
wrap_mode13 = "clamp_to_border"
|
||||
mipmap_input13 = "true"
|
||||
alias13 = "ambi_pre_pass1"
|
||||
float_framebuffer13 = "false"
|
||||
srgb_framebuffer13 = "false"
|
||||
scale_type_x13 = "source"
|
||||
scale_x13 = "1.000000"
|
||||
scale_type_y13 = "source"
|
||||
scale_y13 = "1.000000"
|
||||
shader14 = "shaders/ambi_temporal_pass.slang"
|
||||
filter_linear14 = "true"
|
||||
wrap_mode14 = "clamp_to_border"
|
||||
mipmap_input14 = "false"
|
||||
alias14 = "ambi_temporal_pass"
|
||||
float_framebuffer14 = "true"
|
||||
srgb_framebuffer14 = "false"
|
||||
scale_type_x14 = "source"
|
||||
scale_x14 = "1.000000"
|
||||
scale_type_y14 = "source"
|
||||
scale_y14 = "1.000000"
|
||||
shader15 = "shaders/isrotated.slang"
|
||||
filter_linear15 = "true"
|
||||
wrap_mode15 = "mirrored_repeat"
|
||||
mipmap_input15 = "false"
|
||||
alias15 = "isrotated_pass"
|
||||
float_framebuffer15 = "false"
|
||||
srgb_framebuffer15 = "false"
|
||||
scale_type_x15 = "viewport"
|
||||
scale_x15 = "0.100000"
|
||||
scale_type_y15 = "viewport"
|
||||
scale_y15 = "0.100000"
|
||||
shader16 = "shaders/final_pass.slang"
|
||||
filter_linear16 = "true"
|
||||
wrap_mode16 = "mirrored_repeat"
|
||||
mipmap_input16 = "false"
|
||||
alias16 = "final_pass"
|
||||
float_framebuffer16 = "false"
|
||||
srgb_framebuffer16 = "false"
|
||||
scale_type_x16 = "viewport"
|
||||
scale_x16 = "1.000000"
|
||||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.200000"
|
||||
GAMMA_OUT = "0.500000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.900000"
|
||||
IN_GLOW_WH = "7.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.700000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.450000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.150000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINES_BLEEDING = "0.825000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.500000"
|
||||
GEOM_WARP_Y = "0.500000"
|
||||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_INNER_ZOOM = "-0.005000"
|
||||
BEZEL_FRAME_ZOOM = "0.139000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.400000"
|
||||
AMBI_POWER = "5.000000"
|
||||
DO_VIGNETTE = "1.000000"
|
||||
V_SIZE = "2.700000"
|
||||
V_POWER = "1.050000"
|
||||
DO_SPOT = "1.000000"
|
||||
S_POSITION = "194.000000"
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
monitor_body_linear = "true"
|
||||
monitor_body_wrap_mode = "clamp_to_edge"
|
||||
monitor_body_mipmap = "true"
|
||||
bg_under = "textures/background_under.png"
|
||||
bg_under_linear = "true"
|
||||
bg_under_wrap_mode = "mirrored_repeat"
|
||||
bg_under_mipmap = "true"
|
||||
bg_over = "textures/background_over.png"
|
||||
bg_over_linear = "true"
|
||||
bg_over_wrap_mode = "mirrored_repeat"
|
||||
bg_over_mipmap = "true"
|
239
bezel/koko-aio/monitor-slotmask-bloom.slangp
Normal file
239
bezel/koko-aio/monitor-slotmask-bloom.slangp
Normal file
|
@ -0,0 +1,239 @@
|
|||
shaders = "17"
|
||||
shader0 = "shaders/first_pass.slang"
|
||||
filter_linear0 = "false"
|
||||
wrap_mode0 = "mirrored_repeat"
|
||||
mipmap_input0 = "false"
|
||||
alias0 = "first_pass"
|
||||
float_framebuffer0 = "false"
|
||||
srgb_framebuffer0 = "false"
|
||||
scale_type_x0 = "source"
|
||||
scale_x0 = "2.000000"
|
||||
scale_type_y0 = "source"
|
||||
scale_y0 = "2.000000"
|
||||
shader1 = "shaders/fxaa.slang"
|
||||
filter_linear1 = "true"
|
||||
wrap_mode1 = "mirrored_repeat"
|
||||
mipmap_input1 = "true"
|
||||
alias1 = "FXAA_pass"
|
||||
float_framebuffer1 = "false"
|
||||
srgb_framebuffer1 = "false"
|
||||
scale_type_x1 = "source"
|
||||
scale_x1 = "1.000000"
|
||||
scale_type_y1 = "source"
|
||||
scale_y1 = "1.000000"
|
||||
shader2 = "shaders/shift_and_bleed.slang"
|
||||
filter_linear2 = "true"
|
||||
wrap_mode2 = "mirrored_repeat"
|
||||
mipmap_input2 = "false"
|
||||
alias2 = "shift_and_bleed_pass"
|
||||
float_framebuffer2 = "false"
|
||||
srgb_framebuffer2 = "false"
|
||||
scale_type_x2 = "source"
|
||||
scale_x2 = "1.000000"
|
||||
scale_type_y2 = "source"
|
||||
scale_y2 = "1.000000"
|
||||
shader3 = "shaders/in_glow.slang"
|
||||
filter_linear3 = "true"
|
||||
wrap_mode3 = "mirrored_repeat"
|
||||
mipmap_input3 = "false"
|
||||
alias3 = "in_glow_pass"
|
||||
float_framebuffer3 = "true"
|
||||
srgb_framebuffer3 = "false"
|
||||
scale_type_x3 = "source"
|
||||
scale_x3 = "1.000000"
|
||||
scale_type_y3 = "source"
|
||||
scale_y3 = "1.000000"
|
||||
shader4 = "shaders/halo.slang"
|
||||
filter_linear4 = "true"
|
||||
wrap_mode4 = "mirrored_repeat"
|
||||
mipmap_input4 = "false"
|
||||
alias4 = "halo_pass"
|
||||
float_framebuffer4 = "true"
|
||||
srgb_framebuffer4 = "false"
|
||||
scale_type_x4 = "source"
|
||||
scale_x4 = "1.000000"
|
||||
scale_type_y4 = "source"
|
||||
scale_y4 = "1.000000"
|
||||
shader5 = "shaders/avglum_pass.slang"
|
||||
filter_linear5 = "true"
|
||||
wrap_mode5 = "mirrored_repeat"
|
||||
mipmap_input5 = "false"
|
||||
alias5 = "avglum_pass"
|
||||
float_framebuffer5 = "false"
|
||||
srgb_framebuffer5 = "false"
|
||||
scale_type_x5 = "source"
|
||||
scale_x5 = "0.500000"
|
||||
scale_type_y5 = "source"
|
||||
scale_y5 = "0.500000"
|
||||
shader6 = "shaders/reflection_blur_h.slang"
|
||||
filter_linear6 = "true"
|
||||
wrap_mode6 = "mirrored_repeat"
|
||||
mipmap_input6 = "false"
|
||||
alias6 = "reflected_blurred_pass1"
|
||||
float_framebuffer6 = "false"
|
||||
srgb_framebuffer6 = "false"
|
||||
scale_type_x6 = "source"
|
||||
scale_x6 = "1.000000"
|
||||
scale_type_y6 = "source"
|
||||
scale_y6 = "1.000000"
|
||||
shader7 = "shaders/reflection_blur_v.slang"
|
||||
filter_linear7 = "true"
|
||||
wrap_mode7 = "mirrored_repeat"
|
||||
mipmap_input7 = "false"
|
||||
alias7 = "reflected_blurred_pass2"
|
||||
float_framebuffer7 = "false"
|
||||
srgb_framebuffer7 = "false"
|
||||
scale_type_x7 = "source"
|
||||
scale_x7 = "1.000000"
|
||||
scale_type_y7 = "source"
|
||||
scale_y7 = "1.000000"
|
||||
shader8 = "shaders/bloom_pass_1.slang"
|
||||
filter_linear8 = "true"
|
||||
wrap_mode8 = "mirrored_repeat"
|
||||
mipmap_input8 = "false"
|
||||
alias8 = "bloom_pass_1"
|
||||
float_framebuffer8 = "true"
|
||||
srgb_framebuffer8 = "false"
|
||||
scale_type_x8 = "source"
|
||||
scale_x8 = "1.000000"
|
||||
scale_type_y8 = "source"
|
||||
scale_y8 = "1.000000"
|
||||
shader9 = "shaders/bloom_pass_2.slang"
|
||||
filter_linear9 = "true"
|
||||
wrap_mode9 = "clamp_to_edge"
|
||||
mipmap_input9 = "false"
|
||||
alias9 = "bloom_pass_2"
|
||||
float_framebuffer9 = "false"
|
||||
srgb_framebuffer9 = "false"
|
||||
scale_type_x9 = "source"
|
||||
scale_x9 = "0.500000"
|
||||
scale_type_y9 = "source"
|
||||
scale_y9 = "0.500000"
|
||||
shader10 = "shaders/bloom_pass_3.slang"
|
||||
filter_linear10 = "true"
|
||||
wrap_mode10 = "clamp_to_edge"
|
||||
mipmap_input10 = "false"
|
||||
alias10 = "bloom_pass_3"
|
||||
float_framebuffer10 = "false"
|
||||
srgb_framebuffer10 = "false"
|
||||
scale_type_x10 = "source"
|
||||
scale_x10 = "1.000000"
|
||||
scale_type_y10 = "source"
|
||||
scale_y10 = "1.000000"
|
||||
shader11 = "shaders/bloom_pass_4.slang"
|
||||
filter_linear11 = "true"
|
||||
wrap_mode11 = "mirrored_repeat"
|
||||
mipmap_input11 = "false"
|
||||
alias11 = "bloom_pass_final"
|
||||
float_framebuffer11 = "false"
|
||||
srgb_framebuffer11 = "false"
|
||||
scale_type_x11 = "source"
|
||||
scale_x11 = "1.000000"
|
||||
scale_type_y11 = "source"
|
||||
scale_y11 = "1.000000"
|
||||
shader12 = "shaders/ambi_push_pass.slang"
|
||||
filter_linear12 = "true"
|
||||
wrap_mode12 = "mirrored_repeat"
|
||||
mipmap_input12 = "false"
|
||||
alias12 = "ambi_push_pass"
|
||||
float_framebuffer12 = "true"
|
||||
srgb_framebuffer12 = "false"
|
||||
scale_type_x12 = "source"
|
||||
scale_x12 = "1.000000"
|
||||
scale_type_y12 = "source"
|
||||
scale_y12 = "1.000000"
|
||||
shader13 = "shaders/ambi_pre_pass.slang"
|
||||
filter_linear13 = "true"
|
||||
wrap_mode13 = "clamp_to_border"
|
||||
mipmap_input13 = "true"
|
||||
alias13 = "ambi_pre_pass1"
|
||||
float_framebuffer13 = "false"
|
||||
srgb_framebuffer13 = "false"
|
||||
scale_type_x13 = "source"
|
||||
scale_x13 = "1.000000"
|
||||
scale_type_y13 = "source"
|
||||
scale_y13 = "1.000000"
|
||||
shader14 = "shaders/ambi_temporal_pass.slang"
|
||||
filter_linear14 = "true"
|
||||
wrap_mode14 = "clamp_to_border"
|
||||
mipmap_input14 = "false"
|
||||
alias14 = "ambi_temporal_pass"
|
||||
float_framebuffer14 = "true"
|
||||
srgb_framebuffer14 = "false"
|
||||
scale_type_x14 = "source"
|
||||
scale_x14 = "1.000000"
|
||||
scale_type_y14 = "source"
|
||||
scale_y14 = "1.000000"
|
||||
shader15 = "shaders/isrotated.slang"
|
||||
filter_linear15 = "true"
|
||||
wrap_mode15 = "mirrored_repeat"
|
||||
mipmap_input15 = "false"
|
||||
alias15 = "isrotated_pass"
|
||||
float_framebuffer15 = "false"
|
||||
srgb_framebuffer15 = "false"
|
||||
scale_type_x15 = "viewport"
|
||||
scale_x15 = "0.100000"
|
||||
scale_type_y15 = "viewport"
|
||||
scale_y15 = "0.100000"
|
||||
shader16 = "shaders/final_pass.slang"
|
||||
filter_linear16 = "true"
|
||||
wrap_mode16 = "mirrored_repeat"
|
||||
mipmap_input16 = "false"
|
||||
alias16 = "final_pass"
|
||||
float_framebuffer16 = "false"
|
||||
srgb_framebuffer16 = "false"
|
||||
scale_type_x16 = "viewport"
|
||||
scale_x16 = "1.000000"
|
||||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.200000"
|
||||
GAMMA_OUT = "0.500000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.900000"
|
||||
IN_GLOW_WH = "7.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.700000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.450000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.150000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINES_BLEEDING = "0.825000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.150000"
|
||||
GEOM_WARP_Y = "0.150000"
|
||||
GEOM_CORNER_SMOOTH = "200.000000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.400000"
|
||||
AMBI_POWER = "1.000000"
|
||||
V_SIZE = "2.700000"
|
||||
V_POWER = "1.050000"
|
||||
S_POSITION = "194.000000"
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
monitor_body_linear = "true"
|
||||
monitor_body_wrap_mode = "clamp_to_edge"
|
||||
monitor_body_mipmap = "true"
|
||||
bg_under = "textures/background_under.png"
|
||||
bg_under_linear = "true"
|
||||
bg_under_wrap_mode = "mirrored_repeat"
|
||||
bg_under_mipmap = "true"
|
||||
bg_over = "textures/background_over.png"
|
||||
bg_over_linear = "true"
|
||||
bg_over_wrap_mode = "mirrored_repeat"
|
||||
bg_over_mipmap = "true"
|
238
bezel/koko-aio/monitor-slotmask.slangp
Normal file
238
bezel/koko-aio/monitor-slotmask.slangp
Normal file
|
@ -0,0 +1,238 @@
|
|||
shaders = "17"
|
||||
shader0 = "shaders/first_pass.slang"
|
||||
filter_linear0 = "false"
|
||||
wrap_mode0 = "mirrored_repeat"
|
||||
mipmap_input0 = "false"
|
||||
alias0 = "first_pass"
|
||||
float_framebuffer0 = "false"
|
||||
srgb_framebuffer0 = "false"
|
||||
scale_type_x0 = "source"
|
||||
scale_x0 = "2.000000"
|
||||
scale_type_y0 = "source"
|
||||
scale_y0 = "2.000000"
|
||||
shader1 = "shaders/fxaa.slang"
|
||||
filter_linear1 = "true"
|
||||
wrap_mode1 = "mirrored_repeat"
|
||||
mipmap_input1 = "true"
|
||||
alias1 = "FXAA_pass"
|
||||
float_framebuffer1 = "false"
|
||||
srgb_framebuffer1 = "false"
|
||||
scale_type_x1 = "source"
|
||||
scale_x1 = "1.000000"
|
||||
scale_type_y1 = "source"
|
||||
scale_y1 = "1.000000"
|
||||
shader2 = "shaders/shift_and_bleed.slang"
|
||||
filter_linear2 = "true"
|
||||
wrap_mode2 = "mirrored_repeat"
|
||||
mipmap_input2 = "false"
|
||||
alias2 = "shift_and_bleed_pass"
|
||||
float_framebuffer2 = "false"
|
||||
srgb_framebuffer2 = "false"
|
||||
scale_type_x2 = "source"
|
||||
scale_x2 = "1.000000"
|
||||
scale_type_y2 = "source"
|
||||
scale_y2 = "1.000000"
|
||||
shader3 = "shaders/in_glow.slang"
|
||||
filter_linear3 = "true"
|
||||
wrap_mode3 = "mirrored_repeat"
|
||||
mipmap_input3 = "false"
|
||||
alias3 = "in_glow_pass"
|
||||
float_framebuffer3 = "true"
|
||||
srgb_framebuffer3 = "false"
|
||||
scale_type_x3 = "source"
|
||||
scale_x3 = "1.000000"
|
||||
scale_type_y3 = "source"
|
||||
scale_y3 = "1.000000"
|
||||
shader4 = "shaders/halo.slang"
|
||||
filter_linear4 = "true"
|
||||
wrap_mode4 = "mirrored_repeat"
|
||||
mipmap_input4 = "false"
|
||||
alias4 = "halo_pass"
|
||||
float_framebuffer4 = "true"
|
||||
srgb_framebuffer4 = "false"
|
||||
scale_type_x4 = "source"
|
||||
scale_x4 = "1.000000"
|
||||
scale_type_y4 = "source"
|
||||
scale_y4 = "1.000000"
|
||||
shader5 = "shaders/avglum_pass.slang"
|
||||
filter_linear5 = "true"
|
||||
wrap_mode5 = "mirrored_repeat"
|
||||
mipmap_input5 = "false"
|
||||
alias5 = "avglum_pass"
|
||||
float_framebuffer5 = "false"
|
||||
srgb_framebuffer5 = "false"
|
||||
scale_type_x5 = "source"
|
||||
scale_x5 = "0.500000"
|
||||
scale_type_y5 = "source"
|
||||
scale_y5 = "0.500000"
|
||||
shader6 = "shaders/reflection_blur_h.slang"
|
||||
filter_linear6 = "true"
|
||||
wrap_mode6 = "mirrored_repeat"
|
||||
mipmap_input6 = "false"
|
||||
alias6 = "reflected_blurred_pass1"
|
||||
float_framebuffer6 = "false"
|
||||
srgb_framebuffer6 = "false"
|
||||
scale_type_x6 = "source"
|
||||
scale_x6 = "1.000000"
|
||||
scale_type_y6 = "source"
|
||||
scale_y6 = "1.000000"
|
||||
shader7 = "shaders/reflection_blur_v.slang"
|
||||
filter_linear7 = "true"
|
||||
wrap_mode7 = "mirrored_repeat"
|
||||
mipmap_input7 = "false"
|
||||
alias7 = "reflected_blurred_pass2"
|
||||
float_framebuffer7 = "false"
|
||||
srgb_framebuffer7 = "false"
|
||||
scale_type_x7 = "source"
|
||||
scale_x7 = "1.000000"
|
||||
scale_type_y7 = "source"
|
||||
scale_y7 = "1.000000"
|
||||
shader8 = "shaders/bloom_pass_1.slang"
|
||||
filter_linear8 = "true"
|
||||
wrap_mode8 = "mirrored_repeat"
|
||||
mipmap_input8 = "false"
|
||||
alias8 = "bloom_pass_1"
|
||||
float_framebuffer8 = "true"
|
||||
srgb_framebuffer8 = "false"
|
||||
scale_type_x8 = "source"
|
||||
scale_x8 = "1.000000"
|
||||
scale_type_y8 = "source"
|
||||
scale_y8 = "1.000000"
|
||||
shader9 = "shaders/bloom_pass_2.slang"
|
||||
filter_linear9 = "true"
|
||||
wrap_mode9 = "clamp_to_edge"
|
||||
mipmap_input9 = "false"
|
||||
alias9 = "bloom_pass_2"
|
||||
float_framebuffer9 = "false"
|
||||
srgb_framebuffer9 = "false"
|
||||
scale_type_x9 = "source"
|
||||
scale_x9 = "0.500000"
|
||||
scale_type_y9 = "source"
|
||||
scale_y9 = "0.500000"
|
||||
shader10 = "shaders/bloom_pass_3.slang"
|
||||
filter_linear10 = "true"
|
||||
wrap_mode10 = "clamp_to_edge"
|
||||
mipmap_input10 = "false"
|
||||
alias10 = "bloom_pass_3"
|
||||
float_framebuffer10 = "false"
|
||||
srgb_framebuffer10 = "false"
|
||||
scale_type_x10 = "source"
|
||||
scale_x10 = "1.000000"
|
||||
scale_type_y10 = "source"
|
||||
scale_y10 = "1.000000"
|
||||
shader11 = "shaders/bloom_pass_4.slang"
|
||||
filter_linear11 = "true"
|
||||
wrap_mode11 = "mirrored_repeat"
|
||||
mipmap_input11 = "false"
|
||||
alias11 = "bloom_pass_final"
|
||||
float_framebuffer11 = "false"
|
||||
srgb_framebuffer11 = "false"
|
||||
scale_type_x11 = "source"
|
||||
scale_x11 = "1.000000"
|
||||
scale_type_y11 = "source"
|
||||
scale_y11 = "1.000000"
|
||||
shader12 = "shaders/ambi_push_pass.slang"
|
||||
filter_linear12 = "true"
|
||||
wrap_mode12 = "mirrored_repeat"
|
||||
mipmap_input12 = "false"
|
||||
alias12 = "ambi_push_pass"
|
||||
float_framebuffer12 = "true"
|
||||
srgb_framebuffer12 = "false"
|
||||
scale_type_x12 = "source"
|
||||
scale_x12 = "1.000000"
|
||||
scale_type_y12 = "source"
|
||||
scale_y12 = "1.000000"
|
||||
shader13 = "shaders/ambi_pre_pass.slang"
|
||||
filter_linear13 = "true"
|
||||
wrap_mode13 = "clamp_to_border"
|
||||
mipmap_input13 = "true"
|
||||
alias13 = "ambi_pre_pass1"
|
||||
float_framebuffer13 = "false"
|
||||
srgb_framebuffer13 = "false"
|
||||
scale_type_x13 = "source"
|
||||
scale_x13 = "1.000000"
|
||||
scale_type_y13 = "source"
|
||||
scale_y13 = "1.000000"
|
||||
shader14 = "shaders/ambi_temporal_pass.slang"
|
||||
filter_linear14 = "true"
|
||||
wrap_mode14 = "clamp_to_border"
|
||||
mipmap_input14 = "false"
|
||||
alias14 = "ambi_temporal_pass"
|
||||
float_framebuffer14 = "true"
|
||||
srgb_framebuffer14 = "false"
|
||||
scale_type_x14 = "source"
|
||||
scale_x14 = "1.000000"
|
||||
scale_type_y14 = "source"
|
||||
scale_y14 = "1.000000"
|
||||
shader15 = "shaders/isrotated.slang"
|
||||
filter_linear15 = "true"
|
||||
wrap_mode15 = "mirrored_repeat"
|
||||
mipmap_input15 = "false"
|
||||
alias15 = "isrotated_pass"
|
||||
float_framebuffer15 = "false"
|
||||
srgb_framebuffer15 = "false"
|
||||
scale_type_x15 = "viewport"
|
||||
scale_x15 = "0.100000"
|
||||
scale_type_y15 = "viewport"
|
||||
scale_y15 = "0.100000"
|
||||
shader16 = "shaders/final_pass.slang"
|
||||
filter_linear16 = "true"
|
||||
wrap_mode16 = "mirrored_repeat"
|
||||
mipmap_input16 = "false"
|
||||
alias16 = "final_pass"
|
||||
float_framebuffer16 = "false"
|
||||
srgb_framebuffer16 = "false"
|
||||
scale_type_x16 = "viewport"
|
||||
scale_x16 = "1.000000"
|
||||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.200000"
|
||||
GAMMA_OUT = "0.500000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.900000"
|
||||
IN_GLOW_WH = "7.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.700000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.450000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.150000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINES_BLEEDING = "0.825000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.150000"
|
||||
GEOM_WARP_Y = "0.150000"
|
||||
GEOM_CORNER_SMOOTH = "200.000000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.400000"
|
||||
AMBI_POWER = "1.000000"
|
||||
V_SIZE = "2.700000"
|
||||
V_POWER = "1.050000"
|
||||
S_POSITION = "194.000000"
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
monitor_body_linear = "true"
|
||||
monitor_body_wrap_mode = "clamp_to_edge"
|
||||
monitor_body_mipmap = "true"
|
||||
bg_under = "textures/background_under.png"
|
||||
bg_under_linear = "true"
|
||||
bg_under_wrap_mode = "mirrored_repeat"
|
||||
bg_under_mipmap = "true"
|
||||
bg_over = "textures/background_over.png"
|
||||
bg_over_linear = "true"
|
||||
bg_over_wrap_mode = "mirrored_repeat"
|
||||
bg_over_mipmap = "true"
|
129
bezel/koko-aio/shaders/ambi_pre_pass.slang
Normal file
129
bezel/koko-aio/shaders/ambi_pre_pass.slang
Normal file
|
@ -0,0 +1,129 @@
|
|||
#version 450
|
||||
|
||||
/* This pass simulates the presence of a led strip placed on the back of the virtual screen */
|
||||
|
||||
#include "config.inc"
|
||||
|
||||
#define internalness 0.07 //The distance between the screen border and the led strip
|
||||
#define leds_per_strip 8 //How many leds per border
|
||||
|
||||
#define radius 0.001 //The base radius of the emitted light (tuned by user parameter later)
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
layout(location = 1) out float border_min;
|
||||
layout(location = 2) out float border_max;
|
||||
layout(location = 3) out float fstep;
|
||||
layout(location = 4) out float lod;
|
||||
|
||||
void main() {
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = TexCoord;
|
||||
|
||||
border_min=internalness ;
|
||||
border_max=1.0-internalness ;
|
||||
fstep = (border_max - border_min) / (leds_per_strip-1);
|
||||
//Calc a lod for a texture sized led_strip x led_strip
|
||||
lod = log2(params.SourceSize.y / leds_per_strip);
|
||||
}
|
||||
|
||||
#pragma stage fragment
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 1) in float border_min;
|
||||
layout(location = 2) in float border_max;
|
||||
layout(location = 3) in float fstep;
|
||||
layout(location = 4) in float lod;
|
||||
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
|
||||
|
||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||
layout(set = 0, binding = 3) uniform sampler2D isrotated_passFeedback;
|
||||
layout(set = 0, binding = 4) uniform sampler2D ambi_pre_pass1Feedback;
|
||||
|
||||
|
||||
#include "includes/functions.include.slang"
|
||||
|
||||
vec3 circle_smooth(vec2 coords, vec2 middle, float f_radius, float FALLOFF, float f_lod) {
|
||||
float fdistance=distance(middle, vec2(coords.x, coords.y));
|
||||
float circle = (1-smoothstep(f_radius-FALLOFF, f_radius+FALLOFF, fdistance));
|
||||
vec3 circle_color = textureLod(Source, middle, f_lod).rgb * circle;
|
||||
return circle_color;
|
||||
}
|
||||
|
||||
#define tol_start 0.06 //skip tolerance
|
||||
#define tol_end 0.94 //1-tol_start
|
||||
|
||||
|
||||
/*
|
||||
To spare gpu cycles, completely skip the pass
|
||||
by the following factor and return instead the previous
|
||||
(temporal) frame. The trick works because the pass is
|
||||
temporal smoothed later on.
|
||||
|
||||
The only downside is that the leds will have less reaction time.
|
||||
Esample:
|
||||
a FRAME_DIVIDER = 3 over a 60hz content will give
|
||||
a minimum reaction time of 60/3=20Hz=50msecs.
|
||||
*/
|
||||
|
||||
#define FRAME_DIVIDER 3
|
||||
|
||||
void main() {
|
||||
if (DO_AMBILIGHT != 1.0) return;
|
||||
|
||||
if ( mod(params.FrameCount, FRAME_DIVIDER) != 0.0) {
|
||||
FragColor = texture(ambi_pre_pass1Feedback, vTexCoord);
|
||||
return;
|
||||
}
|
||||
|
||||
bool is_rotated = texture(isrotated_passFeedback, vec2(0.5, 0.5)).r > 0.5;
|
||||
|
||||
//Scale to the original aspect
|
||||
vec2 coords = get_scaled_coords(vTexCoord, global.FinalViewportSize, is_rotated);
|
||||
if (DO_BEZEL==1.0) coords = zoomout_coords(coords, -BEZEL_INNER_ZOOM , 1.0);
|
||||
|
||||
//Skip coords in the rect "under the monitor"
|
||||
FragColor = vec4(0.0);
|
||||
|
||||
//First consider to skip the curved coords
|
||||
if (DO_CURVATURE == 1.0) {
|
||||
if ((GEOM_WARP_X > 0.0) || (GEOM_WARP_Y > 0.0)) {
|
||||
vec2 coords_curved = Warp(coords, GEOM_WARP_X, GEOM_WARP_Y);
|
||||
if ( ( (coords_curved.x > tol_start && coords_curved.x < 1.0 - tol_start ) && (coords_curved.y > tol_start && coords_curved.y < 1.0 - tol_start) ) &&
|
||||
!( (coords.x < - tol_start || coords.x > 1.0 + tol_start) || (coords.y < - tol_start || coords.y > 1.0 + tol_start) ) )
|
||||
return;
|
||||
}
|
||||
}
|
||||
//...next, the straight ones (needed even when curvature is due, because it returns particular values in the corners)
|
||||
//skip_pass = skip_pass && !( (coords.x < 0.0 -tol || coords.x > 1.0 +tol) || (coords.y < 0.0 -tol || coords.y > 1.0 +tol) );
|
||||
if (coords.x > tol_start && coords.x < tol_end && coords.y > tol_start && coords.y < tol_end) return;
|
||||
|
||||
//Finally, emulate leds.
|
||||
vec3 pixel_out = vec3(0.0);
|
||||
float middle_x; float middle_y ;
|
||||
|
||||
middle_x=border_min;
|
||||
for (middle_y=border_min ; middle_y <= border_max+eps ; middle_y=middle_y + fstep ) {
|
||||
pixel_out +=circle_smooth(coords, vec2(middle_x,middle_y), radius, AMBI_FALLOFF, lod);
|
||||
}
|
||||
middle_x=border_max;
|
||||
for (middle_y=border_min ; middle_y <= border_max+eps ; middle_y=middle_y + fstep ) {
|
||||
pixel_out +=circle_smooth(coords, vec2(middle_x,middle_y), radius, AMBI_FALLOFF, lod);
|
||||
}
|
||||
|
||||
middle_y=border_min;
|
||||
for (middle_x=border_min+fstep ; middle_x <= border_max-fstep+eps ; middle_x=middle_x + fstep ) {
|
||||
pixel_out +=circle_smooth(coords, vec2(middle_x,middle_y), radius, AMBI_FALLOFF, lod);
|
||||
}
|
||||
middle_y=border_max;
|
||||
for (middle_x=border_min+fstep ; middle_x <= border_max-fstep+eps ; middle_x=middle_x + fstep ) {
|
||||
pixel_out +=circle_smooth(coords, vec2(middle_x,middle_y), radius, AMBI_FALLOFF, lod);
|
||||
}
|
||||
|
||||
FragColor = vec4(pixel_out,1.0);
|
||||
return;
|
||||
|
||||
}
|
34
bezel/koko-aio/shaders/ambi_push_pass.slang
Normal file
34
bezel/koko-aio/shaders/ambi_push_pass.slang
Normal file
|
@ -0,0 +1,34 @@
|
|||
#version 450
|
||||
|
||||
/* This pass apply an pre-gain to the leds on the rear of the virtual screen
|
||||
* it is intended to produce a mipmap to be used by the next pass */
|
||||
|
||||
|
||||
#include "config.inc"
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
|
||||
void main() {
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = TexCoord;
|
||||
}
|
||||
|
||||
#pragma stage fragment
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
layout(set = 0, binding = 2) uniform sampler2D first_pass;
|
||||
layout(set = 0, binding = 3) uniform sampler2D avglum_pass;
|
||||
|
||||
#include "includes/functions.include.slang"
|
||||
|
||||
void main() {
|
||||
if (DO_AMBILIGHT != 1.0) return;
|
||||
|
||||
vec3 pixel_out = texture(first_pass, vTexCoord).rgb;
|
||||
pixel_out = apply_fuzzy_main_pass(pixel_out);
|
||||
pixel_out = pixel_push_luminance(pixel_out, AMBI_POWER-1);
|
||||
FragColor = vec4(pixel_out, 1.0);
|
||||
}
|
84
bezel/koko-aio/shaders/ambi_temporal_pass.slang
Normal file
84
bezel/koko-aio/shaders/ambi_temporal_pass.slang
Normal file
|
@ -0,0 +1,84 @@
|
|||
#version 450
|
||||
|
||||
/* In this pass the led light is temporally smoothed to give smooth fades.
|
||||
* the slowness is configurable by user parameter.
|
||||
* It also detect when a full scene is changed to produces fast fades, instead
|
||||
*/
|
||||
|
||||
#include "config.inc"
|
||||
|
||||
#define PreviousSampler ambi_temporal_passFeedback
|
||||
#define CurrentSampler ambi_pre_pass1
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
|
||||
void main() {
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = TexCoord;
|
||||
}
|
||||
|
||||
#pragma stage fragment
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
layout(set = 0, binding = 2) uniform sampler2D CurrentSampler;
|
||||
layout(set = 0, binding = 3) uniform sampler2D PreviousSampler;
|
||||
layout(set = 0, binding = 4) uniform sampler2D avglum_pass;
|
||||
layout(set = 0, binding = 5) uniform sampler2D avglum_passFeedback;
|
||||
|
||||
#define MAX_STEPS AMBI_STEPS
|
||||
|
||||
float ambi_step(float start, float end, float mystep) {
|
||||
float diff = start-end;
|
||||
if (abs(diff) < mystep) return end;
|
||||
if (start >= end)
|
||||
return start - mystep;
|
||||
else
|
||||
return start + mystep;
|
||||
}
|
||||
|
||||
vec3 ambi_step_rgb(vec3 s,vec3 d, vec3 mystep){
|
||||
//step fade (f) rom s to d
|
||||
return vec3 ( ambi_step(s.r,d.r,mystep.r),
|
||||
ambi_step(s.g,d.g,mystep.g),
|
||||
ambi_step(s.b,d.b,mystep.b)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
vec4 pixel_ambilight() {
|
||||
vec3 mystep;
|
||||
|
||||
vec4 previous_pixel_vec4 = texture(PreviousSampler, vTexCoord);
|
||||
vec3 current_pixel = texture(CurrentSampler, vTexCoord).rgb;
|
||||
vec3 previous_pixel = previous_pixel_vec4.rgb;
|
||||
|
||||
float scene_change_remaining = previous_pixel_vec4.a;
|
||||
|
||||
float prev_avg_lum = texture(avglum_passFeedback,vec2(0.25,0.25)).a;
|
||||
float curr_avg_lum = texture(avglum_pass ,vec2(0.25,0.25)).a;
|
||||
float diff_avg_lum = abs(prev_avg_lum - curr_avg_lum);
|
||||
|
||||
if (diff_avg_lum >= AMBI_SCENE_CHG_THRSHLD) {
|
||||
scene_change_remaining = 1.0;
|
||||
}
|
||||
|
||||
// Are we changing scene?
|
||||
if (scene_change_remaining > 0.0) {
|
||||
mystep = vec3(max(1.0/MAX_STEPS, AMBI_FAST_STEP)); // <- Never slow down fades due to fast step when changing scene
|
||||
scene_change_remaining -= AMBI_FAST_STEP;
|
||||
} else {
|
||||
mystep = abs((previous_pixel-current_pixel) / MAX_STEPS);
|
||||
|
||||
}
|
||||
return vec4(ambi_step_rgb(previous_pixel,current_pixel,mystep),scene_change_remaining);
|
||||
|
||||
}
|
||||
|
||||
void main() {
|
||||
if (DO_AMBILIGHT != 1.0) return;
|
||||
|
||||
FragColor = pixel_ambilight();
|
||||
}
|
81
bezel/koko-aio/shaders/avglum_pass.slang
Normal file
81
bezel/koko-aio/shaders/avglum_pass.slang
Normal file
|
@ -0,0 +1,81 @@
|
|||
#version 450
|
||||
|
||||
/* In this pass we calculate the average luminance of the scene.
|
||||
* It is cheaply obtained by the use of mipmaps. */
|
||||
|
||||
#include "config.inc"
|
||||
|
||||
//The mipmap wideness needed by the reflection on the bezel.
|
||||
#define min_w 16
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
layout(location = 1) out float lod;
|
||||
|
||||
void main() {
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = TexCoord;
|
||||
lod = log2(params.SourceSize.y / min_w);
|
||||
}
|
||||
|
||||
#pragma stage fragment
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 1) in float lod;
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
layout(set = 0, binding = 2) uniform sampler2D first_pass;
|
||||
layout(set = 0, binding = 3) uniform sampler2D avglum_passFeedback;
|
||||
|
||||
/* The following will allow to sample at reduced interval
|
||||
The scene change detection logic will take advantage of it
|
||||
So that quick fades will still be treated as scene changes
|
||||
*/
|
||||
// #define avglum_divider 4 <-- in config.inc
|
||||
|
||||
#include "includes/functions.include.slang"
|
||||
|
||||
float get_avg_lum_from_mip() {
|
||||
vec3 mip = textureLod(first_pass, vec2(0.5,0.5),20.0).rgb;
|
||||
mip = apply_fuzzy_main_pass(mip);
|
||||
return (mip.r+mip.g+mip.b)/3.0;
|
||||
}
|
||||
|
||||
float get_avglum() {
|
||||
bool coordinate_for_scene_detection =
|
||||
vTexCoord.x > 0.24 && vTexCoord.x < 0.26 &&
|
||||
vTexCoord.y > 0.24 && vTexCoord.y < 0.26 ;
|
||||
|
||||
bool reduced_sample_time_is_now = (mod(params.FrameCount,AMBI_AVGLUM_DIVIDER) == 0);
|
||||
|
||||
if (!coordinate_for_scene_detection) return get_avg_lum_from_mip();
|
||||
if (reduced_sample_time_is_now) return get_avg_lum_from_mip();
|
||||
if (coordinate_for_scene_detection && reduced_sample_time_is_now) return get_avg_lum_from_mip();
|
||||
|
||||
/* Implicit else: we are in a coordinate that is not used for scene detection
|
||||
* So just return the feedback of this pass to spare gpu cycles. */
|
||||
return texture(avglum_passFeedback,vTexCoord).a;
|
||||
}
|
||||
|
||||
void main() {
|
||||
/*Grab a mipmap from the previous pass.
|
||||
Calculate the average luminance from the smallest mipmap and put into the alpha channel
|
||||
So that can be used:
|
||||
1 - continuously at coordinate 0.5,0.5
|
||||
2 - sampled less often for scene detection logic at coordinate 0.25,0.25
|
||||
Put another small mipmap into the rgb channel to be used by the reflection code.
|
||||
*/
|
||||
//FIXME: see which is faster:
|
||||
//if (DO_AMBILIGHT == 1.0 || DO_BEZEL == 1.0 || DO_DYNZOOM == 1.0) {
|
||||
if ( DO_AMBILIGHT + DO_BEZEL + DO_DYNZOOM + DO_BLOOM == 0 ) return;
|
||||
|
||||
vec4 pixel_out;
|
||||
pixel_out.a = get_avglum();
|
||||
if (DO_BEZEL + DO_BLOOM > 0.0) {
|
||||
//Create a small mipmap to be used to light the bezel corners.
|
||||
pixel_out.rgb = textureLod(first_pass, vTexCoord,lod).rgb;
|
||||
}
|
||||
FragColor = pixel_out;
|
||||
|
||||
|
||||
}
|
43
bezel/koko-aio/shaders/bloom_pass_1.slang
Normal file
43
bezel/koko-aio/shaders/bloom_pass_1.slang
Normal file
|
@ -0,0 +1,43 @@
|
|||
#version 450
|
||||
|
||||
// This is one of several passes needed to cheaply emulate the bloom effect.
|
||||
|
||||
#include "config.inc"
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
|
||||
void main() {
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = TexCoord;
|
||||
}
|
||||
|
||||
#pragma stage fragment
|
||||
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
layout(set = 0, binding = 2) uniform sampler2D first_pass;
|
||||
|
||||
#include "includes/blooms.include.slang"
|
||||
#include "includes/functions.include.slang"
|
||||
|
||||
void main() {
|
||||
if (DO_BLOOM == 0.0) return;
|
||||
|
||||
vec3 bloomed = bloom(
|
||||
first_pass,
|
||||
vTexCoord,
|
||||
params.OriginalSize,
|
||||
vec2(BLOOM_SIZE),
|
||||
BLOOM_QUALITY,
|
||||
BLOOM_GAMMA,
|
||||
0.0,
|
||||
0.0
|
||||
);
|
||||
|
||||
bloomed = apply_fuzzy_main_pass(bloomed) * BLOOM_POWER;
|
||||
FragColor = vec4(bloomed, 1.0);
|
||||
|
||||
}
|
40
bezel/koko-aio/shaders/bloom_pass_2.slang
Normal file
40
bezel/koko-aio/shaders/bloom_pass_2.slang
Normal file
|
@ -0,0 +1,40 @@
|
|||
#version 450
|
||||
|
||||
// This is one of several passes needed to cheaply emulate the bloom effect.
|
||||
|
||||
#include "config.inc"
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
|
||||
void main() {
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = TexCoord;
|
||||
}
|
||||
|
||||
#pragma stage fragment
|
||||
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||
|
||||
#include "includes/blooms.include.slang"
|
||||
|
||||
void main() {
|
||||
if (DO_BLOOM == 0.0) return;
|
||||
|
||||
vec3 bloomed = bloom(
|
||||
Source,
|
||||
vTexCoord,
|
||||
params.SourceSize,
|
||||
vec2(BLOOM_SIZE),
|
||||
BLOOM_QUALITY,
|
||||
1.0,
|
||||
0.196349540625,
|
||||
0.0
|
||||
);
|
||||
|
||||
FragColor = vec4(bloomed.rgb, 1.0);
|
||||
}
|
41
bezel/koko-aio/shaders/bloom_pass_3.slang
Normal file
41
bezel/koko-aio/shaders/bloom_pass_3.slang
Normal file
|
@ -0,0 +1,41 @@
|
|||
#version 450
|
||||
|
||||
// This is one of several passes needed to cheaply emulate the bloom effect.
|
||||
|
||||
#include "config.inc"
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
|
||||
void main() {
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = TexCoord;
|
||||
}
|
||||
|
||||
#pragma stage fragment
|
||||
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||
|
||||
#include "includes/blooms.include.slang"
|
||||
|
||||
void main() {
|
||||
if (DO_BLOOM == 0.0) return;
|
||||
|
||||
vec3 bloomed = bloom(
|
||||
Source,
|
||||
vTexCoord,
|
||||
params.SourceSize,
|
||||
vec2(BLOOM_SIZE),
|
||||
BLOOM_QUALITY,
|
||||
1.0,
|
||||
0.39269908125,
|
||||
0.0
|
||||
);
|
||||
|
||||
FragColor = vec4(bloomed.rgb, 1.0);
|
||||
|
||||
}
|
41
bezel/koko-aio/shaders/bloom_pass_4.slang
Normal file
41
bezel/koko-aio/shaders/bloom_pass_4.slang
Normal file
|
@ -0,0 +1,41 @@
|
|||
#version 450
|
||||
|
||||
// This is one of several passes needed to cheaply emulate the bloom effect.
|
||||
|
||||
#include "config.inc"
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
|
||||
void main() {
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = TexCoord;
|
||||
}
|
||||
|
||||
#pragma stage fragment
|
||||
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||
|
||||
#include "includes/blooms.include.slang"
|
||||
|
||||
void main() {
|
||||
if (DO_BLOOM == 0.0) return;
|
||||
|
||||
vec3 bloomed = bloom(
|
||||
Source,
|
||||
vTexCoord,
|
||||
params.SourceSize,
|
||||
vec2(BLOOM_SIZE),
|
||||
BLOOM_QUALITY,
|
||||
1.0,
|
||||
0.589048621875,
|
||||
0.0
|
||||
);
|
||||
|
||||
FragColor = vec4(pow(bloomed,vec3(BLOOM_GAMMA_OUT)),1.0);
|
||||
|
||||
}
|
490
bezel/koko-aio/shaders/config.inc
Normal file
490
bezel/koko-aio/shaders/config.inc
Normal file
|
@ -0,0 +1,490 @@
|
|||
//Setting the glow/halo sharpness parameter to this
|
||||
//will skip the blurring phase and lowers the gpu use
|
||||
//Set this to the same value as used for the maximum
|
||||
//of IN_GLOW_WH, HALO_W and HALO_H
|
||||
#define GLOW_SHARP_MAX 7
|
||||
|
||||
//Consider content interlaced if lines are more than this
|
||||
#define MIN_LINES_INTERLACED 300
|
||||
|
||||
//Sort of dithering used in vignette, spot, backlight leds
|
||||
#define NOISEPOWER ((params.OutputSize.z)*3)
|
||||
|
||||
//Bezel reflection area size in relation to the game frame
|
||||
//Use the lowest possible value for best performance
|
||||
//It is also used to compute wrap/repeated coordinates.
|
||||
#define BEZEL_REFLECTION_AREA_SIZE 0.175
|
||||
|
||||
// 0.0-1.0: sensitivity to scene change (ambilike stuff), 0.0 changes more
|
||||
#define AMBI_SCENE_CHG_THRSHLD 0.07
|
||||
|
||||
// The following will allow to sample at reduced interval
|
||||
// The scene change detection logic will take advantage of it
|
||||
// So that quick fades will still be treated as scene changes
|
||||
#define AMBI_AVGLUM_DIVIDER 4
|
||||
|
||||
// The following defines the speed of the color fades
|
||||
// when changing scene. (range 0..1)
|
||||
// It is wise to correlate it with avglum_divider
|
||||
// try between (1/avglum_divider) and (1/avglum_divider)/3
|
||||
#define AMBI_FAST_STEP 0.125
|
||||
|
||||
|
||||
#define eps 1e-5
|
||||
|
||||
layout(push_constant) uniform Push {
|
||||
vec4 SourceSize;
|
||||
vec4 OriginalSize;
|
||||
vec4 OutputSize;
|
||||
vec4 final_passSize;
|
||||
uint FrameCount;
|
||||
|
||||
float SCANLINE_DARK;
|
||||
float VMASK_OVERWHITE ;
|
||||
float VMASK_DARKLINE_SCALE;
|
||||
float VMASK_GAP;
|
||||
float VMASK_USE_GM;
|
||||
float DRKLN_OVERWHITE ;
|
||||
float DO_DARKLINES_VOFFSET ;
|
||||
float DARKLINES_PERIOD ;
|
||||
float HALO_W ;
|
||||
float HALO_H ;
|
||||
float HALO_POWER ;
|
||||
float HALO_GAMMA ;
|
||||
float DO_BLOOM ; //4
|
||||
float BLOOM_QUALITY ; //1
|
||||
|
||||
} params;
|
||||
|
||||
layout(std140, set = 0, binding = 0) uniform UBO {
|
||||
mat4 MVP;
|
||||
|
||||
vec4 FinalViewportSize;
|
||||
vec4 in_glow_passSize;
|
||||
vec4 FXAA_passSize;
|
||||
//vec4 main_passSize;
|
||||
//vec4 monitor_bodySize;
|
||||
//vec4 bgSize;
|
||||
vec4 avglum_passSize;
|
||||
vec4 first_passSize;
|
||||
|
||||
float DO_SCANLINES;
|
||||
float DO_IN_GLOW;
|
||||
float DO_VMASK_AND_DARKLINES ;
|
||||
float MASK_COMPENSATION ;
|
||||
float DO_HALO ;
|
||||
float DO_CCORRECTION;
|
||||
float DO_ALT_BLANK;
|
||||
//float IN_GLOW_ADD ;
|
||||
float SCANLINES_BLEEDING ;
|
||||
float IN_GLOW_WH ;
|
||||
float IN_GLOW_POWER ;
|
||||
float IN_GLOW_GAMMA ;
|
||||
float BLOOM_MIX;
|
||||
float BLOOM_SIZE ; //1
|
||||
float BLOOM_GAMMA; //1
|
||||
float BLOOM_BYPASS; //1
|
||||
float BLOOM_POWER; //1
|
||||
float BLOOM_OVER_WHITE;
|
||||
float BLOOM_GAMMA_OUT;
|
||||
float ALT_BLANK_STRENGTH ; //2 FIXME to 1
|
||||
float ALT_BLANK_PERIOD ;
|
||||
float DO_FXAA ; //1
|
||||
float DO_SAT_BLEED;
|
||||
float SAT_BLEED_SIZE_LEFT;
|
||||
float SAT_BLEED_SIZE_RIGHT;
|
||||
float SAT_BLEED_FALLOFF;
|
||||
float SAT_BLEED_STRENGTH;
|
||||
float SAT_BLEED_PAL;
|
||||
float SCANLINE_FLICKERING ; //2
|
||||
float SCANLINE_FLICKERING_POWER;
|
||||
float SCANLINE_DISABLE_ON_INTERLACE;
|
||||
float SCANLINE_COMPENSATION;
|
||||
float RGB_MASK_STRENGTH;
|
||||
float DARKLINES_STRENGTH;
|
||||
float GAMMA_OUT ; //1
|
||||
float SATURATION;
|
||||
float LUMINANCE;
|
||||
float CONTRAST;
|
||||
float BRIGHTNESS;
|
||||
float TEMPERATURE;
|
||||
|
||||
float DO_CURVATURE;
|
||||
|
||||
float GEOM_WARP_X;
|
||||
float GEOM_WARP_Y;
|
||||
float GEOM_CORNER_SIZE;
|
||||
float GEOM_CORNER_SMOOTH;
|
||||
|
||||
float DO_BEZEL;
|
||||
float BEZEL_R;
|
||||
float BEZEL_G;
|
||||
float BEZEL_B;
|
||||
float BEZEL_CON;
|
||||
float BEZEL_INNER_ZOOM;
|
||||
float BEZEL_IMAGE_BORDER;
|
||||
float BEZEL_FRAME_ZOOM;
|
||||
|
||||
float DO_SPOT;
|
||||
float S_POSITION;
|
||||
float S_SIZE;
|
||||
float S_POWER;
|
||||
float S_BYPASS;
|
||||
|
||||
float DO_VIGNETTE;
|
||||
float V_SIZE;
|
||||
float V_POWER;
|
||||
float V_BYPASS;
|
||||
|
||||
float DO_DYNZOOM;
|
||||
float DYNZOOM_FACTOR;
|
||||
|
||||
float DO_AMBILIGHT;
|
||||
float AMBI_FALLOFF;
|
||||
float AMBI_POWER;
|
||||
float ASPECT_X;
|
||||
float ASPECT_Y;
|
||||
float AMBI_STEPS;
|
||||
|
||||
float DO_BG_IMAGE;
|
||||
float BG_IMAGE_OVER;
|
||||
float BG_IMAGE_OFFY;
|
||||
float BG_IMAGE_OFFX;
|
||||
float BG_IMAGE_ZOOM;
|
||||
|
||||
float DO_SHIFT_RGB;
|
||||
float SHIFT_R;
|
||||
float SHIFT_G;
|
||||
float SHIFT_B;
|
||||
float OFFSET_STRENGTH;
|
||||
|
||||
} global;
|
||||
|
||||
// Color correction
|
||||
#pragma parameter DO_CCORRECTION "★ Color corrections enable? ==>" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter LUMINANCE " Luminance push (>1.0=clip)" 0.0 0.0 1.5 0.05
|
||||
#pragma parameter SATURATION " Saturation in (1.0=off)" 1.0 0.0 2.0 0.01
|
||||
#pragma parameter CONTRAST " Contrast in (0.0=off)" 0.0 -1.0 1.0 0.01
|
||||
#pragma parameter BRIGHTNESS " Brightness in (0.0=off)" 0.0 -1.0 1.0 0.01
|
||||
#pragma parameter TEMPERATURE " Temperature in (6500=off)" 6500.0 3000 10000.0 50.0
|
||||
#pragma parameter GAMMA_OUT " Gamma out" 0.69 0.1 9.0 0.025
|
||||
|
||||
// FXAA
|
||||
// Apply an antialiasing filter via FXAA from Nvidia.
|
||||
#pragma parameter DO_FXAA "★ FXAA enable? ==>" 0.0 0.0 1.0 1.0
|
||||
|
||||
//Offset RGB
|
||||
// Allow to shift Red, Green, Blue components along x and y axis
|
||||
#pragma parameter DO_SHIFT_RGB "★ Shift RGB components enable? (bad with FXAA) ==>" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter OFFSET_STRENGTH " Strength" 0.5 0.0 1.0 0.1
|
||||
#pragma parameter SHIFT_R " Red offset" -40.0 -210.0 189.0 1
|
||||
#pragma parameter SHIFT_G " Green offset" 40.0 -210.0 189.0 1
|
||||
#pragma parameter SHIFT_B " Blue offset" 3.0 -210.0 189.0 1
|
||||
|
||||
|
||||
// YIQ/YUV bandwidth limited chroma bleeding.
|
||||
#pragma parameter DO_SAT_BLEED "★ Bandwidth limited chroma bleeding enable? ==>" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter SAT_BLEED_PAL " Use PAL colorspace, not NTSC" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter SAT_BLEED_STRENGTH " Strength" 1.0 0.0 5.0 0.01
|
||||
#pragma parameter SAT_BLEED_SIZE_LEFT " Size Left" 5.0 1.0 40.0 1.0
|
||||
#pragma parameter SAT_BLEED_SIZE_RIGHT " Size Right" 5.0 1.0 40.0 1.0
|
||||
#pragma parameter SAT_BLEED_FALLOFF " Falloff" 1.7 1.0 2.0 0.01
|
||||
|
||||
|
||||
// Input glowing
|
||||
// Emulates the glowing of the input signal by blurring it with "IN_GLOW_WH" sharpness.
|
||||
// Apply a gamma filter "IN_GLOW_GAMMA" to "light" it, multiplying the result by "IN_GLOW_POWER" and
|
||||
// finally interpolating(*) it with the source image.
|
||||
// "IN_GLOW_ADD" allows to modulate from interpolation(*) to a sum, wihch may (or not) produce better effects.
|
||||
// With "IN_GLOW_ADD=0" input glowing does not alter the RGB mask
|
||||
// or slot mask applied to the image.
|
||||
#pragma parameter DO_IN_GLOW "★ Glowing Input/power enable? ==>" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter IN_GLOW_POWER " Input signal glow strength" 0.45 0.0 5.0 0.05
|
||||
#pragma parameter IN_GLOW_WH " Sharpness" 2.5 0.2 7.0 0.05
|
||||
#pragma parameter IN_GLOW_GAMMA " Gamma, the higher, the less the glow on dark colors" 1.0 1.0 10.0 0.1
|
||||
//#pragma parameter IN_GLOW_ADD " Post gain (0.0 to disable)" 0.0 0.0 1.0 0.05
|
||||
|
||||
|
||||
// RGB Mask
|
||||
// Emulates CRT RGB phosphors.
|
||||
// This is done by multiplying the source image pixels, in turn, by red green or blue.
|
||||
// The strenght of the multiplication, and so of the final effect is affected by "RGB_MASK_STRENGTH" value.
|
||||
// A Value of 0 completely disable the effect.
|
||||
// "VMASK_DARKLINE_SCALE" Scales the gaps, the width the mask, and the height of the rgm bask and darklines (for HiDPI).
|
||||
// "VMASK_GAP" Will draw an horizontal gap between triads, for HiDPI monitors.
|
||||
// "VMASK_USE_GM" exploit the rgb subpixel layout of the real monitor to higher the apparent RGB vmask resolution
|
||||
// "VMASK_OVERWHITE" modulates the strenght of the effect depending on the source pixel brightness,
|
||||
// This is handy if you want to keep a good image contrast/brightness, but keep in mind that other
|
||||
// parameters like haloing and bloom.
|
||||
|
||||
// Aperture grille/slot mask (shadow mask not implemented) are handled via *DARKLINES*
|
||||
// Draw darklines on screen coordinates, by mixing black pixels with the source image
|
||||
// on final viewport coordinates.
|
||||
// "DARKLINES_STRENGTH" expresses the final strenght of the effect.
|
||||
// if "DO_DARKLINES_VOFFSET" is 0, straight horizontal black lines will be painted that emulates an aperture grille.
|
||||
// "DARKLINES_PERIOD" expresses every how many lines draw a black one (or the height ov the RGB triads)
|
||||
// "DO_DARKLINES_VOFFSET" lets you to vertically offset by ""DARKLINES_PERIOD/2" the lines every 3 screen pixels,
|
||||
// allowing, in conjunction with RGB mask, to emulate slot mask
|
||||
// MASK_COMPENSATION will, where possible, compensate for the loss of brightness by smartly pushing the source luminance
|
||||
|
||||
#pragma parameter DO_VMASK_AND_DARKLINES "★ RGB Masks and/or Darklines enable? ==>" 0.0 0.0 1.0 1.0
|
||||
|
||||
#pragma parameter MASK_COMPENSATION " Compensate for brightness loss" 0.0 0.0 1.0 0.05
|
||||
|
||||
#pragma parameter VMASK_DARKLINE_SCALE " (HiDPI) Vmask and Darklines multiplier" 1.0 1.0 4.0 1.0
|
||||
#pragma parameter RGB_MASK_STRENGTH " Vmask Strength (0.0 to disable)" 0.75 0.0 1.0 0.05
|
||||
#pragma parameter VMASK_USE_GM " RGB Mask: (LoDPI) Green,Magenta -> BGR" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter VMASK_GAP " RGB Mask: Horizontal Gap between triads" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter VMASK_OVERWHITE " RGB Mask: affect bright colors" 1.0 0.0 1.0 0.05
|
||||
|
||||
#pragma parameter DARKLINES_STRENGTH " Darklines: strength (0.0 to disable)" 0.65 0.0 1.0 0.05
|
||||
#pragma parameter DO_DARKLINES_VOFFSET " Darklines: offset by triads" 1.0 0.0 1.0 1.0
|
||||
#pragma parameter DARKLINES_PERIOD " Darklines: period (triad height)" 4.0 2.0 16.0 2.0
|
||||
#pragma parameter DRKLN_OVERWHITE " Darklines: affect bright colors" 1.0 0.0 1.0 0.05
|
||||
|
||||
|
||||
// Halo
|
||||
// The parameters are the same as input glowing, but this time the effect is applie
|
||||
// after emulating the RGB phosphors the aperture grille or the slot masks and, instead of
|
||||
// multiplying the resulting picture by the source one, it is added.
|
||||
// this means that haloing will produce solid colors,
|
||||
// lessening afromentioned effects on bright colors.
|
||||
#pragma parameter DO_HALO "★ Halo enable? ==>" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter HALO_POWER " Strength" 0.9 0.0 5.0 0.025
|
||||
#pragma parameter HALO_W " Horizontal sharpness" 1.75 0.2 7.0 0.05
|
||||
#pragma parameter HALO_H " Vertical sharpness" 1.75 0.2 7.0 0.05
|
||||
#pragma parameter HALO_GAMMA " Gamma, the higher, the less the halo on dark colors" 2.0 1.0 10.0 0.1
|
||||
|
||||
|
||||
// Scanlines
|
||||
// Blank even source lines, the value from 0.0 to 1.0 expresses the darkness of the blanked lines
|
||||
// 1.0 means no blank at all.
|
||||
// SCANLINE_DARK controls the gap brightness
|
||||
// SCANLINE_COMPENSATION will make scanlines brighter, where possible, to compensate for the loss of brightness
|
||||
// SCANLINE_BLEEDING will make the whiter part of the scanline to bright the gap.
|
||||
|
||||
#pragma parameter DO_SCANLINES "★ Scanlines enable? ==>" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter SCANLINE_DARK " Scanlines gap brightness" 0.0 -0.5 1.0 0.05
|
||||
#pragma parameter SCANLINE_COMPENSATION " Compensate for brightness loss" 0.0 0.0 1.0 0.1
|
||||
#pragma parameter SCANLINES_BLEEDING " Scanlines bleeding" 0.0 0.0 3.0 0.05
|
||||
|
||||
// Alternate the drawing of the scanlines between frames. this will produce a flickering typical of
|
||||
// interlaced screens; 0 disable the effect, 1 always enables it, 2 enables it only when
|
||||
// the shader detects an interlaced signal, which actually means that the vertical resoution is "high enough"
|
||||
#pragma parameter SCANLINE_FLICKERING " Interlace Flicker (0=off,1=on,2=if interlaced)" 2.0 0.0 2.0 1.0
|
||||
#pragma parameter SCANLINE_FLICKERING_POWER " Interlace Flicker power" 0.75 0.0 4.0 0.1
|
||||
|
||||
#pragma parameter SCANLINE_DISABLE_ON_INTERLACE " Disable on interlaced screen" 0.0 0.0 1.0 1.0
|
||||
|
||||
|
||||
// Bloom
|
||||
// The image is downsampled, bloomed and mixed back with the original image.
|
||||
// "BLOOM_MIX" is the final mix strength
|
||||
// "BLOOM_SIZE" is the radius of the blurred image
|
||||
// "BLOOM_QUALITY" express a tradeoff between quality and effect speed.
|
||||
// "BLOOM_GAMMA" allows to apply more bloom on the bright colors of the source image
|
||||
// "BLOOM_POWER" is the additional gain applied to the bloom
|
||||
// "BLOOM_BYPASS" will show only the bloomed component
|
||||
// the original image.
|
||||
#pragma parameter DO_BLOOM "★ Bloom enable? ==>" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter BLOOM_MIX " Final mix, (0.0=off)" 0.2 0.0 1.0 0.01
|
||||
#pragma parameter BLOOM_SIZE " Radius" 2.0 0.25 30.0 0.25
|
||||
#pragma parameter BLOOM_QUALITY " Quality: more is better but slower" 1.0 1.0 32.0 1.0
|
||||
#pragma parameter BLOOM_GAMMA " Input Gamma" 10.0 1.0 10.0 0.1
|
||||
#pragma parameter BLOOM_POWER " Power multiplier" 10.0 1.0 100.0 0.5
|
||||
#pragma parameter BLOOM_GAMMA_OUT " Output Gamma" 10.0 0.1 10.0 0.1
|
||||
#pragma parameter BLOOM_OVER_WHITE " Strength on bright areas (0 = aura)" 0.5 0.0 1.0 0.05
|
||||
#pragma parameter BLOOM_BYPASS " Bypass" 0.0 0.0 1.0 1.0
|
||||
|
||||
//Curvature parameters:
|
||||
#pragma parameter DO_CURVATURE "★ Curvature enable? ==>" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter GEOM_WARP_X " Warp X" 0.3 0.0 6.0 0.05
|
||||
#pragma parameter GEOM_WARP_Y " Warp Y" 0.0 0.0 6.0 0.05
|
||||
#pragma parameter GEOM_CORNER_SIZE " Corner radius" 0.01 0.01 0.1 0.005
|
||||
#pragma parameter GEOM_CORNER_SMOOTH " Corner sharpness" 350.0 50.0 1000.0 25.0
|
||||
|
||||
//Bezel related
|
||||
#pragma parameter DO_BEZEL "★ Bezel enable? ==>" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter BEZEL_R " Bezel color: Red" -0.3 -0.5 0.5 0.01
|
||||
#pragma parameter BEZEL_G " Bezel color: Green" -0.3 -0.5 0.5 0.01
|
||||
#pragma parameter BEZEL_B " Bezel color: Blue" -0.3 -0.5 0.5 0.01
|
||||
#pragma parameter BEZEL_CON " Bezel Contrast" 1.3 0.0 10.0 0.01
|
||||
#pragma parameter BEZEL_INNER_ZOOM " Image zoom" -0.18 -1.5 0.5 0.01
|
||||
#pragma parameter BEZEL_FRAME_ZOOM " Frame zoom" 0.0 -1.5 0.5 0.01
|
||||
#pragma parameter BEZEL_IMAGE_BORDER " Image border" 1.01 1.0 1.2 0.01
|
||||
|
||||
#pragma parameter DO_BG_IMAGE "★ Backgound image enable? ==>" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter LABEL_WARNING1 " ⚠ RetroArch aspect needs to be set to Full! ⚠" 1.0 1.0 1.0 1.0
|
||||
#pragma parameter BG_IMAGE_OVER " Image over content (alpha channel driven)?" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter BG_IMAGE_OFFX " Shift Image over X axis" 0.0 -1.0 1.0 0.001
|
||||
#pragma parameter BG_IMAGE_OFFY " Shift Image over Y axis" 0.0 -1.0 1.0 0.001
|
||||
#pragma parameter BG_IMAGE_ZOOM " Zoom Image" 1.0 -1.0 3.0 0.001
|
||||
|
||||
|
||||
//Back leds
|
||||
//Emulates leds under the monitor frame that slowly reacts to image contents
|
||||
#pragma parameter DO_AMBILIGHT "★ Ambient light leds enable? ==> " 1.0 0.0 1.0 1.0
|
||||
#pragma parameter LABEL_WARNING3 " ⚠ RetroArch aspect needs to be set to Full! ⚠" 1.0 1.0 1.0 1.0
|
||||
#pragma parameter LABEL_WARNING4 " ⚠ Resize the window once if you see glitches! ⚠" 1.0 1.0 1.0 1.0
|
||||
#pragma parameter AMBI_STEPS " Slowness" 60.0 5.0 1000.0 5.0
|
||||
#pragma parameter AMBI_FALLOFF " Light Falloff" 0.7 0.1 3.0 0.01
|
||||
#pragma parameter AMBI_POWER " Led power" 1.5 1.0 7.0 0.05
|
||||
|
||||
|
||||
#pragma parameter label_ar "★ Aspect Ratio " 0.0 0.0 1.0 1.0
|
||||
#pragma parameter ASPECT_X " Aspect Ratio Numerator (-x for a preset below)" 0.0 -5.0 256. 1.0
|
||||
#pragma parameter ASPECT_Y " Aspect Ratio Denominator" 3.0 0.0 256. 1.0
|
||||
#pragma parameter label_aspect_presets " Presets reference list:" 0.0 0.0 0.0 1.0
|
||||
#pragma parameter label_aspect_preset0 " (0 = MAME 1.33)" 0.0 0.0 0.0 1.0
|
||||
#pragma parameter label_aspect_preset1 " (-1 = NTSC 1.5)" 0.0 0.0 0.0 1.0
|
||||
#pragma parameter label_aspect_preset2 " (-2 = PAL 1.25)" 0.0 0.0 0.0 1.0
|
||||
#pragma parameter label_aspect_preset3 " (-3 = Snes 8/7)" 0.0 0.0 0.0 1.0
|
||||
#pragma parameter label_aspect_preset4 " (-4 = Megadrive 10/7)" 0.0 0.0 0.0 1.0
|
||||
#pragma parameter label_aspect_preset5 " (-5 = Uncorrected)" 0.0 0.0 0.0 1.0
|
||||
|
||||
//Full screen glowing
|
||||
//Modulate the image zooming depending on the image luminosity.
|
||||
//You can lower the effect power through the DYNZOOM_FACTOR parameter.
|
||||
#pragma parameter DO_DYNZOOM "★ Luminosity dependant zoom enable? ==>" 1.0 0.0 1.0 1.0
|
||||
#pragma parameter DYNZOOM_FACTOR " Narrowness" 80.0 30.0 120.0 1.0
|
||||
|
||||
|
||||
//Vignette and spot
|
||||
//Emulates the vignette effect and/or a light reflection.
|
||||
#pragma parameter DO_VIGNETTE "★ Vignette enable? ==>" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter V_BYPASS " bypass " 0.0 0.0 1.0 1.0
|
||||
#pragma parameter V_SIZE " size" 1.7 0.0 3.0 0.05
|
||||
#pragma parameter V_POWER " power" 1.1 0.05 2.0 0.05
|
||||
|
||||
#pragma parameter DO_SPOT "★ Spot enable? ==>" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter S_BYPASS " bypass" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter S_POSITION " Position" 0.0 -420.0 378.0 1
|
||||
#pragma parameter S_SIZE " size" 0.4 0.0 1.0 0.01
|
||||
#pragma parameter S_POWER " power" 0.1 0.05 2.0 0.05
|
||||
|
||||
|
||||
// Alternative blanking.
|
||||
// Emulates the low pixel persistance of CRT monitors and reduces the motion blur,
|
||||
// typical of LCD displays, by blanking even/odd screen lines on even/odd frames.
|
||||
// ALT_BLANK_STRENGTH expresses the strength of the "blank".
|
||||
#pragma parameter DO_ALT_BLANK "★ Alternate line blanking enable? ==>" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter ALT_BLANK_STRENGTH " Alternate black frame insertion strength" 0.5 0.0 1.0 0.1
|
||||
#pragma parameter ALT_BLANK_PERIOD " Dark lines period" 4.0 0.0 20.0 1.0
|
||||
|
||||
|
||||
#define DO_FXAA global.DO_FXAA
|
||||
|
||||
#define DO_SAT_BLEED global.DO_SAT_BLEED
|
||||
#define SAT_BLEED_SIZE_LEFT global.SAT_BLEED_SIZE_LEFT
|
||||
#define SAT_BLEED_SIZE_RIGHT global.SAT_BLEED_SIZE_RIGHT
|
||||
#define SAT_BLEED_FALLOFF global.SAT_BLEED_FALLOFF
|
||||
#define SAT_BLEED_STRENGTH global.SAT_BLEED_STRENGTH
|
||||
#define SAT_BLEED_PAL global.SAT_BLEED_PAL
|
||||
//#define prefer_std_pow params.prefer_std_pow
|
||||
|
||||
#define DO_SCANLINES global.DO_SCANLINES
|
||||
#define SCANLINE_DARK params.SCANLINE_DARK
|
||||
#define SCANLINE_OVERWHITE global.SCANLINE_OVERWHITE
|
||||
#define SCANLINE_FLICKERING global.SCANLINE_FLICKERING
|
||||
#define SCANLINE_FLICKERING_POWER global.SCANLINE_FLICKERING_POWER
|
||||
#define SCANLINE_DISABLE_ON_INTERLACE global.SCANLINE_DISABLE_ON_INTERLACE
|
||||
#define SCANLINE_COMPENSATION global.SCANLINE_COMPENSATION
|
||||
|
||||
#define DO_IN_GLOW global.DO_IN_GLOW
|
||||
//#define IN_GLOW_ADD global.IN_GLOW_ADD
|
||||
#define SCANLINES_BLEEDING global.SCANLINES_BLEEDING
|
||||
#define IN_GLOW_WH global.IN_GLOW_WH
|
||||
#define IN_GLOW_POWER global.IN_GLOW_POWER
|
||||
#define IN_GLOW_GAMMA global.IN_GLOW_GAMMA
|
||||
|
||||
#define DO_VMASK_AND_DARKLINES global.DO_VMASK_AND_DARKLINES
|
||||
#define MASK_COMPENSATION global.MASK_COMPENSATION
|
||||
#define RGB_MASK_STRENGTH global.RGB_MASK_STRENGTH
|
||||
#define VMASK_OVERWHITE params.VMASK_OVERWHITE
|
||||
#define VMASK_DARKLINE_SCALE params.VMASK_DARKLINE_SCALE
|
||||
#define VMASK_GAP params.VMASK_GAP
|
||||
#define VMASK_USE_GM params.VMASK_USE_GM
|
||||
|
||||
#define DARKLINES_STRENGTH global.DARKLINES_STRENGTH
|
||||
#define DRKLN_OVERWHITE params.DRKLN_OVERWHITE
|
||||
#define DO_DARKLINES_VOFFSET params.DO_DARKLINES_VOFFSET
|
||||
#define DARKLINES_PERIOD params.DARKLINES_PERIOD
|
||||
|
||||
#define DO_HALO global.DO_HALO
|
||||
#define HALO_W params.HALO_W
|
||||
#define HALO_H params.HALO_H
|
||||
#define HALO_POWER params.HALO_POWER
|
||||
#define HALO_GAMMA params.HALO_GAMMA
|
||||
|
||||
#define DO_BLOOM params.DO_BLOOM
|
||||
#define BLOOM_MIX global.BLOOM_MIX
|
||||
#define BLOOM_QUALITY params.BLOOM_QUALITY
|
||||
#define BLOOM_SIZE global.BLOOM_SIZE
|
||||
#define BLOOM_GAMMA global.BLOOM_GAMMA
|
||||
#define BLOOM_POWER global.BLOOM_POWER
|
||||
#define BLOOM_GAMMA_OUT global.BLOOM_GAMMA_OUT
|
||||
#define BLOOM_OVER_WHITE global.BLOOM_OVER_WHITE
|
||||
#define BLOOM_BYPASS global.BLOOM_BYPASS
|
||||
|
||||
|
||||
#define DO_CCORRECTION global.DO_CCORRECTION
|
||||
#define GAMMA_OUT global.GAMMA_OUT
|
||||
#define SATURATION global.SATURATION
|
||||
#define LUMINANCE global.LUMINANCE
|
||||
#define CONTRAST global.CONTRAST
|
||||
#define BRIGHTNESS global.BRIGHTNESS
|
||||
#define TEMPERATURE global.TEMPERATURE
|
||||
|
||||
#define DO_ALT_BLANK global.DO_ALT_BLANK
|
||||
#define ALT_BLANK_STRENGTH global.ALT_BLANK_STRENGTH
|
||||
#define ALT_BLANK_PERIOD global.ALT_BLANK_PERIOD
|
||||
|
||||
|
||||
#define DO_CURVATURE global.DO_CURVATURE
|
||||
#define GEOM_WARP_X global.GEOM_WARP_X
|
||||
#define GEOM_WARP_Y global.GEOM_WARP_Y
|
||||
#define GEOM_CORNER_SIZE global.GEOM_CORNER_SIZE
|
||||
#define GEOM_CORNER_SMOOTH global.GEOM_CORNER_SMOOTH
|
||||
|
||||
|
||||
#define DO_BEZEL global.DO_BEZEL
|
||||
#define BEZEL_R global.BEZEL_R
|
||||
#define BEZEL_G global.BEZEL_G
|
||||
#define BEZEL_B global.BEZEL_B
|
||||
#define BEZEL_CON global.BEZEL_CON
|
||||
#define BEZEL_INNER_ZOOM global.BEZEL_INNER_ZOOM
|
||||
#define BEZEL_FRAME_ZOOM global.BEZEL_FRAME_ZOOM
|
||||
#define BEZEL_IMAGE_BORDER global.BEZEL_IMAGE_BORDER
|
||||
|
||||
#define DO_SPOT global.DO_SPOT
|
||||
#define S_BYPASS global.S_BYPASS
|
||||
#define S_POSITION global.S_POSITION
|
||||
#define S_SIZE global.S_SIZE
|
||||
#define S_POWER global.S_POWER
|
||||
|
||||
#define DO_DYNZOOM global.DO_DYNZOOM
|
||||
#define DYNZOOM_FACTOR global.DYNZOOM_FACTOR
|
||||
|
||||
#define DO_VIGNETTE global.DO_VIGNETTE
|
||||
#define V_BYPASS global.V_BYPASS
|
||||
#define V_SIZE global.V_SIZE
|
||||
#define V_POWER global.V_POWER
|
||||
|
||||
#define DO_AMBILIGHT global.DO_AMBILIGHT
|
||||
#define AMBI_STEPS global.AMBI_STEPS
|
||||
#define AMBI_FALLOFF global.AMBI_FALLOFF
|
||||
#define AMBI_POWER global.AMBI_POWER
|
||||
#define ASPECT_X global.ASPECT_X
|
||||
#define ASPECT_Y global.ASPECT_Y
|
||||
|
||||
#define DO_BG_IMAGE global.DO_BG_IMAGE
|
||||
#define BG_IMAGE_OVER global.BG_IMAGE_OVER
|
||||
#define BG_IMAGE_OFFY global.BG_IMAGE_OFFY
|
||||
#define BG_IMAGE_OFFX global.BG_IMAGE_OFFX
|
||||
#define BG_IMAGE_ZOOM global.BG_IMAGE_ZOOM
|
||||
|
||||
#define DO_SHIFT_RGB global.DO_SHIFT_RGB
|
||||
#define SHIFT_R global.SHIFT_R
|
||||
#define SHIFT_G global.SHIFT_G
|
||||
#define SHIFT_B global.SHIFT_B
|
||||
#define OFFSET_STRENGTH global.OFFSET_STRENGTH
|
556
bezel/koko-aio/shaders/final_pass.slang
Normal file
556
bezel/koko-aio/shaders/final_pass.slang
Normal file
|
@ -0,0 +1,556 @@
|
|||
#version 450
|
||||
|
||||
/* This pass:
|
||||
* Composes the previous passes
|
||||
* Does masks, spot, bezel, vignette, background image (anything else?)
|
||||
*/
|
||||
|
||||
#include "config.inc"
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
|
||||
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
layout(location = 1) out vec2 vOutputCoord;
|
||||
layout(location = 2) out vec2 spot_offset;
|
||||
layout(location = 3) out vec2 vFragCoord;
|
||||
|
||||
#include "includes/functions.include.slang"
|
||||
|
||||
void main() {
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = get_scaled_coords(TexCoord,global.FinalViewportSize, is_rotated())+vec2(0.00001);
|
||||
vOutputCoord = TexCoord;
|
||||
|
||||
spot_offset = offsets_from_float(S_POSITION+420.0,40);
|
||||
spot_offset = spot_offset / 10.0 + vec2(0.0,1.0);
|
||||
|
||||
vFragCoord = vec2( floor(vOutputCoord.x * params.OutputSize.x),
|
||||
floor(vOutputCoord.y * params.OutputSize.y));
|
||||
}
|
||||
|
||||
|
||||
#pragma stage fragment
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 1) in vec2 vOutputCoord;
|
||||
layout(location = 2) in vec2 spot_offset;
|
||||
layout(location = 3) in vec2 vFragCoord;
|
||||
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
|
||||
|
||||
layout(set = 0, binding = 2) uniform sampler2D bloom_pass_final;
|
||||
layout(set = 0, binding = 3) uniform sampler2D reflected_blurred_pass2;
|
||||
layout(set = 0, binding = 4) uniform sampler2D ambi_temporal_pass;
|
||||
layout(set = 0, binding = 5) uniform sampler2D avglum_pass;
|
||||
layout(set = 0, binding = 6) uniform sampler2D monitor_body;
|
||||
layout(set = 0, binding = 7) uniform sampler2D bg_under;
|
||||
layout(set = 0, binding = 8) uniform sampler2D bg_over;
|
||||
layout(set = 0, binding = 9) uniform sampler2D first_pass;
|
||||
layout(set = 0, binding = 10) uniform sampler2D shift_and_bleed_pass;
|
||||
|
||||
//Ex main_pass layouts:
|
||||
layout(set = 0, binding = 11) uniform sampler2D FXAA_pass;
|
||||
layout(set = 0, binding = 12) uniform sampler2D in_glow_pass;
|
||||
layout(set = 0, binding = 13) uniform sampler2D halo_pass;
|
||||
layout(set = 0, binding = 14) uniform sampler2D avglum_passFeedback;
|
||||
|
||||
//Ex main_pass defines:
|
||||
#define half_pi 1.5707963267949
|
||||
|
||||
#include "includes/functions.include.slang"
|
||||
|
||||
vec3 pixel_vmask(vec3 source, vec3 white_reference, float over_white) {
|
||||
// Simple RGB mask emulation with or without horizontal gap
|
||||
float ooo = 1.0 - RGB_MASK_STRENGTH;
|
||||
|
||||
// RGB mask: R G B
|
||||
vec3 m1 = vec3( 1.0 , ooo , ooo ); //col 1
|
||||
vec3 m2 = vec3( ooo , 1.0 , ooo ); //col 2
|
||||
vec3 m3 = vec3( ooo , ooo , 1.0 ); //col 3
|
||||
vec3 gap = vec3( ooo );
|
||||
|
||||
int col = int( vOutputCoord.x * params.OutputSize.x );
|
||||
vec3 pixel_out;
|
||||
vec3 vmasked;
|
||||
vec4 vec_mod=(vec4(3,1,2,3) + vec4(VMASK_GAP,0.0,0.0,0.0))* VMASK_DARKLINE_SCALE ;
|
||||
|
||||
if (mod(col, vec_mod.x) < vec_mod.y)
|
||||
vmasked = m1 * source;
|
||||
else if (mod(col, vec_mod.x) < vec_mod.z)
|
||||
vmasked = m2 * source;
|
||||
else if (mod(col, vec_mod.x) < vec_mod.w)
|
||||
vmasked = m3 * source;
|
||||
else vmasked = gap * source;
|
||||
|
||||
if (over_white == 1.0) pixel_out = vmasked;
|
||||
else {
|
||||
float whiteness=max(max(white_reference.r,white_reference.g),white_reference.b);
|
||||
whiteness-= over_white;
|
||||
whiteness= clamp(whiteness,0.0,1.0);
|
||||
pixel_out= mix(vmasked,source,whiteness);
|
||||
}
|
||||
return pixel_out;
|
||||
|
||||
}
|
||||
|
||||
|
||||
vec3 pixel_vmask_gm(vec3 source, vec3 white_reference, float over_white) {
|
||||
// Simple RGB mask emulation with or without horizontal gap
|
||||
float ooo = 1.0 - RGB_MASK_STRENGTH;
|
||||
|
||||
// RGB mask: R G B
|
||||
vec3 m1 = vec3( ooo , 1.0 , ooo ); //col 1
|
||||
vec3 m2 = vec3( 1.0 , ooo , 1.0 ); //col 2
|
||||
vec3 gap = vec3( ooo );
|
||||
|
||||
int col = int( vOutputCoord.x * params.OutputSize.x );
|
||||
vec3 pixel_out;
|
||||
vec3 vmasked;
|
||||
vec3 vec_mod=(vec3(2,1,2) + vec3(VMASK_GAP,0.0,0.0))* VMASK_DARKLINE_SCALE ;
|
||||
|
||||
if (mod(col, vec_mod.x) < vec_mod.y)
|
||||
vmasked = m1 * source;
|
||||
else if (mod(col, vec_mod.x) < vec_mod.z)
|
||||
vmasked = m2 * source;
|
||||
else
|
||||
vmasked = gap * source;
|
||||
|
||||
if (over_white == 1.0) pixel_out = vmasked;
|
||||
else {
|
||||
float whiteness=max(max(white_reference.r,white_reference.g),white_reference.b);
|
||||
whiteness-= over_white;
|
||||
whiteness= clamp(whiteness,0.0,1.0);
|
||||
pixel_out= mix(vmasked,source,whiteness);
|
||||
}
|
||||
|
||||
return pixel_out;
|
||||
}
|
||||
|
||||
vec3 pixel_darklines(vec3 source,float darkline_every, float darkline_trans,
|
||||
float do_offset, vec3 white_reference,float over_white) {
|
||||
/* "darklines" are vertical gaps that can be used to emulate aperturegrille
|
||||
* or slotmasks
|
||||
*/
|
||||
|
||||
float Darkline_part_w = (3.0 - VMASK_USE_GM + VMASK_GAP) * VMASK_DARKLINE_SCALE;
|
||||
float Darkline_part_w_x2 = Darkline_part_w*2;
|
||||
|
||||
darkline_every *= VMASK_DARKLINE_SCALE;
|
||||
|
||||
if (over_white != 1.0) {
|
||||
//less effect on bright colors.
|
||||
float whiteness=max(max(white_reference.r,white_reference.g),white_reference.b);
|
||||
darkline_trans+=(whiteness-over_white);
|
||||
darkline_trans=clamp(darkline_trans,0.0,1.0);
|
||||
}
|
||||
|
||||
//Slotmask (darklines are drawn with offset)
|
||||
if (do_offset == 1.0) {
|
||||
bool odd_line_meno_densa = mod(vFragCoord.y, darkline_every) > VMASK_DARKLINE_SCALE ;
|
||||
bool odd_line_piu_densa = !(mod(vFragCoord.y, darkline_every/2) < VMASK_DARKLINE_SCALE && odd_line_meno_densa);
|
||||
bool odd_column = mod(vFragCoord.x + Darkline_part_w , Darkline_part_w_x2) < Darkline_part_w;
|
||||
bool draw_mask = odd_line_piu_densa && !odd_column || odd_column && odd_line_meno_densa;
|
||||
return source * clamp(float(draw_mask),darkline_trans,1.0);
|
||||
}
|
||||
|
||||
//Aperture grille (darklines are drawn straight)
|
||||
bool draw_dark = mod(vFragCoord.y, darkline_every) < VMASK_DARKLINE_SCALE;
|
||||
bool draw_color = !draw_dark;
|
||||
return source * ( float(draw_color) + float(draw_dark) * darkline_trans );
|
||||
}
|
||||
|
||||
float scanline_shape(vec2 coords, bool do_flicker) {
|
||||
/* Produces a B/W scanline shape to be multiplicated by the source
|
||||
* pixel later on to emulate scanline effect.
|
||||
* scanlines can be drawn on odd and even fields alternating on odd and
|
||||
* even frames to emulate that aspect of interlacing.
|
||||
*/
|
||||
|
||||
bool alternate = false;
|
||||
float period = 1.0;
|
||||
|
||||
if (do_flicker) {
|
||||
if (params.FrameCount % 2 == 0.0) alternate = true;
|
||||
if (params.OriginalSize.y > MIN_LINES_INTERLACED ) period = 0.5;
|
||||
}
|
||||
|
||||
float angle = coords.y * pi * params.OriginalSize.y * period;
|
||||
|
||||
float lines;
|
||||
if (alternate)
|
||||
lines = -sin(angle+half_pi); //lines = abs(cos(angle));
|
||||
else
|
||||
lines = sin(angle);
|
||||
lines = (lines*lines);
|
||||
|
||||
if (SCANLINE_DARK >= 0.0) {
|
||||
lines = lines * (1.0 - SCANLINE_DARK) + SCANLINE_DARK;
|
||||
} else {
|
||||
float deepness = -SCANLINE_DARK;
|
||||
lines = lines * ((1-SCANLINE_DARK) ) + SCANLINE_DARK ;
|
||||
}
|
||||
|
||||
return lines;
|
||||
}
|
||||
|
||||
vec4 pixel_main_pass(vec2 coords, bool bBorder_needed) {
|
||||
//Exit if we don't need a border (ambient light/background picture)
|
||||
//And we are outside the the border (unsure if this double check is good for performance) //FIXME
|
||||
if (bBorder_needed)
|
||||
if (vTexCoord.x < 0.0 || vTexCoord.x > 1.0 || vTexCoord.y < 0.0 || vTexCoord.y > 1.0) return vec4(0.0);
|
||||
|
||||
bool isinterlaced = is_interlaced();
|
||||
bool flickering_scanlines = (DO_SCANLINES == 1.0) && scanline_have_to_flicker(isinterlaced) ;
|
||||
|
||||
vec3 pixel_in;
|
||||
vec3 pixel_glowed;
|
||||
|
||||
//Get the first available pixel_in:
|
||||
if (DO_IN_GLOW == 1.0) {
|
||||
pixel_glowed = texture(in_glow_pass,coords).rgb;
|
||||
pixel_in = pixel_glowed; }
|
||||
else if ( DO_SHIFT_RGB + DO_SAT_BLEED > 0.0)
|
||||
pixel_in = texture(shift_and_bleed_pass,coords).rgb ;
|
||||
else if (DO_FXAA > 0.0)
|
||||
pixel_in = texture(FXAA_pass,coords).rgb ;
|
||||
else
|
||||
pixel_in = texture(first_pass,coords).rgb ;
|
||||
|
||||
|
||||
vec3 pixel_out = pixel_in;
|
||||
vec3 pixel_in_clamped = min(pixel_in,vec3(1.0)); //Clamp here for both vmask and darklines.
|
||||
|
||||
//Mask and darklines:
|
||||
if (DO_VMASK_AND_DARKLINES == 1.0 ) {
|
||||
vec3 pixel_in_compensated = pixel_in;
|
||||
|
||||
pixel_in_compensated = pixel_push_luminance(pixel_in, RGB_MASK_STRENGTH * MASK_COMPENSATION);
|
||||
|
||||
if (RGB_MASK_STRENGTH > 0.0) {
|
||||
//Use RGB pattern or exploit RGB layout with green and magenta?
|
||||
if (VMASK_USE_GM < 1.0)
|
||||
pixel_out = pixel_vmask(pixel_in_compensated, pixel_in_clamped, VMASK_OVERWHITE);
|
||||
else
|
||||
pixel_out = pixel_vmask_gm(pixel_in_compensated, pixel_in_clamped, VMASK_OVERWHITE);
|
||||
}
|
||||
|
||||
pixel_out = pixel_push_luminance(pixel_out, DARKLINES_STRENGTH * (1.0/DARKLINES_PERIOD) * MASK_COMPENSATION);
|
||||
|
||||
//Screen lines (slotmask aperture grille)
|
||||
if (DARKLINES_STRENGTH > 0.0 ) {
|
||||
float MYDARKLINES_TRANSPARENCY = 1.0 - DARKLINES_STRENGTH;
|
||||
pixel_out = pixel_darklines(pixel_out,DARKLINES_PERIOD,MYDARKLINES_TRANSPARENCY,DO_DARKLINES_VOFFSET,pixel_in_clamped,DRKLN_OVERWHITE);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//Halo
|
||||
vec3 pixel_haloed;
|
||||
if (DO_HALO == 1.0 ) {
|
||||
pixel_haloed = texture(halo_pass,coords).rgb;
|
||||
pixel_out += pixel_haloed;
|
||||
}
|
||||
|
||||
/* Non flickering scanlines, Don't do them if
|
||||
* - User doesn't want scanlines
|
||||
* - The screen is interlaced and the user doesn't want scanlines on it.
|
||||
*/
|
||||
if ( DO_SCANLINES == 1.0 &&
|
||||
!( isinterlaced && SCANLINE_DISABLE_ON_INTERLACE == 1.0 )
|
||||
) {
|
||||
/* pixel_bleed is the color that will bleed over scanline gap.
|
||||
* It is selected by the first available one depending on the shader
|
||||
* features enabled by the user */
|
||||
vec3 pixel_bleed;
|
||||
if (DO_HALO == 1.0)
|
||||
pixel_bleed = pixel_haloed;
|
||||
else if (DO_IN_GLOW == 1.0)
|
||||
pixel_bleed = pixel_glowed;
|
||||
else
|
||||
pixel_bleed = pixel_in;
|
||||
|
||||
// Optionally apply a gamma correction to the scanline shape.
|
||||
if (SCANLINE_COMPENSATION > 0.0) {
|
||||
float mypow = mix(1.0, (0.33 * SCANLINE_DARK + 0.67), SCANLINE_COMPENSATION);
|
||||
pixel_out = pow(pixel_out,vec3(mypow));
|
||||
}
|
||||
|
||||
float scanline_shape = scanline_shape(coords, flickering_scanlines);
|
||||
//Obtain the scanlines screen by multiplying the scanline shape by the pixel color.
|
||||
vec3 pixel_scanlined = pixel_out * scanline_shape;
|
||||
//Next, emulate the bleeding of the color over the dark part of the scanlined screen.
|
||||
pixel_out = pixel_scanlined + (pixel_out * pixel_bleed * SCANLINES_BLEEDING * (1-scanline_shape));
|
||||
}
|
||||
|
||||
// Apply color correction (in this pass it is just the final output gamma)
|
||||
if (DO_CCORRECTION == 1.0) pixel_out = pow(pixel_out,vec3(GAMMA_OUT));
|
||||
|
||||
//Out
|
||||
return vec4(pixel_out,1.0) ; //* border(border_coords);
|
||||
}
|
||||
|
||||
float global_noise;
|
||||
|
||||
|
||||
vec4 pixel_background_image(bool over){
|
||||
//return the aspect corrected background image:
|
||||
vec2 bg_image_offset=vec2(BG_IMAGE_OFFX,BG_IMAGE_OFFY);
|
||||
if (over) {
|
||||
vec2 tex_size = textureSize(bg_over, 0); // * BG_ZOOM;
|
||||
float bg_over_lod = log2(tex_size.y / global.FinalViewportSize.y);
|
||||
vec2 back_coords = get_scaled_coords_aspect(vOutputCoord+bg_image_offset,global.FinalViewportSize, tex_size.x/tex_size.y, is_rotated());
|
||||
back_coords=zoom(back_coords, BG_IMAGE_ZOOM);
|
||||
return textureLod(bg_over,back_coords,bg_over_lod);
|
||||
}
|
||||
//under
|
||||
vec2 tex_size = textureSize(bg_under, 0); // * BG_ZOOM;
|
||||
float bg_under_lod = log2(tex_size.y / global.FinalViewportSize.y);
|
||||
vec2 back_coords = get_scaled_coords_aspect(vOutputCoord+bg_image_offset,global.FinalViewportSize, tex_size.x/tex_size.y, is_rotated());
|
||||
back_coords=zoom(back_coords, BG_IMAGE_ZOOM);
|
||||
return textureLod(bg_under,back_coords,bg_under_lod);
|
||||
}
|
||||
|
||||
vec3 pixel_border(bool image_over) {
|
||||
/* Returns the surrounding of the tube/bezel:
|
||||
* The led light alone
|
||||
* the led light "under" a background image (alpha driven)
|
||||
*/
|
||||
vec3 pixel_out = vec3(1.0);
|
||||
if (DO_AMBILIGHT == 1.0)
|
||||
pixel_out = texture(ambi_temporal_pass, vOutputCoord + global_noise ).rgb;
|
||||
if (DO_BG_IMAGE == 1.0 && !image_over) {
|
||||
vec4 bg_image = pixel_background_image(false);
|
||||
pixel_out = mix(pixel_out,bg_image.rgb,bg_image.a);
|
||||
}
|
||||
return pixel_out;
|
||||
}
|
||||
|
||||
|
||||
vec3 pixel_alternate(vec3 source, float whiteness) {
|
||||
// Emulate the low crt persistance by only drawing odd/even lines
|
||||
// on odd/even frames
|
||||
float line = vTexCoord.y * params.OutputSize.y;
|
||||
vec3 pixel_out = source;
|
||||
float l_period_half = ALT_BLANK_PERIOD / 2;
|
||||
if (mod(float(params.FrameCount),2.0 ) == 1) {
|
||||
if (mod(line,ALT_BLANK_PERIOD) > l_period_half) pixel_out=mix(source,vec3(0), whiteness) ;
|
||||
} else {
|
||||
if (mod(line,ALT_BLANK_PERIOD) <= l_period_half) pixel_out=mix(source,vec3(0), whiteness) ;
|
||||
}
|
||||
return pixel_out;
|
||||
}
|
||||
|
||||
|
||||
#define bezel_luminance bezel.r
|
||||
vec3 bezel_color(float lum) {
|
||||
//Colorize bezel frame
|
||||
vec3 col = vec3(BEZEL_R,BEZEL_G,BEZEL_B) + lum;
|
||||
float con_max = 0.5 * BEZEL_CON + 0.5;
|
||||
|
||||
col.r = scale_to_range(col.r, -con_max+1, con_max); //contrast
|
||||
col.g = scale_to_range(col.g, -con_max+1, con_max); //contrast
|
||||
col.b = scale_to_range(col.b, -con_max+1, con_max); //contrast
|
||||
return clamp(col,0.0,1.0);
|
||||
}
|
||||
|
||||
vec3 compose_bezel_over(vec3 full_viewport) {
|
||||
vec2 bezel_lut_size = textureSize(monitor_body,0);
|
||||
float bezel_frame_lod = log2(bezel_lut_size.y * (BEZEL_FRAME_ZOOM+1.0) /global.FinalViewportSize.y);
|
||||
vec2 coords_for_bezel = vTexCoord;
|
||||
|
||||
if (BEZEL_FRAME_ZOOM != 0.0)
|
||||
coords_for_bezel = zoomout_coords(vTexCoord,-BEZEL_FRAME_ZOOM,1.0);
|
||||
|
||||
vec2 coords_for_mirror = coords_for_bezel;
|
||||
//No need to draw anything outside this:
|
||||
if (coords_for_bezel.x < 0 || coords_for_bezel.y < 0 || coords_for_bezel.x > 1.0 || coords_for_bezel.y > 1.0) return full_viewport;
|
||||
|
||||
//Main lut:
|
||||
vec4 bezel = textureLod(monitor_body,coords_for_bezel,bezel_frame_lod);
|
||||
|
||||
//No need to draw anything on full alpha:
|
||||
if (bezel.a == 0.0) return full_viewport;
|
||||
|
||||
//We use the red component of the bezel to express its luminance (define bezel_luminance bezel.r)
|
||||
vec3 bezel_colored = bezel_color(bezel_luminance);
|
||||
|
||||
//This is the reflection to be composed over the bezel);
|
||||
vec3 pixel_mirrored = texture(reflected_blurred_pass2,
|
||||
coords_for_mirror + random( min(global.FinalViewportSize.z,global.FinalViewportSize.w), vTexCoord ) ).rgb;
|
||||
|
||||
//Take the reflection modifier from the texture blue component into account; it is/may be used to lower the reflection in the corners.
|
||||
//float reflection = (reflection_shade * 1.4 - 0.4) * bezel.b ;
|
||||
//reflection = clamp (reflection, 0.0, 1.0);
|
||||
float reflection = bezel.b;
|
||||
|
||||
vec3 bezel_out = bezel_colored + (pixel_mirrored * reflection * 0.5) ;
|
||||
|
||||
//Mix a bit of ambient light over the bezel
|
||||
vec4 pixel_avglum = texture(avglum_pass,vOutputCoord);
|
||||
bezel_out = bezel_out + (pixel_avglum.rgb * 0.05);
|
||||
|
||||
//We use the green component to express Hardness/Specularity; there the reflection will be completely diffused.
|
||||
//For the task, we use a mipmap whit adeguate precision.
|
||||
float lut_hardness = bezel.g;
|
||||
if (lut_hardness > 0.0) {
|
||||
bezel_out = bezel_out + ( ( pixel_avglum.rgb + pixel_avglum.a*0.5) * lut_hardness/3.5);
|
||||
}
|
||||
|
||||
return mix(full_viewport, bezel_out, bezel.a);
|
||||
}
|
||||
|
||||
vec4 pixel_inner_frame(vec2 coords, bool bBorder_needed) {
|
||||
//This takes care of drawing the main content.
|
||||
|
||||
vec4 pixel_in = pixel_main_pass(coords, bBorder_needed);
|
||||
vec3 pixel_out = pixel_in.rgb;
|
||||
vec3 bloomed;
|
||||
|
||||
//Mix bloom texture
|
||||
if (DO_BLOOM == 1.0 ) {
|
||||
bloomed=texture(bloom_pass_final, coords).rgb ;
|
||||
if (BLOOM_BYPASS == 1.0)
|
||||
pixel_out = bloomed;
|
||||
else {
|
||||
float over_white_correction = 1.0;
|
||||
if (BLOOM_OVER_WHITE < 1.0) {
|
||||
//Use mipmap to identify bright areas.
|
||||
vec3 avglum = texture(avglum_pass,coords).rgb;
|
||||
//avglum = apply_fuzzy_main_pass(avglum);
|
||||
float b_brightness = max(avglum.b,max(avglum.r,avglum.g));
|
||||
//b_brightness = max(pixel_out.b,max(pixel_out.r,pixel_out.g));
|
||||
|
||||
b_brightness *= 1-BLOOM_OVER_WHITE;
|
||||
over_white_correction =1- b_brightness;
|
||||
}
|
||||
|
||||
pixel_out = pixel_out + (bloomed * BLOOM_MIX * over_white_correction);
|
||||
}
|
||||
}
|
||||
|
||||
//Black frame insertion
|
||||
if (DO_ALT_BLANK == 1.0 ) {
|
||||
pixel_out = pixel_alternate(pixel_out.rgb, ALT_BLANK_STRENGTH );
|
||||
}
|
||||
|
||||
//vignette and spot
|
||||
if (DO_VIGNETTE + DO_SPOT >0.0) {
|
||||
float in_aspect = get_in_aspect();
|
||||
|
||||
if (DO_VIGNETTE == 1.0) {
|
||||
float vignette;
|
||||
float dist = length(vec2((coords.x-0.5)*in_aspect,coords.y-0.5));
|
||||
vignette = smoothstep(V_SIZE,0.0,dist)*V_POWER+global_noise;
|
||||
if (V_BYPASS < 1.0) pixel_out = vignette * clamp(pixel_out,0.0,1.0);
|
||||
else
|
||||
pixel_out = vec3(vignette);
|
||||
}
|
||||
|
||||
if (DO_SPOT == 1.0) {
|
||||
float spot;
|
||||
float dist = length(vec2((coords.x-0.5)*in_aspect,coords.y-0.5)+spot_offset);
|
||||
spot = smoothstep(S_SIZE,0.0,dist)*S_POWER+global_noise;
|
||||
if (S_BYPASS < 1.0) pixel_out = spot + pixel_out;
|
||||
else
|
||||
pixel_out = vec3(spot);
|
||||
}
|
||||
}
|
||||
|
||||
//smooth border (edge)
|
||||
float border_inner_frame = 1.0;
|
||||
if (DO_BEZEL==1.0 || DO_CURVATURE == 1.0)
|
||||
border_inner_frame = border(coords);
|
||||
|
||||
float pixel_out_alpha = pixel_in.a * border_inner_frame;
|
||||
|
||||
//Out
|
||||
return vec4(pixel_out,pixel_out_alpha) * border_inner_frame;
|
||||
}
|
||||
|
||||
|
||||
vec4 main_wrap(vec2 coords){
|
||||
/* Handle inner border and outer border, not bezel */
|
||||
if (DO_VIGNETTE + DO_SPOT + DO_AMBILIGHT >0.0) global_noise = random(NOISEPOWER, vTexCoord * params.FrameCount);
|
||||
|
||||
//Just do pixel_inner_frame() and exit when there is no need to paint border.
|
||||
if (!border_needed()) return pixel_inner_frame(coords, false);
|
||||
|
||||
//From now on, we need a border.
|
||||
bool bIs_outer_frame = ((vTexCoord.x < 0.0) || (vTexCoord.x > 1.0));
|
||||
|
||||
//Handle outer frame cases
|
||||
//if we want ambilights in the outer frame, draw it and return
|
||||
if (bIs_outer_frame)
|
||||
return vec4(pixel_border(BG_IMAGE_OVER == 1.0),1.0);
|
||||
|
||||
//But if it is just outer frame, just make it black.
|
||||
if (bIs_outer_frame) return vec4(0.0);
|
||||
|
||||
|
||||
//Handle inner frame cases
|
||||
vec4 vPixel_inner_frame = pixel_inner_frame(coords, true);
|
||||
//mix ambilight in the inner frame too, as curvature could shrink into the inner frame.
|
||||
bool draw_border = true;
|
||||
//Not painting ambilights here is the best way to cheaply draw a border around the frame
|
||||
if (DO_BEZEL == 1.0) {
|
||||
vec2 vTexCoord_zoomout = zoomout_coords(vTexCoord, -BEZEL_INNER_ZOOM , 1.0);
|
||||
float border_start = 1-BEZEL_IMAGE_BORDER;
|
||||
//Not using curved coords here because crazy things would happen with vertical games
|
||||
draw_border = vTexCoord_zoomout.x < border_start || vTexCoord_zoomout.x > BEZEL_IMAGE_BORDER ||
|
||||
vTexCoord_zoomout.y < border_start || vTexCoord_zoomout.y > BEZEL_IMAGE_BORDER ;
|
||||
}
|
||||
if (draw_border)
|
||||
return vec4(mix(pixel_border(BG_IMAGE_OVER == 1.0).rgb,vPixel_inner_frame.rgb,min(vPixel_inner_frame.a*1.5,1.0)),vPixel_inner_frame.a);
|
||||
//return vec4(1.0,0.0,0.0,1.0);
|
||||
|
||||
//Last case, inner border without ambilight:
|
||||
return vPixel_inner_frame;
|
||||
}
|
||||
|
||||
|
||||
void main() {
|
||||
|
||||
vec2 coords = vTexCoord;
|
||||
//Luminosity dependant zoom
|
||||
if (DO_DYNZOOM == 1.0) {
|
||||
float zoomin = 1.0 + (texture(avglum_passFeedback, vec2(0.25,0.25) ).a/ DYNZOOM_FACTOR);
|
||||
coords = zoom(coords, zoomin);
|
||||
}
|
||||
|
||||
//Curvature
|
||||
if (DO_CURVATURE == 1.0) {
|
||||
if ((GEOM_WARP_X > 0.0) || (GEOM_WARP_Y > 0.0))
|
||||
coords = Warp(coords,GEOM_WARP_X,GEOM_WARP_Y);
|
||||
}
|
||||
|
||||
//Scale coords according to bezel settings?
|
||||
if (DO_BEZEL == 1.0) {
|
||||
coords = zoomout_coords(coords, -BEZEL_INNER_ZOOM , 1.0);
|
||||
}
|
||||
|
||||
//"Just" handle inner and outer frame here:
|
||||
vec4 pixel_out = main_wrap(coords);
|
||||
|
||||
//Draw bezel
|
||||
if (DO_BEZEL == 1.0) {
|
||||
pixel_out = vec4(compose_bezel_over(pixel_out.rgb),1.0);
|
||||
}
|
||||
|
||||
//Draw an image "Over" the bezel with an hole inside by the alpha channel
|
||||
if (DO_BG_IMAGE == 1.0 && BG_IMAGE_OVER==1.0) {
|
||||
vec4 bg_image = pixel_background_image(true);
|
||||
pixel_out = mix(pixel_out,bg_image,bg_image.a);
|
||||
}
|
||||
|
||||
//For debug purposes:
|
||||
//quad split screen
|
||||
//if ( (vOutputCoord.x < 0.5 && vOutputCoord.y > 0.5) || (vOutputCoord.x > 0.5 && vOutputCoord.y < 0.5) ) pixel_out = texture(first_pass,vOutputCoord);
|
||||
//split screen
|
||||
//if (vTexCoord.y < 0.5) pixel_out = texture(first_pass,vTexCoord);
|
||||
//pixel_out = texture(avglum_pass,vTexCoord);
|
||||
|
||||
FragColor = pixel_out;
|
||||
}
|
177
bezel/koko-aio/shaders/first_pass.slang
Normal file
177
bezel/koko-aio/shaders/first_pass.slang
Normal file
|
@ -0,0 +1,177 @@
|
|||
#version 450
|
||||
#include "config.inc"
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
layout(location = 4) out vec3 temperature_rgb;
|
||||
|
||||
#include "includes/functions.include.slang"
|
||||
|
||||
|
||||
vec3 kelvin2rgb(float k) {
|
||||
//Convert kelvin temperature to rgb factors
|
||||
k = clamp(k,1000,40000);
|
||||
k=k/100.0;
|
||||
float tmpCalc;
|
||||
vec3 pixel_out;
|
||||
if (k<=66) {
|
||||
pixel_out.r = 255;
|
||||
pixel_out.g = 99.47080258612 * log(k) - 161.11956816610;
|
||||
} else {
|
||||
pixel_out.r = 329.6987274461 * pow(k - 60 ,-0.13320475922);
|
||||
pixel_out.g = 288.12216952833 * pow(k-60, -0.07551484921);
|
||||
}
|
||||
|
||||
if (k >= 66)
|
||||
pixel_out.b = 255;
|
||||
else if (k<=19)
|
||||
pixel_out.b = 0;
|
||||
else
|
||||
pixel_out.b = 138.51773122311 * log(k - 10) - 305.04479273072;
|
||||
|
||||
return pixel_out/255.0;
|
||||
}
|
||||
|
||||
|
||||
void main() {
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = TexCoord;
|
||||
if (TEMPERATURE != 6500)
|
||||
temperature_rgb = kelvin2rgb(TEMPERATURE);
|
||||
}
|
||||
|
||||
#pragma stage fragment
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 4) in vec3 temperature_rgb;
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
|
||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||
|
||||
#include "includes/functions.include.slang"
|
||||
|
||||
vec3 color_tools(vec3 pixel_out) {
|
||||
//Apply color corrections to input signal.
|
||||
|
||||
//Push luminance without clipping
|
||||
pixel_out = pixel_push_luminance(pixel_out,LUMINANCE);
|
||||
|
||||
//Modify saturation
|
||||
if (!(SATURATION == 1.0)) {
|
||||
const vec3 W = vec3(0.2125, 0.7154, 0.0721);
|
||||
vec3 intensity = vec3(dot(pixel_out.rgb, W));
|
||||
pixel_out.rgb = mix(intensity, pixel_out.rgb, SATURATION);
|
||||
}
|
||||
|
||||
//Modify contrast and brightness
|
||||
if (CONTRAST != 0.0 || BRIGHTNESS != 0.0)
|
||||
pixel_out.rgb = scale_to_range_vec3(pixel_out.rgb, -CONTRAST, 1+CONTRAST) + BRIGHTNESS;
|
||||
|
||||
//Modify color temperature
|
||||
if (TEMPERATURE != 6500.0) pixel_out.rgb = pixel_out.rgb * temperature_rgb;
|
||||
return pixel_out;
|
||||
}
|
||||
|
||||
|
||||
vec3 pixel_no_flicker(vec2 coord){
|
||||
vec3 pixel_out = texture(Source,coord).rgb;
|
||||
if (DO_CCORRECTION == 1.0)
|
||||
pixel_out = color_tools(pixel_out);
|
||||
return pixel_out.rgb;
|
||||
}
|
||||
|
||||
vec3 pixel_flickering() {
|
||||
/* Simulates the flickering effect of the interlaced screens.
|
||||
* As I remember, it was visible when a line and the next had high
|
||||
* luminosity differences.
|
||||
* So we need sample the current line and the previous one
|
||||
* (eventually applying color corrections to both).
|
||||
*
|
||||
* Repeating the following:
|
||||
* On frame 0, return the "clean" pixel
|
||||
* On frame 1, mix the upper pixel with the current one
|
||||
* On frame 2, mix the lower pixel with the current one
|
||||
*
|
||||
* The effect of the mix is the flickering itself, and we modulate
|
||||
* the mix according to the luminance difference between the current
|
||||
* pixel and the mixed one.
|
||||
*
|
||||
* We choose to alternate on a period of 3,
|
||||
* (thus considering the upper pixel and the lower one)
|
||||
* or else the high pixel persistance of lcd displays wont allow
|
||||
* to see the effect (the lcd panel would just mix the pixels by itself (meh).
|
||||
*/
|
||||
|
||||
vec3 pixel_cur = pixel_no_flicker(vTexCoord);
|
||||
float mymod = params.FrameCount % 3;
|
||||
|
||||
if (mymod == 0.0) return pixel_cur;
|
||||
float line_tick = (params.OriginalSize.y > MIN_LINES_INTERLACED ) ? 1 : 2 ;
|
||||
|
||||
vec3 flickline;
|
||||
if (mymod == 1.0 )
|
||||
flickline = pixel_no_flicker(vTexCoord + vec2(0.0,params.OriginalSize.w/line_tick));
|
||||
else if (mymod == 2.0)
|
||||
flickline = pixel_no_flicker(vTexCoord - vec2(0.0,params.OriginalSize.w/line_tick));
|
||||
|
||||
float lumdiff = (flickline.r+flickline.g+flickline.b)/3.0 -
|
||||
(pixel_cur.r+pixel_cur.g+pixel_cur.b)/3.0;
|
||||
|
||||
if (lumdiff > 0.0) {
|
||||
lumdiff = scale_to_range(lumdiff,0.0,SCANLINE_FLICKERING_POWER);
|
||||
return mix(pixel_cur,flickline,lumdiff);
|
||||
} else {
|
||||
return pixel_cur;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void debug() {
|
||||
//Just test patterns here
|
||||
vec3 pixel_debug;
|
||||
//Use one of the following to debug:
|
||||
//pixel_debug=vec3(abs(sin(params.FrameCount/3.14/8.0))); //white fade
|
||||
//pixel_debug=vec3(abs(sin(params.FrameCount/3.14/20)),0.0,0.0); //red fade
|
||||
//pixel_debug=vec3(1.0);
|
||||
//pixel_debug=vec3(0.0,1.0,0.0);
|
||||
//pixel_debug=vec3(0.38,0.0,1.0)*vTexCoord.x;
|
||||
pixel_debug=vec3(vTexCoord.x); //H bw gradient
|
||||
//pixel_debug=vec3(floor(vTexCoord.x*16)/16); //H bw gradient 16gray
|
||||
//pixel_debug=vec3(floor(vTexCoord.x*64)/64); //H bw gradient 64gray
|
||||
//pixel_debug=vec3(floor(vTexCoord.x*128)/128); //H bw gradient 128gray
|
||||
//pixel_debug=vec3(1,0,0,0)*floor(vTexCoord.x*64)/64; //H red gradient 64
|
||||
//if (mod(params.FrameCount,100) < 50) pixel_debug=vec3(0.0) ; else pixel_debug=vec3(1.0);
|
||||
//FragColor = vec4(color_tools(pixel_debug).rgb,1.0);
|
||||
FragColor = vec4(pixel_debug,1.0);
|
||||
}
|
||||
|
||||
|
||||
void main() {
|
||||
|
||||
//debug(); return;
|
||||
|
||||
/* since flickering code needs
|
||||
luminosity difference between 2 vertical lines
|
||||
both have to be processed through color corrections and rgb pixel offsets.
|
||||
before flickering code can operate. (pixel_no_flicker)
|
||||
Therefore we call pixel_no_flicker inside it when we want flickering scanlines
|
||||
and outside id when we dont.
|
||||
*/
|
||||
|
||||
if (DO_SCANLINES == 0.0) {
|
||||
FragColor= vec4(pixel_no_flicker(vTexCoord),1.0);
|
||||
return;
|
||||
}
|
||||
|
||||
//Implicit else: DO_SCANLINES == 1.0
|
||||
if (scanline_have_to_flicker(is_interlaced())) {
|
||||
FragColor = vec4(pixel_flickering(),1.0);
|
||||
return;
|
||||
}
|
||||
|
||||
//Implicit else: DO_SCANLINES == 1.0 but no flickering needed.
|
||||
FragColor = vec4(pixel_no_flicker(vTexCoord),1.0);
|
||||
}
|
||||
|
||||
|
271
bezel/koko-aio/shaders/fxaa.slang
Normal file
271
bezel/koko-aio/shaders/fxaa.slang
Normal file
|
@ -0,0 +1,271 @@
|
|||
#version 450
|
||||
#include "config.inc"
|
||||
|
||||
/**
|
||||
* @license
|
||||
* Copyright (c) 2011 NVIDIA Corporation. All rights reserved.
|
||||
*
|
||||
* TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THIS SOFTWARE IS PROVIDED
|
||||
* *AS IS* AND NVIDIA AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES, EITHER EXPRESS
|
||||
* OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, NONINFRINGEMENT,IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL NVIDIA
|
||||
* OR ITS SUPPLIERS BE LIABLE FOR ANY DIRECT, SPECIAL, INCIDENTAL, INDIRECT, OR
|
||||
* CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS
|
||||
* OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR ANY
|
||||
* OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,
|
||||
* EVEN IF NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
/*
|
||||
FXAA_PRESET - Choose compile-in knob preset 0-5.
|
||||
------------------------------------------------------------------------------
|
||||
FXAA_EDGE_THRESHOLD - The minimum amount of local contrast required
|
||||
to apply algorithm.
|
||||
1.0/3.0 - too little
|
||||
1.0/4.0 - good start
|
||||
1.0/8.0 - applies to more edges
|
||||
1.0/16.0 - overkill
|
||||
------------------------------------------------------------------------------
|
||||
FXAA_EDGE_THRESHOLD_MIN - Trims the algorithm from processing darks.
|
||||
Perf optimization.
|
||||
1.0/32.0 - visible limit (smaller isn't visible)
|
||||
1.0/16.0 - good compromise
|
||||
1.0/12.0 - upper limit (seeing artifacts)
|
||||
------------------------------------------------------------------------------
|
||||
FXAA_SEARCH_STEPS - Maximum number of search steps for end of span.
|
||||
------------------------------------------------------------------------------
|
||||
FXAA_SEARCH_THRESHOLD - Controls when to stop searching.
|
||||
1.0/4.0 - seems to be the best quality wise
|
||||
------------------------------------------------------------------------------
|
||||
FXAA_SUBPIX_TRIM - Controls sub-pixel aliasing removal.
|
||||
1.0/2.0 - low removal
|
||||
1.0/3.0 - medium removal
|
||||
1.0/4.0 - default removal
|
||||
1.0/8.0 - high removal
|
||||
0.0 - complete removal
|
||||
------------------------------------------------------------------------------
|
||||
FXAA_SUBPIX_CAP - Insures fine detail is not completely removed.
|
||||
This is important for the transition of sub-pixel detail,
|
||||
like fences and wires.
|
||||
3.0/4.0 - default (medium amount of filtering)
|
||||
7.0/8.0 - high amount of filtering
|
||||
1.0 - no capping of sub-pixel aliasing removal
|
||||
*/
|
||||
|
||||
#ifndef FXAA_PRESET
|
||||
#define FXAA_PRESET 4
|
||||
#endif
|
||||
|
||||
#if (FXAA_PRESET == 6)
|
||||
#define FXAA_EDGE_THRESHOLD (1.0/16.0)
|
||||
#define FXAA_EDGE_THRESHOLD_MIN (1.0/12.0)
|
||||
#define FXAA_SEARCH_STEPS 128
|
||||
#define FXAA_SEARCH_THRESHOLD (1.0/16.0)
|
||||
#define FXAA_SUBPIX_CAP (1.0)
|
||||
#define FXAA_SUBPIX_TRIM (0.0)
|
||||
#endif
|
||||
|
||||
#if (FXAA_PRESET == 3)
|
||||
#define FXAA_EDGE_THRESHOLD (1.0/16.0)
|
||||
#define FXAA_EDGE_THRESHOLD_MIN (1.0/16.0)
|
||||
#define FXAA_SEARCH_STEPS 16
|
||||
#define FXAA_SEARCH_THRESHOLD (1.0/4.0)
|
||||
#define FXAA_SUBPIX_CAP (3.0/4.0)
|
||||
#define FXAA_SUBPIX_TRIM (1.0/4.0)
|
||||
#endif
|
||||
#if (FXAA_PRESET == 4)
|
||||
#define FXAA_EDGE_THRESHOLD (1.0/8.0)
|
||||
#define FXAA_EDGE_THRESHOLD_MIN (1.0/24.0)
|
||||
#define FXAA_SEARCH_STEPS 8
|
||||
#define FXAA_SEARCH_THRESHOLD (1.0/4.0)
|
||||
#define FXAA_SUBPIX_CAP (3.0/4.0)
|
||||
#define FXAA_SUBPIX_TRIM (1.0/8.0)
|
||||
#endif
|
||||
#if (FXAA_PRESET == 5)
|
||||
#define FXAA_EDGE_THRESHOLD (1.0/16.0)
|
||||
#define FXAA_EDGE_THRESHOLD_MIN (1.0/12.0)
|
||||
#define FXAA_SEARCH_STEPS 32
|
||||
#define FXAA_SEARCH_THRESHOLD (1.0/4.0)
|
||||
#define FXAA_SUBPIX_CAP (7.0/8.0)
|
||||
#define FXAA_SUBPIX_TRIM (1.0/8.0)
|
||||
#endif
|
||||
|
||||
#define FXAA_SUBPIX_TRIM_SCALE (1.0/(1.0 - FXAA_SUBPIX_TRIM))
|
||||
|
||||
// Return the luma, the estimation of luminance from rgb inputs.
|
||||
// This approximates luma using one FMA instruction,
|
||||
// skipping normalization and tossing out blue.
|
||||
// FxaaLuma() will range 0.0 to 2.963210702.
|
||||
float FxaaLuma(vec3 rgb) {
|
||||
return rgb.y * (0.587/0.299) + rgb.x;
|
||||
}
|
||||
|
||||
vec3 FxaaLerp3(vec3 a, vec3 b, float amountOfA) {
|
||||
return (vec3(-amountOfA) * b) + ((a * vec3(amountOfA)) + b);
|
||||
}
|
||||
|
||||
vec4 FxaaTexOff(sampler2D tex, vec2 pos, ivec2 off, vec2 rcpFrame) {
|
||||
float x = pos.x + float(off.x) * rcpFrame.x;
|
||||
float y = pos.y + float(off.y) * rcpFrame.y;
|
||||
return textureLod(tex, vec2(x, y),0);
|
||||
}
|
||||
|
||||
// pos is the output of FxaaVertexShader interpolated across screen.
|
||||
// xy -> actual texture position {0.0 to 1.0}
|
||||
// rcpFrame should be a uniform equal to {1.0/frameWidth, 1.0/frameHeight}
|
||||
vec3 FxaaPixelShader(vec2 pos, sampler2D tex, vec2 rcpFrame)
|
||||
{
|
||||
vec3 rgbN = FxaaTexOff(tex, pos.xy, ivec2( 0,-1), rcpFrame).xyz;
|
||||
vec3 rgbW = FxaaTexOff(tex, pos.xy, ivec2(-1, 0), rcpFrame).xyz;
|
||||
vec3 rgbM = FxaaTexOff(tex, pos.xy, ivec2( 0, 0), rcpFrame).xyz;
|
||||
vec3 rgbE = FxaaTexOff(tex, pos.xy, ivec2( 1, 0), rcpFrame).xyz;
|
||||
vec3 rgbS = FxaaTexOff(tex, pos.xy, ivec2( 0, 1), rcpFrame).xyz;
|
||||
|
||||
float lumaN = FxaaLuma(rgbN);
|
||||
float lumaW = FxaaLuma(rgbW);
|
||||
float lumaM = FxaaLuma(rgbM);
|
||||
float lumaE = FxaaLuma(rgbE);
|
||||
float lumaS = FxaaLuma(rgbS);
|
||||
float rangeMin = min(lumaM, min(min(lumaN, lumaW), min(lumaS, lumaE)));
|
||||
float rangeMax = max(lumaM, max(max(lumaN, lumaW), max(lumaS, lumaE)));
|
||||
|
||||
float range = rangeMax - rangeMin;
|
||||
if(range < max(FXAA_EDGE_THRESHOLD_MIN, rangeMax * FXAA_EDGE_THRESHOLD))
|
||||
{
|
||||
return rgbM;
|
||||
}
|
||||
|
||||
vec3 rgbL = rgbN + rgbW + rgbM + rgbE + rgbS;
|
||||
|
||||
float lumaL = (lumaN + lumaW + lumaE + lumaS) * 0.25;
|
||||
float rangeL = abs(lumaL - lumaM);
|
||||
float blendL = max(0.0, (rangeL / range) - FXAA_SUBPIX_TRIM) * FXAA_SUBPIX_TRIM_SCALE;
|
||||
blendL = min(FXAA_SUBPIX_CAP, blendL);
|
||||
|
||||
vec3 rgbNW = FxaaTexOff(tex, pos.xy, ivec2(-1,-1), rcpFrame).xyz;
|
||||
vec3 rgbNE = FxaaTexOff(tex, pos.xy, ivec2( 1,-1), rcpFrame).xyz;
|
||||
vec3 rgbSW = FxaaTexOff(tex, pos.xy, ivec2(-1, 1), rcpFrame).xyz;
|
||||
vec3 rgbSE = FxaaTexOff(tex, pos.xy, ivec2( 1, 1), rcpFrame).xyz;
|
||||
rgbL += (rgbNW + rgbNE + rgbSW + rgbSE);
|
||||
rgbL *= vec3(1.0/9.0);
|
||||
|
||||
float lumaNW = FxaaLuma(rgbNW);
|
||||
float lumaNE = FxaaLuma(rgbNE);
|
||||
float lumaSW = FxaaLuma(rgbSW);
|
||||
float lumaSE = FxaaLuma(rgbSE);
|
||||
|
||||
float edgeVert =
|
||||
abs((0.25 * lumaNW) + (-0.5 * lumaN) + (0.25 * lumaNE)) +
|
||||
abs((0.50 * lumaW ) + (-1.0 * lumaM) + (0.50 * lumaE )) +
|
||||
abs((0.25 * lumaSW) + (-0.5 * lumaS) + (0.25 * lumaSE));
|
||||
float edgeHorz =
|
||||
abs((0.25 * lumaNW) + (-0.5 * lumaW) + (0.25 * lumaSW)) +
|
||||
abs((0.50 * lumaN ) + (-1.0 * lumaM) + (0.50 * lumaS )) +
|
||||
abs((0.25 * lumaNE) + (-0.5 * lumaE) + (0.25 * lumaSE));
|
||||
|
||||
bool horzSpan = edgeHorz >= edgeVert;
|
||||
float lengthSign = horzSpan ? -rcpFrame.y : -rcpFrame.x;
|
||||
|
||||
if(!horzSpan)
|
||||
{
|
||||
lumaN = lumaW;
|
||||
lumaS = lumaE;
|
||||
}
|
||||
|
||||
float gradientN = abs(lumaN - lumaM);
|
||||
float gradientS = abs(lumaS - lumaM);
|
||||
lumaN = (lumaN + lumaM) * 0.5;
|
||||
lumaS = (lumaS + lumaM) * 0.5;
|
||||
|
||||
if (gradientN < gradientS)
|
||||
{
|
||||
lumaN = lumaS;
|
||||
lumaN = lumaS;
|
||||
gradientN = gradientS;
|
||||
lengthSign *= -1.0;
|
||||
}
|
||||
|
||||
vec2 posN;
|
||||
posN.x = pos.x + (horzSpan ? 0.0 : lengthSign * 0.5);
|
||||
posN.y = pos.y + (horzSpan ? lengthSign * 0.5 : 0.0);
|
||||
|
||||
gradientN *= FXAA_SEARCH_THRESHOLD;
|
||||
|
||||
vec2 posP = posN;
|
||||
vec2 offNP = horzSpan ? vec2(rcpFrame.x, 0.0) : vec2(0.0, rcpFrame.y);
|
||||
float lumaEndN = lumaN;
|
||||
float lumaEndP = lumaN;
|
||||
bool doneN = false;
|
||||
bool doneP = false;
|
||||
posN += offNP * vec2(-1.0, -1.0);
|
||||
posP += offNP * vec2( 1.0, 1.0);
|
||||
|
||||
for(int i = 0; i < FXAA_SEARCH_STEPS; i++) {
|
||||
if(!doneN)
|
||||
{
|
||||
lumaEndN = FxaaLuma(textureLod(tex, posN.xy,0.0).xyz);
|
||||
}
|
||||
if(!doneP)
|
||||
{
|
||||
lumaEndP = FxaaLuma(textureLod(tex, posP.xy,0.0).xyz);
|
||||
}
|
||||
|
||||
doneN = doneN || (abs(lumaEndN - lumaN) >= gradientN);
|
||||
doneP = doneP || (abs(lumaEndP - lumaN) >= gradientN);
|
||||
|
||||
if(doneN && doneP)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if(!doneN)
|
||||
{
|
||||
posN -= offNP;
|
||||
}
|
||||
if(!doneP)
|
||||
{
|
||||
posP += offNP;
|
||||
}
|
||||
}
|
||||
|
||||
float dstN = horzSpan ? pos.x - posN.x : pos.y - posN.y;
|
||||
float dstP = horzSpan ? posP.x - pos.x : posP.y - pos.y;
|
||||
bool directionN = dstN < dstP;
|
||||
lumaEndN = directionN ? lumaEndN : lumaEndP;
|
||||
|
||||
if(((lumaM - lumaN) < 0.0) == ((lumaEndN - lumaN) < 0.0))
|
||||
{
|
||||
lengthSign = 0.0;
|
||||
}
|
||||
|
||||
|
||||
float spanLength = (dstP + dstN);
|
||||
dstN = directionN ? dstN : dstP;
|
||||
float subPixelOffset = (0.5 + (dstN * (-1.0/spanLength))) * lengthSign;
|
||||
vec3 rgbF = textureLod(tex, vec2(
|
||||
pos.x + (horzSpan ? 0.0 : subPixelOffset),
|
||||
pos.y + (horzSpan ? subPixelOffset : 0.0)),0.0).xyz;
|
||||
return FxaaLerp3(rgbL, rgbF, blendL);
|
||||
}
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = TexCoord;
|
||||
}
|
||||
|
||||
#pragma stage fragment
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
layout(set = 0, binding = 2) uniform sampler2D first_pass;
|
||||
|
||||
|
||||
|
||||
void main() {
|
||||
if ( DO_FXAA == 0.0 ) return;
|
||||
FragColor = vec4(FxaaPixelShader(vTexCoord, first_pass, vec2(global.first_passSize.z, global.first_passSize.w)),0.0);
|
||||
}
|
60
bezel/koko-aio/shaders/halo.slang
Normal file
60
bezel/koko-aio/shaders/halo.slang
Normal file
|
@ -0,0 +1,60 @@
|
|||
#version 450
|
||||
#include "config.inc"
|
||||
#define pi 3.141592654
|
||||
|
||||
// Blur sizes must not depend on input resolution
|
||||
#define scalemod_x (global.in_glow_passSize.x/360.0)
|
||||
#define scalemod_y (global.in_glow_passSize.y/270.0)
|
||||
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
layout(location = 1) out vec2 vOutputCoord;
|
||||
|
||||
|
||||
void main() {
|
||||
gl_Position = global.MVP * Position;
|
||||
//vTexCoord = get_scaled_coords(TexCoord);
|
||||
vTexCoord = TexCoord;
|
||||
vOutputCoord = TexCoord;
|
||||
}
|
||||
|
||||
#pragma stage fragment
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 1) in vec2 vOutputCoord;
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
layout(set = 0, binding = 2) uniform sampler2D FXAA_pass;
|
||||
layout(set = 0, binding = 3) uniform sampler2D first_pass;
|
||||
layout(set = 0, binding = 4) uniform sampler2D in_glow_pass;
|
||||
layout(set = 0, binding = 5) uniform sampler2D shift_and_bleed_pass;
|
||||
// What follows is an ugly optimization with a lot of code copied and pasted repeated multiple times,
|
||||
// shamlessly hidden into an include:
|
||||
#include "includes/pixel_glows.include.slang"
|
||||
|
||||
|
||||
vec4 main_wrap(void) {
|
||||
//Halo
|
||||
vec3 pixel_haloed;
|
||||
vec2 halo_coords = vTexCoord;
|
||||
|
||||
if (DO_IN_GLOW == 1.0)
|
||||
pixel_haloed = pixel_glow(in_glow_pass, HALO_W,HALO_H,HALO_POWER,HALO_GAMMA,halo_coords, global.FXAA_passSize, global.FXAA_passSize).rgb;
|
||||
else if ( DO_SHIFT_RGB + DO_SAT_BLEED > 0.0)
|
||||
pixel_haloed = pixel_glow(shift_and_bleed_pass, HALO_W,HALO_H,HALO_POWER,HALO_GAMMA,halo_coords, params.OutputSize, params.OutputSize).rgb;
|
||||
else if (DO_FXAA > 0.0)
|
||||
pixel_haloed = pixel_glow(FXAA_pass, HALO_W,HALO_H,HALO_POWER,HALO_GAMMA,halo_coords, global.FXAA_passSize, global.FXAA_passSize).rgb;
|
||||
else
|
||||
pixel_haloed = pixel_glow(first_pass, HALO_W,HALO_H,HALO_POWER,HALO_GAMMA,halo_coords, global.FXAA_passSize, global.FXAA_passSize).rgb;
|
||||
|
||||
return vec4(pixel_haloed.rgb,1.0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void main() {
|
||||
if (DO_HALO == 0.0 ) return;
|
||||
|
||||
FragColor = main_wrap();
|
||||
}
|
46
bezel/koko-aio/shaders/in_glow.slang
Normal file
46
bezel/koko-aio/shaders/in_glow.slang
Normal file
|
@ -0,0 +1,46 @@
|
|||
#version 450
|
||||
#include "config.inc"
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = TexCoord ;
|
||||
}
|
||||
|
||||
|
||||
#pragma stage fragment
|
||||
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
layout(set = 0, binding = 3) uniform sampler2D FXAA_pass;
|
||||
layout(set = 0, binding = 4) uniform sampler2D first_pass;
|
||||
layout(set = 0, binding = 5) uniform sampler2D shift_and_bleed_pass;
|
||||
|
||||
// Blur sizes must not depend on input resolution
|
||||
#define scalemod_x (params.OutputSize.x/360.0)
|
||||
#define scalemod_y (params.OutputSize.y/270.0)
|
||||
|
||||
// What follows is an ugly optimization with a lot of code copied and pasted repeated multiple times,
|
||||
// shamlessly hidden into an include:
|
||||
#include "includes/pixel_glows.include.slang"
|
||||
|
||||
void main() {
|
||||
if (DO_IN_GLOW == 0.0) return;
|
||||
|
||||
vec3 pixel_glowed;
|
||||
if ( DO_SHIFT_RGB + DO_SAT_BLEED > 0.0)
|
||||
pixel_glowed = pixel_glow(shift_and_bleed_pass, IN_GLOW_WH,IN_GLOW_WH,IN_GLOW_POWER,IN_GLOW_GAMMA,vTexCoord, params.OutputSize, params.OutputSize).rgb;
|
||||
else if (DO_FXAA > 0.0)
|
||||
pixel_glowed = pixel_glow(FXAA_pass, IN_GLOW_WH,IN_GLOW_WH,IN_GLOW_POWER,IN_GLOW_GAMMA,vTexCoord, params.OutputSize, params.OutputSize).rgb;
|
||||
else
|
||||
pixel_glowed = pixel_glow(first_pass, IN_GLOW_WH,IN_GLOW_WH,IN_GLOW_POWER,IN_GLOW_GAMMA,vTexCoord, params.OutputSize, params.OutputSize).rgb;
|
||||
|
||||
FragColor = vec4((pixel_glowed),1.0);
|
||||
}
|
||||
|
23
bezel/koko-aio/shaders/includes/blooms.include.slang
Normal file
23
bezel/koko-aio/shaders/includes/blooms.include.slang
Normal file
|
@ -0,0 +1,23 @@
|
|||
#include "pows.include.slang"
|
||||
#define Pi2 6.283
|
||||
#define bloom_directions 8
|
||||
|
||||
#define b_offset_x -0.05 //Why is this needed by bloom?
|
||||
|
||||
#define bdirections 8
|
||||
|
||||
vec3 bloom(sampler2D smp, vec2 uv, vec4 smpsize, vec2 dest_size, float quality, float gamma, float start_offset, float lod) {
|
||||
vec2 r = dest_size/smpsize.xy ;
|
||||
vec3 lookup;
|
||||
vec3 color = vec3(0.0,0.0,0.0);
|
||||
float steps=0.0;
|
||||
|
||||
for( float d=start_offset; d<Pi2; d+=Pi2/bdirections) {
|
||||
for(float i=1.0/quality; i<=1.0; i+=1.0/quality) {
|
||||
lookup = textureLod(smp, uv + vec2( cos(d), sin(d)) * r * i, lod ).rgb ;
|
||||
color +=pow(lookup.rgb,vec3(gamma));
|
||||
}
|
||||
}
|
||||
color /= (quality*bdirections);
|
||||
return color;
|
||||
}
|
259
bezel/koko-aio/shaders/includes/functions.include.slang
Normal file
259
bezel/koko-aio/shaders/includes/functions.include.slang
Normal file
|
@ -0,0 +1,259 @@
|
|||
#define alpha_mark 0.1
|
||||
#define pi 3.141592654
|
||||
|
||||
vec3 pixel_push_luminance(vec3 c, float strength) {
|
||||
//if (strength == 0.0) return c; //lighter without the check.
|
||||
float whiteness = max(max(c.r, c.g), c.b);
|
||||
whiteness = clamp(whiteness, 0.0, 1.0);
|
||||
return c * (1+vec3((1-whiteness) * strength));
|
||||
}
|
||||
|
||||
vec3 apply_fuzzy_main_pass(vec3 color) {
|
||||
if (DO_IN_GLOW == 1.0)
|
||||
color = pow(color,vec3(IN_GLOW_GAMMA))*IN_GLOW_POWER;
|
||||
if (DO_VMASK_AND_DARKLINES == 1.0)
|
||||
color *= mix ( (1.0 - ((RGB_MASK_STRENGTH*0.5)+(DARKLINES_STRENGTH*0.2))), 1.0, MASK_COMPENSATION) ;
|
||||
if (DO_HALO == 1.0)
|
||||
color += pow(color,vec3(HALO_GAMMA))*HALO_POWER;
|
||||
if (DO_SCANLINES == 1.0)
|
||||
color *= mix(0.5 + (SCANLINE_DARK*0.5), 1.0, SCANLINE_COMPENSATION);
|
||||
if (DO_CCORRECTION == 1.0)
|
||||
color = pow(color, vec3(GAMMA_OUT));
|
||||
if (DO_VIGNETTE == 1.0)
|
||||
color *= 0.8 * (V_POWER);
|
||||
return color;
|
||||
}
|
||||
|
||||
|
||||
vec2 offsets_from_float(float in_param, int range){
|
||||
return vec2(
|
||||
(int(in_param) % range) - range*0.5,
|
||||
floor(in_param / range) - range*0.5
|
||||
);
|
||||
}
|
||||
|
||||
/*vec2 circles(float param, float c_radius, float aspect, float directions) {
|
||||
//given a 1d input param return full circles increasing radius.
|
||||
param = param*(pi/directions);
|
||||
float m = (c_radius * floor(param/pi)) * 100;
|
||||
return vec2(m * sin(param) * aspect, m * cos(param)) * vec2(aspect,1.0);
|
||||
}
|
||||
|
||||
vec2 spiral(float param,float spr_radius,vec2 spr_offset, vec2 spr_scale) {
|
||||
//given a 1d input param returns a spiral
|
||||
float m = spr_radius * param;
|
||||
return vec2(m * sin(param), m * cos(param)) * spr_scale + spr_offset;
|
||||
}
|
||||
*/
|
||||
bool similar(float a, float b, float threshold) {
|
||||
return abs(a-b) < threshold;
|
||||
}
|
||||
|
||||
bool vec2_similar(vec2 a, vec2 b, float threshold) {
|
||||
return abs(a.x-b.x) < threshold && abs(a.y-b.y) < threshold;
|
||||
}
|
||||
|
||||
|
||||
vec2 zoom(vec2 in_coords, float zoom_factor) {
|
||||
float off = 1.0/(zoom_factor*2.0) - 0.5;
|
||||
return (in_coords/zoom_factor)-off;
|
||||
}
|
||||
|
||||
vec2 zoomxy(vec2 in_coords, vec2 zoom_factor) {
|
||||
vec2 off = 1.0/(zoom_factor*2.0) - 0.5;
|
||||
return (in_coords/zoom_factor)-off;
|
||||
}
|
||||
|
||||
vec2 zoomout_coords(vec2 in_coords, float zoom_out, float aspect) {
|
||||
vec2 zoom = vec2( 1 + zoom_out,
|
||||
1 + (zoom_out * aspect)
|
||||
);
|
||||
|
||||
vec2 offset = vec2( (zoom.x-1.0) / 2.0,
|
||||
(zoom.y-1.0) / 2.0
|
||||
);
|
||||
return (in_coords * zoom) - offset;
|
||||
}
|
||||
|
||||
bool scanline_have_to_flicker(bool is_interlaced) {
|
||||
return ((SCANLINE_FLICKERING == 1.0) || ((SCANLINE_FLICKERING==2.0) && is_interlaced ));
|
||||
}
|
||||
|
||||
bool is_interlaced() {
|
||||
return (params.OriginalSize.y > MIN_LINES_INTERLACED);
|
||||
}
|
||||
|
||||
float scale_to_range(float x, float dmin, float dmax) {
|
||||
//Scales 0..1 range to a..b range
|
||||
return ( (dmax-dmin) * x ) + dmin;
|
||||
}
|
||||
|
||||
vec3 scale_to_range_vec3(vec3 x, float dmin, float dmax) {
|
||||
//Scales 0..1 range to a..b range
|
||||
return ( (dmax-dmin) * x ) + dmin;
|
||||
}
|
||||
|
||||
vec2 scale_to_range_vec2(vec2 x, float dmin, float dmax) {
|
||||
//Scales 0..1 range to a..b range
|
||||
return ( (dmax-dmin) * x ) + dmin;
|
||||
}
|
||||
|
||||
#define RND_A 12.9898
|
||||
#define RND_B 78.233
|
||||
#define RND_C 43758.5453
|
||||
|
||||
float random(float power, vec2 seed) {
|
||||
//From pal-singlepass.slang
|
||||
//https://github.com/svofski/CRT
|
||||
//Copyright (c) 2016, Viacheslav Slavinsky
|
||||
//All rights reserved.
|
||||
float dt = dot(seed.xy, vec2(RND_A, RND_B));
|
||||
float sn = mod(dt,3.14);
|
||||
|
||||
float noise_out = fract(sin(sn) * RND_C) - 0.5;
|
||||
noise_out = clamp(noise_out, -power, power);
|
||||
return noise_out ;
|
||||
}
|
||||
|
||||
|
||||
//CURVATURE
|
||||
#define corner_aspect vec2(1.0, 0.75)
|
||||
float border(vec2 coord)
|
||||
{
|
||||
coord = (coord - vec2(0.5)) + vec2(0.5, 0.5);
|
||||
coord = min(coord, vec2(1.0) - coord) * corner_aspect;
|
||||
vec2 cdist = vec2(GEOM_CORNER_SIZE);
|
||||
coord = (cdist - min(coord, cdist));
|
||||
float dist = sqrt(dot(coord, coord));
|
||||
return clamp((cdist.x - dist)*GEOM_CORNER_SMOOTH, 0.0, 1.0);
|
||||
}
|
||||
|
||||
|
||||
vec2 Warp(vec2 uv,float wx, float wy){
|
||||
uv = uv * 2.0 - 1.0;
|
||||
vec2 CRT_Distortion = vec2(wx, wy);
|
||||
float curvedCoordsDistance = length(uv);
|
||||
uv /= curvedCoordsDistance;
|
||||
uv *= (1.0-pow(vec2(1.0-(curvedCoordsDistance/1.4142135623730950488016887242097)),(1.0/(1.0+CRT_Distortion*0.2))));
|
||||
uv /= (1.0-pow(vec2(0.29289321881345247559915563789515),(1.0/(vec2(1.0)+CRT_Distortion*0.2))));
|
||||
uv = uv* 0.5 + 0.5;
|
||||
return uv;
|
||||
}
|
||||
|
||||
|
||||
//VIGNETTE - SPOT
|
||||
/* float gauss(float x, float x0, float sx, float size, float power){
|
||||
float arg = x-x0;
|
||||
arg = -(1/size)/2.*arg*arg/sx;
|
||||
float a = 1./(pow(2.*3.1415*sx, 0.5));
|
||||
return a*exp(arg) * power;
|
||||
}
|
||||
|
||||
float gauss_xy(float pos_x, float pos_y, float size, float power, float gmin, float gmax) {
|
||||
vec2 uv = vTexCoord.xy + vec2(pos_x,pos_y);
|
||||
float scale_uv = params.SourceSize.x / params.SourceSize.y;
|
||||
float gx = gauss(uv.x* scale_uv, 0.5*scale_uv, 0.1, size, power);
|
||||
float gy = gauss(uv.y, 0.5, 0.1, size, power);
|
||||
float light = gx*gy;
|
||||
return clamp(light,gmin,gmax);
|
||||
}
|
||||
*/
|
||||
|
||||
//AMBILIGHT RELATED
|
||||
bool border_needed() {
|
||||
//returns if we need to draw on the border
|
||||
return (DO_AMBILIGHT + DO_BG_IMAGE > 0.0);
|
||||
}
|
||||
|
||||
|
||||
#define mark_useless(x) mark_outer_frame(x)
|
||||
vec4 mark_outer_frame(vec3 pixel) {
|
||||
return vec4(pixel.rgb,0.0) ;
|
||||
//For my mental sanity, I use a specific alpha channel value to mark a frame as a border
|
||||
return vec4(pixel.r,pixel.g,pixel.b,alpha_mark) ;
|
||||
}
|
||||
#define is_useless(x) is_outer_frame(x)
|
||||
bool is_outer_frame(vec4 pixel) {
|
||||
return pixel.a == 0.0;
|
||||
/*Check if a pixel is marked as border by comparing the value of its alpha channel
|
||||
Tolerance is needed, because precision can be as low as 1/256; since I don't need
|
||||
alpha channel, use an even large tolerance.
|
||||
*/
|
||||
return abs(pixel.a - alpha_mark) < 0.05; //<-- 0.05 allow about 20 alpha levels (1*0.05)
|
||||
}
|
||||
|
||||
#define ar_tolerance 0.1 //To compensate when comparing different A/R
|
||||
bool is_rotated() {
|
||||
/*
|
||||
For some reason, probably retroarch rotates the view only on final viewport stage, transparent to the shader passes,
|
||||
The OutputSize of a pass that scales to viewport will have different aspect from the real final viewport.
|
||||
We exploit this to understand when a game is rotated.
|
||||
-->> This function only works if the calling pass scales to viewport.
|
||||
This will fail for very particular cases, eg: when output window is extremely tall
|
||||
*/
|
||||
return (abs((params.OutputSize.x/params.OutputSize.y) - (global.FinalViewportSize.x/global.FinalViewportSize.y)) > ar_tolerance);
|
||||
}
|
||||
|
||||
float get_in_aspect() {
|
||||
if (ASPECT_X == -1) return 1.5; // ntsc
|
||||
if (ASPECT_X == -2) return 1.25; // pal
|
||||
if (ASPECT_X == -3) return 1.143; // 8/7 snes
|
||||
if (ASPECT_X == -4) return 1.428; // 10/7 megadrive
|
||||
if (ASPECT_X == -5) return params.OriginalSize.x/params.OriginalSize.y; //uncorrected
|
||||
|
||||
if (ASPECT_X == 0) {
|
||||
return 1.3333333333333; //all mame games, not rotated
|
||||
}
|
||||
|
||||
return ASPECT_X / ASPECT_Y ;
|
||||
}
|
||||
|
||||
vec2 get_scaled_coords_aspect(vec2 pTexCoord, vec4 destsize, float in_aspect , bool is_rotated){
|
||||
if (!border_needed()) return pTexCoord;
|
||||
//else
|
||||
float scale_x = 1.0;
|
||||
float scale_y = 1.0;
|
||||
float offset_x = 0.0 ;
|
||||
float offset_y = 0.0 ;
|
||||
if (is_rotated) {
|
||||
scale_y = destsize.x/(destsize.y / in_aspect );
|
||||
offset_y = (0.5 * scale_y ) - 0.5 ;
|
||||
} else {
|
||||
scale_x = destsize.x/(destsize.y * in_aspect);
|
||||
offset_x = (0.5 * scale_x ) - 0.5 ;
|
||||
}
|
||||
|
||||
vec2 scale_coord=vec2(pTexCoord.x*scale_x - offset_x , pTexCoord.y*scale_y - offset_y);
|
||||
return scale_coord;
|
||||
}
|
||||
|
||||
vec2 get_scaled_coords(vec2 pTexCoord, vec4 destsize, bool is_rotated){
|
||||
if (!border_needed()) return pTexCoord;
|
||||
//else
|
||||
float scale_x = 1.0;
|
||||
float scale_y = 1.0;
|
||||
float offset_x = 0.0 ;
|
||||
float offset_y = 0.0 ;
|
||||
float in_aspect = get_in_aspect();
|
||||
if (is_rotated) {
|
||||
//I'm doing ping pong between th the following 2:
|
||||
//FIXME: verify if it depends on destsize being outputsize or finalviewportsize!!
|
||||
//scale_y = destsize.y/(destsize.x / in_aspect );
|
||||
scale_y = destsize.x/(destsize.y / in_aspect );
|
||||
|
||||
offset_y = (0.5 * scale_y ) - 0.5 ;
|
||||
|
||||
|
||||
} else {
|
||||
//scale_x = params.OutputSize.x/(params.OutputSize.y * in_aspect);
|
||||
//scale_x = global.FinalViewportSize.x/(global.FinalViewportSize.y * in_aspect);
|
||||
scale_x = destsize.x/(destsize.y * in_aspect);
|
||||
offset_x = (0.5 * scale_x ) - 0.5 ;
|
||||
}
|
||||
|
||||
vec2 scale_coord=vec2(pTexCoord.x*scale_x - offset_x , pTexCoord.y*scale_y - offset_y);
|
||||
return scale_coord;
|
||||
}
|
||||
|
||||
|
||||
|
64
bezel/koko-aio/shaders/includes/pack_unpack.include.slang
Normal file
64
bezel/koko-aio/shaders/includes/pack_unpack.include.slang
Normal file
|
@ -0,0 +1,64 @@
|
|||
/* pack_2to1_f and unpack_1to2_float
|
||||
* Take 2 floats and pack them into one
|
||||
* #pragma format R32G32B32A32_SFLOAT needed
|
||||
* The brighter color is lost.
|
||||
*/
|
||||
#define pack_floats_clamp 0.996078431372549 //1-(1/255)
|
||||
#define pack_floats_precision 255.0
|
||||
float pack_2to1_f(vec2 in_float){
|
||||
//Clamp and round to 1/255 needed:
|
||||
in_float = min(in_float,pack_floats_clamp);
|
||||
in_float = floor(in_float*255.0)/255.0;
|
||||
return in_float.x*pack_floats_precision + in_float.y;
|
||||
}
|
||||
|
||||
vec2 unpack_1to2_float(float f){
|
||||
float fr = fract(f);
|
||||
float fg = floor(f)/pack_floats_precision;
|
||||
return vec2(fr,fg);
|
||||
}
|
||||
|
||||
//pack 2 vec3 into one
|
||||
vec3 pack_2to1_vec3(vec3 v1, vec3 v2) {
|
||||
return vec3(
|
||||
pack_2to1_f(vec2(v1.r,v2.r)),
|
||||
pack_2to1_f(vec2(v1.g,v2.g)),
|
||||
pack_2to1_f(vec2(v1.b,v2.b))
|
||||
);
|
||||
}
|
||||
void unpack_1to2_vec3(in vec3 v, out vec3 v1, out vec3 v2) {
|
||||
vec2 t;
|
||||
t.xy = unpack_1to2_float(v.r);
|
||||
v1.r = t.x;
|
||||
v2.r = t.y;
|
||||
t.xy = unpack_1to2_float(v.g);
|
||||
v1.g = t.x;
|
||||
v2.g = t.y;
|
||||
t.xy = unpack_1to2_float(v.b);
|
||||
v1.b = t.x;
|
||||
v2.b= t.y;
|
||||
}
|
||||
|
||||
/* packColor and unpackColor
|
||||
* Take a vec3 and pack them into one float
|
||||
* #pragma format R32G32B32A32_SFLOAT needed
|
||||
* The brighter colors (2) are lost.
|
||||
*/
|
||||
#define mul_low 65025.0 //(pow(255.0,2.0))
|
||||
#define mul_mid 16581375.0 //(pow(255.0,3.0))
|
||||
#define mul_hi 4228250625.0 //(pow(255.0,4.0))
|
||||
|
||||
#define pack_color_clamp 0.992156862745098 // 1.0-(2.0/255)
|
||||
|
||||
float packColor(vec3 color) {
|
||||
color = clamp(color,0.0, pack_color_clamp);
|
||||
color = floor(color*255.0)/255.0;
|
||||
return (color.b * mul_low) + (color.g * mul_mid) + (color.r * mul_hi) ;
|
||||
}
|
||||
|
||||
vec3 unpackColor(float result) {
|
||||
float hi = floor(result/mul_mid)*mul_mid;
|
||||
float mid = floor((result - hi)/mul_low)*mul_low;
|
||||
float low = result - hi - mid;
|
||||
return vec3(hi/mul_hi, mid/mul_mid, low/mul_low);
|
||||
}
|
988
bezel/koko-aio/shaders/includes/pixel_glows.include.slang
Normal file
988
bezel/koko-aio/shaders/includes/pixel_glows.include.slang
Normal file
|
@ -0,0 +1,988 @@
|
|||
|
||||
//Those functions will sample from source texture (the previous), but with a precision taken from passthrough_passSize.
|
||||
//This is needed because the source texture has been scaled up to the dimension of the viewport to allow
|
||||
//the scanlines to be linear filtered.
|
||||
|
||||
|
||||
/*
|
||||
#include "pows.include.slang"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
vec4 pixel_glow_gamma_1(sampler2D in_texture, float my_glowpix, float my_glowpixy, float my_glow, vec2 coords, vec4 SourceSize1, vec4 SourceSize2) {
|
||||
|
||||
// Calculating texel coordinates
|
||||
vec2 tex = coords.xy * 1.00001;
|
||||
// vec4 SourceSize1 = params.SourceSize;
|
||||
|
||||
vec2 OGL2Pos = tex * SourceSize2.xy - vec2(0.5,0.5); // vec2 OGL2Pos = tex * SourceSize1.xy - vec2(0.5,0.5);
|
||||
vec2 fp = fract(OGL2Pos);
|
||||
vec2 dx = vec2(SourceSize1.z,0.0) ; // vec2 dx = vec2(params.passthrough_and_cc_passSize.z,0.0) ; //
|
||||
vec2 dy = vec2(0.0,SourceSize1.w) ; // vec2 dy = vec2(0.0,params.passthrough_and_cc_passSize.w); //
|
||||
vec2 pC4 = (floor(OGL2Pos) + vec2(0.5)) * SourceSize2.zw;
|
||||
|
||||
vec2 x2 = 2.0*dx; vec2 x3 = 3.0*dx;
|
||||
vec2 y2 = 2.0*dy;
|
||||
|
||||
my_glowpix = my_glowpix / scalemod_x * 2 ; // <-- Make it not dependant on the input resolution.
|
||||
my_glowpixy = my_glowpixy / scalemod_y *2 ;
|
||||
|
||||
float wl3 = 2.0 + fp.x; wl3*=wl3; wl3 = exp2(-my_glowpix*wl3);
|
||||
float wl2 = 1.0 + fp.x; wl2*=wl2; wl2 = exp2(-my_glowpix*wl2);
|
||||
float wl1 = fp.x; wl1*=wl1; wl1 = exp2(-my_glowpix*wl1);
|
||||
float wr1 = 1.0 - fp.x; wr1*=wr1; wr1 = exp2(-my_glowpix*wr1);
|
||||
float wr2 = 2.0 - fp.x; wr2*=wr2; wr2 = exp2(-my_glowpix*wr2);
|
||||
float wr3 = 3.0 - fp.x; wr3*=wr3; wr3 = exp2(-my_glowpix*wr3);
|
||||
|
||||
float wt = 1.0/(wl3+wl2+wl1+wr1+wr2+wr3);
|
||||
|
||||
vec3 l3 = texture(in_texture, pC4 -x2 ).rgb;
|
||||
vec3 l2 = texture(in_texture, pC4 -dx ).rgb;
|
||||
vec3 l1 = texture(in_texture, pC4 ).rgb;
|
||||
vec3 r1 = texture(in_texture, pC4 +dx ).rgb;
|
||||
vec3 r2 = texture(in_texture, pC4 +x2 ).rgb;
|
||||
vec3 r3 = texture(in_texture, pC4 +x3 ).rgb;
|
||||
|
||||
|
||||
vec3 t1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 -dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx -dy).rgb;
|
||||
l1 = texture(in_texture, pC4 -dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx -dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 -dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 -dy).rgb;
|
||||
|
||||
|
||||
vec3 t2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +dy).rgb;
|
||||
l1 = texture(in_texture, pC4 +dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +dy).rgb;
|
||||
|
||||
|
||||
vec3 b1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +y2).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +y2).rgb;
|
||||
l1 = texture(in_texture, pC4 +y2).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +y2).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +y2).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +y2).rgb;
|
||||
|
||||
|
||||
vec3 b2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
wl2 = 1.0 + fp.y; wl2*=wl2; wl2 = exp2(-my_glowpixy*wl2);
|
||||
wl1 = fp.y; wl1*=wl1; wl1 = exp2(-my_glowpixy*wl1);
|
||||
wr1 = 1.0 - fp.y; wr1*=wr1; wr1 = exp2(-my_glowpixy*wr1);
|
||||
wr2 = 2.0 - fp.y; wr2*=wr2; wr2 = exp2(-my_glowpixy*wr2);
|
||||
|
||||
wt = 1.0/(wl2+wl1+wr1+wr2);
|
||||
|
||||
vec3 Bloom = (t2*wl2 + t1*wl1 + b1*wr1 + b2*wr2)*wt;
|
||||
|
||||
return vec4(Bloom*my_glow,1.0);
|
||||
}
|
||||
|
||||
|
||||
vec4 pixel_glow_gamma_2(sampler2D in_texture, float my_glowpix, float my_glowpixy, float my_glow, vec2 coords, vec4 SourceSize1, vec4 SourceSize2) {
|
||||
|
||||
// Calculating texel coordinates
|
||||
vec2 tex = coords.xy * 1.00001;
|
||||
// vec4 SourceSize1 = params.SourceSize;
|
||||
|
||||
vec2 OGL2Pos = tex * SourceSize2.xy - vec2(0.5,0.5); // vec2 OGL2Pos = tex * SourceSize1.xy - vec2(0.5,0.5);
|
||||
vec2 fp = fract(OGL2Pos);
|
||||
vec2 dx = vec2(SourceSize1.z,0.0) ; // vec2 dx = vec2(params.passthrough_and_cc_passSize.z,0.0) ; //
|
||||
vec2 dy = vec2(0.0,SourceSize1.w) ; // vec2 dy = vec2(0.0,params.passthrough_and_cc_passSize.w); //
|
||||
vec2 pC4 = (floor(OGL2Pos) + vec2(0.5)) * SourceSize2.zw;
|
||||
|
||||
vec2 x2 = 2.0*dx; vec2 x3 = 3.0*dx;
|
||||
vec2 y2 = 2.0*dy;
|
||||
|
||||
my_glowpix = my_glowpix / scalemod_x * 2 ; // <-- Make it not dependant on the input resolution.
|
||||
my_glowpixy = my_glowpixy / scalemod_y *2 ;
|
||||
|
||||
float wl3 = 2.0 + fp.x; wl3*=wl3; wl3 = exp2(-my_glowpix*wl3);
|
||||
float wl2 = 1.0 + fp.x; wl2*=wl2; wl2 = exp2(-my_glowpix*wl2);
|
||||
float wl1 = fp.x; wl1*=wl1; wl1 = exp2(-my_glowpix*wl1);
|
||||
float wr1 = 1.0 - fp.x; wr1*=wr1; wr1 = exp2(-my_glowpix*wr1);
|
||||
float wr2 = 2.0 - fp.x; wr2*=wr2; wr2 = exp2(-my_glowpix*wr2);
|
||||
float wr3 = 3.0 - fp.x; wr3*=wr3; wr3 = exp2(-my_glowpix*wr3);
|
||||
|
||||
float wt = 1.0/(wl3+wl2+wl1+wr1+wr2+wr3);
|
||||
|
||||
vec3 l3 = texture(in_texture, pC4 -x2 ).rgb;
|
||||
vec3 l2 = texture(in_texture, pC4 -dx ).rgb;
|
||||
vec3 l1 = texture(in_texture, pC4 ).rgb;
|
||||
vec3 r1 = texture(in_texture, pC4 +dx ).rgb;
|
||||
vec3 r2 = texture(in_texture, pC4 +x2 ).rgb;
|
||||
vec3 r3 = texture(in_texture, pC4 +x3 ).rgb;
|
||||
l3*=l3; l2*=l2; l1*=l1;
|
||||
r1*=r1; r2*=r2; r3*=r3;
|
||||
|
||||
vec3 t1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 -dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx -dy).rgb;
|
||||
l1 = texture(in_texture, pC4 -dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx -dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 -dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 -dy).rgb;
|
||||
l3*=l3; l2*=l2; l1*=l1;
|
||||
r1*=r1; r2*=r2; r3*=r3;
|
||||
|
||||
vec3 t2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +dy).rgb;
|
||||
l1 = texture(in_texture, pC4 +dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +dy).rgb;
|
||||
l3*=l3; l2*=l2; l1*=l1;
|
||||
r1*=r1; r2*=r2; r3*=r3;
|
||||
|
||||
vec3 b1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +y2).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +y2).rgb;
|
||||
l1 = texture(in_texture, pC4 +y2).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +y2).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +y2).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +y2).rgb;
|
||||
l3*=l3; l2*=l2; l1*=l1;
|
||||
r1*=r1; r2*=r2; r3*=r3;
|
||||
|
||||
vec3 b2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
wl2 = 1.0 + fp.y; wl2*=wl2; wl2 = exp2(-my_glowpixy*wl2);
|
||||
wl1 = fp.y; wl1*=wl1; wl1 = exp2(-my_glowpixy*wl1);
|
||||
wr1 = 1.0 - fp.y; wr1*=wr1; wr1 = exp2(-my_glowpixy*wr1);
|
||||
wr2 = 2.0 - fp.y; wr2*=wr2; wr2 = exp2(-my_glowpixy*wr2);
|
||||
|
||||
wt = 1.0/(wl2+wl1+wr1+wr2);
|
||||
|
||||
vec3 Bloom = (t2*wl2 + t1*wl1 + b1*wr1 + b2*wr2)*wt;
|
||||
|
||||
return vec4(Bloom*my_glow,1.0);
|
||||
}
|
||||
vec4 pixel_glow_gamma_3(sampler2D in_texture, float my_glowpix, float my_glowpixy, float my_glow, vec2 coords, vec4 SourceSize1, vec4 SourceSize2) {
|
||||
|
||||
// Calculating texel coordinates
|
||||
vec2 tex = coords.xy * 1.00001;
|
||||
// vec4 SourceSize1 = params.SourceSize;
|
||||
|
||||
vec2 OGL2Pos = tex * SourceSize2.xy - vec2(0.5,0.5); // vec2 OGL2Pos = tex * SourceSize1.xy - vec2(0.5,0.5);
|
||||
vec2 fp = fract(OGL2Pos);
|
||||
vec2 dx = vec2(SourceSize1.z,0.0) ; // vec2 dx = vec2(params.passthrough_and_cc_passSize.z,0.0) ; //
|
||||
vec2 dy = vec2(0.0,SourceSize1.w) ; // vec2 dy = vec2(0.0,params.passthrough_and_cc_passSize.w); //
|
||||
vec2 pC4 = (floor(OGL2Pos) + vec2(0.5)) * SourceSize2.zw;
|
||||
|
||||
vec2 x2 = 2.0*dx; vec2 x3 = 3.0*dx;
|
||||
vec2 y2 = 2.0*dy;
|
||||
|
||||
my_glowpix = my_glowpix / scalemod_x * 2 ; // <-- Make it not dependant on the input resolution.
|
||||
my_glowpixy = my_glowpixy / scalemod_y *2 ;
|
||||
|
||||
float wl3 = 2.0 + fp.x; wl3*=wl3; wl3 = exp2(-my_glowpix*wl3);
|
||||
float wl2 = 1.0 + fp.x; wl2*=wl2; wl2 = exp2(-my_glowpix*wl2);
|
||||
float wl1 = fp.x; wl1*=wl1; wl1 = exp2(-my_glowpix*wl1);
|
||||
float wr1 = 1.0 - fp.x; wr1*=wr1; wr1 = exp2(-my_glowpix*wr1);
|
||||
float wr2 = 2.0 - fp.x; wr2*=wr2; wr2 = exp2(-my_glowpix*wr2);
|
||||
float wr3 = 3.0 - fp.x; wr3*=wr3; wr3 = exp2(-my_glowpix*wr3);
|
||||
|
||||
float wt = 1.0/(wl3+wl2+wl1+wr1+wr2+wr3);
|
||||
|
||||
vec3 l3 = texture(in_texture, pC4 -x2 ).rgb;
|
||||
vec3 l2 = texture(in_texture, pC4 -dx ).rgb;
|
||||
vec3 l1 = texture(in_texture, pC4 ).rgb;
|
||||
vec3 r1 = texture(in_texture, pC4 +dx ).rgb;
|
||||
vec3 r2 = texture(in_texture, pC4 +x2 ).rgb;
|
||||
vec3 r3 = texture(in_texture, pC4 +x3 ).rgb;
|
||||
l3=pow_3(l3); l2=pow_3(l2); l1=pow_3(l1);
|
||||
r1=pow_3(r1); r2=pow_3(r2); r3=pow_3(r3);
|
||||
|
||||
vec3 t1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 -dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx -dy).rgb;
|
||||
l1 = texture(in_texture, pC4 -dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx -dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 -dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 -dy).rgb;
|
||||
l3=pow_3(l3); l2=pow_3(l2); l1=pow_3(l1);
|
||||
r1=pow_3(r1); r2=pow_3(r2); r3=pow_3(r3);
|
||||
|
||||
vec3 t2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +dy).rgb;
|
||||
l1 = texture(in_texture, pC4 +dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +dy).rgb;
|
||||
l3=pow_3(l3); l2=pow_3(l2); l1=pow_3(l1);
|
||||
r1=pow_3(r1); r2=pow_3(r2); r3=pow_3(r3);
|
||||
|
||||
vec3 b1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +y2).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +y2).rgb;
|
||||
l1 = texture(in_texture, pC4 +y2).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +y2).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +y2).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +y2).rgb;
|
||||
l3=pow_3(l3); l2=pow_3(l2); l1=pow_3(l1);
|
||||
r1=pow_3(r1); r2=pow_3(r2); r3=pow_3(r3);
|
||||
|
||||
vec3 b2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
wl2 = 1.0 + fp.y; wl2*=wl2; wl2 = exp2(-my_glowpixy*wl2);
|
||||
wl1 = fp.y; wl1*=wl1; wl1 = exp2(-my_glowpixy*wl1);
|
||||
wr1 = 1.0 - fp.y; wr1*=wr1; wr1 = exp2(-my_glowpixy*wr1);
|
||||
wr2 = 2.0 - fp.y; wr2*=wr2; wr2 = exp2(-my_glowpixy*wr2);
|
||||
|
||||
wt = 1.0/(wl2+wl1+wr1+wr2);
|
||||
|
||||
vec3 Bloom = (t2*wl2 + t1*wl1 + b1*wr1 + b2*wr2)*wt;
|
||||
|
||||
return vec4(Bloom*my_glow,1.0);
|
||||
}
|
||||
vec4 pixel_glow_gamma_4(sampler2D in_texture, float my_glowpix, float my_glowpixy, float my_glow, vec2 coords, vec4 SourceSize1, vec4 SourceSize2) {
|
||||
|
||||
// Calculating texel coordinates
|
||||
vec2 tex = coords.xy * 1.00001;
|
||||
// vec4 SourceSize1 = params.SourceSize;
|
||||
|
||||
vec2 OGL2Pos = tex * SourceSize2.xy - vec2(0.5,0.5); // vec2 OGL2Pos = tex * SourceSize1.xy - vec2(0.5,0.5);
|
||||
vec2 fp = fract(OGL2Pos);
|
||||
vec2 dx = vec2(SourceSize1.z,0.0) ; // vec2 dx = vec2(params.passthrough_and_cc_passSize.z,0.0) ; //
|
||||
vec2 dy = vec2(0.0,SourceSize1.w) ; // vec2 dy = vec2(0.0,params.passthrough_and_cc_passSize.w); //
|
||||
vec2 pC4 = (floor(OGL2Pos) + vec2(0.5)) * SourceSize2.zw;
|
||||
|
||||
vec2 x2 = 2.0*dx; vec2 x3 = 3.0*dx;
|
||||
vec2 y2 = 2.0*dy;
|
||||
|
||||
my_glowpix = my_glowpix / scalemod_x * 2 ; // <-- Make it not dependant on the input resolution.
|
||||
my_glowpixy = my_glowpixy / scalemod_y *2 ;
|
||||
|
||||
float wl3 = 2.0 + fp.x; wl3*=wl3; wl3 = exp2(-my_glowpix*wl3);
|
||||
float wl2 = 1.0 + fp.x; wl2*=wl2; wl2 = exp2(-my_glowpix*wl2);
|
||||
float wl1 = fp.x; wl1*=wl1; wl1 = exp2(-my_glowpix*wl1);
|
||||
float wr1 = 1.0 - fp.x; wr1*=wr1; wr1 = exp2(-my_glowpix*wr1);
|
||||
float wr2 = 2.0 - fp.x; wr2*=wr2; wr2 = exp2(-my_glowpix*wr2);
|
||||
float wr3 = 3.0 - fp.x; wr3*=wr3; wr3 = exp2(-my_glowpix*wr3);
|
||||
|
||||
float wt = 1.0/(wl3+wl2+wl1+wr1+wr2+wr3);
|
||||
|
||||
vec3 l3 = texture(in_texture, pC4 -x2 ).rgb;
|
||||
vec3 l2 = texture(in_texture, pC4 -dx ).rgb;
|
||||
vec3 l1 = texture(in_texture, pC4 ).rgb;
|
||||
vec3 r1 = texture(in_texture, pC4 +dx ).rgb;
|
||||
vec3 r2 = texture(in_texture, pC4 +x2 ).rgb;
|
||||
vec3 r3 = texture(in_texture, pC4 +x3 ).rgb;
|
||||
l3=pow_4(l3); l2=pow_4(l2); l1=pow_4(l1);
|
||||
r1=pow_4(r1); r2=pow_4(r2); r3=pow_4(r3);
|
||||
|
||||
vec3 t1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 -dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx -dy).rgb;
|
||||
l1 = texture(in_texture, pC4 -dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx -dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 -dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 -dy).rgb;
|
||||
l3=pow_4(l3); l2=pow_4(l2); l1=pow_4(l1);
|
||||
r1=pow_4(r1); r2=pow_4(r2); r3=pow_4(r3);
|
||||
|
||||
vec3 t2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +dy).rgb;
|
||||
l1 = texture(in_texture, pC4 +dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +dy).rgb;
|
||||
l3=pow_4(l3); l2=pow_4(l2); l1=pow_4(l1);
|
||||
r1=pow_4(r1); r2=pow_4(r2); r3=pow_4(r3);
|
||||
|
||||
vec3 b1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +y2).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +y2).rgb;
|
||||
l1 = texture(in_texture, pC4 +y2).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +y2).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +y2).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +y2).rgb;
|
||||
l3=pow_4(l3); l2=pow_4(l2); l1=pow_4(l1);
|
||||
r1=pow_4(r1); r2=pow_4(r2); r3=pow_4(r3);
|
||||
|
||||
vec3 b2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
wl2 = 1.0 + fp.y; wl2*=wl2; wl2 = exp2(-my_glowpixy*wl2);
|
||||
wl1 = fp.y; wl1*=wl1; wl1 = exp2(-my_glowpixy*wl1);
|
||||
wr1 = 1.0 - fp.y; wr1*=wr1; wr1 = exp2(-my_glowpixy*wr1);
|
||||
wr2 = 2.0 - fp.y; wr2*=wr2; wr2 = exp2(-my_glowpixy*wr2);
|
||||
|
||||
wt = 1.0/(wl2+wl1+wr1+wr2);
|
||||
|
||||
vec3 Bloom = (t2*wl2 + t1*wl1 + b1*wr1 + b2*wr2)*wt;
|
||||
|
||||
return vec4(Bloom*my_glow,1.0);
|
||||
}
|
||||
vec4 pixel_glow_gamma_5(sampler2D in_texture, float my_glowpix, float my_glowpixy, float my_glow, vec2 coords, vec4 SourceSize1, vec4 SourceSize2) {
|
||||
|
||||
// Calculating texel coordinates
|
||||
vec2 tex = coords.xy * 1.00001;
|
||||
// vec4 SourceSize1 = params.SourceSize;
|
||||
|
||||
vec2 OGL2Pos = tex * SourceSize2.xy - vec2(0.5,0.5); // vec2 OGL2Pos = tex * SourceSize1.xy - vec2(0.5,0.5);
|
||||
vec2 fp = fract(OGL2Pos);
|
||||
vec2 dx = vec2(SourceSize1.z,0.0) ; // vec2 dx = vec2(params.passthrough_and_cc_passSize.z,0.0) ; //
|
||||
vec2 dy = vec2(0.0,SourceSize1.w) ; // vec2 dy = vec2(0.0,params.passthrough_and_cc_passSize.w); //
|
||||
vec2 pC4 = (floor(OGL2Pos) + vec2(0.5)) * SourceSize2.zw;
|
||||
|
||||
vec2 x2 = 2.0*dx; vec2 x3 = 3.0*dx;
|
||||
vec2 y2 = 2.0*dy;
|
||||
|
||||
my_glowpix = my_glowpix / scalemod_x * 2 ; // <-- Make it not dependant on the input resolution.
|
||||
my_glowpixy = my_glowpixy / scalemod_y *2 ;
|
||||
|
||||
float wl3 = 2.0 + fp.x; wl3*=wl3; wl3 = exp2(-my_glowpix*wl3);
|
||||
float wl2 = 1.0 + fp.x; wl2*=wl2; wl2 = exp2(-my_glowpix*wl2);
|
||||
float wl1 = fp.x; wl1*=wl1; wl1 = exp2(-my_glowpix*wl1);
|
||||
float wr1 = 1.0 - fp.x; wr1*=wr1; wr1 = exp2(-my_glowpix*wr1);
|
||||
float wr2 = 2.0 - fp.x; wr2*=wr2; wr2 = exp2(-my_glowpix*wr2);
|
||||
float wr3 = 3.0 - fp.x; wr3*=wr3; wr3 = exp2(-my_glowpix*wr3);
|
||||
|
||||
float wt = 1.0/(wl3+wl2+wl1+wr1+wr2+wr3);
|
||||
|
||||
vec3 l3 = texture(in_texture, pC4 -x2 ).rgb;
|
||||
vec3 l2 = texture(in_texture, pC4 -dx ).rgb;
|
||||
vec3 l1 = texture(in_texture, pC4 ).rgb;
|
||||
vec3 r1 = texture(in_texture, pC4 +dx ).rgb;
|
||||
vec3 r2 = texture(in_texture, pC4 +x2 ).rgb;
|
||||
vec3 r3 = texture(in_texture, pC4 +x3 ).rgb;
|
||||
l3=pow_5(l3); l2=pow_5(l2); l1=pow_5(l1);
|
||||
r1=pow_5(r1); r2=pow_5(r2); r3=pow_5(r3);
|
||||
|
||||
vec3 t1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 -dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx -dy).rgb;
|
||||
l1 = texture(in_texture, pC4 -dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx -dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 -dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 -dy).rgb;
|
||||
l3=pow_5(l3); l2=pow_5(l2); l1=pow_5(l1);
|
||||
r1=pow_5(r1); r2=pow_5(r2); r3=pow_5(r3);
|
||||
|
||||
vec3 t2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +dy).rgb;
|
||||
l1 = texture(in_texture, pC4 +dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +dy).rgb;
|
||||
l3=pow_5(l3); l2=pow_5(l2); l1=pow_5(l1);
|
||||
r1=pow_5(r1); r2=pow_5(r2); r3=pow_5(r3);
|
||||
|
||||
vec3 b1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +y2).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +y2).rgb;
|
||||
l1 = texture(in_texture, pC4 +y2).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +y2).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +y2).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +y2).rgb;
|
||||
l3=pow_5(l3); l2=pow_5(l2); l1=pow_5(l1);
|
||||
r1=pow_5(r1); r2=pow_5(r2); r3=pow_5(r3);
|
||||
|
||||
vec3 b2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
wl2 = 1.0 + fp.y; wl2*=wl2; wl2 = exp2(-my_glowpixy*wl2);
|
||||
wl1 = fp.y; wl1*=wl1; wl1 = exp2(-my_glowpixy*wl1);
|
||||
wr1 = 1.0 - fp.y; wr1*=wr1; wr1 = exp2(-my_glowpixy*wr1);
|
||||
wr2 = 2.0 - fp.y; wr2*=wr2; wr2 = exp2(-my_glowpixy*wr2);
|
||||
|
||||
wt = 1.0/(wl2+wl1+wr1+wr2);
|
||||
|
||||
vec3 Bloom = (t2*wl2 + t1*wl1 + b1*wr1 + b2*wr2)*wt;
|
||||
|
||||
return vec4(Bloom*my_glow,1.0);
|
||||
}
|
||||
vec4 pixel_glow_gamma_6(sampler2D in_texture, float my_glowpix, float my_glowpixy, float my_glow, vec2 coords, vec4 SourceSize1, vec4 SourceSize2) {
|
||||
|
||||
// Calculating texel coordinates
|
||||
vec2 tex = coords.xy * 1.00001;
|
||||
// vec4 SourceSize1 = params.SourceSize;
|
||||
|
||||
vec2 OGL2Pos = tex * SourceSize2.xy - vec2(0.5,0.5); // vec2 OGL2Pos = tex * SourceSize1.xy - vec2(0.5,0.5);
|
||||
vec2 fp = fract(OGL2Pos);
|
||||
vec2 dx = vec2(SourceSize1.z,0.0) ; // vec2 dx = vec2(params.passthrough_and_cc_passSize.z,0.0) ; //
|
||||
vec2 dy = vec2(0.0,SourceSize1.w) ; // vec2 dy = vec2(0.0,params.passthrough_and_cc_passSize.w); //
|
||||
vec2 pC4 = (floor(OGL2Pos) + vec2(0.5)) * SourceSize2.zw;
|
||||
|
||||
vec2 x2 = 2.0*dx; vec2 x3 = 3.0*dx;
|
||||
vec2 y2 = 2.0*dy;
|
||||
|
||||
my_glowpix = my_glowpix / scalemod_x * 2 ; // <-- Make it not dependant on the input resolution.
|
||||
my_glowpixy = my_glowpixy / scalemod_y *2 ;
|
||||
|
||||
float wl3 = 2.0 + fp.x; wl3*=wl3; wl3 = exp2(-my_glowpix*wl3);
|
||||
float wl2 = 1.0 + fp.x; wl2*=wl2; wl2 = exp2(-my_glowpix*wl2);
|
||||
float wl1 = fp.x; wl1*=wl1; wl1 = exp2(-my_glowpix*wl1);
|
||||
float wr1 = 1.0 - fp.x; wr1*=wr1; wr1 = exp2(-my_glowpix*wr1);
|
||||
float wr2 = 2.0 - fp.x; wr2*=wr2; wr2 = exp2(-my_glowpix*wr2);
|
||||
float wr3 = 3.0 - fp.x; wr3*=wr3; wr3 = exp2(-my_glowpix*wr3);
|
||||
|
||||
float wt = 1.0/(wl3+wl2+wl1+wr1+wr2+wr3);
|
||||
|
||||
vec3 l3 = texture(in_texture, pC4 -x2 ).rgb;
|
||||
vec3 l2 = texture(in_texture, pC4 -dx ).rgb;
|
||||
vec3 l1 = texture(in_texture, pC4 ).rgb;
|
||||
vec3 r1 = texture(in_texture, pC4 +dx ).rgb;
|
||||
vec3 r2 = texture(in_texture, pC4 +x2 ).rgb;
|
||||
vec3 r3 = texture(in_texture, pC4 +x3 ).rgb;
|
||||
l3=pow_6(l3); l2=pow_6(l2); l1=pow_6(l1);
|
||||
r1=pow_6(r1); r2=pow_6(r2); r3=pow_6(r3);
|
||||
|
||||
vec3 t1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 -dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx -dy).rgb;
|
||||
l1 = texture(in_texture, pC4 -dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx -dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 -dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 -dy).rgb;
|
||||
l3=pow_6(l3); l2=pow_6(l2); l1=pow_6(l1);
|
||||
r1=pow_6(r1); r2=pow_6(r2); r3=pow_6(r3);
|
||||
|
||||
vec3 t2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +dy).rgb;
|
||||
l1 = texture(in_texture, pC4 +dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +dy).rgb;
|
||||
l3=pow_6(l3); l2=pow_6(l2); l1=pow_6(l1);
|
||||
r1=pow_6(r1); r2=pow_6(r2); r3=pow_6(r3);
|
||||
|
||||
vec3 b1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +y2).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +y2).rgb;
|
||||
l1 = texture(in_texture, pC4 +y2).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +y2).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +y2).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +y2).rgb;
|
||||
l3=pow_6(l3); l2=pow_6(l2); l1=pow_6(l1);
|
||||
r1=pow_6(r1); r2=pow_6(r2); r3=pow_6(r3);
|
||||
|
||||
vec3 b2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
wl2 = 1.0 + fp.y; wl2*=wl2; wl2 = exp2(-my_glowpixy*wl2);
|
||||
wl1 = fp.y; wl1*=wl1; wl1 = exp2(-my_glowpixy*wl1);
|
||||
wr1 = 1.0 - fp.y; wr1*=wr1; wr1 = exp2(-my_glowpixy*wr1);
|
||||
wr2 = 2.0 - fp.y; wr2*=wr2; wr2 = exp2(-my_glowpixy*wr2);
|
||||
|
||||
wt = 1.0/(wl2+wl1+wr1+wr2);
|
||||
|
||||
vec3 Bloom = (t2*wl2 + t1*wl1 + b1*wr1 + b2*wr2)*wt;
|
||||
|
||||
return vec4(Bloom*my_glow,1.0);
|
||||
}
|
||||
vec4 pixel_glow_gamma_7(sampler2D in_texture, float my_glowpix, float my_glowpixy, float my_glow, vec2 coords, vec4 SourceSize1, vec4 SourceSize2) {
|
||||
|
||||
// Calculating texel coordinates
|
||||
vec2 tex = coords.xy * 1.00001;
|
||||
// vec4 SourceSize1 = params.SourceSize;
|
||||
|
||||
vec2 OGL2Pos = tex * SourceSize2.xy - vec2(0.5,0.5); // vec2 OGL2Pos = tex * SourceSize1.xy - vec2(0.5,0.5);
|
||||
vec2 fp = fract(OGL2Pos);
|
||||
vec2 dx = vec2(SourceSize1.z,0.0) ; // vec2 dx = vec2(params.passthrough_and_cc_passSize.z,0.0) ; //
|
||||
vec2 dy = vec2(0.0,SourceSize1.w) ; // vec2 dy = vec2(0.0,params.passthrough_and_cc_passSize.w); //
|
||||
vec2 pC4 = (floor(OGL2Pos) + vec2(0.5)) * SourceSize2.zw;
|
||||
|
||||
vec2 x2 = 2.0*dx; vec2 x3 = 3.0*dx;
|
||||
vec2 y2 = 2.0*dy;
|
||||
|
||||
my_glowpix = my_glowpix / scalemod_x * 2 ; // <-- Make it not dependant on the input resolution.
|
||||
my_glowpixy = my_glowpixy / scalemod_y *2 ;
|
||||
|
||||
float wl3 = 2.0 + fp.x; wl3*=wl3; wl3 = exp2(-my_glowpix*wl3);
|
||||
float wl2 = 1.0 + fp.x; wl2*=wl2; wl2 = exp2(-my_glowpix*wl2);
|
||||
float wl1 = fp.x; wl1*=wl1; wl1 = exp2(-my_glowpix*wl1);
|
||||
float wr1 = 1.0 - fp.x; wr1*=wr1; wr1 = exp2(-my_glowpix*wr1);
|
||||
float wr2 = 2.0 - fp.x; wr2*=wr2; wr2 = exp2(-my_glowpix*wr2);
|
||||
float wr3 = 3.0 - fp.x; wr3*=wr3; wr3 = exp2(-my_glowpix*wr3);
|
||||
|
||||
float wt = 1.0/(wl3+wl2+wl1+wr1+wr2+wr3);
|
||||
|
||||
vec3 l3 = texture(in_texture, pC4 -x2 ).rgb;
|
||||
vec3 l2 = texture(in_texture, pC4 -dx ).rgb;
|
||||
vec3 l1 = texture(in_texture, pC4 ).rgb;
|
||||
vec3 r1 = texture(in_texture, pC4 +dx ).rgb;
|
||||
vec3 r2 = texture(in_texture, pC4 +x2 ).rgb;
|
||||
vec3 r3 = texture(in_texture, pC4 +x3 ).rgb;
|
||||
l3=pow_7(l3); l2=pow_7(l2); l1=pow_7(l1);
|
||||
r1=pow_7(r1); r2=pow_7(r2); r3=pow_7(r3);
|
||||
|
||||
vec3 t1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 -dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx -dy).rgb;
|
||||
l1 = texture(in_texture, pC4 -dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx -dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 -dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 -dy).rgb;
|
||||
l3=pow_7(l3); l2=pow_7(l2); l1=pow_7(l1);
|
||||
r1=pow_7(r1); r2=pow_7(r2); r3=pow_7(r3);
|
||||
|
||||
vec3 t2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +dy).rgb;
|
||||
l1 = texture(in_texture, pC4 +dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +dy).rgb;
|
||||
l3=pow_7(l3); l2=pow_7(l2); l1=pow_7(l1);
|
||||
r1=pow_7(r1); r2=pow_7(r2); r3=pow_7(r3);
|
||||
|
||||
vec3 b1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +y2).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +y2).rgb;
|
||||
l1 = texture(in_texture, pC4 +y2).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +y2).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +y2).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +y2).rgb;
|
||||
l3=pow_7(l3); l2=pow_7(l2); l1=pow_7(l1);
|
||||
r1=pow_7(r1); r2=pow_7(r2); r3=pow_7(r3);
|
||||
|
||||
vec3 b2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
wl2 = 1.0 + fp.y; wl2*=wl2; wl2 = exp2(-my_glowpixy*wl2);
|
||||
wl1 = fp.y; wl1*=wl1; wl1 = exp2(-my_glowpixy*wl1);
|
||||
wr1 = 1.0 - fp.y; wr1*=wr1; wr1 = exp2(-my_glowpixy*wr1);
|
||||
wr2 = 2.0 - fp.y; wr2*=wr2; wr2 = exp2(-my_glowpixy*wr2);
|
||||
|
||||
wt = 1.0/(wl2+wl1+wr1+wr2);
|
||||
|
||||
vec3 Bloom = (t2*wl2 + t1*wl1 + b1*wr1 + b2*wr2)*wt;
|
||||
|
||||
return vec4(Bloom*my_glow,1.0);
|
||||
}
|
||||
vec4 pixel_glow_gamma_8(sampler2D in_texture, float my_glowpix, float my_glowpixy, float my_glow, vec2 coords, vec4 SourceSize1, vec4 SourceSize2) {
|
||||
|
||||
// Calculating texel coordinates
|
||||
vec2 tex = coords.xy * 1.00001;
|
||||
// vec4 SourceSize1 = params.SourceSize;
|
||||
|
||||
vec2 OGL2Pos = tex * SourceSize2.xy - vec2(0.5,0.5); // vec2 OGL2Pos = tex * SourceSize1.xy - vec2(0.5,0.5);
|
||||
vec2 fp = fract(OGL2Pos);
|
||||
vec2 dx = vec2(SourceSize1.z,0.0) ; // vec2 dx = vec2(params.passthrough_and_cc_passSize.z,0.0) ; //
|
||||
vec2 dy = vec2(0.0,SourceSize1.w) ; // vec2 dy = vec2(0.0,params.passthrough_and_cc_passSize.w); //
|
||||
vec2 pC4 = (floor(OGL2Pos) + vec2(0.5)) * SourceSize2.zw;
|
||||
|
||||
vec2 x2 = 2.0*dx; vec2 x3 = 3.0*dx;
|
||||
vec2 y2 = 2.0*dy;
|
||||
|
||||
my_glowpix = my_glowpix / scalemod_x * 2 ; // <-- Make it not dependant on the input resolution.
|
||||
my_glowpixy = my_glowpixy / scalemod_y *2 ;
|
||||
|
||||
float wl3 = 2.0 + fp.x; wl3*=wl3; wl3 = exp2(-my_glowpix*wl3);
|
||||
float wl2 = 1.0 + fp.x; wl2*=wl2; wl2 = exp2(-my_glowpix*wl2);
|
||||
float wl1 = fp.x; wl1*=wl1; wl1 = exp2(-my_glowpix*wl1);
|
||||
float wr1 = 1.0 - fp.x; wr1*=wr1; wr1 = exp2(-my_glowpix*wr1);
|
||||
float wr2 = 2.0 - fp.x; wr2*=wr2; wr2 = exp2(-my_glowpix*wr2);
|
||||
float wr3 = 3.0 - fp.x; wr3*=wr3; wr3 = exp2(-my_glowpix*wr3);
|
||||
|
||||
float wt = 1.0/(wl3+wl2+wl1+wr1+wr2+wr3);
|
||||
|
||||
vec3 l3 = texture(in_texture, pC4 -x2 ).rgb;
|
||||
vec3 l2 = texture(in_texture, pC4 -dx ).rgb;
|
||||
vec3 l1 = texture(in_texture, pC4 ).rgb;
|
||||
vec3 r1 = texture(in_texture, pC4 +dx ).rgb;
|
||||
vec3 r2 = texture(in_texture, pC4 +x2 ).rgb;
|
||||
vec3 r3 = texture(in_texture, pC4 +x3 ).rgb;
|
||||
l3=pow_8(l3); l2=pow_8(l2); l1=pow_8(l1);
|
||||
r1=pow_8(r1); r2=pow_8(r2); r3=pow_8(r3);
|
||||
|
||||
vec3 t1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 -dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx -dy).rgb;
|
||||
l1 = texture(in_texture, pC4 -dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx -dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 -dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 -dy).rgb;
|
||||
l3=pow_8(l3); l2=pow_8(l2); l1=pow_8(l1);
|
||||
r1=pow_8(r1); r2=pow_8(r2); r3=pow_8(r3);
|
||||
|
||||
vec3 t2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +dy).rgb;
|
||||
l1 = texture(in_texture, pC4 +dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +dy).rgb;
|
||||
l3=pow_8(l3); l2=pow_8(l2); l1=pow_8(l1);
|
||||
r1=pow_8(r1); r2=pow_8(r2); r3=pow_8(r3);
|
||||
|
||||
vec3 b1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +y2).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +y2).rgb;
|
||||
l1 = texture(in_texture, pC4 +y2).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +y2).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +y2).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +y2).rgb;
|
||||
l3=pow_8(l3); l2=pow_8(l2); l1=pow_8(l1);
|
||||
r1=pow_8(r1); r2=pow_8(r2); r3=pow_8(r3);
|
||||
|
||||
vec3 b2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
wl2 = 1.0 + fp.y; wl2*=wl2; wl2 = exp2(-my_glowpixy*wl2);
|
||||
wl1 = fp.y; wl1*=wl1; wl1 = exp2(-my_glowpixy*wl1);
|
||||
wr1 = 1.0 - fp.y; wr1*=wr1; wr1 = exp2(-my_glowpixy*wr1);
|
||||
wr2 = 2.0 - fp.y; wr2*=wr2; wr2 = exp2(-my_glowpixy*wr2);
|
||||
|
||||
wt = 1.0/(wl2+wl1+wr1+wr2);
|
||||
|
||||
vec3 Bloom = (t2*wl2 + t1*wl1 + b1*wr1 + b2*wr2)*wt;
|
||||
|
||||
return vec4(Bloom*my_glow,1.0);
|
||||
}
|
||||
vec4 pixel_glow_gamma_9(sampler2D in_texture, float my_glowpix, float my_glowpixy, float my_glow, vec2 coords, vec4 SourceSize1, vec4 SourceSize2) {
|
||||
|
||||
// Calculating texel coordinates
|
||||
vec2 tex = coords.xy * 1.00001;
|
||||
// vec4 SourceSize1 = params.SourceSize;
|
||||
|
||||
vec2 OGL2Pos = tex * SourceSize2.xy - vec2(0.5,0.5); // vec2 OGL2Pos = tex * SourceSize1.xy - vec2(0.5,0.5);
|
||||
vec2 fp = fract(OGL2Pos);
|
||||
vec2 dx = vec2(SourceSize1.z,0.0) ; // vec2 dx = vec2(params.passthrough_and_cc_passSize.z,0.0) ; //
|
||||
vec2 dy = vec2(0.0,SourceSize1.w) ; // vec2 dy = vec2(0.0,params.passthrough_and_cc_passSize.w); //
|
||||
vec2 pC4 = (floor(OGL2Pos) + vec2(0.5)) * SourceSize2.zw;
|
||||
|
||||
vec2 x2 = 2.0*dx; vec2 x3 = 3.0*dx;
|
||||
vec2 y2 = 2.0*dy;
|
||||
|
||||
my_glowpix = my_glowpix / scalemod_x * 2 ; // <-- Make it not dependant on the input resolution.
|
||||
my_glowpixy = my_glowpixy / scalemod_y *2 ;
|
||||
|
||||
float wl3 = 2.0 + fp.x; wl3*=wl3; wl3 = exp2(-my_glowpix*wl3);
|
||||
float wl2 = 1.0 + fp.x; wl2*=wl2; wl2 = exp2(-my_glowpix*wl2);
|
||||
float wl1 = fp.x; wl1*=wl1; wl1 = exp2(-my_glowpix*wl1);
|
||||
float wr1 = 1.0 - fp.x; wr1*=wr1; wr1 = exp2(-my_glowpix*wr1);
|
||||
float wr2 = 2.0 - fp.x; wr2*=wr2; wr2 = exp2(-my_glowpix*wr2);
|
||||
float wr3 = 3.0 - fp.x; wr3*=wr3; wr3 = exp2(-my_glowpix*wr3);
|
||||
|
||||
float wt = 1.0/(wl3+wl2+wl1+wr1+wr2+wr3);
|
||||
|
||||
vec3 l3 = texture(in_texture, pC4 -x2 ).rgb;
|
||||
vec3 l2 = texture(in_texture, pC4 -dx ).rgb;
|
||||
vec3 l1 = texture(in_texture, pC4 ).rgb;
|
||||
vec3 r1 = texture(in_texture, pC4 +dx ).rgb;
|
||||
vec3 r2 = texture(in_texture, pC4 +x2 ).rgb;
|
||||
vec3 r3 = texture(in_texture, pC4 +x3 ).rgb;
|
||||
l3=pow_9(l3); l2=pow_9(l2); l1=pow_9(l1);
|
||||
r1=pow_9(r1); r2=pow_9(r2); r3=pow_9(r3);
|
||||
|
||||
vec3 t1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 -dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx -dy).rgb;
|
||||
l1 = texture(in_texture, pC4 -dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx -dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 -dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 -dy).rgb;
|
||||
l3=pow_9(l3); l2=pow_9(l2); l1=pow_9(l1);
|
||||
r1=pow_9(r1); r2=pow_9(r2); r3=pow_9(r3);
|
||||
|
||||
vec3 t2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +dy).rgb;
|
||||
l1 = texture(in_texture, pC4 +dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +dy).rgb;
|
||||
l3=pow_9(l3); l2=pow_9(l2); l1=pow_9(l1);
|
||||
r1=pow_9(r1); r2=pow_9(r2); r3=pow_9(r3);
|
||||
|
||||
vec3 b1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +y2).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +y2).rgb;
|
||||
l1 = texture(in_texture, pC4 +y2).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +y2).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +y2).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +y2).rgb;
|
||||
l3=pow_9(l3); l2=pow_9(l2); l1=pow_9(l1);
|
||||
r1=pow_9(r1); r2=pow_9(r2); r3=pow_9(r3);
|
||||
|
||||
vec3 b2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
wl2 = 1.0 + fp.y; wl2*=wl2; wl2 = exp2(-my_glowpixy*wl2);
|
||||
wl1 = fp.y; wl1*=wl1; wl1 = exp2(-my_glowpixy*wl1);
|
||||
wr1 = 1.0 - fp.y; wr1*=wr1; wr1 = exp2(-my_glowpixy*wr1);
|
||||
wr2 = 2.0 - fp.y; wr2*=wr2; wr2 = exp2(-my_glowpixy*wr2);
|
||||
|
||||
wt = 1.0/(wl2+wl1+wr1+wr2);
|
||||
|
||||
vec3 Bloom = (t2*wl2 + t1*wl1 + b1*wr1 + b2*wr2)*wt;
|
||||
|
||||
return vec4(Bloom*my_glow,1.0);
|
||||
}
|
||||
vec4 pixel_glow_gamma_10(sampler2D in_texture, float my_glowpix, float my_glowpixy, float my_glow, vec2 coords, vec4 SourceSize1, vec4 SourceSize2) {
|
||||
|
||||
// Calculating texel coordinates
|
||||
vec2 tex = coords.xy * 1.00001;
|
||||
// vec4 SourceSize1 = params.SourceSize;
|
||||
|
||||
vec2 OGL2Pos = tex * SourceSize2.xy - vec2(0.5,0.5); // vec2 OGL2Pos = tex * SourceSize1.xy - vec2(0.5,0.5);
|
||||
vec2 fp = fract(OGL2Pos);
|
||||
vec2 dx = vec2(SourceSize1.z,0.0) ; // vec2 dx = vec2(params.passthrough_and_cc_passSize.z,0.0) ; //
|
||||
vec2 dy = vec2(0.0,SourceSize1.w) ; // vec2 dy = vec2(0.0,params.passthrough_and_cc_passSize.w); //
|
||||
vec2 pC4 = (floor(OGL2Pos) + vec2(0.5)) * SourceSize2.zw;
|
||||
|
||||
vec2 x2 = 2.0*dx; vec2 x3 = 3.0*dx;
|
||||
vec2 y2 = 2.0*dy;
|
||||
|
||||
my_glowpix = my_glowpix / scalemod_x * 2 ; // <-- Make it not dependant on the input resolution.
|
||||
my_glowpixy = my_glowpixy / scalemod_y *2 ;
|
||||
|
||||
float wl3 = 2.0 + fp.x; wl3*=wl3; wl3 = exp2(-my_glowpix*wl3);
|
||||
float wl2 = 1.0 + fp.x; wl2*=wl2; wl2 = exp2(-my_glowpix*wl2);
|
||||
float wl1 = fp.x; wl1*=wl1; wl1 = exp2(-my_glowpix*wl1);
|
||||
float wr1 = 1.0 - fp.x; wr1*=wr1; wr1 = exp2(-my_glowpix*wr1);
|
||||
float wr2 = 2.0 - fp.x; wr2*=wr2; wr2 = exp2(-my_glowpix*wr2);
|
||||
float wr3 = 3.0 - fp.x; wr3*=wr3; wr3 = exp2(-my_glowpix*wr3);
|
||||
|
||||
float wt = 1.0/(wl3+wl2+wl1+wr1+wr2+wr3);
|
||||
|
||||
vec3 l3 = texture(in_texture, pC4 -x2 ).rgb;
|
||||
vec3 l2 = texture(in_texture, pC4 -dx ).rgb;
|
||||
vec3 l1 = texture(in_texture, pC4 ).rgb;
|
||||
vec3 r1 = texture(in_texture, pC4 +dx ).rgb;
|
||||
vec3 r2 = texture(in_texture, pC4 +x2 ).rgb;
|
||||
vec3 r3 = texture(in_texture, pC4 +x3 ).rgb;
|
||||
l3=pow_10(l3); l2=pow_10(l2); l1=pow_10(l1);
|
||||
r1=pow_10(r1); r2=pow_10(r2); r3=pow_10(r3);
|
||||
|
||||
vec3 t1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 -dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx -dy).rgb;
|
||||
l1 = texture(in_texture, pC4 -dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx -dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 -dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 -dy).rgb;
|
||||
l3=pow_10(l3); l2=pow_10(l2); l1=pow_10(l1);
|
||||
r1=pow_10(r1); r2=pow_10(r2); r3=pow_10(r3);
|
||||
|
||||
vec3 t2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +dy).rgb;
|
||||
l1 = texture(in_texture, pC4 +dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +dy).rgb;
|
||||
l3=pow_10(l3); l2=pow_10(l2); l1=pow_10(l1);
|
||||
r1=pow_10(r1); r2=pow_10(r2); r3=pow_10(r3);
|
||||
|
||||
vec3 b1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +y2).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +y2).rgb;
|
||||
l1 = texture(in_texture, pC4 +y2).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +y2).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +y2).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +y2).rgb;
|
||||
l3=pow_10(l3); l2=pow_10(l2); l1=pow_10(l1);
|
||||
r1=pow_10(r1); r2=pow_10(r2); r3=pow_10(r3);
|
||||
|
||||
vec3 b2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
wl2 = 1.0 + fp.y; wl2*=wl2; wl2 = exp2(-my_glowpixy*wl2);
|
||||
wl1 = fp.y; wl1*=wl1; wl1 = exp2(-my_glowpixy*wl1);
|
||||
wr1 = 1.0 - fp.y; wr1*=wr1; wr1 = exp2(-my_glowpixy*wr1);
|
||||
wr2 = 2.0 - fp.y; wr2*=wr2; wr2 = exp2(-my_glowpixy*wr2);
|
||||
|
||||
wt = 1.0/(wl2+wl1+wr1+wr2);
|
||||
|
||||
vec3 Bloom = (t2*wl2 + t1*wl1 + b1*wr1 + b2*wr2)*wt;
|
||||
|
||||
return vec4(Bloom*my_glow,1.0);
|
||||
}
|
||||
|
||||
vec3 blur_v(sampler2D in_texture, float my_glowpixy, vec2 coords, vec4 SourceSize1, vec4 SourceSize2) {
|
||||
|
||||
// Calculating texel coordinates
|
||||
vec2 tex = coords.xy * 1.00001;
|
||||
|
||||
vec2 OGL2Pos = tex * SourceSize2.xy - vec2(0.5,0.5);
|
||||
vec2 fp = fract(OGL2Pos);
|
||||
|
||||
vec2 dy = vec2(0.0,SourceSize1.w) ;
|
||||
vec2 pC4 = (floor(OGL2Pos) + vec2(0.5)) * SourceSize2.zw;
|
||||
|
||||
vec2 y2 = 2.0*dy;
|
||||
|
||||
my_glowpixy = my_glowpixy / scalemod_y *2 ;
|
||||
|
||||
vec3 t1 = texture(in_texture, pC4 ).rgb;
|
||||
vec3 t2 = texture(in_texture, pC4 -dy).rgb;
|
||||
vec3 b1 = texture(in_texture, pC4 +dy).rgb;
|
||||
vec3 b2 = texture(in_texture, pC4 +y2).rgb;
|
||||
|
||||
float wl2 = 1.0 + fp.y; wl2*=wl2; wl2 = exp2(-my_glowpixy*wl2);
|
||||
float wl1 = fp.y; wl1*=wl1; wl1 = exp2(-my_glowpixy*wl1);
|
||||
float wr1 = 1.0 - fp.y; wr1*=wr1; wr1 = exp2(-my_glowpixy*wr1);
|
||||
float wr2 = 2.0 - fp.y; wr2*=wr2; wr2 = exp2(-my_glowpixy*wr2);
|
||||
|
||||
float wt = 1.0/(wl2+wl1+wr1+wr2);
|
||||
|
||||
vec3 smoothed = (t2*wl2 + t1*wl1 + b1*wr1 + b2*wr2)*wt;
|
||||
|
||||
return smoothed;
|
||||
|
||||
return vec3(1.0);
|
||||
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
vec4 pixel_glow_std_pow(sampler2D in_texture, float my_glowpix, float my_glowpixy, float my_glow, float glow_gamma, vec2 coords, vec4 SourceSize1, vec4 SourceSize2) {
|
||||
|
||||
// Calculating texel coordinates
|
||||
vec2 tex = coords.xy * 1.00001;
|
||||
|
||||
vec2 OGL2Pos = tex * SourceSize2.xy - vec2(0.5,0.5); // vec2 OGL2Pos = tex * SourceSize2.xy - vec2(0.5,0.5); // vec2 OGL2Pos = tex * SourceSize1.xy - vec2(0.5,0.5);
|
||||
vec2 fp = fract(OGL2Pos);
|
||||
vec2 dx = vec2(SourceSize1.z,0.0) ; // vec2 dx = vec2(params.passthrough_and_cc_passSize.z,0.0) ; //
|
||||
vec2 dy = vec2(0.0,SourceSize1.w) ; // vec2 dy = vec2(0.0,params.passthrough_and_cc_passSize.w); //
|
||||
vec2 pC4 = (floor(OGL2Pos) + vec2(0.5)) * SourceSize2.zw;
|
||||
|
||||
vec2 x2 = 2.0*dx; vec2 x3 = 3.0*dx;
|
||||
vec2 y2 = 2.0*dy;
|
||||
|
||||
vec3 glow_gamma_vec3 = vec3(glow_gamma);
|
||||
|
||||
my_glowpix = my_glowpix / scalemod_x * 2 ; // <-- Make it not dependant on the input resolution.
|
||||
my_glowpixy = my_glowpixy / scalemod_y *2 ;
|
||||
|
||||
float wl3 = 2.0 + fp.x; wl3*=wl3; wl3 = exp2(-my_glowpix*wl3);
|
||||
float wl2 = 1.0 + fp.x; wl2*=wl2; wl2 = exp2(-my_glowpix*wl2);
|
||||
float wl1 = fp.x; wl1*=wl1; wl1 = exp2(-my_glowpix*wl1);
|
||||
float wr1 = 1.0 - fp.x; wr1*=wr1; wr1 = exp2(-my_glowpix*wr1);
|
||||
float wr2 = 2.0 - fp.x; wr2*=wr2; wr2 = exp2(-my_glowpix*wr2);
|
||||
float wr3 = 3.0 - fp.x; wr3*=wr3; wr3 = exp2(-my_glowpix*wr3);
|
||||
|
||||
float wt = 1.0/(wl3+wl2+wl1+wr1+wr2+wr3);
|
||||
|
||||
vec3 l3 = texture(in_texture, pC4 -x2 ).rgb;
|
||||
vec3 l2 = texture(in_texture, pC4 -dx ).rgb;
|
||||
vec3 l1 = texture(in_texture, pC4 ).rgb;
|
||||
vec3 r1 = texture(in_texture, pC4 +dx ).rgb;
|
||||
vec3 r2 = texture(in_texture, pC4 +x2 ).rgb;
|
||||
vec3 r3 = texture(in_texture, pC4 +x3 ).rgb;
|
||||
l3=pow(l3,glow_gamma_vec3); l2=pow(l2,glow_gamma_vec3); l1=pow(l1,glow_gamma_vec3);
|
||||
r1=pow(r1,glow_gamma_vec3); r2=pow(r2,glow_gamma_vec3); r3=pow(r3,glow_gamma_vec3);
|
||||
|
||||
vec3 t1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 -dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx -dy).rgb;
|
||||
l1 = texture(in_texture, pC4 -dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx -dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 -dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 -dy).rgb;
|
||||
l3=pow(l3,glow_gamma_vec3); l2=pow(l2,glow_gamma_vec3); l1=pow(l1,glow_gamma_vec3);
|
||||
r1=pow(r1,glow_gamma_vec3); r2=pow(r2,glow_gamma_vec3); r3=pow(r3,glow_gamma_vec3);
|
||||
|
||||
vec3 t2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +dy).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +dy).rgb;
|
||||
l1 = texture(in_texture, pC4 +dy).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +dy).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +dy).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +dy).rgb;
|
||||
l3=pow(l3,glow_gamma_vec3); l2=pow(l2,glow_gamma_vec3); l1=pow(l1,glow_gamma_vec3);
|
||||
r1=pow(r1,glow_gamma_vec3); r2=pow(r2,glow_gamma_vec3); r3=pow(r3,glow_gamma_vec3);
|
||||
|
||||
vec3 b1 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
l3 = texture(in_texture, pC4 -x2 +y2).rgb;
|
||||
l2 = texture(in_texture, pC4 -dx +y2).rgb;
|
||||
l1 = texture(in_texture, pC4 +y2).rgb;
|
||||
r1 = texture(in_texture, pC4 +dx +y2).rgb;
|
||||
r2 = texture(in_texture, pC4 +x2 +y2).rgb;
|
||||
r3 = texture(in_texture, pC4 +x3 +y2).rgb;
|
||||
l3=pow(l3,glow_gamma_vec3); l2=pow(l2,glow_gamma_vec3); l1=pow(l1,glow_gamma_vec3);
|
||||
r1=pow(r1,glow_gamma_vec3); r2=pow(r2,glow_gamma_vec3); r3=pow(r3,glow_gamma_vec3);
|
||||
|
||||
vec3 b2 = (l3*wl3 + l2*wl2 + l1*wl1 + r1*wr1 + r2*wr2 + r3*wr3)*wt;
|
||||
|
||||
wl2 = 1.0 + fp.y; wl2*=wl2; wl2 = exp2(-my_glowpixy*wl2);
|
||||
wl1 = fp.y; wl1*=wl1; wl1 = exp2(-my_glowpixy*wl1);
|
||||
wr1 = 1.0 - fp.y; wr1*=wr1; wr1 = exp2(-my_glowpixy*wr1);
|
||||
wr2 = 2.0 - fp.y; wr2*=wr2; wr2 = exp2(-my_glowpixy*wr2);
|
||||
|
||||
wt = 1.0/(wl2+wl1+wr1+wr2);
|
||||
|
||||
vec3 Bloom = (t2*wl2 + t1*wl1 + b1*wr1 + b2*wr2)*wt;
|
||||
|
||||
return vec4(Bloom*my_glow,1.0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
vec4 dumb_glow(sampler2D in_texture, float my_glow, float glow_gamma, vec2 coords) {
|
||||
vec3 pixel_in = texture(in_texture, coords ).rgb;
|
||||
pixel_in = pow(pixel_in,vec3(glow_gamma))*my_glow;
|
||||
return vec4(pixel_in,0.0);
|
||||
}
|
||||
|
||||
vec4 pixel_glow(sampler2D in_texture, float my_glowpix, float my_glowpixy, float my_glow, float glow_gamma, vec2 coords, vec4 SourceSize1, vec4 SourceSize2) {
|
||||
|
||||
if ( (my_glowpix >= GLOW_SHARP_MAX) && (my_glowpixy >= GLOW_SHARP_MAX) ) {
|
||||
return dumb_glow(in_texture, my_glow,glow_gamma,coords);
|
||||
}
|
||||
|
||||
return pixel_glow_std_pow(in_texture,my_glowpix,my_glowpixy,my_glow,glow_gamma,coords,SourceSize1, SourceSize2);
|
||||
|
||||
//return pixel_glow_my_pow(in_texture,my_glowpix,my_glowpixy,my_glow,glow_gamma,coords,SourceSize1, SourceSize2);
|
||||
|
||||
|
||||
/* if (glow_gamma == 1) { return pixel_glow_gamma_1(in_texture, my_glowpix,my_glowpixy,my_glow,coords,SourceSize1, SourceSize2); }
|
||||
if (glow_gamma == 2) { return pixel_glow_gamma_2(in_texture, my_glowpix,my_glowpixy,my_glow,coords,SourceSize1, SourceSize2); }
|
||||
if (glow_gamma == 3) { return pixel_glow_gamma_3(in_texture,my_glowpix,my_glowpixy,my_glow,coords,SourceSize1, SourceSize2); }
|
||||
if (glow_gamma == 4) { return pixel_glow_gamma_4(in_texture,my_glowpix,my_glowpixy,my_glow,coords,SourceSize1, SourceSize2); }
|
||||
if (glow_gamma == 5) { return pixel_glow_gamma_5(in_texture,my_glowpix,my_glowpixy,my_glow,coords,SourceSize1, SourceSize2); }
|
||||
if (glow_gamma == 6) { return pixel_glow_gamma_6(in_texture,my_glowpix,my_glowpixy,my_glow,coords,SourceSize1, SourceSize2); }
|
||||
if (glow_gamma == 7) { return pixel_glow_gamma_7(in_texture,my_glowpix,my_glowpixy,my_glow,coords,SourceSize1, SourceSize2); }
|
||||
if (glow_gamma == 8) { return pixel_glow_gamma_8(in_texture,my_glowpix,my_glowpixy,my_glow,coords,SourceSize1, SourceSize2); }
|
||||
if (glow_gamma == 9) { return pixel_glow_gamma_9(in_texture,my_glowpix,my_glowpixy,my_glow,coords,SourceSize1, SourceSize2); }
|
||||
if (glow_gamma == 10) { return pixel_glow_gamma_10(in_texture,my_glowpix,my_glowpixy,my_glow,coords,SourceSize1, SourceSize2); }
|
||||
return pixel_glow_std_pow(in_texture,my_glowpix,my_glowpixy,my_glow,glow_gamma,coords,SourceSize1, SourceSize2);
|
||||
*/
|
||||
|
||||
|
||||
}
|
||||
|
59
bezel/koko-aio/shaders/includes/pows.include.slang
Normal file
59
bezel/koko-aio/shaders/includes/pows.include.slang
Normal file
|
@ -0,0 +1,59 @@
|
|||
vec3 pow_2(vec3 v) {
|
||||
return v*v*v;
|
||||
}
|
||||
|
||||
vec3 pow_3(vec3 v) {
|
||||
return v*v*v;
|
||||
}
|
||||
|
||||
vec3 pow_4(vec3 v) {
|
||||
vec3 v2 = v*v;
|
||||
return v2*v2;
|
||||
}
|
||||
|
||||
vec3 pow_5(vec3 v) {
|
||||
vec3 v2 = v*v;
|
||||
return v2*v2*v;
|
||||
}
|
||||
|
||||
vec3 pow_6(vec3 v) {
|
||||
vec3 v2 = v*v;
|
||||
return v2*v2*v2;
|
||||
}
|
||||
|
||||
vec3 pow_7(vec3 v) {
|
||||
vec3 v2 = v*v;
|
||||
return v2*v2*v2*v;
|
||||
}
|
||||
|
||||
vec3 pow_8(vec3 v) {
|
||||
vec3 v2 = v*v;
|
||||
vec3 v4 = v2*v2;
|
||||
return v4*v4;
|
||||
}
|
||||
|
||||
vec3 pow_9(vec3 v) {
|
||||
vec3 v2 = v*v;
|
||||
vec3 v4 = v2*v2;
|
||||
return v4*v4*v;
|
||||
}
|
||||
|
||||
vec3 pow_10(vec3 v) {
|
||||
vec3 v2 = v*v;
|
||||
vec3 v4 = v2*v2;
|
||||
return v4*v4*v2;
|
||||
}
|
||||
|
||||
vec3 my_pow(vec3 c,float p) {
|
||||
if (p == 1) return c;
|
||||
else if (p == 2) return c * c ;
|
||||
else if (p == 3) return pow_3(c);
|
||||
else if (p == 4) return pow_4(c);
|
||||
else if (p == 5) return pow_5(c);
|
||||
else if (p == 6) return pow_6(c);
|
||||
else if (p == 7) return pow_7(c);
|
||||
else if (p == 8) return pow_8(c);
|
||||
else if (p == 9) return pow_9(c);
|
||||
else if (p == 10) return pow_10(c);
|
||||
return pow(c,vec3(p));
|
||||
}
|
33
bezel/koko-aio/shaders/isrotated.slang
Normal file
33
bezel/koko-aio/shaders/isrotated.slang
Normal file
|
@ -0,0 +1,33 @@
|
|||
#version 450
|
||||
#include "config.inc"
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
layout(location = 1) out float mark_color_rotated;
|
||||
|
||||
#include "includes/functions.include.slang"
|
||||
void main()
|
||||
{
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = TexCoord;
|
||||
if (is_rotated())
|
||||
mark_color_rotated = 1.0;
|
||||
else
|
||||
mark_color_rotated = 0.0;
|
||||
}
|
||||
|
||||
#pragma stage fragment
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 1) in float mark_color_rotated;
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
|
||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||
|
||||
|
||||
void main() {
|
||||
FragColor.r = mark_color_rotated;
|
||||
}
|
||||
|
||||
|
138
bezel/koko-aio/shaders/old_unused/ambi_displace.slang
Normal file
138
bezel/koko-aio/shaders/old_unused/ambi_displace.slang
Normal file
|
@ -0,0 +1,138 @@
|
|||
#version 450
|
||||
#include "config.inc"
|
||||
#define eps 1e-8
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
layout(location = 1) out vec2 vTexCoord_zoom;
|
||||
|
||||
#include "functions.include.slang"
|
||||
void main()
|
||||
{
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = TexCoord;
|
||||
vTexCoord_zoom = TexCoord;
|
||||
if (DO_BEZEL==1.0 && BEZEL_INNER_ZOOM !=0.0) vTexCoord_zoom = zoomout_coords(TexCoord, -BEZEL_INNER_ZOOM , 1.0);
|
||||
}
|
||||
|
||||
#pragma stage fragment
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 1) in vec2 vTexCoord_zoom;
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
layout(set = 0, binding = 2) uniform sampler2D Original;
|
||||
layout(set = 0, binding = 3) uniform sampler2D main_pass;
|
||||
layout(set = 0, binding = 4) uniform sampler2D isrotated_pass;
|
||||
|
||||
|
||||
|
||||
bool border_updown(){
|
||||
//Return if black bars are up and down or left and right.
|
||||
//Why this one work?
|
||||
return ((params.OriginalSize.x > params.OriginalSize.y) && (global.main_passSize.x < global.main_passSize.y )) ||
|
||||
(params.OriginalSize.x < params.OriginalSize.y) && (global.main_passSize.x > global.main_passSize.y ) ;
|
||||
}
|
||||
|
||||
vec3 main_wrap(){
|
||||
|
||||
float myborder = 0.025; //20% border to be displaced
|
||||
vec2 newcoords = vTexCoord_zoom;
|
||||
vec3 pixel_out;
|
||||
float mydiv;
|
||||
float myoffset;
|
||||
|
||||
if (!border_updown()) {
|
||||
mydiv = vTexCoord.x / myborder;
|
||||
myoffset = (1.0-myborder) * floor(mydiv);
|
||||
|
||||
if (vTexCoord.x < 0.5)
|
||||
newcoords.x = newcoords.x - ( myborder * floor(mydiv) ) ;
|
||||
else
|
||||
newcoords.x = (1 - myborder) + ( newcoords.x - (myborder*floor(mydiv)) ) ;
|
||||
|
||||
return texture(Original, newcoords).rgb;
|
||||
}
|
||||
|
||||
//Is rotated
|
||||
mydiv = vTexCoord.y / myborder;
|
||||
myoffset = (1.0-myborder) * floor(mydiv);
|
||||
|
||||
if (vTexCoord.y < 0.5)
|
||||
newcoords.y = newcoords.y - ( myborder * floor(mydiv) ) ;
|
||||
else
|
||||
newcoords.y = (1 - myborder) + ( newcoords.y - (myborder*floor(mydiv)) ) ;
|
||||
return texture(Original, newcoords).rgb;
|
||||
|
||||
|
||||
}
|
||||
#include "functions.include.slang"
|
||||
float mborder(vec2 coord,float aspect,float corner_size, float corner_smooth) {
|
||||
coord = (coord - vec2(0.5)) + vec2(0.5, 0.5);
|
||||
coord = min(coord, vec2(1.0) - coord) * aspect;
|
||||
vec2 cdist = vec2(corner_size);
|
||||
coord = (cdist - min(coord, cdist));
|
||||
float dist = sqrt(dot(coord, coord));
|
||||
return clamp((cdist.x - dist)*corner_smooth, 0.0, 1.0);
|
||||
}
|
||||
|
||||
|
||||
vec2 bget_scaled_coords(vec2 pTexCoord, vec4 destsize){
|
||||
if (!border_needed()) return pTexCoord;
|
||||
//else
|
||||
float scale_x = 1.0;
|
||||
float scale_y = 1.0;
|
||||
float offset_x = 0.0 ;
|
||||
float offset_y = 0.0 ;
|
||||
float in_aspect = get_in_aspect();
|
||||
if (is_rotated()) {
|
||||
//scale_y = params.OutputSize.y/(params.OutputSize.x / in_aspect );
|
||||
//scale_y = global.FinalViewportSize.y/(global.FinalViewportSize.x / in_aspect );
|
||||
scale_y = destsize.y/(destsize.x / in_aspect );
|
||||
offset_y = (0.5 * scale_y ) - 0.5 ;
|
||||
} else {
|
||||
//scale_x = params.OutputSize.x/(params.OutputSize.y * in_aspect);
|
||||
//scale_x = global.FinalViewportSize.x/(global.FinalViewportSize.y * in_aspect);
|
||||
scale_x = destsize.x/(destsize.y * in_aspect);
|
||||
offset_x = (0.5 * scale_x ) - 0.5 ;
|
||||
}
|
||||
|
||||
vec2 scale_coord=vec2(pTexCoord.x*scale_x - offset_x , pTexCoord.y*scale_y - offset_y);
|
||||
return scale_coord;
|
||||
}
|
||||
|
||||
|
||||
void main() {
|
||||
if (DO_AMBILIGHT != 1.0) return;
|
||||
//bool is_rotated = texture(isrotated_pass,vec2(0.5,0.5)).r > 0.5;
|
||||
|
||||
|
||||
//Disegna un rettangolo sul gioco.
|
||||
//samplo main_pass per riferimento.
|
||||
vec4 pixel_Original = texture(Original,vTexCoord);
|
||||
|
||||
FragColor = pixel_Original;
|
||||
|
||||
/*
|
||||
float dist = 1-length(vTexCoord-0.5);
|
||||
|
||||
FragColor = vec4(main_wrap(),1.0);
|
||||
|
||||
float corner_size = 0.25;
|
||||
float corner_smooth = 4.0;
|
||||
float zoom = 0.4;
|
||||
vec2 co = get_scaled_coords(zoomout_coords(vTexCoord, -zoom , 1.0),global.FinalViewportSize);
|
||||
float ss=pow(mborder(co,1.0,corner_size, corner_smooth),2.0);
|
||||
|
||||
//ss = ss * smoothstep(shade_end,shade_start, vTexCoord.x);
|
||||
|
||||
FragColor = vec4(ss);
|
||||
|
||||
|
||||
vec2 ccords = get_scaled_coords(vTexCoord,global.FinalViewportSize);
|
||||
ccords = zoomout_coords(ccords,-BEZEL_INNER_ZOOM,1.0);
|
||||
//FragColor = texture(Original,ccords)*ss;
|
||||
*/
|
||||
}
|
||||
|
||||
|
61
bezel/koko-aio/shaders/old_unused/ambi_mix_pass.slang
Normal file
61
bezel/koko-aio/shaders/old_unused/ambi_mix_pass.slang
Normal file
|
@ -0,0 +1,61 @@
|
|||
#version 450
|
||||
#include "config.inc"
|
||||
|
||||
#define eps 1e-8
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
layout(location = 1) out vec2 vOutputCoord;
|
||||
|
||||
#include "functions.include"
|
||||
void main() {
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = get_scaled_coords(TexCoord);
|
||||
vOutputCoord = TexCoord;
|
||||
}
|
||||
|
||||
|
||||
#pragma stage fragment
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 1) in vec2 vOutputCoord;
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
layout(set = 0, binding = 2) uniform sampler2D final_pass;
|
||||
layout(set = 0, binding = 4) uniform sampler2D ambi_temporal_pass;
|
||||
|
||||
#include "functions.include"
|
||||
|
||||
vec4 pixel_border() {
|
||||
vec3 ambi = texture(ambi_temporal_pass, vOutputCoord).rgb;
|
||||
float l = length(ambi);
|
||||
float sat = 1.25;
|
||||
float bright = 1.25;
|
||||
ambi = normalize( pow(ambi.rgb + vec3(eps), vec3(sat)))*l * bright ;
|
||||
ambi*=bright;
|
||||
return vec4(ambi,0.0);
|
||||
}
|
||||
|
||||
vec3 ambi_noised() {
|
||||
return pixel_border().rgb + random();
|
||||
}
|
||||
|
||||
|
||||
void main() {
|
||||
vec4 psample = texture(final_pass, vOutputCoord);
|
||||
if (DO_AMBILIGHT == 1) {
|
||||
vec3 ambinoised = ambi_noised();
|
||||
if (is_outer_frame(psample)) {
|
||||
FragColor = mark_outer_frame(ambi_noised());
|
||||
} else {
|
||||
FragColor = vec4(mix(ambinoised.rgb,psample.rgb,min(psample.a*1.5,1.0)),psample.a);
|
||||
}
|
||||
} else {
|
||||
FragColor = psample ;
|
||||
}
|
||||
|
||||
|
||||
//FragColor = vec4(ambi_noised(), 1.0);
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
#version 450
|
||||
#include "config.inc"
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = TexCoord;
|
||||
}
|
||||
|
||||
#pragma stage fragment
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||
|
||||
|
||||
void main() {
|
||||
if (DO_AMBILIGHT == 1.0)
|
||||
FragColor = texture(Source, vTexCoord);
|
||||
else
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
#version 450
|
||||
#include "config.inc"
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = TexCoord;
|
||||
}
|
||||
|
||||
#pragma stage fragment
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
layout(set = 0, binding = 2) uniform sampler2D main_pass;
|
||||
|
||||
|
||||
void main() {
|
||||
vec2 coords = vTexCoord;
|
||||
if (DO_BLOOM == 1) {
|
||||
if (DO_CURVATURE == 1.0) {
|
||||
if ((GEOM_WARP_X > 0.0) || (GEOM_WARP_Y > 0.0))
|
||||
coords = Warp(vTexCoord,GEOM_WARP_X,GEOM_WARP_Y);
|
||||
}
|
||||
FragColor = texture(main_pass,coords);
|
||||
return;
|
||||
} else {
|
||||
//No bloom requested
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
12
bezel/koko-aio/shaders/old_unused/blurs.include.slang
Normal file
12
bezel/koko-aio/shaders/old_unused/blurs.include.slang
Normal file
|
@ -0,0 +1,12 @@
|
|||
vec4 blur9(sampler2D image, vec2 uv, vec2 resolution, vec2 direction, float lod) {
|
||||
vec4 color = vec4(0.0);
|
||||
vec2 off1 = vec2(1.3846153846) * direction;
|
||||
vec2 off2 = vec2(3.2307692308) * direction;
|
||||
color += textureLod(image, uv, lod) * 0.2270270270;
|
||||
color += textureLod(image, uv + (off1 / resolution), lod) * 0.3162162162;
|
||||
color += textureLod(image, uv - (off1 / resolution), lod) * 0.3162162162;
|
||||
color += textureLod(image, uv + (off2 / resolution), lod) * 0.0702702703;
|
||||
color += textureLod(image, uv - (off2 / resolution), lod) * 0.0702702703;
|
||||
return color;
|
||||
}
|
||||
|
226
bezel/koko-aio/shaders/old_unused/curvature.slang
Normal file
226
bezel/koko-aio/shaders/old_unused/curvature.slang
Normal file
|
@ -0,0 +1,226 @@
|
|||
#version 450
|
||||
#include "config.inc"
|
||||
|
||||
|
||||
/*
|
||||
CRT Shader by EasyMode
|
||||
License: GPL
|
||||
|
||||
Modified by kokoko3k, stripped to keep just curvature related code.
|
||||
*/
|
||||
|
||||
#define FIX(c) max(abs(c), 1e-5)
|
||||
#define PI 3.141592653589
|
||||
#define TEX2D(c) texture(tex, c)
|
||||
#define in_texture final_pass
|
||||
#define in_textureSize final_passSize
|
||||
//#define in_textureSize SourceSize
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
layout(location = 1) out vec2 vOutputCoord;
|
||||
|
||||
#include "functions.include"
|
||||
void main() {
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = get_scaled_coords(TexCoord);
|
||||
vOutputCoord = TexCoord;
|
||||
}
|
||||
|
||||
#pragma stage fragment
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 1) in vec2 vOutputCoord;
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
layout(set = 0, binding = 2) uniform sampler2D in_texture;
|
||||
|
||||
float curve_distance(float x, float sharp)
|
||||
{
|
||||
float x_step = step(0.5, x);
|
||||
float curve = 0.5 - sqrt(0.25 - (x - x_step) * (x - x_step)) * sign(0.5 - x);
|
||||
|
||||
return mix(x, curve, sharp);
|
||||
}
|
||||
|
||||
mat4x4 get_color_matrix(sampler2D tex, vec2 co, vec2 dx)
|
||||
{
|
||||
return mat4x4(TEX2D(co - dx), TEX2D(co), TEX2D(co + dx), TEX2D(co + 2.0 * dx));
|
||||
}
|
||||
|
||||
vec4 filter_lanczos(vec4 coeffs, mat4x4 color_matrix)
|
||||
{
|
||||
vec4 col = color_matrix * coeffs;
|
||||
vec4 sample_min = min(color_matrix[1], color_matrix[2]);
|
||||
vec4 sample_max = max(color_matrix[1], color_matrix[2]);
|
||||
|
||||
col = clamp(col, sample_min, sample_max);
|
||||
|
||||
return col;
|
||||
}
|
||||
|
||||
vec2 curve_coordinate(vec2 co, float curvature_x, float curvature_y)
|
||||
{
|
||||
vec2 curve = vec2(curvature_x, curvature_y);
|
||||
vec2 co2 = co + co * curve - curve / 2.0;
|
||||
vec2 co_weight = vec2(co.y, co.x) * 2.0 - 1.0;
|
||||
|
||||
co = mix(co, co2, co_weight * co_weight);
|
||||
|
||||
return co;
|
||||
}
|
||||
|
||||
float get_corner_weight(vec2 co, vec2 corner, float smoothfunc)
|
||||
{
|
||||
float corner_weight;
|
||||
|
||||
co = min(co, vec2(1.0) - co) * vec2(1.0, 0.75);
|
||||
co = (corner - min(co, corner));
|
||||
corner_weight = clamp((corner.x - sqrt(dot(co, co))) * smoothfunc, 0.0, 1.0);
|
||||
corner_weight = mix(1.0, corner_weight, ceil(corner.x));
|
||||
|
||||
return corner_weight;
|
||||
}
|
||||
|
||||
#define GEOM_ANTIALIAS 1.0
|
||||
|
||||
vec3 curve_antialias(vec2 xy,vec2 tex_size){
|
||||
vec2 midpoint = vec2(0.5, 0.5);
|
||||
|
||||
vec2 co = vOutputCoord * tex_size * params.in_textureSize.zw;
|
||||
vec2 co2 = vTexCoord * tex_size * params.in_textureSize.zw;
|
||||
|
||||
vec3 col;
|
||||
float corner_weight = get_corner_weight(curve_coordinate(co2, GEOM_BORDER_WX, GEOM_BORDER_WY ), vec2(GEOM_CORNER_SIZE), GEOM_CORNER_SMOOTH);
|
||||
|
||||
if ( (GEOM_WARP_X > 0) || (GEOM_WARP_Y > 0) ) {
|
||||
xy *= params.in_textureSize.xy / tex_size;
|
||||
|
||||
vec2 dx = vec2(1.0 / tex_size.x, 0.0);
|
||||
vec2 dy = vec2(0.0, 1.0 / tex_size.y);
|
||||
vec2 pix_co = xy * tex_size - midpoint;
|
||||
vec2 tex_co = (floor(pix_co) + midpoint) / tex_size;
|
||||
vec2 dist = fract(pix_co);
|
||||
float curve_x, curve_y;
|
||||
vec3 col2, diff;
|
||||
|
||||
curve_x = curve_distance(dist.x, SHARPNESS_H * SHARPNESS_H);
|
||||
curve_y = curve_distance(dist.y, SHARPNESS_V * SHARPNESS_V);
|
||||
|
||||
vec4 coeffs_x = PI * vec4(1.0 + curve_x, curve_x, 1.0 - curve_x, 2.0 - curve_x);
|
||||
vec4 coeffs_y = PI * vec4(1.0 + curve_y, curve_y, 1.0 - curve_y, 2.0 - curve_y);
|
||||
|
||||
coeffs_x = FIX(coeffs_x);
|
||||
coeffs_x = 2.0 * sin(coeffs_x) * sin(coeffs_x / 2.0) / (coeffs_x * coeffs_x);
|
||||
coeffs_x /= dot(coeffs_x, vec4(1.0));
|
||||
|
||||
coeffs_y = FIX(coeffs_y);
|
||||
coeffs_y = 2.0 * sin(coeffs_y) * sin(coeffs_y / 2.0) / (coeffs_y * coeffs_y);
|
||||
coeffs_y /= dot(coeffs_y, vec4(1.0));
|
||||
|
||||
mat4x4 color_matrix;
|
||||
|
||||
|
||||
color_matrix[0] = filter_lanczos(coeffs_x, get_color_matrix(in_texture, tex_co - dy, dx));
|
||||
color_matrix[1] = filter_lanczos(coeffs_x, get_color_matrix(in_texture, tex_co, dx));
|
||||
color_matrix[2] = filter_lanczos(coeffs_x, get_color_matrix(in_texture, tex_co + dy, dx));
|
||||
color_matrix[3] = filter_lanczos(coeffs_x, get_color_matrix(in_texture, tex_co + 2.0 * dy, dx));
|
||||
|
||||
col = filter_lanczos(coeffs_y, color_matrix).rgb;
|
||||
} else {
|
||||
col = texture(in_texture, vOutputCoord).rgb;
|
||||
}
|
||||
|
||||
col *= vec3(corner_weight);
|
||||
return col;
|
||||
}
|
||||
|
||||
vec2 Warp2(vec2 texCoord){
|
||||
|
||||
vec2 curvedCoords = texCoord * 2.0 - 1.0;
|
||||
vec2 CRT_Distortion = vec2(GEOM_WARP_X, GEOM_WARP_Y) * 15.;
|
||||
float curvedCoordsDistance = sqrt(curvedCoords.x*curvedCoords.x+curvedCoords.y*curvedCoords.y);
|
||||
|
||||
curvedCoords = curvedCoords / curvedCoordsDistance;
|
||||
|
||||
curvedCoords = curvedCoords * (1.0-pow(vec2(1.0-(curvedCoordsDistance/1.4142135623730950488016887242097)),(1.0/(1.0+CRT_Distortion*0.2))));
|
||||
|
||||
curvedCoords = curvedCoords / (1.0-pow(vec2(0.29289321881345247559915563789515),(1.0/(vec2(1.0)+CRT_Distortion*0.2))));
|
||||
|
||||
curvedCoords = curvedCoords * 0.5 + 0.5;
|
||||
return curvedCoords;
|
||||
}
|
||||
|
||||
vec3 do_curvature_antialias(){
|
||||
vec2 tex_size = params.in_textureSize.xy ;
|
||||
|
||||
vec2 co = vOutputCoord * tex_size * params.in_textureSize.zw;
|
||||
vec2 co2 = vTexCoord * tex_size * params.in_textureSize.zw;
|
||||
vec2 curved_xy = curve_coordinate(co, GEOM_WARP_X,GEOM_WARP_Y );
|
||||
|
||||
vec3 col;
|
||||
//float corner_weight = get_corner_weight(curve_coordinate(co2, GEOM_BORDER_WX, GEOM_BORDER_WY ), vec2(GEOM_CORNER_SIZE), GEOM_CORNER_SMOOTH);
|
||||
float corner_weight = get_corner_weight(Warp2(co), vec2(GEOM_CORNER_SIZE), GEOM_CORNER_SMOOTH);
|
||||
|
||||
|
||||
if ( (GEOM_WARP_X > 0) || (GEOM_WARP_Y > 0) ) {
|
||||
if (GEOM_ANTIALIAS == 1.0)
|
||||
col = curve_antialias(curved_xy,tex_size);
|
||||
else
|
||||
col = texture(in_texture,curved_xy).rgb;
|
||||
} else {
|
||||
col = texture(in_texture, vOutputCoord).rgb;
|
||||
}
|
||||
|
||||
col *= vec3(corner_weight) ;
|
||||
|
||||
|
||||
|
||||
return col;
|
||||
}
|
||||
|
||||
const vec2 corner_aspect = vec2(1.0, 0.75);
|
||||
|
||||
float corner2(vec2 coord)
|
||||
{
|
||||
coord = (coord - vec2(0.5)) + vec2(0.5, 0.5);
|
||||
coord = min(coord, vec2(1.0) - coord) * corner_aspect;
|
||||
vec2 cdist = vec2(GEOM_CORNER_SIZE);
|
||||
coord = (cdist - min(coord, cdist));
|
||||
float dist = sqrt(dot(coord, coord));
|
||||
|
||||
return clamp((cdist.x - dist)*GEOM_CORNER_SMOOTH, 0.0, 1.0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
vec3 do_curvature_alias(){
|
||||
vec2 curved_xy = Warp2(vOutputCoord);
|
||||
return texture(in_texture,curved_xy ).rgb * corner2(curved_xy);
|
||||
}
|
||||
|
||||
vec4 main_wrap()
|
||||
{
|
||||
if (DO_CURVATURE == 1.0) {
|
||||
return vec4(do_curvature_antialias(), 1.0);
|
||||
} else {
|
||||
return texture(in_texture, vOutputCoord);
|
||||
}
|
||||
}
|
||||
|
||||
#include "functions.include"
|
||||
void main() {
|
||||
vec4 psample = texture(in_texture, vOutputCoord);
|
||||
if ( border_needed() ) {
|
||||
if (is_outer_frame(psample))
|
||||
FragColor = mark_outer_frame(vec3(0.0));
|
||||
else
|
||||
FragColor = main_wrap();
|
||||
} else {
|
||||
FragColor = main_wrap();
|
||||
}
|
||||
}
|
||||
|
||||
|
68
bezel/koko-aio/shaders/old_unused/in_glow.slang
Normal file
68
bezel/koko-aio/shaders/old_unused/in_glow.slang
Normal file
|
@ -0,0 +1,68 @@
|
|||
#version 450
|
||||
#include "config.inc"
|
||||
|
||||
|
||||
#define eps 1e-8
|
||||
#define pi 3.141592654
|
||||
|
||||
|
||||
// Blur sizes must not depend on input resolution
|
||||
#define scalemod_x (params.SourceSize.x/360.0)
|
||||
#define scalemod_y (params.SourceSize.y/270.0)
|
||||
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
layout(location = 1) out vec2 vOutputCoord;
|
||||
|
||||
|
||||
#include "functions.include"
|
||||
void main() {
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = TexCoord ; //get_scaled_coords(TexCoord);
|
||||
vOutputCoord = TexCoord;
|
||||
}
|
||||
|
||||
#pragma stage fragment
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 1) in vec2 vOutputCoord;
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
layout(set = 0, binding = 2) uniform sampler2D FXAA_pass;
|
||||
layout(set = 0, binding = 3) uniform sampler2D doublesize_pass;
|
||||
|
||||
// What follows is an ugly optimization with a lot of code copied and pasted repeated multiple times,
|
||||
// shamlessly hidden into an include:
|
||||
#include "pixel_glows.slang"
|
||||
|
||||
|
||||
#include "functions.include"
|
||||
|
||||
vec4 main_wrap(void) {
|
||||
//Halo
|
||||
vec2 in_glow_coords = vTexCoord;
|
||||
if (DO_CURVATURE == 1.0) {
|
||||
if ((GEOM_WARP_X > 0.0) || (GEOM_WARP_Y > 0.0))
|
||||
in_glow_coords = Warp(vTexCoord,GEOM_WARP_X,GEOM_WARP_Y);
|
||||
}
|
||||
vec3 pixel_glowed;
|
||||
if (DO_FXAA == 1.0)
|
||||
pixel_glowed = pixel_glow(FXAA_pass, in_glow_wh,in_glow_wh,in_glow_power,in_glow_gamma,in_glow_coords, global.FXAA_passSize, global.FXAA_passSize).rgb;
|
||||
else
|
||||
pixel_glowed = pixel_glow(doublesize_pass, in_glow_wh,in_glow_wh,in_glow_power,in_glow_gamma,in_glow_coords, global.FXAA_passSize, global.FXAA_passSize).rgb;
|
||||
|
||||
return vec4(pixel_glowed.rgb,1.0);
|
||||
//Out
|
||||
return vec4(vec3(0.0),1.0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void main() {
|
||||
if (DO_IN_GLOW == 1.0 ) {
|
||||
FragColor = main_wrap();
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
323
bezel/koko-aio/shaders/old_unused/main_pass.slang
Normal file
323
bezel/koko-aio/shaders/old_unused/main_pass.slang
Normal file
|
@ -0,0 +1,323 @@
|
|||
#version 450
|
||||
#include "config.inc"
|
||||
#define half_pi 1.5707963267949
|
||||
|
||||
// RGB mask: R G B
|
||||
#define m1 vec3 ( 1.0 , 0.0 , 0.0 ) //col 1
|
||||
#define m2 vec3 ( 0.0 , 1.0 , 0.0 ) //col 2
|
||||
#define m3 vec3 ( 0.0 , 0.0 , 1.0 ) //col 3
|
||||
|
||||
// RGB mask low dpi (green-magenta, exploiting native rgb subpixels)
|
||||
#define m1gm vec3 ( 0.0 , 1.0 , 0.0 ) //col 1
|
||||
#define m2gm vec3 ( 1.0 , 0.0 , 1.0 ) //col 2
|
||||
|
||||
// Blur sizes must not depend on input resolution
|
||||
#define scalemod_x (global.in_glow_passSize.x/360.0)
|
||||
#define scalemod_y (global.in_glow_passSize.y/270.0)
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
layout(location = 1) out vec2 vOutputCoord;
|
||||
|
||||
#include "includes/functions.include.slang"
|
||||
void main() {
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = get_scaled_coords(TexCoord,global.FinalViewportSize, is_rotated());
|
||||
vOutputCoord = TexCoord;
|
||||
}
|
||||
|
||||
#pragma stage fragment
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 1) in vec2 vOutputCoord;
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
layout(set = 0, binding = 3) uniform sampler2D FXAA_pass;
|
||||
layout(set = 0, binding = 4) uniform sampler2D in_glow_pass;
|
||||
layout(set = 0, binding = 5) uniform sampler2D halo_pass;
|
||||
layout(set = 0, binding = 6) uniform sampler2D first_pass;
|
||||
layout(set = 0, binding = 7) uniform sampler2D avglum_passFeedback;
|
||||
|
||||
|
||||
#include "includes/functions.include.slang"
|
||||
vec3 pixel_vmask(vec3 source, vec3 white_reference, float over_white) {
|
||||
int col = int( vOutputCoord.x * params.OutputSize.x );
|
||||
vec3 pixel_out;
|
||||
vec3 vmasked;
|
||||
vec4 vec_mod=(vec4(3,1,2,3) + vec4(VMASK_GAP,0.0,0.0,0.0))* VMASK_DARKLINE_SCALE ;
|
||||
float mask_lightness = 1.0 - RGB_MASK_STRENGTH;
|
||||
if ( mod(col, vec_mod.x) < vec_mod.y) vmasked = min(m1 + mask_lightness,vec3(1.0)) * source;
|
||||
else if (mod(col, vec_mod.x) < vec_mod.z) vmasked = min(m2 + mask_lightness,vec3(1.0)) * source;
|
||||
else if (mod(col, vec_mod.x) < vec_mod.w) vmasked = min(m3 + mask_lightness,vec3(1.0)) * source;
|
||||
else vmasked = min(vec3(0.0) + mask_lightness,vec3(1.0)) * source;
|
||||
|
||||
if (over_white == 1.0) pixel_out = vmasked;
|
||||
else {
|
||||
float whiteness=(white_reference.r+white_reference.g+white_reference.b)/3.0;
|
||||
whiteness-= over_white;
|
||||
whiteness= clamp(whiteness,0.0,1.0);
|
||||
pixel_out= mix(vmasked,source,whiteness);
|
||||
}
|
||||
return pixel_out;
|
||||
}
|
||||
|
||||
vec3 pixel_vmask_gm(vec3 source, vec3 white_reference, float over_white) {
|
||||
int col = int( vOutputCoord.x * params.OutputSize.x );
|
||||
vec3 pixel_out;
|
||||
vec3 vmasked;
|
||||
vec3 vec_mod=(vec3(2,1,2) + vec3(VMASK_GAP,0.0,0.0))* VMASK_DARKLINE_SCALE ;
|
||||
|
||||
float mask_lightness = 1.0 - RGB_MASK_STRENGTH;
|
||||
if (mod(col, vec_mod.x) < vec_mod.y) vmasked = min(m1gm + mask_lightness,vec3(1.0)) * source;
|
||||
else if (mod(col, vec_mod.x) < vec_mod.z) vmasked = min(m2gm + mask_lightness,vec3(1.0)) * source;
|
||||
else vmasked = min(vec3(0.0) + mask_lightness,vec3(1.0)) * source;
|
||||
|
||||
if (over_white == 1.0) pixel_out = vmasked;
|
||||
else {
|
||||
float whiteness=(white_reference.r+white_reference.g+white_reference.b)/3.0;
|
||||
whiteness-= over_white;
|
||||
whiteness= clamp(whiteness,0.0,1.0);
|
||||
pixel_out= mix(vmasked,source,whiteness);
|
||||
}
|
||||
|
||||
return pixel_out;
|
||||
}
|
||||
|
||||
vec3 pixel_darklines(vec3 source,float darkline_every, float darkline_trans,
|
||||
float do_offset, vec3 white_reference,float over_white) {
|
||||
|
||||
float Darkline_part_w = (3.0 - VMASK_USE_GM + VMASK_GAP) * VMASK_DARKLINE_SCALE;
|
||||
float Darkline_part_w_x2 = Darkline_part_w*2;
|
||||
//vec3 pixel_out=source;
|
||||
float col_2 = vOutputCoord.x * params.OutputSize.x;
|
||||
float line_2 = vOutputCoord.y * params.OutputSize.y;
|
||||
|
||||
darkline_every *= VMASK_DARKLINE_SCALE;
|
||||
|
||||
if (over_white != 1.0) {
|
||||
//less effect on bright colors.
|
||||
float whiteness=(white_reference.r+white_reference.g+white_reference.b)/3.0;
|
||||
darkline_trans+=(whiteness-over_white);
|
||||
darkline_trans=clamp(darkline_trans,0.0,1.0);
|
||||
}
|
||||
|
||||
if (do_offset == 1.0) {
|
||||
if (int(mod(line_2, darkline_every)) < VMASK_DARKLINE_SCALE) {
|
||||
if (int(mod(col_2, Darkline_part_w_x2)) < Darkline_part_w) return source * darkline_trans;
|
||||
} else if (int(mod(line_2+(darkline_every/2), darkline_every)) < VMASK_DARKLINE_SCALE ) {
|
||||
// DRAW WITH OFFSET:
|
||||
col_2+=Darkline_part_w;
|
||||
if ((int(mod(col_2, Darkline_part_w_x2))) < Darkline_part_w)
|
||||
return source * darkline_trans;
|
||||
}
|
||||
} else {
|
||||
|
||||
if ( darkline_every >= 0.0)
|
||||
if (int(mod(line_2, darkline_every)) < VMASK_DARKLINE_SCALE) return source * darkline_trans;
|
||||
}
|
||||
return source;
|
||||
}
|
||||
|
||||
/*
|
||||
float scanline_shape_static_in_lum(vec2 coords, float in_luminance) {
|
||||
// Modulate scanline weight via in_luminance
|
||||
float period = (params.OriginalSize.y > MIN_LINES_INTERLACED ) ? 2 : 1 ;
|
||||
float angle = coords.y * pi * period * params.OriginalSize.y ;
|
||||
float lines = abs(sin(angle));
|
||||
lines=clamp(lines, SCANLINE_DARK,1.0);
|
||||
lines = (lines*lines);
|
||||
float w = (SCANLINES_BLEEDING * 9.0 * in_luminance +1 ); // + SCANLINES_BLEEDING;
|
||||
lines = pow(lines,1.0/ w );
|
||||
return lines;
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
float scanline_shape_dumb(vec2 coords, bool do_flicker) {
|
||||
float source_dy = global.first_passSize.w ;
|
||||
if ( mod(coords.y, source_dy*2) < source_dy ) {
|
||||
return 1.0;
|
||||
}
|
||||
return 0.0;
|
||||
}
|
||||
*/
|
||||
|
||||
float scanline_shape(vec2 coords, bool do_flicker) {
|
||||
bool alternate = false;
|
||||
float period = 1.0;
|
||||
|
||||
int slow = 1;
|
||||
|
||||
if (do_flicker) {
|
||||
if (params.FrameCount/slow % 2 == 0.0) alternate = true;
|
||||
if (params.OriginalSize.y > MIN_LINES_INTERLACED ) period = 0.5;
|
||||
}
|
||||
|
||||
float angle = coords.y * pi * params.OriginalSize.y * period;
|
||||
|
||||
float lines;
|
||||
if (alternate)
|
||||
lines = -sin(angle+half_pi); //lines = abs(cos(angle));
|
||||
else
|
||||
lines = sin(angle);
|
||||
lines = (lines*lines);
|
||||
|
||||
if (SCANLINE_DARK >= 0.0) {
|
||||
lines = lines * (1.0 - SCANLINE_DARK) + SCANLINE_DARK;
|
||||
} else {
|
||||
float deepness = -SCANLINE_DARK;
|
||||
lines = lines * ((1-SCANLINE_DARK) ) + SCANLINE_DARK ;
|
||||
}
|
||||
|
||||
return lines;
|
||||
}
|
||||
|
||||
vec4 main_wrap(vec2 co) {
|
||||
bool isinterlaced = is_interlaced();
|
||||
bool flickering_scanlines = (DO_SCANLINES == 1.0) && scanline_have_to_flicker(isinterlaced) ;
|
||||
|
||||
|
||||
vec3 pixel_in;
|
||||
vec3 pixel_glowed;
|
||||
|
||||
//Get the first available pixel_in:
|
||||
if (DO_IN_GLOW == 1.0) {
|
||||
pixel_glowed = texture(in_glow_pass,co).rgb;
|
||||
pixel_in = pixel_glowed;
|
||||
}
|
||||
else if (DO_FXAA == 1.0)
|
||||
pixel_in = texture(FXAA_pass,co).rgb ;
|
||||
else
|
||||
pixel_in = texture(first_pass,co).rgb ;
|
||||
|
||||
vec3 pixel_out = pixel_in;
|
||||
vec3 pixel_in_clamped = min(pixel_in,vec3(1.0)); //Clamp here for moth vmask and darklines.
|
||||
|
||||
//Mask and darklines:
|
||||
if (DO_VMASK_AND_DARKLINES == 1.0 ) {
|
||||
if (RGB_MASK_STRENGTH > 0.0) {
|
||||
//Use RGB pattern or exploit RGB layout with green and magenta?
|
||||
if (VMASK_USE_GM < 1.0) {
|
||||
pixel_out = pixel_vmask(pixel_in, pixel_in_clamped, VMASK_OVERWHITE);
|
||||
} else {
|
||||
pixel_out = pixel_vmask_gm(pixel_in, pixel_in_clamped, VMASK_OVERWHITE);
|
||||
}
|
||||
}
|
||||
//Screen lines
|
||||
if (DARKLINES_STRENGTH > 0.0 ) {
|
||||
float MYDARKLINES_TRANSPARENCY = 1.0 - DARKLINES_STRENGTH;
|
||||
pixel_out = pixel_darklines(pixel_out,DARKLINES_PERIOD,MYDARKLINES_TRANSPARENCY,DO_DARKLINES_VOFFSET,pixel_in_clamped,DRKLN_OVERWHITE);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//Halo
|
||||
vec3 pixel_haloed;
|
||||
if (DO_HALO == 1.0 ) {
|
||||
pixel_haloed = texture(halo_pass,co).rgb;
|
||||
pixel_out += pixel_haloed;
|
||||
pixel_out = clamp(pixel_out,0.0,HALO_CLAMP);
|
||||
}
|
||||
|
||||
// Non flickering scanlines
|
||||
if ( DO_SCANLINES == 1.0 ) {
|
||||
vec3 pixel_bleed ;
|
||||
if (! ( isinterlaced && (SCANLINE_DISABLE_ON_INTERLACE == 1.0)) ) {
|
||||
if (DO_IN_GLOW + DO_HALO > 0.0) {
|
||||
if (DO_HALO == 1.0) pixel_bleed = pixel_haloed;
|
||||
else if (DO_IN_GLOW == 1.0) pixel_bleed = pixel_glowed;
|
||||
else pixel_bleed = pixel_in;
|
||||
}
|
||||
|
||||
float scanline_shape = scanline_shape(co, flickering_scanlines ) ;
|
||||
vec3 pixel_scanlined = scanline_shape * pixel_out;
|
||||
|
||||
pixel_out = pixel_scanlined + (pixel_out * pixel_bleed * SCANLINES_BLEEDING * (1-scanline_shape));
|
||||
}
|
||||
}
|
||||
|
||||
if (DO_CCORRECTION == 1.0) pixel_out = pow(pixel_out,vec3(GAMMA_OUT));
|
||||
|
||||
//Out
|
||||
return vec4(pixel_out,1.0) ; //* border(border_coords);
|
||||
}
|
||||
|
||||
/*
|
||||
//Test masks to be used with pixel_vmask_test()
|
||||
// Actually slower than pixel_vmask(), but handy for quick test
|
||||
//first element of the array is the useful size.
|
||||
const vec3 oo = vec3(0); //padding
|
||||
const vec3 mask_RGB[10] = vec3[]( vec3(3), vec3(1,0,0), vec3(0,1,0), vec3(0,0,1), oo, oo, oo, oo, oo, oo);
|
||||
const vec3 mask_GM[10] = vec3[]( vec3(2), vec3(0,1,0), vec3(1,0,1), oo, oo, oo, oo, oo, oo, oo);
|
||||
|
||||
|
||||
vec3 pixel_vmask_test(vec3 color_in, vec3[10] vmask, int multiplier, float gap, vec3 white_reference, float over_white) {
|
||||
int col = int( vOutputCoord.x * params.OutputSize.x );
|
||||
vec3 vmasked;
|
||||
|
||||
float size = (vmask[0].x + gap) * multiplier;
|
||||
|
||||
for (int i = multiplier ; i <= size * multiplier ; i+=multiplier) {
|
||||
if (mod(col, size) < i) {
|
||||
vmasked = min (vmask[i/multiplier] + 1.0 - RGB_MASK_STRENGTH, vec3(1.0)) * color_in;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (over_white == 1.0) return vmasked;
|
||||
else {
|
||||
float whiteness=(white_reference.r+white_reference.g+white_reference.b)/3.0;
|
||||
whiteness-= over_white;
|
||||
whiteness= clamp(whiteness,0.0,1.0);
|
||||
return mix(vmasked, color_in, whiteness);
|
||||
}
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
void main() {
|
||||
vec2 coords = vTexCoord;
|
||||
|
||||
if (DO_DYNZOOM == 1.0) {
|
||||
float zoomin = 1.0 + (texture(avglum_passFeedback, vec2(0.25,0.25) ).a/ DYNZOOM_FACTOR);
|
||||
coords = zoom(vTexCoord, zoomin);
|
||||
}
|
||||
|
||||
vec2 coords_curved = coords;
|
||||
|
||||
//Curvature: set coords_curved coordinate: (global var)
|
||||
if (DO_CURVATURE == 1.0) {
|
||||
if ((GEOM_WARP_X > 0.0) || (GEOM_WARP_Y > 0.0))
|
||||
coords_curved = Warp(coords_curved,GEOM_WARP_X,GEOM_WARP_Y);
|
||||
}
|
||||
|
||||
if (DO_BEZEL == 1.0) {
|
||||
coords_curved = zoomout_coords(coords_curved, -BEZEL_INNER_ZOOM , 1.0);
|
||||
coords = zoomout_coords(coords, -BEZEL_INNER_ZOOM , 1.0);
|
||||
}
|
||||
|
||||
//FIXME: bezel may need a wider border when zoomed in.
|
||||
//But for performance reasons we can wide the border in relation to the desidered reflection area.
|
||||
//by now, just wide by BEZEL_REFLECTION_AREA_SIZE defined in config.inc
|
||||
|
||||
bool is_border = false;
|
||||
|
||||
if (border_needed()) {
|
||||
|
||||
float WIDEN = DO_BEZEL * BEZEL_REFLECTION_AREA_SIZE;
|
||||
bool b_is_rotated = is_rotated();
|
||||
bool is_outside_x = ((coords.x > 1.0+WIDEN ) || (coords.x < 0.0 - WIDEN) );
|
||||
bool is_outside_y = ((coords.y > 1.0+WIDEN ) || (coords.y < 0.0 - WIDEN) );
|
||||
is_border = (b_is_rotated && is_outside_y) || (!b_is_rotated && is_outside_x);
|
||||
}
|
||||
|
||||
if (is_border)
|
||||
FragColor = mark_outer_frame(vec3(0.0));
|
||||
else
|
||||
FragColor = main_wrap(coords_curved);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
25
bezel/koko-aio/shaders/old_unused/passthrough.slang
Normal file
25
bezel/koko-aio/shaders/old_unused/passthrough.slang
Normal file
|
@ -0,0 +1,25 @@
|
|||
#version 450
|
||||
#include "config.inc"
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = TexCoord;
|
||||
}
|
||||
|
||||
#pragma stage fragment
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||
|
||||
|
||||
void main() {
|
||||
FragColor = texture(Source, vTexCoord);
|
||||
}
|
||||
|
||||
|
36
bezel/koko-aio/shaders/old_unused/passthrough_original.slang
Normal file
36
bezel/koko-aio/shaders/old_unused/passthrough_original.slang
Normal file
|
@ -0,0 +1,36 @@
|
|||
#version 450
|
||||
#include "config.inc"
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = TexCoord;
|
||||
}
|
||||
|
||||
#pragma stage fragment
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
layout(set = 0, binding = 2) uniform sampler2D Original;
|
||||
|
||||
|
||||
void main() {
|
||||
FragColor = vec4(texture(Original, vTexCoord).xyz,1.0);
|
||||
|
||||
/* //Use to debug:
|
||||
vec4 pixel;
|
||||
//pixel=vec4(abs(sin(params.FrameCount/3.14/20))); //white fade
|
||||
//pixel=vec4(abs(sin(params.FrameCount/3.14/20)),0.0,0.0,0.0); //red fade
|
||||
//pixel=vec4(0.2);
|
||||
if (mod(params.FrameCount,100) == 0.0) {
|
||||
pixel = vec4(0.6);
|
||||
} else {
|
||||
pixel = vec4(0.0);
|
||||
}
|
||||
FragColor = pixel;
|
||||
*/
|
||||
}
|
103
bezel/koko-aio/shaders/old_unused/scanline-flickering.slang
Normal file
103
bezel/koko-aio/shaders/old_unused/scanline-flickering.slang
Normal file
|
@ -0,0 +1,103 @@
|
|||
#version 450
|
||||
|
||||
#include "config.inc"
|
||||
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = TexCoord;
|
||||
|
||||
}
|
||||
|
||||
|
||||
#pragma stage fragment
|
||||
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
layout(set = 0, binding = 2) uniform sampler2D in_glow_pass;
|
||||
layout(set = 0, binding = 3) uniform sampler2D FXAA_pass;
|
||||
layout(set = 0, binding = 4) uniform sampler2D doublesize_pass;
|
||||
|
||||
|
||||
bool scanline_have_to_flicker(bool is_interlaced) {
|
||||
return ((scanline_flickering == 1.0) || ((scanline_flickering==2.0) && is_interlaced ));
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
|
||||
vec3 pixel_out = vec3(0.0);
|
||||
|
||||
//Use to debug:
|
||||
//pixel_out=vec4(abs(sin(params.FrameCount/3.14/20))); //white fade
|
||||
//pixel_out=vec4(abs(sin(params.FrameCount/3.14/20)),0.0,0.0,0.0); //red fade
|
||||
//pixel_out=vec4(0.2);
|
||||
|
||||
if (DO_SCANLINES == 1.0) {
|
||||
if (scanline_flickering != 0.0) {
|
||||
|
||||
bool is_interlaced = (params.OriginalSize.y > MIN_LINES_INTERLACED) ? true : false ;
|
||||
|
||||
if ( scanline_have_to_flicker(is_interlaced) ) {
|
||||
|
||||
//Choose the right source
|
||||
if (DO_IN_GLOW == 1.0) {
|
||||
pixel_out = texture(in_glow_pass, vTexCoord).rgb;
|
||||
} else if (DO_FXAA == 1.0) {
|
||||
pixel_out = texture(FXAA_pass, vTexCoord).rgb;
|
||||
} else {
|
||||
pixel_out = texture(doublesize_pass, vTexCoord).rgb;
|
||||
}
|
||||
|
||||
int scanline_period;
|
||||
int scanline_period_half;
|
||||
|
||||
/* Puae switches from lowres to sdres on interlaced screens
|
||||
since we blindly double the h-resolution, because we need
|
||||
to double y resolution on low resolution to simulate scanlines
|
||||
and providing sd-res to fxaa, we can check if a screen is
|
||||
interlaced by testing v-resolution of source image.
|
||||
which could be at least 200*2(puae)*2(ourselves)=800px.
|
||||
Rest assured that everything over 576,
|
||||
(maximum pal overscanned) is interlaced.
|
||||
*/
|
||||
if (is_interlaced) {
|
||||
scanline_period=4;
|
||||
scanline_period_half=2;
|
||||
} else {
|
||||
scanline_period=2;
|
||||
scanline_period_half=1;
|
||||
}
|
||||
|
||||
//Skip scanlines on interlaced content?
|
||||
if (! ( is_interlaced && (scanline_disable_on_interlace == 1.0)) ) {
|
||||
|
||||
float mymod = mod(vTexCoord.y * params.OutputSize.y , scanline_period);
|
||||
|
||||
//Do flickering based on user prefs.
|
||||
//(blank odd lines on odd frames and even lines on even frames)
|
||||
if ((scanline_flickering == 1.0) ||
|
||||
((scanline_flickering==2.0) && is_interlaced )) {
|
||||
if (int(mod(float(params.FrameCount),2 )) < 1.0 ) {
|
||||
if (mymod >= scanline_period_half) { pixel_out *= SCANLINE_DARK; }
|
||||
} else {
|
||||
if (mymod < scanline_period_half) { pixel_out *= SCANLINE_DARK; }
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
FragColor = vec4(pixel_out,1.0);
|
||||
|
||||
}
|
||||
|
49
bezel/koko-aio/shaders/old_unused/vignette_and_spot.slang
Normal file
49
bezel/koko-aio/shaders/old_unused/vignette_and_spot.slang
Normal file
|
@ -0,0 +1,49 @@
|
|||
#version 450
|
||||
#include "config.inc"
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
|
||||
#include "functions.include"
|
||||
void main()
|
||||
{
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = TexCoord;
|
||||
float aspect_prev = (params.SourceSize.y / params.SourceSize.x);
|
||||
if (border_needed() ) {
|
||||
vTexCoord.x = vTexCoord.x * aspect_prev - ((0.5 * aspect_prev) - 0.5);
|
||||
float in_aspect = get_in_aspect();
|
||||
vTexCoord.x = vTexCoord.x * in_aspect - ((0.5 * in_aspect) - 0.5);
|
||||
} else {
|
||||
vTexCoord.x = vTexCoord.x * aspect_prev - ((0.5 * aspect_prev) - 0.5);
|
||||
float dasp = global.FinalViewportSize.x/global.FinalViewportSize.y;
|
||||
vTexCoord.x = (vTexCoord.x* dasp - ((0.5 * dasp) - 0.5)) ;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#pragma stage fragment
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||
|
||||
#include "functions.include"
|
||||
void main() {
|
||||
if ((DO_VIGNETTE != 1.0) && (DO_SPOT != 1.0)) return;
|
||||
|
||||
vec3 pixel_out;
|
||||
if (DO_VIGNETTE == 1.0)
|
||||
pixel_out.r = gauss_xy(0.0, 0.0, v_size, v_power, 0.0, 1.0);
|
||||
if (DO_SPOT == 1.0)
|
||||
pixel_out.g = gauss_xy(s_center_x, s_center_y, s_size, s_power, 0.0, 10.0);
|
||||
|
||||
FragColor = vec4(pixel_out,1.0);
|
||||
}
|
||||
|
||||
|
114
bezel/koko-aio/shaders/reflection_blur_h.slang
Normal file
114
bezel/koko-aio/shaders/reflection_blur_h.slang
Normal file
|
@ -0,0 +1,114 @@
|
|||
#version 450
|
||||
#include "config.inc"
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = TexCoord;
|
||||
}
|
||||
|
||||
#pragma stage fragment
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
layout(set = 0, binding = 1) uniform sampler2D first_pass;
|
||||
layout(set = 0, binding = 2) uniform sampler2D isrotated_passFeedback;
|
||||
|
||||
#define SourceTexture first_pass
|
||||
#define SourceTextureSize global.first_passSize
|
||||
|
||||
#include "includes/functions.include.slang"
|
||||
|
||||
#define c_tolerance 0.051
|
||||
|
||||
#define b_offset_x -0.05
|
||||
#define Pi2 6.28318530717959
|
||||
|
||||
vec3 blur(float Quality, float Directions, float Size, vec2 co,float lod) {
|
||||
vec4 iResolution = SourceTextureSize;
|
||||
vec2 Radius = Size/iResolution.xy ;
|
||||
|
||||
vec3 color = vec3(0.0,0.0,0.0);
|
||||
vec3 lookup = vec3(0.0,0.0,0.0);
|
||||
float steps=0.0;
|
||||
for( float d=0.0; d<Pi2; d+=Pi2/Directions) {
|
||||
for(float i=1.0/Quality; i<=1.0; i+=1.0/Quality) {
|
||||
lookup = textureLod( SourceTexture, co + vec2(cos(d) + b_offset_x , sin(d))*Radius*i ,lod).rgb ;
|
||||
color +=lookup.rgb;
|
||||
steps+=1.0;
|
||||
}
|
||||
}
|
||||
color /= steps;
|
||||
|
||||
if ( steps > 4.0) return vec3(1.0);
|
||||
|
||||
return color;
|
||||
}
|
||||
|
||||
void main() {
|
||||
if (DO_BEZEL == 0.0) return;
|
||||
|
||||
vec2 coords_curved = vTexCoord;
|
||||
if (DO_CURVATURE == 1.0) {
|
||||
if ((GEOM_WARP_X > 0.0) || (GEOM_WARP_Y > 0.0))
|
||||
coords_curved = Warp(coords_curved,GEOM_WARP_X,GEOM_WARP_Y);
|
||||
}
|
||||
//coords_curved = zoomout_coords(coords_curved, -BEZEL_INNER_ZOOM , 1.0);
|
||||
coords_curved = zoomout_coords(coords_curved, BEZEL_REFLECTION_AREA_SIZE , 1.0);
|
||||
|
||||
bool is_rotated = texture(isrotated_passFeedback,vec2(0.5,0.5)).r > 0.5;
|
||||
|
||||
|
||||
/* Calculate the internal area (the one which is not mirrored)
|
||||
so that we can skip blurring it:
|
||||
*/
|
||||
/* vec2 ar_box;
|
||||
if (!is_rotated) {
|
||||
//Width of the aspect corrected box zoomed as requested by the bezel settings:
|
||||
ar_box.x = global.FinalViewportSize.z*global.FinalViewportSize.y*get_in_aspect() * (1+BEZEL_INNER_ZOOM-c_tolerance) ;
|
||||
//Height zoomed as requested by bezel settings:
|
||||
ar_box.y = 1+BEZEL_INNER_ZOOM-c_tolerance;
|
||||
} else {
|
||||
ar_box.y = global.FinalViewportSize.z*global.FinalViewportSize.y/get_in_aspect() * (1+BEZEL_INNER_ZOOM-c_tolerance) ;
|
||||
ar_box.x= 1+BEZEL_INNER_ZOOM-c_tolerance;
|
||||
}
|
||||
|
||||
//start_point is the middle of the screen minut half the content width
|
||||
vec2 start_point = vec2(0.5 - (ar_box.x*0.5), 0.5 - (ar_box.y*0.5));
|
||||
vec2 end_point = vec2(0.5 + (ar_box.x*0.5), 0.5 + (ar_box.y*0.5));
|
||||
|
||||
|
||||
//Now we can skip the internal area or the black one as already marked by main_pass:
|
||||
//bool skip_condition =(vTexCoord.x > start_point.x && vTexCoord.x < end_point.x &&
|
||||
// vTexCoord.y > start_point.y && vTexCoord.y < end_point.y) ||
|
||||
// is_outer_frame(texture(main_pass,vTexCoord));
|
||||
|
||||
*/
|
||||
|
||||
//FIXME (CHECKME) is the rotation state still important?
|
||||
|
||||
bool skip_condition = (coords_curved.x < 1.0 - c_tolerance && coords_curved.x > c_tolerance &&
|
||||
coords_curved.y < 1.0 - c_tolerance && coords_curved.y > c_tolerance ) ;
|
||||
|
||||
if (skip_condition) {
|
||||
FragColor = mark_useless(vec3(0.0));
|
||||
return;
|
||||
}
|
||||
|
||||
vec2 res = vec2(global.first_passSize.x, global.first_passSize.y);
|
||||
vec2 dir = vec2(1.0,0.0);
|
||||
///Quality, Directions, Size, coords, lod
|
||||
vec3 pixel_blur = blur(1,4,2,coords_curved, 2.0);
|
||||
|
||||
FragColor = vec4(apply_fuzzy_main_pass(pixel_blur),1.0);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
56
bezel/koko-aio/shaders/reflection_blur_v.slang
Normal file
56
bezel/koko-aio/shaders/reflection_blur_v.slang
Normal file
|
@ -0,0 +1,56 @@
|
|||
#version 450
|
||||
#include "config.inc"
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = TexCoord;
|
||||
}
|
||||
|
||||
#pragma stage fragment
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||
|
||||
#include "includes/functions.include.slang"
|
||||
|
||||
#define SourceTexture Source
|
||||
#define SourceTextureSize params.SourceSize
|
||||
|
||||
#define b_offset_x -0.05
|
||||
#define Pi2 6.28318530717959
|
||||
vec3 blur(float Quality, float Directions, float Size, vec2 co) {
|
||||
vec4 iResolution = SourceTextureSize;
|
||||
vec2 Radius = Size/iResolution.xy ;
|
||||
vec3 color = vec3(0.0,0.0,0.0);
|
||||
vec3 lookup = vec3(0.0,0.0,0.0);
|
||||
float steps=0.0;
|
||||
for( float d=0.0; d<Pi2; d+=Pi2/Directions) {
|
||||
for(float i=1.0/Quality; i<=1.0; i+=1.0/Quality) {
|
||||
lookup = texture( SourceTexture, co + vec2(cos(d) + b_offset_x , sin(d))*Radius*i ).rgb ;
|
||||
color +=lookup.rgb;
|
||||
steps+=1.0;
|
||||
}
|
||||
}
|
||||
color /= steps;
|
||||
return color;
|
||||
}
|
||||
|
||||
void main() {
|
||||
if (DO_BEZEL == 0.0) return;
|
||||
|
||||
if (is_useless(texture(Source, vTexCoord))) return;
|
||||
|
||||
vec2 res = vec2(params.SourceSize.x, params.SourceSize.y);
|
||||
vec2 dir = vec2(0.0,1.0);
|
||||
///Quality, Directions, Size, coords
|
||||
FragColor = vec4(blur(1,4,2,vTexCoord),1.0);
|
||||
}
|
||||
|
||||
|
||||
|
200
bezel/koko-aio/shaders/shift_and_bleed.slang
Normal file
200
bezel/koko-aio/shaders/shift_and_bleed.slang
Normal file
|
@ -0,0 +1,200 @@
|
|||
#version 450
|
||||
#include "config.inc"
|
||||
|
||||
#define RGB_SHIFT_RANGE 20
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
layout(location = 1) out vec2 r_offset;
|
||||
layout(location = 2) out vec2 g_offset;
|
||||
layout(location = 3) out vec2 b_offset;
|
||||
|
||||
#include "includes/functions.include.slang"
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = TexCoord ;
|
||||
if (DO_SHIFT_RGB == 1.0) {
|
||||
r_offset=offsets_from_float(SHIFT_R+210.0,RGB_SHIFT_RANGE);
|
||||
g_offset=offsets_from_float(SHIFT_G+210.0,RGB_SHIFT_RANGE);
|
||||
b_offset=offsets_from_float(SHIFT_B+210.0,RGB_SHIFT_RANGE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#pragma stage fragment
|
||||
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 1) in vec2 r_offset;
|
||||
layout(location = 2) in vec2 g_offset;
|
||||
layout(location = 3) in vec2 b_offset;
|
||||
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
|
||||
layout(set = 0, binding = 3) uniform sampler2D FXAA_pass;
|
||||
layout(set = 0, binding = 4) uniform sampler2D first_pass;
|
||||
|
||||
vec3 hsv2rgb(vec3 c){
|
||||
vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
|
||||
vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
|
||||
return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
|
||||
}
|
||||
|
||||
vec3 rgb2hsv(vec3 c){
|
||||
vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
|
||||
vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
|
||||
vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
|
||||
|
||||
float d = q.x - min(q.w, q.y);
|
||||
float e = 1.0e-10;
|
||||
return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
|
||||
}
|
||||
|
||||
#define bandwidth_mhz_Y_ntsc 4.2
|
||||
#define bandwidth_mhz_I 1.5
|
||||
#define bandwidth_mhz_Q 0.5
|
||||
|
||||
const mat3 mat3_RGB2YIQ = mat3(
|
||||
0.2989, 0.5959, 0.2115,
|
||||
0.5870, -0.2744, -0.5229,
|
||||
0.1140, -0.3216, 0.3114);
|
||||
|
||||
const mat3 mat3_YIQ2RGB = mat3(
|
||||
1.0, 1.0, 1.0,
|
||||
0.956, -0.2720, -1.1060,
|
||||
0.6210, -0.6474, 1.7046);
|
||||
|
||||
//https://www.sciencedirect.com/topics/computer-science/color-subcarrier
|
||||
#define bandwidth_mhz_Y_pal 5.0
|
||||
#define bandwidth_mhz_U 1.3
|
||||
#define bandwidth_mhz_V 1.3
|
||||
|
||||
const mat3 mat3_RGB2YUV = mat3(
|
||||
0.299, 0.587, 0.114,
|
||||
-0.14713, -0.28886, 0.436,
|
||||
0.615, -0.514991, -0.10001);
|
||||
|
||||
const mat3 mat3_YUV2RGB = mat3(
|
||||
1.000, 0.000, 1.13983,
|
||||
1.000,-0.39465,-0.58060,
|
||||
1.000, 2.03211, 0.00000);
|
||||
|
||||
|
||||
|
||||
vec3 pixel_offset(vec3 pixel_cur,vec2 coord, sampler2D in_texture, vec4 sourcesize2) {
|
||||
vec2 d = -vec2(sourcesize2.z, sourcesize2.w)*0.5;
|
||||
vec3 pixel_offset;
|
||||
pixel_offset.r=texture(in_texture,coord + r_offset * d).r;
|
||||
pixel_offset.g=texture(in_texture,coord + g_offset * d).g;
|
||||
pixel_offset.b=texture(in_texture,coord + b_offset * d).b;
|
||||
//return mix(pixel_cur,pixel_offset,OFFSET_STRENGTH);
|
||||
vec3 color_difformity = vec3(pixel_offset.r-pixel_cur.r, +pixel_offset.g-pixel_cur.g, pixel_offset.b - pixel_cur.b);
|
||||
vec3 pixel_offset_to_add = pixel_offset * color_difformity;
|
||||
return pixel_cur + (pixel_offset_to_add *OFFSET_STRENGTH);
|
||||
//return pixel_cur + (pixel_offset *OFFSET_STRENGTH*color_difformity);
|
||||
}
|
||||
|
||||
|
||||
vec3 pixel_offset_wrap (vec2 coord) {
|
||||
vec3 pixel_in;
|
||||
if ( DO_FXAA == 1.0) {
|
||||
pixel_in = texture(FXAA_pass, vTexCoord).rgb;
|
||||
return pixel_offset(pixel_in, vTexCoord, FXAA_pass, global.FXAA_passSize);
|
||||
} else {
|
||||
pixel_in = texture(first_pass, vTexCoord).rgb;
|
||||
return pixel_offset(pixel_in, vTexCoord, first_pass, global.first_passSize);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
vec3 pixel_bleed_side_NTSC(vec3 pixel_in, vec2 co, float size, float side, sampler2D in_texture, vec4 sourcesize2) {
|
||||
float w = SAT_BLEED_STRENGTH;
|
||||
vec3 blur_YIQ = pixel_in * mat3_RGB2YIQ; //Work in YIQ space
|
||||
float i = 0.0;
|
||||
for ( i=1 ; i <= size ; i++ ){
|
||||
w=w/SAT_BLEED_FALLOFF;
|
||||
//w=clamp(w,0.0,1.0);
|
||||
vec3 smp_YIQ = texture(first_pass, co - side * vec2(sourcesize2.z*i,0.0)).rgb * mat3_RGB2YIQ;
|
||||
blur_YIQ.x = mix(blur_YIQ.x, smp_YIQ.x, w/bandwidth_mhz_Y_ntsc); // Blur Y
|
||||
blur_YIQ.y = mix(blur_YIQ.y, smp_YIQ.y, w/bandwidth_mhz_I ); // Blur I
|
||||
blur_YIQ.z = mix(blur_YIQ.z, smp_YIQ.z, w/bandwidth_mhz_Q ); // BlurQ
|
||||
}
|
||||
//blur_YIQ.z/=i;
|
||||
return vec3(blur_YIQ.x, blur_YIQ.y, blur_YIQ.z) * mat3_YIQ2RGB; //return to RGB colorspace
|
||||
}
|
||||
vec3 pixel_bleed_side_PAL(vec3 pixel_in, vec2 co, float size, float side, sampler2D in_texture, vec4 sourcesize2) {
|
||||
float w = SAT_BLEED_STRENGTH;
|
||||
vec3 blur_YUV = pixel_in * mat3_RGB2YUV; //Work in YIQ space
|
||||
float i = 0.0;
|
||||
for ( i=1 ; i <= size ; i++ ){
|
||||
w=w/SAT_BLEED_FALLOFF;
|
||||
//w=clamp(w,0.0,1.0);
|
||||
vec3 smp_YUV = texture(first_pass, co - side * vec2(sourcesize2.z*i,0.0)).rgb * mat3_RGB2YUV;
|
||||
blur_YUV.x = mix(blur_YUV.x, smp_YUV.x, w/bandwidth_mhz_Y_pal); // Blur Y
|
||||
blur_YUV.y = mix(blur_YUV.y, smp_YUV.y, w/bandwidth_mhz_U ); // Blur U
|
||||
blur_YUV.z = mix(blur_YUV.z, smp_YUV.z, w/bandwidth_mhz_V ); // Blur V
|
||||
}
|
||||
return vec3(blur_YUV.x, blur_YUV.y, blur_YUV.z) * mat3_YUV2RGB; //return to RGB colorspace
|
||||
}
|
||||
|
||||
#define SIDE_RIGHT 1
|
||||
#define SIDE_LEFT -1
|
||||
|
||||
|
||||
vec3 pixel_bleed(vec3 pixel_in, vec2 co, sampler2D in_texture, vec4 sourcesize2) {
|
||||
vec3 side_left ; vec3 side_right;
|
||||
if (SAT_BLEED_PAL == 1.0) {
|
||||
side_right = pixel_bleed_side_PAL(pixel_in, co, SAT_BLEED_SIZE_RIGHT, SIDE_RIGHT, in_texture, sourcesize2);
|
||||
side_left = pixel_bleed_side_PAL(pixel_in, co, SAT_BLEED_SIZE_LEFT, SIDE_LEFT, in_texture, sourcesize2);
|
||||
} else {
|
||||
side_right = pixel_bleed_side_NTSC(pixel_in, co, SAT_BLEED_SIZE_RIGHT, SIDE_RIGHT, in_texture, sourcesize2);
|
||||
side_left = pixel_bleed_side_NTSC(pixel_in, co, SAT_BLEED_SIZE_LEFT, SIDE_LEFT, in_texture, sourcesize2);
|
||||
}
|
||||
return mix(side_left,side_right,0.5);
|
||||
|
||||
}
|
||||
void main() {
|
||||
if (DO_SHIFT_RGB + DO_SAT_BLEED == 0.0) return;
|
||||
|
||||
//Handle case where both are needed:
|
||||
//First shift the right source, then pass it to bleed function.
|
||||
if (DO_SHIFT_RGB + DO_SAT_BLEED > 1.0) {
|
||||
vec3 pixel_out = pixel_offset_wrap(vTexCoord);
|
||||
if (DO_SAT_BLEED > 0.0) {
|
||||
if ( DO_FXAA == 1.0) {
|
||||
pixel_out = pixel_bleed(pixel_out, vTexCoord, FXAA_pass, global.FXAA_passSize);
|
||||
} else {
|
||||
pixel_out = pixel_bleed(pixel_out, vTexCoord, first_pass, global.first_passSize);
|
||||
}
|
||||
}
|
||||
FragColor = vec4(pixel_out,0.0);
|
||||
return;
|
||||
}
|
||||
|
||||
//Handle case where only color shifting is requested
|
||||
if (DO_SHIFT_RGB > 0.0) {
|
||||
vec3 pixel_out = pixel_offset_wrap(vTexCoord);
|
||||
FragColor = vec4(pixel_out,0.0);
|
||||
return;
|
||||
}
|
||||
|
||||
//Handle case where only chroma bleed is requested
|
||||
if (DO_SAT_BLEED > 0.0) {
|
||||
vec3 pixel_out;
|
||||
if ( DO_FXAA == 1.0) {
|
||||
pixel_out = texture(FXAA_pass, vTexCoord).rgb;
|
||||
pixel_out = pixel_bleed(pixel_out, vTexCoord, FXAA_pass, global.FXAA_passSize);
|
||||
} else {
|
||||
pixel_out = texture(first_pass, vTexCoord).rgb;
|
||||
pixel_out = pixel_bleed(pixel_out, vTexCoord, first_pass, global.first_passSize);
|
||||
}
|
||||
FragColor = vec4(pixel_out,0.0);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
}
|
BIN
bezel/koko-aio/textures/background_over.png
Normal file
BIN
bezel/koko-aio/textures/background_over.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2 MiB |
BIN
bezel/koko-aio/textures/background_under.png
Normal file
BIN
bezel/koko-aio/textures/background_under.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.8 MiB |
BIN
bezel/koko-aio/textures/monitor_body.png
Normal file
BIN
bezel/koko-aio/textures/monitor_body.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 206 KiB |
BIN
bezel/koko-aio/textures/monitor_body_source/monitor_body.7z
Normal file
BIN
bezel/koko-aio/textures/monitor_body_source/monitor_body.7z
Normal file
Binary file not shown.
BIN
bezel/koko-aio/textures/other_backgrounds_under/background1.png
Normal file
BIN
bezel/koko-aio/textures/other_backgrounds_under/background1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.8 MiB |
BIN
bezel/koko-aio/textures/other_backgrounds_under/background2.png
Normal file
BIN
bezel/koko-aio/textures/other_backgrounds_under/background2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.5 MiB |
BIN
bezel/koko-aio/textures/other_backgrounds_under/background3.png
Normal file
BIN
bezel/koko-aio/textures/other_backgrounds_under/background3.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 150 KiB |
245
bezel/koko-aio/tv-BASE.slangp
Normal file
245
bezel/koko-aio/tv-BASE.slangp
Normal file
|
@ -0,0 +1,245 @@
|
|||
shaders = "17"
|
||||
shader0 = "shaders/first_pass.slang"
|
||||
filter_linear0 = "false"
|
||||
wrap_mode0 = "mirrored_repeat"
|
||||
mipmap_input0 = "false"
|
||||
alias0 = "first_pass"
|
||||
float_framebuffer0 = "false"
|
||||
srgb_framebuffer0 = "false"
|
||||
scale_type_x0 = "source"
|
||||
scale_x0 = "2.000000"
|
||||
scale_type_y0 = "source"
|
||||
scale_y0 = "2.000000"
|
||||
shader1 = "shaders/fxaa.slang"
|
||||
filter_linear1 = "true"
|
||||
wrap_mode1 = "mirrored_repeat"
|
||||
mipmap_input1 = "true"
|
||||
alias1 = "FXAA_pass"
|
||||
float_framebuffer1 = "false"
|
||||
srgb_framebuffer1 = "false"
|
||||
scale_type_x1 = "source"
|
||||
scale_x1 = "1.000000"
|
||||
scale_type_y1 = "source"
|
||||
scale_y1 = "1.000000"
|
||||
shader2 = "shaders/shift_and_bleed.slang"
|
||||
filter_linear2 = "true"
|
||||
wrap_mode2 = "mirrored_repeat"
|
||||
mipmap_input2 = "false"
|
||||
alias2 = "shift_and_bleed_pass"
|
||||
float_framebuffer2 = "false"
|
||||
srgb_framebuffer2 = "false"
|
||||
scale_type_x2 = "source"
|
||||
scale_x2 = "1.000000"
|
||||
scale_type_y2 = "source"
|
||||
scale_y2 = "1.000000"
|
||||
shader3 = "shaders/in_glow.slang"
|
||||
filter_linear3 = "true"
|
||||
wrap_mode3 = "mirrored_repeat"
|
||||
mipmap_input3 = "false"
|
||||
alias3 = "in_glow_pass"
|
||||
float_framebuffer3 = "true"
|
||||
srgb_framebuffer3 = "false"
|
||||
scale_type_x3 = "source"
|
||||
scale_x3 = "1.000000"
|
||||
scale_type_y3 = "source"
|
||||
scale_y3 = "1.000000"
|
||||
shader4 = "shaders/halo.slang"
|
||||
filter_linear4 = "true"
|
||||
wrap_mode4 = "mirrored_repeat"
|
||||
mipmap_input4 = "false"
|
||||
alias4 = "halo_pass"
|
||||
float_framebuffer4 = "true"
|
||||
srgb_framebuffer4 = "false"
|
||||
scale_type_x4 = "source"
|
||||
scale_x4 = "1.000000"
|
||||
scale_type_y4 = "source"
|
||||
scale_y4 = "1.000000"
|
||||
shader5 = "shaders/avglum_pass.slang"
|
||||
filter_linear5 = "true"
|
||||
wrap_mode5 = "mirrored_repeat"
|
||||
mipmap_input5 = "false"
|
||||
alias5 = "avglum_pass"
|
||||
float_framebuffer5 = "false"
|
||||
srgb_framebuffer5 = "false"
|
||||
scale_type_x5 = "source"
|
||||
scale_x5 = "0.500000"
|
||||
scale_type_y5 = "source"
|
||||
scale_y5 = "0.500000"
|
||||
shader6 = "shaders/reflection_blur_h.slang"
|
||||
filter_linear6 = "true"
|
||||
wrap_mode6 = "mirrored_repeat"
|
||||
mipmap_input6 = "false"
|
||||
alias6 = "reflected_blurred_pass1"
|
||||
float_framebuffer6 = "false"
|
||||
srgb_framebuffer6 = "false"
|
||||
scale_type_x6 = "source"
|
||||
scale_x6 = "1.000000"
|
||||
scale_type_y6 = "source"
|
||||
scale_y6 = "1.000000"
|
||||
shader7 = "shaders/reflection_blur_v.slang"
|
||||
filter_linear7 = "true"
|
||||
wrap_mode7 = "mirrored_repeat"
|
||||
mipmap_input7 = "false"
|
||||
alias7 = "reflected_blurred_pass2"
|
||||
float_framebuffer7 = "false"
|
||||
srgb_framebuffer7 = "false"
|
||||
scale_type_x7 = "source"
|
||||
scale_x7 = "1.000000"
|
||||
scale_type_y7 = "source"
|
||||
scale_y7 = "1.000000"
|
||||
shader8 = "shaders/bloom_pass_1.slang"
|
||||
filter_linear8 = "true"
|
||||
wrap_mode8 = "mirrored_repeat"
|
||||
mipmap_input8 = "false"
|
||||
alias8 = "bloom_pass_1"
|
||||
float_framebuffer8 = "true"
|
||||
srgb_framebuffer8 = "false"
|
||||
scale_type_x8 = "source"
|
||||
scale_x8 = "1.000000"
|
||||
scale_type_y8 = "source"
|
||||
scale_y8 = "1.000000"
|
||||
shader9 = "shaders/bloom_pass_2.slang"
|
||||
filter_linear9 = "true"
|
||||
wrap_mode9 = "clamp_to_edge"
|
||||
mipmap_input9 = "false"
|
||||
alias9 = "bloom_pass_2"
|
||||
float_framebuffer9 = "false"
|
||||
srgb_framebuffer9 = "false"
|
||||
scale_type_x9 = "source"
|
||||
scale_x9 = "0.500000"
|
||||
scale_type_y9 = "source"
|
||||
scale_y9 = "0.500000"
|
||||
shader10 = "shaders/bloom_pass_3.slang"
|
||||
filter_linear10 = "true"
|
||||
wrap_mode10 = "clamp_to_edge"
|
||||
mipmap_input10 = "false"
|
||||
alias10 = "bloom_pass_3"
|
||||
float_framebuffer10 = "false"
|
||||
srgb_framebuffer10 = "false"
|
||||
scale_type_x10 = "source"
|
||||
scale_x10 = "1.000000"
|
||||
scale_type_y10 = "source"
|
||||
scale_y10 = "1.000000"
|
||||
shader11 = "shaders/bloom_pass_4.slang"
|
||||
filter_linear11 = "true"
|
||||
wrap_mode11 = "mirrored_repeat"
|
||||
mipmap_input11 = "false"
|
||||
alias11 = "bloom_pass_final"
|
||||
float_framebuffer11 = "false"
|
||||
srgb_framebuffer11 = "false"
|
||||
scale_type_x11 = "source"
|
||||
scale_x11 = "1.000000"
|
||||
scale_type_y11 = "source"
|
||||
scale_y11 = "1.000000"
|
||||
shader12 = "shaders/ambi_push_pass.slang"
|
||||
filter_linear12 = "true"
|
||||
wrap_mode12 = "mirrored_repeat"
|
||||
mipmap_input12 = "false"
|
||||
alias12 = "ambi_push_pass"
|
||||
float_framebuffer12 = "true"
|
||||
srgb_framebuffer12 = "false"
|
||||
scale_type_x12 = "source"
|
||||
scale_x12 = "1.000000"
|
||||
scale_type_y12 = "source"
|
||||
scale_y12 = "1.000000"
|
||||
shader13 = "shaders/ambi_pre_pass.slang"
|
||||
filter_linear13 = "true"
|
||||
wrap_mode13 = "clamp_to_border"
|
||||
mipmap_input13 = "true"
|
||||
alias13 = "ambi_pre_pass1"
|
||||
float_framebuffer13 = "false"
|
||||
srgb_framebuffer13 = "false"
|
||||
scale_type_x13 = "source"
|
||||
scale_x13 = "1.000000"
|
||||
scale_type_y13 = "source"
|
||||
scale_y13 = "1.000000"
|
||||
shader14 = "shaders/ambi_temporal_pass.slang"
|
||||
filter_linear14 = "true"
|
||||
wrap_mode14 = "clamp_to_border"
|
||||
mipmap_input14 = "false"
|
||||
alias14 = "ambi_temporal_pass"
|
||||
float_framebuffer14 = "true"
|
||||
srgb_framebuffer14 = "false"
|
||||
scale_type_x14 = "source"
|
||||
scale_x14 = "1.000000"
|
||||
scale_type_y14 = "source"
|
||||
scale_y14 = "1.000000"
|
||||
shader15 = "shaders/isrotated.slang"
|
||||
filter_linear15 = "true"
|
||||
wrap_mode15 = "mirrored_repeat"
|
||||
mipmap_input15 = "false"
|
||||
alias15 = "isrotated_pass"
|
||||
float_framebuffer15 = "false"
|
||||
srgb_framebuffer15 = "false"
|
||||
scale_type_x15 = "viewport"
|
||||
scale_x15 = "0.100000"
|
||||
scale_type_y15 = "viewport"
|
||||
scale_y15 = "0.100000"
|
||||
shader16 = "shaders/final_pass.slang"
|
||||
filter_linear16 = "true"
|
||||
wrap_mode16 = "mirrored_repeat"
|
||||
mipmap_input16 = "false"
|
||||
alias16 = "final_pass"
|
||||
float_framebuffer16 = "false"
|
||||
srgb_framebuffer16 = "false"
|
||||
scale_type_x16 = "viewport"
|
||||
scale_x16 = "1.000000"
|
||||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
TEMPERATURE = "7000.000000"
|
||||
GAMMA_OUT = "0.550000"
|
||||
DO_FXAA = "1.000000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_SAT_BLEED = "1.000000"
|
||||
SAT_BLEED_PAL = "1.000000"
|
||||
SAT_BLEED_STRENGTH = "0.500000"
|
||||
SAT_BLEED_SIZE_LEFT = "3.000000"
|
||||
SAT_BLEED_SIZE_RIGHT = "3.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.600000"
|
||||
IN_GLOW_WH = "3.500000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.700000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.520000"
|
||||
HALO_W = "3.000000"
|
||||
HALO_H = "3.000000"
|
||||
HALO_GAMMA = "1.100000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINE_DARK = "0.700000"
|
||||
SCANLINE_COMPENSATION = "0.200000"
|
||||
SCANLINES_BLEEDING = "1.000000"
|
||||
SCANLINE_FLICKERING = "0.000000"
|
||||
SCANLINE_FLICKERING_POWER = "0.500000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.000000"
|
||||
GEOM_CORNER_SMOOTH = "200.000000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.400000"
|
||||
AMBI_POWER = "1.000000"
|
||||
V_SIZE = "2.700000"
|
||||
V_POWER = "1.050000"
|
||||
S_POSITION = "194.000000"
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
monitor_body_linear = "true"
|
||||
monitor_body_wrap_mode = "clamp_to_edge"
|
||||
monitor_body_mipmap = "true"
|
||||
bg_under = "textures/background_under.png"
|
||||
bg_under_linear = "true"
|
||||
bg_under_wrap_mode = "mirrored_repeat"
|
||||
bg_under_mipmap = "true"
|
||||
bg_over = "textures/background_over.png"
|
||||
bg_over_linear = "true"
|
||||
bg_over_wrap_mode = "mirrored_repeat"
|
||||
bg_over_mipmap = "true"
|
251
bezel/koko-aio/tv-NTSC.slangp
Normal file
251
bezel/koko-aio/tv-NTSC.slangp
Normal file
|
@ -0,0 +1,251 @@
|
|||
shaders = "17"
|
||||
shader0 = "shaders/first_pass.slang"
|
||||
filter_linear0 = "false"
|
||||
wrap_mode0 = "mirrored_repeat"
|
||||
mipmap_input0 = "false"
|
||||
alias0 = "first_pass"
|
||||
float_framebuffer0 = "false"
|
||||
srgb_framebuffer0 = "false"
|
||||
scale_type_x0 = "source"
|
||||
scale_x0 = "2.000000"
|
||||
scale_type_y0 = "source"
|
||||
scale_y0 = "2.000000"
|
||||
shader1 = "shaders/fxaa.slang"
|
||||
filter_linear1 = "true"
|
||||
wrap_mode1 = "mirrored_repeat"
|
||||
mipmap_input1 = "true"
|
||||
alias1 = "FXAA_pass"
|
||||
float_framebuffer1 = "false"
|
||||
srgb_framebuffer1 = "false"
|
||||
scale_type_x1 = "source"
|
||||
scale_x1 = "1.000000"
|
||||
scale_type_y1 = "source"
|
||||
scale_y1 = "1.000000"
|
||||
shader2 = "shaders/shift_and_bleed.slang"
|
||||
filter_linear2 = "true"
|
||||
wrap_mode2 = "mirrored_repeat"
|
||||
mipmap_input2 = "false"
|
||||
alias2 = "shift_and_bleed_pass"
|
||||
float_framebuffer2 = "false"
|
||||
srgb_framebuffer2 = "false"
|
||||
scale_type_x2 = "source"
|
||||
scale_x2 = "1.000000"
|
||||
scale_type_y2 = "source"
|
||||
scale_y2 = "1.000000"
|
||||
shader3 = "shaders/in_glow.slang"
|
||||
filter_linear3 = "true"
|
||||
wrap_mode3 = "mirrored_repeat"
|
||||
mipmap_input3 = "false"
|
||||
alias3 = "in_glow_pass"
|
||||
float_framebuffer3 = "true"
|
||||
srgb_framebuffer3 = "false"
|
||||
scale_type_x3 = "source"
|
||||
scale_x3 = "1.000000"
|
||||
scale_type_y3 = "source"
|
||||
scale_y3 = "1.000000"
|
||||
shader4 = "shaders/halo.slang"
|
||||
filter_linear4 = "true"
|
||||
wrap_mode4 = "mirrored_repeat"
|
||||
mipmap_input4 = "false"
|
||||
alias4 = "halo_pass"
|
||||
float_framebuffer4 = "true"
|
||||
srgb_framebuffer4 = "false"
|
||||
scale_type_x4 = "source"
|
||||
scale_x4 = "1.000000"
|
||||
scale_type_y4 = "source"
|
||||
scale_y4 = "1.000000"
|
||||
shader5 = "shaders/avglum_pass.slang"
|
||||
filter_linear5 = "true"
|
||||
wrap_mode5 = "mirrored_repeat"
|
||||
mipmap_input5 = "false"
|
||||
alias5 = "avglum_pass"
|
||||
float_framebuffer5 = "false"
|
||||
srgb_framebuffer5 = "false"
|
||||
scale_type_x5 = "source"
|
||||
scale_x5 = "0.500000"
|
||||
scale_type_y5 = "source"
|
||||
scale_y5 = "0.500000"
|
||||
shader6 = "shaders/reflection_blur_h.slang"
|
||||
filter_linear6 = "true"
|
||||
wrap_mode6 = "mirrored_repeat"
|
||||
mipmap_input6 = "false"
|
||||
alias6 = "reflected_blurred_pass1"
|
||||
float_framebuffer6 = "false"
|
||||
srgb_framebuffer6 = "false"
|
||||
scale_type_x6 = "source"
|
||||
scale_x6 = "1.000000"
|
||||
scale_type_y6 = "source"
|
||||
scale_y6 = "1.000000"
|
||||
shader7 = "shaders/reflection_blur_v.slang"
|
||||
filter_linear7 = "true"
|
||||
wrap_mode7 = "mirrored_repeat"
|
||||
mipmap_input7 = "false"
|
||||
alias7 = "reflected_blurred_pass2"
|
||||
float_framebuffer7 = "false"
|
||||
srgb_framebuffer7 = "false"
|
||||
scale_type_x7 = "source"
|
||||
scale_x7 = "1.000000"
|
||||
scale_type_y7 = "source"
|
||||
scale_y7 = "1.000000"
|
||||
shader8 = "shaders/bloom_pass_1.slang"
|
||||
filter_linear8 = "true"
|
||||
wrap_mode8 = "mirrored_repeat"
|
||||
mipmap_input8 = "false"
|
||||
alias8 = "bloom_pass_1"
|
||||
float_framebuffer8 = "true"
|
||||
srgb_framebuffer8 = "false"
|
||||
scale_type_x8 = "source"
|
||||
scale_x8 = "1.000000"
|
||||
scale_type_y8 = "source"
|
||||
scale_y8 = "1.000000"
|
||||
shader9 = "shaders/bloom_pass_2.slang"
|
||||
filter_linear9 = "true"
|
||||
wrap_mode9 = "clamp_to_edge"
|
||||
mipmap_input9 = "false"
|
||||
alias9 = "bloom_pass_2"
|
||||
float_framebuffer9 = "false"
|
||||
srgb_framebuffer9 = "false"
|
||||
scale_type_x9 = "source"
|
||||
scale_x9 = "0.500000"
|
||||
scale_type_y9 = "source"
|
||||
scale_y9 = "0.500000"
|
||||
shader10 = "shaders/bloom_pass_3.slang"
|
||||
filter_linear10 = "true"
|
||||
wrap_mode10 = "clamp_to_edge"
|
||||
mipmap_input10 = "false"
|
||||
alias10 = "bloom_pass_3"
|
||||
float_framebuffer10 = "false"
|
||||
srgb_framebuffer10 = "false"
|
||||
scale_type_x10 = "source"
|
||||
scale_x10 = "1.000000"
|
||||
scale_type_y10 = "source"
|
||||
scale_y10 = "1.000000"
|
||||
shader11 = "shaders/bloom_pass_4.slang"
|
||||
filter_linear11 = "true"
|
||||
wrap_mode11 = "mirrored_repeat"
|
||||
mipmap_input11 = "false"
|
||||
alias11 = "bloom_pass_final"
|
||||
float_framebuffer11 = "false"
|
||||
srgb_framebuffer11 = "false"
|
||||
scale_type_x11 = "source"
|
||||
scale_x11 = "1.000000"
|
||||
scale_type_y11 = "source"
|
||||
scale_y11 = "1.000000"
|
||||
shader12 = "shaders/ambi_push_pass.slang"
|
||||
filter_linear12 = "true"
|
||||
wrap_mode12 = "mirrored_repeat"
|
||||
mipmap_input12 = "false"
|
||||
alias12 = "ambi_push_pass"
|
||||
float_framebuffer12 = "true"
|
||||
srgb_framebuffer12 = "false"
|
||||
scale_type_x12 = "source"
|
||||
scale_x12 = "1.000000"
|
||||
scale_type_y12 = "source"
|
||||
scale_y12 = "1.000000"
|
||||
shader13 = "shaders/ambi_pre_pass.slang"
|
||||
filter_linear13 = "true"
|
||||
wrap_mode13 = "clamp_to_border"
|
||||
mipmap_input13 = "true"
|
||||
alias13 = "ambi_pre_pass1"
|
||||
float_framebuffer13 = "false"
|
||||
srgb_framebuffer13 = "false"
|
||||
scale_type_x13 = "source"
|
||||
scale_x13 = "1.000000"
|
||||
scale_type_y13 = "source"
|
||||
scale_y13 = "1.000000"
|
||||
shader14 = "shaders/ambi_temporal_pass.slang"
|
||||
filter_linear14 = "true"
|
||||
wrap_mode14 = "clamp_to_border"
|
||||
mipmap_input14 = "false"
|
||||
alias14 = "ambi_temporal_pass"
|
||||
float_framebuffer14 = "true"
|
||||
srgb_framebuffer14 = "false"
|
||||
scale_type_x14 = "source"
|
||||
scale_x14 = "1.000000"
|
||||
scale_type_y14 = "source"
|
||||
scale_y14 = "1.000000"
|
||||
shader15 = "shaders/isrotated.slang"
|
||||
filter_linear15 = "true"
|
||||
wrap_mode15 = "mirrored_repeat"
|
||||
mipmap_input15 = "false"
|
||||
alias15 = "isrotated_pass"
|
||||
float_framebuffer15 = "false"
|
||||
srgb_framebuffer15 = "false"
|
||||
scale_type_x15 = "viewport"
|
||||
scale_x15 = "0.100000"
|
||||
scale_type_y15 = "viewport"
|
||||
scale_y15 = "0.100000"
|
||||
shader16 = "shaders/final_pass.slang"
|
||||
filter_linear16 = "true"
|
||||
wrap_mode16 = "mirrored_repeat"
|
||||
mipmap_input16 = "false"
|
||||
alias16 = "final_pass"
|
||||
float_framebuffer16 = "false"
|
||||
srgb_framebuffer16 = "false"
|
||||
scale_type_x16 = "viewport"
|
||||
scale_x16 = "1.000000"
|
||||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.200000"
|
||||
CONTRAST = "0.050000"
|
||||
BRIGHTNESS = "0.050000"
|
||||
TEMPERATURE = "7000.000000"
|
||||
GAMMA_OUT = "0.560000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "2.000000"
|
||||
SHIFT_G = "20.000000"
|
||||
SHIFT_B = "-2.000000"
|
||||
DO_SAT_BLEED = "1.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.750000"
|
||||
IN_GLOW_WH = "1.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.700000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.500000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.150000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINE_DARK = "0.300000"
|
||||
SCANLINES_BLEEDING = "0.825000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.500000"
|
||||
GEOM_WARP_Y = "0.500000"
|
||||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_INNER_ZOOM = "-0.005000"
|
||||
BEZEL_FRAME_ZOOM = "0.139000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.400000"
|
||||
AMBI_POWER = "5.000000"
|
||||
DO_VIGNETTE = "1.000000"
|
||||
V_SIZE = "2.700000"
|
||||
V_POWER = "1.050000"
|
||||
DO_SPOT = "1.000000"
|
||||
S_POSITION = "194.000000"
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
monitor_body_linear = "true"
|
||||
monitor_body_wrap_mode = "clamp_to_edge"
|
||||
monitor_body_mipmap = "true"
|
||||
bg_under = "textures/background_under.png"
|
||||
bg_under_linear = "true"
|
||||
bg_under_wrap_mode = "mirrored_repeat"
|
||||
bg_under_mipmap = "true"
|
||||
bg_over = "textures/background_over.png"
|
||||
bg_over_linear = "true"
|
||||
bg_over_wrap_mode = "mirrored_repeat"
|
||||
bg_over_mipmap = "true"
|
251
bezel/koko-aio/tv-aperturegrille-bloom-bezel.slangp
Normal file
251
bezel/koko-aio/tv-aperturegrille-bloom-bezel.slangp
Normal file
|
@ -0,0 +1,251 @@
|
|||
shaders = "17"
|
||||
shader0 = "shaders/first_pass.slang"
|
||||
filter_linear0 = "false"
|
||||
wrap_mode0 = "mirrored_repeat"
|
||||
mipmap_input0 = "false"
|
||||
alias0 = "first_pass"
|
||||
float_framebuffer0 = "false"
|
||||
srgb_framebuffer0 = "false"
|
||||
scale_type_x0 = "source"
|
||||
scale_x0 = "2.000000"
|
||||
scale_type_y0 = "source"
|
||||
scale_y0 = "2.000000"
|
||||
shader1 = "shaders/fxaa.slang"
|
||||
filter_linear1 = "true"
|
||||
wrap_mode1 = "mirrored_repeat"
|
||||
mipmap_input1 = "true"
|
||||
alias1 = "FXAA_pass"
|
||||
float_framebuffer1 = "false"
|
||||
srgb_framebuffer1 = "false"
|
||||
scale_type_x1 = "source"
|
||||
scale_x1 = "1.000000"
|
||||
scale_type_y1 = "source"
|
||||
scale_y1 = "1.000000"
|
||||
shader2 = "shaders/shift_and_bleed.slang"
|
||||
filter_linear2 = "true"
|
||||
wrap_mode2 = "mirrored_repeat"
|
||||
mipmap_input2 = "false"
|
||||
alias2 = "shift_and_bleed_pass"
|
||||
float_framebuffer2 = "false"
|
||||
srgb_framebuffer2 = "false"
|
||||
scale_type_x2 = "source"
|
||||
scale_x2 = "1.000000"
|
||||
scale_type_y2 = "source"
|
||||
scale_y2 = "1.000000"
|
||||
shader3 = "shaders/in_glow.slang"
|
||||
filter_linear3 = "true"
|
||||
wrap_mode3 = "mirrored_repeat"
|
||||
mipmap_input3 = "false"
|
||||
alias3 = "in_glow_pass"
|
||||
float_framebuffer3 = "true"
|
||||
srgb_framebuffer3 = "false"
|
||||
scale_type_x3 = "source"
|
||||
scale_x3 = "1.000000"
|
||||
scale_type_y3 = "source"
|
||||
scale_y3 = "1.000000"
|
||||
shader4 = "shaders/halo.slang"
|
||||
filter_linear4 = "true"
|
||||
wrap_mode4 = "mirrored_repeat"
|
||||
mipmap_input4 = "false"
|
||||
alias4 = "halo_pass"
|
||||
float_framebuffer4 = "true"
|
||||
srgb_framebuffer4 = "false"
|
||||
scale_type_x4 = "source"
|
||||
scale_x4 = "1.000000"
|
||||
scale_type_y4 = "source"
|
||||
scale_y4 = "1.000000"
|
||||
shader5 = "shaders/avglum_pass.slang"
|
||||
filter_linear5 = "true"
|
||||
wrap_mode5 = "mirrored_repeat"
|
||||
mipmap_input5 = "false"
|
||||
alias5 = "avglum_pass"
|
||||
float_framebuffer5 = "false"
|
||||
srgb_framebuffer5 = "false"
|
||||
scale_type_x5 = "source"
|
||||
scale_x5 = "0.500000"
|
||||
scale_type_y5 = "source"
|
||||
scale_y5 = "0.500000"
|
||||
shader6 = "shaders/reflection_blur_h.slang"
|
||||
filter_linear6 = "true"
|
||||
wrap_mode6 = "mirrored_repeat"
|
||||
mipmap_input6 = "false"
|
||||
alias6 = "reflected_blurred_pass1"
|
||||
float_framebuffer6 = "false"
|
||||
srgb_framebuffer6 = "false"
|
||||
scale_type_x6 = "source"
|
||||
scale_x6 = "1.000000"
|
||||
scale_type_y6 = "source"
|
||||
scale_y6 = "1.000000"
|
||||
shader7 = "shaders/reflection_blur_v.slang"
|
||||
filter_linear7 = "true"
|
||||
wrap_mode7 = "mirrored_repeat"
|
||||
mipmap_input7 = "false"
|
||||
alias7 = "reflected_blurred_pass2"
|
||||
float_framebuffer7 = "false"
|
||||
srgb_framebuffer7 = "false"
|
||||
scale_type_x7 = "source"
|
||||
scale_x7 = "1.000000"
|
||||
scale_type_y7 = "source"
|
||||
scale_y7 = "1.000000"
|
||||
shader8 = "shaders/bloom_pass_1.slang"
|
||||
filter_linear8 = "true"
|
||||
wrap_mode8 = "mirrored_repeat"
|
||||
mipmap_input8 = "false"
|
||||
alias8 = "bloom_pass_1"
|
||||
float_framebuffer8 = "true"
|
||||
srgb_framebuffer8 = "false"
|
||||
scale_type_x8 = "source"
|
||||
scale_x8 = "1.000000"
|
||||
scale_type_y8 = "source"
|
||||
scale_y8 = "1.000000"
|
||||
shader9 = "shaders/bloom_pass_2.slang"
|
||||
filter_linear9 = "true"
|
||||
wrap_mode9 = "clamp_to_edge"
|
||||
mipmap_input9 = "false"
|
||||
alias9 = "bloom_pass_2"
|
||||
float_framebuffer9 = "false"
|
||||
srgb_framebuffer9 = "false"
|
||||
scale_type_x9 = "source"
|
||||
scale_x9 = "0.500000"
|
||||
scale_type_y9 = "source"
|
||||
scale_y9 = "0.500000"
|
||||
shader10 = "shaders/bloom_pass_3.slang"
|
||||
filter_linear10 = "true"
|
||||
wrap_mode10 = "clamp_to_edge"
|
||||
mipmap_input10 = "false"
|
||||
alias10 = "bloom_pass_3"
|
||||
float_framebuffer10 = "false"
|
||||
srgb_framebuffer10 = "false"
|
||||
scale_type_x10 = "source"
|
||||
scale_x10 = "1.000000"
|
||||
scale_type_y10 = "source"
|
||||
scale_y10 = "1.000000"
|
||||
shader11 = "shaders/bloom_pass_4.slang"
|
||||
filter_linear11 = "true"
|
||||
wrap_mode11 = "mirrored_repeat"
|
||||
mipmap_input11 = "false"
|
||||
alias11 = "bloom_pass_final"
|
||||
float_framebuffer11 = "false"
|
||||
srgb_framebuffer11 = "false"
|
||||
scale_type_x11 = "source"
|
||||
scale_x11 = "1.000000"
|
||||
scale_type_y11 = "source"
|
||||
scale_y11 = "1.000000"
|
||||
shader12 = "shaders/ambi_push_pass.slang"
|
||||
filter_linear12 = "true"
|
||||
wrap_mode12 = "mirrored_repeat"
|
||||
mipmap_input12 = "false"
|
||||
alias12 = "ambi_push_pass"
|
||||
float_framebuffer12 = "true"
|
||||
srgb_framebuffer12 = "false"
|
||||
scale_type_x12 = "source"
|
||||
scale_x12 = "1.000000"
|
||||
scale_type_y12 = "source"
|
||||
scale_y12 = "1.000000"
|
||||
shader13 = "shaders/ambi_pre_pass.slang"
|
||||
filter_linear13 = "true"
|
||||
wrap_mode13 = "clamp_to_border"
|
||||
mipmap_input13 = "true"
|
||||
alias13 = "ambi_pre_pass1"
|
||||
float_framebuffer13 = "false"
|
||||
srgb_framebuffer13 = "false"
|
||||
scale_type_x13 = "source"
|
||||
scale_x13 = "1.000000"
|
||||
scale_type_y13 = "source"
|
||||
scale_y13 = "1.000000"
|
||||
shader14 = "shaders/ambi_temporal_pass.slang"
|
||||
filter_linear14 = "true"
|
||||
wrap_mode14 = "clamp_to_border"
|
||||
mipmap_input14 = "false"
|
||||
alias14 = "ambi_temporal_pass"
|
||||
float_framebuffer14 = "true"
|
||||
srgb_framebuffer14 = "false"
|
||||
scale_type_x14 = "source"
|
||||
scale_x14 = "1.000000"
|
||||
scale_type_y14 = "source"
|
||||
scale_y14 = "1.000000"
|
||||
shader15 = "shaders/isrotated.slang"
|
||||
filter_linear15 = "true"
|
||||
wrap_mode15 = "mirrored_repeat"
|
||||
mipmap_input15 = "false"
|
||||
alias15 = "isrotated_pass"
|
||||
float_framebuffer15 = "false"
|
||||
srgb_framebuffer15 = "false"
|
||||
scale_type_x15 = "viewport"
|
||||
scale_x15 = "0.100000"
|
||||
scale_type_y15 = "viewport"
|
||||
scale_y15 = "0.100000"
|
||||
shader16 = "shaders/final_pass.slang"
|
||||
filter_linear16 = "true"
|
||||
wrap_mode16 = "mirrored_repeat"
|
||||
mipmap_input16 = "false"
|
||||
alias16 = "final_pass"
|
||||
float_framebuffer16 = "false"
|
||||
srgb_framebuffer16 = "false"
|
||||
scale_type_x16 = "viewport"
|
||||
scale_x16 = "1.000000"
|
||||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
TEMPERATURE = "7000.000000"
|
||||
GAMMA_OUT = "0.350000"
|
||||
DO_FXAA = "1.000000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_SAT_BLEED = "1.000000"
|
||||
SAT_BLEED_PAL = "1.000000"
|
||||
SAT_BLEED_STRENGTH = "0.500000"
|
||||
SAT_BLEED_SIZE_LEFT = "3.000000"
|
||||
SAT_BLEED_SIZE_RIGHT = "3.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.750000"
|
||||
IN_GLOW_WH = "3.500000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
DARKLINES_STRENGTH = "1.000000"
|
||||
DO_DARKLINES_VOFFSET = "0.000000"
|
||||
DARKLINES_PERIOD = "2.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.350000"
|
||||
HALO_W = "3.000000"
|
||||
HALO_H = "3.000000"
|
||||
SCANLINE_DARK = "0.700000"
|
||||
SCANLINE_COMPENSATION = "0.200000"
|
||||
SCANLINES_BLEEDING = "1.000000"
|
||||
SCANLINE_FLICKERING = "0.000000"
|
||||
SCANLINE_FLICKERING_POWER = "0.500000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.800000"
|
||||
GEOM_WARP_Y = "0.850000"
|
||||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.600000"
|
||||
AMBI_POWER = "2.000000"
|
||||
DO_VIGNETTE = "1.000000"
|
||||
V_SIZE = "2.700000"
|
||||
V_POWER = "1.050000"
|
||||
DO_SPOT = "1.000000"
|
||||
S_POSITION = "194.000000"
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
monitor_body_linear = "true"
|
||||
monitor_body_wrap_mode = "clamp_to_edge"
|
||||
monitor_body_mipmap = "true"
|
||||
bg_under = "textures/background_under.png"
|
||||
bg_under_linear = "true"
|
||||
bg_under_wrap_mode = "mirrored_repeat"
|
||||
bg_under_mipmap = "true"
|
||||
bg_over = "textures/background_over.png"
|
||||
bg_over_linear = "true"
|
||||
bg_over_wrap_mode = "mirrored_repeat"
|
||||
bg_over_mipmap = "true"
|
253
bezel/koko-aio/tv-aperturegrille-bloom-bezelwider.slangp
Normal file
253
bezel/koko-aio/tv-aperturegrille-bloom-bezelwider.slangp
Normal file
|
@ -0,0 +1,253 @@
|
|||
shaders = "17"
|
||||
shader0 = "shaders/first_pass.slang"
|
||||
filter_linear0 = "false"
|
||||
wrap_mode0 = "mirrored_repeat"
|
||||
mipmap_input0 = "false"
|
||||
alias0 = "first_pass"
|
||||
float_framebuffer0 = "false"
|
||||
srgb_framebuffer0 = "false"
|
||||
scale_type_x0 = "source"
|
||||
scale_x0 = "2.000000"
|
||||
scale_type_y0 = "source"
|
||||
scale_y0 = "2.000000"
|
||||
shader1 = "shaders/fxaa.slang"
|
||||
filter_linear1 = "true"
|
||||
wrap_mode1 = "mirrored_repeat"
|
||||
mipmap_input1 = "true"
|
||||
alias1 = "FXAA_pass"
|
||||
float_framebuffer1 = "false"
|
||||
srgb_framebuffer1 = "false"
|
||||
scale_type_x1 = "source"
|
||||
scale_x1 = "1.000000"
|
||||
scale_type_y1 = "source"
|
||||
scale_y1 = "1.000000"
|
||||
shader2 = "shaders/shift_and_bleed.slang"
|
||||
filter_linear2 = "true"
|
||||
wrap_mode2 = "mirrored_repeat"
|
||||
mipmap_input2 = "false"
|
||||
alias2 = "shift_and_bleed_pass"
|
||||
float_framebuffer2 = "false"
|
||||
srgb_framebuffer2 = "false"
|
||||
scale_type_x2 = "source"
|
||||
scale_x2 = "1.000000"
|
||||
scale_type_y2 = "source"
|
||||
scale_y2 = "1.000000"
|
||||
shader3 = "shaders/in_glow.slang"
|
||||
filter_linear3 = "true"
|
||||
wrap_mode3 = "mirrored_repeat"
|
||||
mipmap_input3 = "false"
|
||||
alias3 = "in_glow_pass"
|
||||
float_framebuffer3 = "true"
|
||||
srgb_framebuffer3 = "false"
|
||||
scale_type_x3 = "source"
|
||||
scale_x3 = "1.000000"
|
||||
scale_type_y3 = "source"
|
||||
scale_y3 = "1.000000"
|
||||
shader4 = "shaders/halo.slang"
|
||||
filter_linear4 = "true"
|
||||
wrap_mode4 = "mirrored_repeat"
|
||||
mipmap_input4 = "false"
|
||||
alias4 = "halo_pass"
|
||||
float_framebuffer4 = "true"
|
||||
srgb_framebuffer4 = "false"
|
||||
scale_type_x4 = "source"
|
||||
scale_x4 = "1.000000"
|
||||
scale_type_y4 = "source"
|
||||
scale_y4 = "1.000000"
|
||||
shader5 = "shaders/avglum_pass.slang"
|
||||
filter_linear5 = "true"
|
||||
wrap_mode5 = "mirrored_repeat"
|
||||
mipmap_input5 = "false"
|
||||
alias5 = "avglum_pass"
|
||||
float_framebuffer5 = "false"
|
||||
srgb_framebuffer5 = "false"
|
||||
scale_type_x5 = "source"
|
||||
scale_x5 = "0.500000"
|
||||
scale_type_y5 = "source"
|
||||
scale_y5 = "0.500000"
|
||||
shader6 = "shaders/reflection_blur_h.slang"
|
||||
filter_linear6 = "true"
|
||||
wrap_mode6 = "mirrored_repeat"
|
||||
mipmap_input6 = "false"
|
||||
alias6 = "reflected_blurred_pass1"
|
||||
float_framebuffer6 = "false"
|
||||
srgb_framebuffer6 = "false"
|
||||
scale_type_x6 = "source"
|
||||
scale_x6 = "1.000000"
|
||||
scale_type_y6 = "source"
|
||||
scale_y6 = "1.000000"
|
||||
shader7 = "shaders/reflection_blur_v.slang"
|
||||
filter_linear7 = "true"
|
||||
wrap_mode7 = "mirrored_repeat"
|
||||
mipmap_input7 = "false"
|
||||
alias7 = "reflected_blurred_pass2"
|
||||
float_framebuffer7 = "false"
|
||||
srgb_framebuffer7 = "false"
|
||||
scale_type_x7 = "source"
|
||||
scale_x7 = "1.000000"
|
||||
scale_type_y7 = "source"
|
||||
scale_y7 = "1.000000"
|
||||
shader8 = "shaders/bloom_pass_1.slang"
|
||||
filter_linear8 = "true"
|
||||
wrap_mode8 = "mirrored_repeat"
|
||||
mipmap_input8 = "false"
|
||||
alias8 = "bloom_pass_1"
|
||||
float_framebuffer8 = "true"
|
||||
srgb_framebuffer8 = "false"
|
||||
scale_type_x8 = "source"
|
||||
scale_x8 = "1.000000"
|
||||
scale_type_y8 = "source"
|
||||
scale_y8 = "1.000000"
|
||||
shader9 = "shaders/bloom_pass_2.slang"
|
||||
filter_linear9 = "true"
|
||||
wrap_mode9 = "clamp_to_edge"
|
||||
mipmap_input9 = "false"
|
||||
alias9 = "bloom_pass_2"
|
||||
float_framebuffer9 = "false"
|
||||
srgb_framebuffer9 = "false"
|
||||
scale_type_x9 = "source"
|
||||
scale_x9 = "0.500000"
|
||||
scale_type_y9 = "source"
|
||||
scale_y9 = "0.500000"
|
||||
shader10 = "shaders/bloom_pass_3.slang"
|
||||
filter_linear10 = "true"
|
||||
wrap_mode10 = "clamp_to_edge"
|
||||
mipmap_input10 = "false"
|
||||
alias10 = "bloom_pass_3"
|
||||
float_framebuffer10 = "false"
|
||||
srgb_framebuffer10 = "false"
|
||||
scale_type_x10 = "source"
|
||||
scale_x10 = "1.000000"
|
||||
scale_type_y10 = "source"
|
||||
scale_y10 = "1.000000"
|
||||
shader11 = "shaders/bloom_pass_4.slang"
|
||||
filter_linear11 = "true"
|
||||
wrap_mode11 = "mirrored_repeat"
|
||||
mipmap_input11 = "false"
|
||||
alias11 = "bloom_pass_final"
|
||||
float_framebuffer11 = "false"
|
||||
srgb_framebuffer11 = "false"
|
||||
scale_type_x11 = "source"
|
||||
scale_x11 = "1.000000"
|
||||
scale_type_y11 = "source"
|
||||
scale_y11 = "1.000000"
|
||||
shader12 = "shaders/ambi_push_pass.slang"
|
||||
filter_linear12 = "true"
|
||||
wrap_mode12 = "mirrored_repeat"
|
||||
mipmap_input12 = "false"
|
||||
alias12 = "ambi_push_pass"
|
||||
float_framebuffer12 = "true"
|
||||
srgb_framebuffer12 = "false"
|
||||
scale_type_x12 = "source"
|
||||
scale_x12 = "1.000000"
|
||||
scale_type_y12 = "source"
|
||||
scale_y12 = "1.000000"
|
||||
shader13 = "shaders/ambi_pre_pass.slang"
|
||||
filter_linear13 = "true"
|
||||
wrap_mode13 = "clamp_to_border"
|
||||
mipmap_input13 = "true"
|
||||
alias13 = "ambi_pre_pass1"
|
||||
float_framebuffer13 = "false"
|
||||
srgb_framebuffer13 = "false"
|
||||
scale_type_x13 = "source"
|
||||
scale_x13 = "1.000000"
|
||||
scale_type_y13 = "source"
|
||||
scale_y13 = "1.000000"
|
||||
shader14 = "shaders/ambi_temporal_pass.slang"
|
||||
filter_linear14 = "true"
|
||||
wrap_mode14 = "clamp_to_border"
|
||||
mipmap_input14 = "false"
|
||||
alias14 = "ambi_temporal_pass"
|
||||
float_framebuffer14 = "true"
|
||||
srgb_framebuffer14 = "false"
|
||||
scale_type_x14 = "source"
|
||||
scale_x14 = "1.000000"
|
||||
scale_type_y14 = "source"
|
||||
scale_y14 = "1.000000"
|
||||
shader15 = "shaders/isrotated.slang"
|
||||
filter_linear15 = "true"
|
||||
wrap_mode15 = "mirrored_repeat"
|
||||
mipmap_input15 = "false"
|
||||
alias15 = "isrotated_pass"
|
||||
float_framebuffer15 = "false"
|
||||
srgb_framebuffer15 = "false"
|
||||
scale_type_x15 = "viewport"
|
||||
scale_x15 = "0.100000"
|
||||
scale_type_y15 = "viewport"
|
||||
scale_y15 = "0.100000"
|
||||
shader16 = "shaders/final_pass.slang"
|
||||
filter_linear16 = "true"
|
||||
wrap_mode16 = "mirrored_repeat"
|
||||
mipmap_input16 = "false"
|
||||
alias16 = "final_pass"
|
||||
float_framebuffer16 = "false"
|
||||
srgb_framebuffer16 = "false"
|
||||
scale_type_x16 = "viewport"
|
||||
scale_x16 = "1.000000"
|
||||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
TEMPERATURE = "7000.000000"
|
||||
GAMMA_OUT = "0.350000"
|
||||
DO_FXAA = "1.000000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_SAT_BLEED = "1.000000"
|
||||
SAT_BLEED_PAL = "1.000000"
|
||||
SAT_BLEED_STRENGTH = "0.500000"
|
||||
SAT_BLEED_SIZE_LEFT = "3.000000"
|
||||
SAT_BLEED_SIZE_RIGHT = "3.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.750000"
|
||||
IN_GLOW_WH = "3.500000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
DARKLINES_STRENGTH = "1.000000"
|
||||
DO_DARKLINES_VOFFSET = "0.000000"
|
||||
DARKLINES_PERIOD = "2.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.350000"
|
||||
HALO_W = "3.000000"
|
||||
HALO_H = "3.000000"
|
||||
SCANLINE_DARK = "0.700000"
|
||||
SCANLINE_COMPENSATION = "0.200000"
|
||||
SCANLINES_BLEEDING = "1.000000"
|
||||
SCANLINE_FLICKERING = "0.000000"
|
||||
SCANLINE_FLICKERING_POWER = "0.500000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.500000"
|
||||
GEOM_WARP_Y = "0.500000"
|
||||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_INNER_ZOOM = "-0.005000"
|
||||
BEZEL_FRAME_ZOOM = "0.139000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.400000"
|
||||
AMBI_POWER = "5.000000"
|
||||
DO_VIGNETTE = "1.000000"
|
||||
V_SIZE = "2.700000"
|
||||
V_POWER = "1.050000"
|
||||
DO_SPOT = "1.000000"
|
||||
S_POSITION = "194.000000"
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
monitor_body_linear = "true"
|
||||
monitor_body_wrap_mode = "clamp_to_edge"
|
||||
monitor_body_mipmap = "true"
|
||||
bg_under = "textures/background_under.png"
|
||||
bg_under_linear = "true"
|
||||
bg_under_wrap_mode = "mirrored_repeat"
|
||||
bg_under_mipmap = "true"
|
||||
bg_over = "textures/background_over.png"
|
||||
bg_over_linear = "true"
|
||||
bg_over_wrap_mode = "mirrored_repeat"
|
||||
bg_over_mipmap = "true"
|
246
bezel/koko-aio/tv-aperturegrille-bloom.slangp
Normal file
246
bezel/koko-aio/tv-aperturegrille-bloom.slangp
Normal file
|
@ -0,0 +1,246 @@
|
|||
shaders = "17"
|
||||
shader0 = "shaders/first_pass.slang"
|
||||
filter_linear0 = "false"
|
||||
wrap_mode0 = "mirrored_repeat"
|
||||
mipmap_input0 = "false"
|
||||
alias0 = "first_pass"
|
||||
float_framebuffer0 = "false"
|
||||
srgb_framebuffer0 = "false"
|
||||
scale_type_x0 = "source"
|
||||
scale_x0 = "2.000000"
|
||||
scale_type_y0 = "source"
|
||||
scale_y0 = "2.000000"
|
||||
shader1 = "shaders/fxaa.slang"
|
||||
filter_linear1 = "true"
|
||||
wrap_mode1 = "mirrored_repeat"
|
||||
mipmap_input1 = "true"
|
||||
alias1 = "FXAA_pass"
|
||||
float_framebuffer1 = "false"
|
||||
srgb_framebuffer1 = "false"
|
||||
scale_type_x1 = "source"
|
||||
scale_x1 = "1.000000"
|
||||
scale_type_y1 = "source"
|
||||
scale_y1 = "1.000000"
|
||||
shader2 = "shaders/shift_and_bleed.slang"
|
||||
filter_linear2 = "true"
|
||||
wrap_mode2 = "mirrored_repeat"
|
||||
mipmap_input2 = "false"
|
||||
alias2 = "shift_and_bleed_pass"
|
||||
float_framebuffer2 = "false"
|
||||
srgb_framebuffer2 = "false"
|
||||
scale_type_x2 = "source"
|
||||
scale_x2 = "1.000000"
|
||||
scale_type_y2 = "source"
|
||||
scale_y2 = "1.000000"
|
||||
shader3 = "shaders/in_glow.slang"
|
||||
filter_linear3 = "true"
|
||||
wrap_mode3 = "mirrored_repeat"
|
||||
mipmap_input3 = "false"
|
||||
alias3 = "in_glow_pass"
|
||||
float_framebuffer3 = "true"
|
||||
srgb_framebuffer3 = "false"
|
||||
scale_type_x3 = "source"
|
||||
scale_x3 = "1.000000"
|
||||
scale_type_y3 = "source"
|
||||
scale_y3 = "1.000000"
|
||||
shader4 = "shaders/halo.slang"
|
||||
filter_linear4 = "true"
|
||||
wrap_mode4 = "mirrored_repeat"
|
||||
mipmap_input4 = "false"
|
||||
alias4 = "halo_pass"
|
||||
float_framebuffer4 = "true"
|
||||
srgb_framebuffer4 = "false"
|
||||
scale_type_x4 = "source"
|
||||
scale_x4 = "1.000000"
|
||||
scale_type_y4 = "source"
|
||||
scale_y4 = "1.000000"
|
||||
shader5 = "shaders/avglum_pass.slang"
|
||||
filter_linear5 = "true"
|
||||
wrap_mode5 = "mirrored_repeat"
|
||||
mipmap_input5 = "false"
|
||||
alias5 = "avglum_pass"
|
||||
float_framebuffer5 = "false"
|
||||
srgb_framebuffer5 = "false"
|
||||
scale_type_x5 = "source"
|
||||
scale_x5 = "0.500000"
|
||||
scale_type_y5 = "source"
|
||||
scale_y5 = "0.500000"
|
||||
shader6 = "shaders/reflection_blur_h.slang"
|
||||
filter_linear6 = "true"
|
||||
wrap_mode6 = "mirrored_repeat"
|
||||
mipmap_input6 = "false"
|
||||
alias6 = "reflected_blurred_pass1"
|
||||
float_framebuffer6 = "false"
|
||||
srgb_framebuffer6 = "false"
|
||||
scale_type_x6 = "source"
|
||||
scale_x6 = "1.000000"
|
||||
scale_type_y6 = "source"
|
||||
scale_y6 = "1.000000"
|
||||
shader7 = "shaders/reflection_blur_v.slang"
|
||||
filter_linear7 = "true"
|
||||
wrap_mode7 = "mirrored_repeat"
|
||||
mipmap_input7 = "false"
|
||||
alias7 = "reflected_blurred_pass2"
|
||||
float_framebuffer7 = "false"
|
||||
srgb_framebuffer7 = "false"
|
||||
scale_type_x7 = "source"
|
||||
scale_x7 = "1.000000"
|
||||
scale_type_y7 = "source"
|
||||
scale_y7 = "1.000000"
|
||||
shader8 = "shaders/bloom_pass_1.slang"
|
||||
filter_linear8 = "true"
|
||||
wrap_mode8 = "mirrored_repeat"
|
||||
mipmap_input8 = "false"
|
||||
alias8 = "bloom_pass_1"
|
||||
float_framebuffer8 = "true"
|
||||
srgb_framebuffer8 = "false"
|
||||
scale_type_x8 = "source"
|
||||
scale_x8 = "1.000000"
|
||||
scale_type_y8 = "source"
|
||||
scale_y8 = "1.000000"
|
||||
shader9 = "shaders/bloom_pass_2.slang"
|
||||
filter_linear9 = "true"
|
||||
wrap_mode9 = "clamp_to_edge"
|
||||
mipmap_input9 = "false"
|
||||
alias9 = "bloom_pass_2"
|
||||
float_framebuffer9 = "false"
|
||||
srgb_framebuffer9 = "false"
|
||||
scale_type_x9 = "source"
|
||||
scale_x9 = "0.500000"
|
||||
scale_type_y9 = "source"
|
||||
scale_y9 = "0.500000"
|
||||
shader10 = "shaders/bloom_pass_3.slang"
|
||||
filter_linear10 = "true"
|
||||
wrap_mode10 = "clamp_to_edge"
|
||||
mipmap_input10 = "false"
|
||||
alias10 = "bloom_pass_3"
|
||||
float_framebuffer10 = "false"
|
||||
srgb_framebuffer10 = "false"
|
||||
scale_type_x10 = "source"
|
||||
scale_x10 = "1.000000"
|
||||
scale_type_y10 = "source"
|
||||
scale_y10 = "1.000000"
|
||||
shader11 = "shaders/bloom_pass_4.slang"
|
||||
filter_linear11 = "true"
|
||||
wrap_mode11 = "mirrored_repeat"
|
||||
mipmap_input11 = "false"
|
||||
alias11 = "bloom_pass_final"
|
||||
float_framebuffer11 = "false"
|
||||
srgb_framebuffer11 = "false"
|
||||
scale_type_x11 = "source"
|
||||
scale_x11 = "1.000000"
|
||||
scale_type_y11 = "source"
|
||||
scale_y11 = "1.000000"
|
||||
shader12 = "shaders/ambi_push_pass.slang"
|
||||
filter_linear12 = "true"
|
||||
wrap_mode12 = "mirrored_repeat"
|
||||
mipmap_input12 = "false"
|
||||
alias12 = "ambi_push_pass"
|
||||
float_framebuffer12 = "true"
|
||||
srgb_framebuffer12 = "false"
|
||||
scale_type_x12 = "source"
|
||||
scale_x12 = "1.000000"
|
||||
scale_type_y12 = "source"
|
||||
scale_y12 = "1.000000"
|
||||
shader13 = "shaders/ambi_pre_pass.slang"
|
||||
filter_linear13 = "true"
|
||||
wrap_mode13 = "clamp_to_border"
|
||||
mipmap_input13 = "true"
|
||||
alias13 = "ambi_pre_pass1"
|
||||
float_framebuffer13 = "false"
|
||||
srgb_framebuffer13 = "false"
|
||||
scale_type_x13 = "source"
|
||||
scale_x13 = "1.000000"
|
||||
scale_type_y13 = "source"
|
||||
scale_y13 = "1.000000"
|
||||
shader14 = "shaders/ambi_temporal_pass.slang"
|
||||
filter_linear14 = "true"
|
||||
wrap_mode14 = "clamp_to_border"
|
||||
mipmap_input14 = "false"
|
||||
alias14 = "ambi_temporal_pass"
|
||||
float_framebuffer14 = "true"
|
||||
srgb_framebuffer14 = "false"
|
||||
scale_type_x14 = "source"
|
||||
scale_x14 = "1.000000"
|
||||
scale_type_y14 = "source"
|
||||
scale_y14 = "1.000000"
|
||||
shader15 = "shaders/isrotated.slang"
|
||||
filter_linear15 = "true"
|
||||
wrap_mode15 = "mirrored_repeat"
|
||||
mipmap_input15 = "false"
|
||||
alias15 = "isrotated_pass"
|
||||
float_framebuffer15 = "false"
|
||||
srgb_framebuffer15 = "false"
|
||||
scale_type_x15 = "viewport"
|
||||
scale_x15 = "0.100000"
|
||||
scale_type_y15 = "viewport"
|
||||
scale_y15 = "0.100000"
|
||||
shader16 = "shaders/final_pass.slang"
|
||||
filter_linear16 = "true"
|
||||
wrap_mode16 = "mirrored_repeat"
|
||||
mipmap_input16 = "false"
|
||||
alias16 = "final_pass"
|
||||
float_framebuffer16 = "false"
|
||||
srgb_framebuffer16 = "false"
|
||||
scale_type_x16 = "viewport"
|
||||
scale_x16 = "1.000000"
|
||||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
TEMPERATURE = "7000.000000"
|
||||
GAMMA_OUT = "0.350000"
|
||||
DO_FXAA = "1.000000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_SAT_BLEED = "1.000000"
|
||||
SAT_BLEED_PAL = "1.000000"
|
||||
SAT_BLEED_STRENGTH = "0.500000"
|
||||
SAT_BLEED_SIZE_LEFT = "3.000000"
|
||||
SAT_BLEED_SIZE_RIGHT = "3.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.750000"
|
||||
IN_GLOW_WH = "3.500000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
DARKLINES_STRENGTH = "1.000000"
|
||||
DO_DARKLINES_VOFFSET = "0.000000"
|
||||
DARKLINES_PERIOD = "2.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.350000"
|
||||
HALO_W = "3.000000"
|
||||
HALO_H = "3.000000"
|
||||
SCANLINE_DARK = "0.700000"
|
||||
SCANLINE_COMPENSATION = "0.200000"
|
||||
SCANLINES_BLEEDING = "1.000000"
|
||||
SCANLINE_FLICKERING = "0.000000"
|
||||
SCANLINE_FLICKERING_POWER = "0.500000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.000000"
|
||||
GEOM_CORNER_SMOOTH = "200.000000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.400000"
|
||||
AMBI_POWER = "1.000000"
|
||||
V_SIZE = "2.700000"
|
||||
V_POWER = "1.050000"
|
||||
S_POSITION = "194.000000"
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
monitor_body_linear = "true"
|
||||
monitor_body_wrap_mode = "clamp_to_edge"
|
||||
monitor_body_mipmap = "true"
|
||||
bg_under = "textures/background_under.png"
|
||||
bg_under_linear = "true"
|
||||
bg_under_wrap_mode = "mirrored_repeat"
|
||||
bg_under_mipmap = "true"
|
||||
bg_over = "textures/background_over.png"
|
||||
bg_over_linear = "true"
|
||||
bg_over_wrap_mode = "mirrored_repeat"
|
||||
bg_over_mipmap = "true"
|
245
bezel/koko-aio/tv-aperturegrille.slangp
Normal file
245
bezel/koko-aio/tv-aperturegrille.slangp
Normal file
|
@ -0,0 +1,245 @@
|
|||
shaders = "17"
|
||||
shader0 = "shaders/first_pass.slang"
|
||||
filter_linear0 = "false"
|
||||
wrap_mode0 = "mirrored_repeat"
|
||||
mipmap_input0 = "false"
|
||||
alias0 = "first_pass"
|
||||
float_framebuffer0 = "false"
|
||||
srgb_framebuffer0 = "false"
|
||||
scale_type_x0 = "source"
|
||||
scale_x0 = "2.000000"
|
||||
scale_type_y0 = "source"
|
||||
scale_y0 = "2.000000"
|
||||
shader1 = "shaders/fxaa.slang"
|
||||
filter_linear1 = "true"
|
||||
wrap_mode1 = "mirrored_repeat"
|
||||
mipmap_input1 = "true"
|
||||
alias1 = "FXAA_pass"
|
||||
float_framebuffer1 = "false"
|
||||
srgb_framebuffer1 = "false"
|
||||
scale_type_x1 = "source"
|
||||
scale_x1 = "1.000000"
|
||||
scale_type_y1 = "source"
|
||||
scale_y1 = "1.000000"
|
||||
shader2 = "shaders/shift_and_bleed.slang"
|
||||
filter_linear2 = "true"
|
||||
wrap_mode2 = "mirrored_repeat"
|
||||
mipmap_input2 = "false"
|
||||
alias2 = "shift_and_bleed_pass"
|
||||
float_framebuffer2 = "false"
|
||||
srgb_framebuffer2 = "false"
|
||||
scale_type_x2 = "source"
|
||||
scale_x2 = "1.000000"
|
||||
scale_type_y2 = "source"
|
||||
scale_y2 = "1.000000"
|
||||
shader3 = "shaders/in_glow.slang"
|
||||
filter_linear3 = "true"
|
||||
wrap_mode3 = "mirrored_repeat"
|
||||
mipmap_input3 = "false"
|
||||
alias3 = "in_glow_pass"
|
||||
float_framebuffer3 = "true"
|
||||
srgb_framebuffer3 = "false"
|
||||
scale_type_x3 = "source"
|
||||
scale_x3 = "1.000000"
|
||||
scale_type_y3 = "source"
|
||||
scale_y3 = "1.000000"
|
||||
shader4 = "shaders/halo.slang"
|
||||
filter_linear4 = "true"
|
||||
wrap_mode4 = "mirrored_repeat"
|
||||
mipmap_input4 = "false"
|
||||
alias4 = "halo_pass"
|
||||
float_framebuffer4 = "true"
|
||||
srgb_framebuffer4 = "false"
|
||||
scale_type_x4 = "source"
|
||||
scale_x4 = "1.000000"
|
||||
scale_type_y4 = "source"
|
||||
scale_y4 = "1.000000"
|
||||
shader5 = "shaders/avglum_pass.slang"
|
||||
filter_linear5 = "true"
|
||||
wrap_mode5 = "mirrored_repeat"
|
||||
mipmap_input5 = "false"
|
||||
alias5 = "avglum_pass"
|
||||
float_framebuffer5 = "false"
|
||||
srgb_framebuffer5 = "false"
|
||||
scale_type_x5 = "source"
|
||||
scale_x5 = "0.500000"
|
||||
scale_type_y5 = "source"
|
||||
scale_y5 = "0.500000"
|
||||
shader6 = "shaders/reflection_blur_h.slang"
|
||||
filter_linear6 = "true"
|
||||
wrap_mode6 = "mirrored_repeat"
|
||||
mipmap_input6 = "false"
|
||||
alias6 = "reflected_blurred_pass1"
|
||||
float_framebuffer6 = "false"
|
||||
srgb_framebuffer6 = "false"
|
||||
scale_type_x6 = "source"
|
||||
scale_x6 = "1.000000"
|
||||
scale_type_y6 = "source"
|
||||
scale_y6 = "1.000000"
|
||||
shader7 = "shaders/reflection_blur_v.slang"
|
||||
filter_linear7 = "true"
|
||||
wrap_mode7 = "mirrored_repeat"
|
||||
mipmap_input7 = "false"
|
||||
alias7 = "reflected_blurred_pass2"
|
||||
float_framebuffer7 = "false"
|
||||
srgb_framebuffer7 = "false"
|
||||
scale_type_x7 = "source"
|
||||
scale_x7 = "1.000000"
|
||||
scale_type_y7 = "source"
|
||||
scale_y7 = "1.000000"
|
||||
shader8 = "shaders/bloom_pass_1.slang"
|
||||
filter_linear8 = "true"
|
||||
wrap_mode8 = "mirrored_repeat"
|
||||
mipmap_input8 = "false"
|
||||
alias8 = "bloom_pass_1"
|
||||
float_framebuffer8 = "true"
|
||||
srgb_framebuffer8 = "false"
|
||||
scale_type_x8 = "source"
|
||||
scale_x8 = "1.000000"
|
||||
scale_type_y8 = "source"
|
||||
scale_y8 = "1.000000"
|
||||
shader9 = "shaders/bloom_pass_2.slang"
|
||||
filter_linear9 = "true"
|
||||
wrap_mode9 = "clamp_to_edge"
|
||||
mipmap_input9 = "false"
|
||||
alias9 = "bloom_pass_2"
|
||||
float_framebuffer9 = "false"
|
||||
srgb_framebuffer9 = "false"
|
||||
scale_type_x9 = "source"
|
||||
scale_x9 = "0.500000"
|
||||
scale_type_y9 = "source"
|
||||
scale_y9 = "0.500000"
|
||||
shader10 = "shaders/bloom_pass_3.slang"
|
||||
filter_linear10 = "true"
|
||||
wrap_mode10 = "clamp_to_edge"
|
||||
mipmap_input10 = "false"
|
||||
alias10 = "bloom_pass_3"
|
||||
float_framebuffer10 = "false"
|
||||
srgb_framebuffer10 = "false"
|
||||
scale_type_x10 = "source"
|
||||
scale_x10 = "1.000000"
|
||||
scale_type_y10 = "source"
|
||||
scale_y10 = "1.000000"
|
||||
shader11 = "shaders/bloom_pass_4.slang"
|
||||
filter_linear11 = "true"
|
||||
wrap_mode11 = "mirrored_repeat"
|
||||
mipmap_input11 = "false"
|
||||
alias11 = "bloom_pass_final"
|
||||
float_framebuffer11 = "false"
|
||||
srgb_framebuffer11 = "false"
|
||||
scale_type_x11 = "source"
|
||||
scale_x11 = "1.000000"
|
||||
scale_type_y11 = "source"
|
||||
scale_y11 = "1.000000"
|
||||
shader12 = "shaders/ambi_push_pass.slang"
|
||||
filter_linear12 = "true"
|
||||
wrap_mode12 = "mirrored_repeat"
|
||||
mipmap_input12 = "false"
|
||||
alias12 = "ambi_push_pass"
|
||||
float_framebuffer12 = "true"
|
||||
srgb_framebuffer12 = "false"
|
||||
scale_type_x12 = "source"
|
||||
scale_x12 = "1.000000"
|
||||
scale_type_y12 = "source"
|
||||
scale_y12 = "1.000000"
|
||||
shader13 = "shaders/ambi_pre_pass.slang"
|
||||
filter_linear13 = "true"
|
||||
wrap_mode13 = "clamp_to_border"
|
||||
mipmap_input13 = "true"
|
||||
alias13 = "ambi_pre_pass1"
|
||||
float_framebuffer13 = "false"
|
||||
srgb_framebuffer13 = "false"
|
||||
scale_type_x13 = "source"
|
||||
scale_x13 = "1.000000"
|
||||
scale_type_y13 = "source"
|
||||
scale_y13 = "1.000000"
|
||||
shader14 = "shaders/ambi_temporal_pass.slang"
|
||||
filter_linear14 = "true"
|
||||
wrap_mode14 = "clamp_to_border"
|
||||
mipmap_input14 = "false"
|
||||
alias14 = "ambi_temporal_pass"
|
||||
float_framebuffer14 = "true"
|
||||
srgb_framebuffer14 = "false"
|
||||
scale_type_x14 = "source"
|
||||
scale_x14 = "1.000000"
|
||||
scale_type_y14 = "source"
|
||||
scale_y14 = "1.000000"
|
||||
shader15 = "shaders/isrotated.slang"
|
||||
filter_linear15 = "true"
|
||||
wrap_mode15 = "mirrored_repeat"
|
||||
mipmap_input15 = "false"
|
||||
alias15 = "isrotated_pass"
|
||||
float_framebuffer15 = "false"
|
||||
srgb_framebuffer15 = "false"
|
||||
scale_type_x15 = "viewport"
|
||||
scale_x15 = "0.100000"
|
||||
scale_type_y15 = "viewport"
|
||||
scale_y15 = "0.100000"
|
||||
shader16 = "shaders/final_pass.slang"
|
||||
filter_linear16 = "true"
|
||||
wrap_mode16 = "mirrored_repeat"
|
||||
mipmap_input16 = "false"
|
||||
alias16 = "final_pass"
|
||||
float_framebuffer16 = "false"
|
||||
srgb_framebuffer16 = "false"
|
||||
scale_type_x16 = "viewport"
|
||||
scale_x16 = "1.000000"
|
||||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
TEMPERATURE = "7000.000000"
|
||||
GAMMA_OUT = "0.350000"
|
||||
DO_FXAA = "1.000000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_SAT_BLEED = "1.000000"
|
||||
SAT_BLEED_PAL = "1.000000"
|
||||
SAT_BLEED_STRENGTH = "0.500000"
|
||||
SAT_BLEED_SIZE_LEFT = "3.000000"
|
||||
SAT_BLEED_SIZE_RIGHT = "3.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.900000"
|
||||
IN_GLOW_WH = "3.500000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
DARKLINES_STRENGTH = "1.000000"
|
||||
DO_DARKLINES_VOFFSET = "0.000000"
|
||||
DARKLINES_PERIOD = "2.000000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.350000"
|
||||
HALO_W = "3.000000"
|
||||
HALO_H = "3.000000"
|
||||
SCANLINE_DARK = "0.700000"
|
||||
SCANLINE_COMPENSATION = "0.200000"
|
||||
SCANLINES_BLEEDING = "1.000000"
|
||||
SCANLINE_FLICKERING = "0.000000"
|
||||
SCANLINE_FLICKERING_POWER = "0.500000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.000000"
|
||||
GEOM_CORNER_SMOOTH = "200.000000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.400000"
|
||||
AMBI_POWER = "1.000000"
|
||||
V_SIZE = "2.700000"
|
||||
V_POWER = "1.050000"
|
||||
S_POSITION = "194.000000"
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
monitor_body_linear = "true"
|
||||
monitor_body_wrap_mode = "clamp_to_edge"
|
||||
monitor_body_mipmap = "true"
|
||||
bg_under = "textures/background_under.png"
|
||||
bg_under_linear = "true"
|
||||
bg_under_wrap_mode = "mirrored_repeat"
|
||||
bg_under_mipmap = "true"
|
||||
bg_over = "textures/background_over.png"
|
||||
bg_over_linear = "true"
|
||||
bg_over_wrap_mode = "mirrored_repeat"
|
||||
bg_over_mipmap = "true"
|
251
bezel/koko-aio/tv-slotmask-bloom-bezel.slangp
Normal file
251
bezel/koko-aio/tv-slotmask-bloom-bezel.slangp
Normal file
|
@ -0,0 +1,251 @@
|
|||
shaders = "17"
|
||||
shader0 = "shaders/first_pass.slang"
|
||||
filter_linear0 = "false"
|
||||
wrap_mode0 = "mirrored_repeat"
|
||||
mipmap_input0 = "false"
|
||||
alias0 = "first_pass"
|
||||
float_framebuffer0 = "false"
|
||||
srgb_framebuffer0 = "false"
|
||||
scale_type_x0 = "source"
|
||||
scale_x0 = "2.000000"
|
||||
scale_type_y0 = "source"
|
||||
scale_y0 = "2.000000"
|
||||
shader1 = "shaders/fxaa.slang"
|
||||
filter_linear1 = "true"
|
||||
wrap_mode1 = "mirrored_repeat"
|
||||
mipmap_input1 = "true"
|
||||
alias1 = "FXAA_pass"
|
||||
float_framebuffer1 = "false"
|
||||
srgb_framebuffer1 = "false"
|
||||
scale_type_x1 = "source"
|
||||
scale_x1 = "1.000000"
|
||||
scale_type_y1 = "source"
|
||||
scale_y1 = "1.000000"
|
||||
shader2 = "shaders/shift_and_bleed.slang"
|
||||
filter_linear2 = "true"
|
||||
wrap_mode2 = "mirrored_repeat"
|
||||
mipmap_input2 = "false"
|
||||
alias2 = "shift_and_bleed_pass"
|
||||
float_framebuffer2 = "false"
|
||||
srgb_framebuffer2 = "false"
|
||||
scale_type_x2 = "source"
|
||||
scale_x2 = "1.000000"
|
||||
scale_type_y2 = "source"
|
||||
scale_y2 = "1.000000"
|
||||
shader3 = "shaders/in_glow.slang"
|
||||
filter_linear3 = "true"
|
||||
wrap_mode3 = "mirrored_repeat"
|
||||
mipmap_input3 = "false"
|
||||
alias3 = "in_glow_pass"
|
||||
float_framebuffer3 = "true"
|
||||
srgb_framebuffer3 = "false"
|
||||
scale_type_x3 = "source"
|
||||
scale_x3 = "1.000000"
|
||||
scale_type_y3 = "source"
|
||||
scale_y3 = "1.000000"
|
||||
shader4 = "shaders/halo.slang"
|
||||
filter_linear4 = "true"
|
||||
wrap_mode4 = "mirrored_repeat"
|
||||
mipmap_input4 = "false"
|
||||
alias4 = "halo_pass"
|
||||
float_framebuffer4 = "true"
|
||||
srgb_framebuffer4 = "false"
|
||||
scale_type_x4 = "source"
|
||||
scale_x4 = "1.000000"
|
||||
scale_type_y4 = "source"
|
||||
scale_y4 = "1.000000"
|
||||
shader5 = "shaders/avglum_pass.slang"
|
||||
filter_linear5 = "true"
|
||||
wrap_mode5 = "mirrored_repeat"
|
||||
mipmap_input5 = "false"
|
||||
alias5 = "avglum_pass"
|
||||
float_framebuffer5 = "false"
|
||||
srgb_framebuffer5 = "false"
|
||||
scale_type_x5 = "source"
|
||||
scale_x5 = "0.500000"
|
||||
scale_type_y5 = "source"
|
||||
scale_y5 = "0.500000"
|
||||
shader6 = "shaders/reflection_blur_h.slang"
|
||||
filter_linear6 = "true"
|
||||
wrap_mode6 = "mirrored_repeat"
|
||||
mipmap_input6 = "false"
|
||||
alias6 = "reflected_blurred_pass1"
|
||||
float_framebuffer6 = "false"
|
||||
srgb_framebuffer6 = "false"
|
||||
scale_type_x6 = "source"
|
||||
scale_x6 = "1.000000"
|
||||
scale_type_y6 = "source"
|
||||
scale_y6 = "1.000000"
|
||||
shader7 = "shaders/reflection_blur_v.slang"
|
||||
filter_linear7 = "true"
|
||||
wrap_mode7 = "mirrored_repeat"
|
||||
mipmap_input7 = "false"
|
||||
alias7 = "reflected_blurred_pass2"
|
||||
float_framebuffer7 = "false"
|
||||
srgb_framebuffer7 = "false"
|
||||
scale_type_x7 = "source"
|
||||
scale_x7 = "1.000000"
|
||||
scale_type_y7 = "source"
|
||||
scale_y7 = "1.000000"
|
||||
shader8 = "shaders/bloom_pass_1.slang"
|
||||
filter_linear8 = "true"
|
||||
wrap_mode8 = "mirrored_repeat"
|
||||
mipmap_input8 = "false"
|
||||
alias8 = "bloom_pass_1"
|
||||
float_framebuffer8 = "true"
|
||||
srgb_framebuffer8 = "false"
|
||||
scale_type_x8 = "source"
|
||||
scale_x8 = "1.000000"
|
||||
scale_type_y8 = "source"
|
||||
scale_y8 = "1.000000"
|
||||
shader9 = "shaders/bloom_pass_2.slang"
|
||||
filter_linear9 = "true"
|
||||
wrap_mode9 = "clamp_to_edge"
|
||||
mipmap_input9 = "false"
|
||||
alias9 = "bloom_pass_2"
|
||||
float_framebuffer9 = "false"
|
||||
srgb_framebuffer9 = "false"
|
||||
scale_type_x9 = "source"
|
||||
scale_x9 = "0.500000"
|
||||
scale_type_y9 = "source"
|
||||
scale_y9 = "0.500000"
|
||||
shader10 = "shaders/bloom_pass_3.slang"
|
||||
filter_linear10 = "true"
|
||||
wrap_mode10 = "clamp_to_edge"
|
||||
mipmap_input10 = "false"
|
||||
alias10 = "bloom_pass_3"
|
||||
float_framebuffer10 = "false"
|
||||
srgb_framebuffer10 = "false"
|
||||
scale_type_x10 = "source"
|
||||
scale_x10 = "1.000000"
|
||||
scale_type_y10 = "source"
|
||||
scale_y10 = "1.000000"
|
||||
shader11 = "shaders/bloom_pass_4.slang"
|
||||
filter_linear11 = "true"
|
||||
wrap_mode11 = "mirrored_repeat"
|
||||
mipmap_input11 = "false"
|
||||
alias11 = "bloom_pass_final"
|
||||
float_framebuffer11 = "false"
|
||||
srgb_framebuffer11 = "false"
|
||||
scale_type_x11 = "source"
|
||||
scale_x11 = "1.000000"
|
||||
scale_type_y11 = "source"
|
||||
scale_y11 = "1.000000"
|
||||
shader12 = "shaders/ambi_push_pass.slang"
|
||||
filter_linear12 = "true"
|
||||
wrap_mode12 = "mirrored_repeat"
|
||||
mipmap_input12 = "false"
|
||||
alias12 = "ambi_push_pass"
|
||||
float_framebuffer12 = "true"
|
||||
srgb_framebuffer12 = "false"
|
||||
scale_type_x12 = "source"
|
||||
scale_x12 = "1.000000"
|
||||
scale_type_y12 = "source"
|
||||
scale_y12 = "1.000000"
|
||||
shader13 = "shaders/ambi_pre_pass.slang"
|
||||
filter_linear13 = "true"
|
||||
wrap_mode13 = "clamp_to_border"
|
||||
mipmap_input13 = "true"
|
||||
alias13 = "ambi_pre_pass1"
|
||||
float_framebuffer13 = "false"
|
||||
srgb_framebuffer13 = "false"
|
||||
scale_type_x13 = "source"
|
||||
scale_x13 = "1.000000"
|
||||
scale_type_y13 = "source"
|
||||
scale_y13 = "1.000000"
|
||||
shader14 = "shaders/ambi_temporal_pass.slang"
|
||||
filter_linear14 = "true"
|
||||
wrap_mode14 = "clamp_to_border"
|
||||
mipmap_input14 = "false"
|
||||
alias14 = "ambi_temporal_pass"
|
||||
float_framebuffer14 = "true"
|
||||
srgb_framebuffer14 = "false"
|
||||
scale_type_x14 = "source"
|
||||
scale_x14 = "1.000000"
|
||||
scale_type_y14 = "source"
|
||||
scale_y14 = "1.000000"
|
||||
shader15 = "shaders/isrotated.slang"
|
||||
filter_linear15 = "true"
|
||||
wrap_mode15 = "mirrored_repeat"
|
||||
mipmap_input15 = "false"
|
||||
alias15 = "isrotated_pass"
|
||||
float_framebuffer15 = "false"
|
||||
srgb_framebuffer15 = "false"
|
||||
scale_type_x15 = "viewport"
|
||||
scale_x15 = "0.100000"
|
||||
scale_type_y15 = "viewport"
|
||||
scale_y15 = "0.100000"
|
||||
shader16 = "shaders/final_pass.slang"
|
||||
filter_linear16 = "true"
|
||||
wrap_mode16 = "mirrored_repeat"
|
||||
mipmap_input16 = "false"
|
||||
alias16 = "final_pass"
|
||||
float_framebuffer16 = "false"
|
||||
srgb_framebuffer16 = "false"
|
||||
scale_type_x16 = "viewport"
|
||||
scale_x16 = "1.000000"
|
||||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
TEMPERATURE = "7000.000000"
|
||||
GAMMA_OUT = "0.550000"
|
||||
DO_FXAA = "1.000000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_SAT_BLEED = "1.000000"
|
||||
SAT_BLEED_PAL = "1.000000"
|
||||
SAT_BLEED_STRENGTH = "0.500000"
|
||||
SAT_BLEED_SIZE_LEFT = "3.000000"
|
||||
SAT_BLEED_SIZE_RIGHT = "3.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.600000"
|
||||
IN_GLOW_WH = "3.500000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.900000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.520000"
|
||||
HALO_W = "3.000000"
|
||||
HALO_H = "3.000000"
|
||||
HALO_GAMMA = "1.100000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINE_DARK = "0.700000"
|
||||
SCANLINE_COMPENSATION = "0.200000"
|
||||
SCANLINES_BLEEDING = "1.000000"
|
||||
SCANLINE_FLICKERING = "0.000000"
|
||||
SCANLINE_FLICKERING_POWER = "0.500000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.800000"
|
||||
GEOM_WARP_Y = "0.850000"
|
||||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.600000"
|
||||
AMBI_POWER = "2.000000"
|
||||
DO_VIGNETTE = "1.000000"
|
||||
V_SIZE = "2.700000"
|
||||
V_POWER = "1.050000"
|
||||
DO_SPOT = "1.000000"
|
||||
S_POSITION = "194.000000"
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
monitor_body_linear = "true"
|
||||
monitor_body_wrap_mode = "clamp_to_edge"
|
||||
monitor_body_mipmap = "true"
|
||||
bg_under = "textures/background_under.png"
|
||||
bg_under_linear = "true"
|
||||
bg_under_wrap_mode = "mirrored_repeat"
|
||||
bg_under_mipmap = "true"
|
||||
bg_over = "textures/background_over.png"
|
||||
bg_over_linear = "true"
|
||||
bg_over_wrap_mode = "mirrored_repeat"
|
||||
bg_over_mipmap = "true"
|
253
bezel/koko-aio/tv-slotmask-bloom-bezelwider.slangp
Normal file
253
bezel/koko-aio/tv-slotmask-bloom-bezelwider.slangp
Normal file
|
@ -0,0 +1,253 @@
|
|||
shaders = "17"
|
||||
shader0 = "shaders/first_pass.slang"
|
||||
filter_linear0 = "false"
|
||||
wrap_mode0 = "mirrored_repeat"
|
||||
mipmap_input0 = "false"
|
||||
alias0 = "first_pass"
|
||||
float_framebuffer0 = "false"
|
||||
srgb_framebuffer0 = "false"
|
||||
scale_type_x0 = "source"
|
||||
scale_x0 = "2.000000"
|
||||
scale_type_y0 = "source"
|
||||
scale_y0 = "2.000000"
|
||||
shader1 = "shaders/fxaa.slang"
|
||||
filter_linear1 = "true"
|
||||
wrap_mode1 = "mirrored_repeat"
|
||||
mipmap_input1 = "true"
|
||||
alias1 = "FXAA_pass"
|
||||
float_framebuffer1 = "false"
|
||||
srgb_framebuffer1 = "false"
|
||||
scale_type_x1 = "source"
|
||||
scale_x1 = "1.000000"
|
||||
scale_type_y1 = "source"
|
||||
scale_y1 = "1.000000"
|
||||
shader2 = "shaders/shift_and_bleed.slang"
|
||||
filter_linear2 = "true"
|
||||
wrap_mode2 = "mirrored_repeat"
|
||||
mipmap_input2 = "false"
|
||||
alias2 = "shift_and_bleed_pass"
|
||||
float_framebuffer2 = "false"
|
||||
srgb_framebuffer2 = "false"
|
||||
scale_type_x2 = "source"
|
||||
scale_x2 = "1.000000"
|
||||
scale_type_y2 = "source"
|
||||
scale_y2 = "1.000000"
|
||||
shader3 = "shaders/in_glow.slang"
|
||||
filter_linear3 = "true"
|
||||
wrap_mode3 = "mirrored_repeat"
|
||||
mipmap_input3 = "false"
|
||||
alias3 = "in_glow_pass"
|
||||
float_framebuffer3 = "true"
|
||||
srgb_framebuffer3 = "false"
|
||||
scale_type_x3 = "source"
|
||||
scale_x3 = "1.000000"
|
||||
scale_type_y3 = "source"
|
||||
scale_y3 = "1.000000"
|
||||
shader4 = "shaders/halo.slang"
|
||||
filter_linear4 = "true"
|
||||
wrap_mode4 = "mirrored_repeat"
|
||||
mipmap_input4 = "false"
|
||||
alias4 = "halo_pass"
|
||||
float_framebuffer4 = "true"
|
||||
srgb_framebuffer4 = "false"
|
||||
scale_type_x4 = "source"
|
||||
scale_x4 = "1.000000"
|
||||
scale_type_y4 = "source"
|
||||
scale_y4 = "1.000000"
|
||||
shader5 = "shaders/avglum_pass.slang"
|
||||
filter_linear5 = "true"
|
||||
wrap_mode5 = "mirrored_repeat"
|
||||
mipmap_input5 = "false"
|
||||
alias5 = "avglum_pass"
|
||||
float_framebuffer5 = "false"
|
||||
srgb_framebuffer5 = "false"
|
||||
scale_type_x5 = "source"
|
||||
scale_x5 = "0.500000"
|
||||
scale_type_y5 = "source"
|
||||
scale_y5 = "0.500000"
|
||||
shader6 = "shaders/reflection_blur_h.slang"
|
||||
filter_linear6 = "true"
|
||||
wrap_mode6 = "mirrored_repeat"
|
||||
mipmap_input6 = "false"
|
||||
alias6 = "reflected_blurred_pass1"
|
||||
float_framebuffer6 = "false"
|
||||
srgb_framebuffer6 = "false"
|
||||
scale_type_x6 = "source"
|
||||
scale_x6 = "1.000000"
|
||||
scale_type_y6 = "source"
|
||||
scale_y6 = "1.000000"
|
||||
shader7 = "shaders/reflection_blur_v.slang"
|
||||
filter_linear7 = "true"
|
||||
wrap_mode7 = "mirrored_repeat"
|
||||
mipmap_input7 = "false"
|
||||
alias7 = "reflected_blurred_pass2"
|
||||
float_framebuffer7 = "false"
|
||||
srgb_framebuffer7 = "false"
|
||||
scale_type_x7 = "source"
|
||||
scale_x7 = "1.000000"
|
||||
scale_type_y7 = "source"
|
||||
scale_y7 = "1.000000"
|
||||
shader8 = "shaders/bloom_pass_1.slang"
|
||||
filter_linear8 = "true"
|
||||
wrap_mode8 = "mirrored_repeat"
|
||||
mipmap_input8 = "false"
|
||||
alias8 = "bloom_pass_1"
|
||||
float_framebuffer8 = "true"
|
||||
srgb_framebuffer8 = "false"
|
||||
scale_type_x8 = "source"
|
||||
scale_x8 = "1.000000"
|
||||
scale_type_y8 = "source"
|
||||
scale_y8 = "1.000000"
|
||||
shader9 = "shaders/bloom_pass_2.slang"
|
||||
filter_linear9 = "true"
|
||||
wrap_mode9 = "clamp_to_edge"
|
||||
mipmap_input9 = "false"
|
||||
alias9 = "bloom_pass_2"
|
||||
float_framebuffer9 = "false"
|
||||
srgb_framebuffer9 = "false"
|
||||
scale_type_x9 = "source"
|
||||
scale_x9 = "0.500000"
|
||||
scale_type_y9 = "source"
|
||||
scale_y9 = "0.500000"
|
||||
shader10 = "shaders/bloom_pass_3.slang"
|
||||
filter_linear10 = "true"
|
||||
wrap_mode10 = "clamp_to_edge"
|
||||
mipmap_input10 = "false"
|
||||
alias10 = "bloom_pass_3"
|
||||
float_framebuffer10 = "false"
|
||||
srgb_framebuffer10 = "false"
|
||||
scale_type_x10 = "source"
|
||||
scale_x10 = "1.000000"
|
||||
scale_type_y10 = "source"
|
||||
scale_y10 = "1.000000"
|
||||
shader11 = "shaders/bloom_pass_4.slang"
|
||||
filter_linear11 = "true"
|
||||
wrap_mode11 = "mirrored_repeat"
|
||||
mipmap_input11 = "false"
|
||||
alias11 = "bloom_pass_final"
|
||||
float_framebuffer11 = "false"
|
||||
srgb_framebuffer11 = "false"
|
||||
scale_type_x11 = "source"
|
||||
scale_x11 = "1.000000"
|
||||
scale_type_y11 = "source"
|
||||
scale_y11 = "1.000000"
|
||||
shader12 = "shaders/ambi_push_pass.slang"
|
||||
filter_linear12 = "true"
|
||||
wrap_mode12 = "mirrored_repeat"
|
||||
mipmap_input12 = "false"
|
||||
alias12 = "ambi_push_pass"
|
||||
float_framebuffer12 = "true"
|
||||
srgb_framebuffer12 = "false"
|
||||
scale_type_x12 = "source"
|
||||
scale_x12 = "1.000000"
|
||||
scale_type_y12 = "source"
|
||||
scale_y12 = "1.000000"
|
||||
shader13 = "shaders/ambi_pre_pass.slang"
|
||||
filter_linear13 = "true"
|
||||
wrap_mode13 = "clamp_to_border"
|
||||
mipmap_input13 = "true"
|
||||
alias13 = "ambi_pre_pass1"
|
||||
float_framebuffer13 = "false"
|
||||
srgb_framebuffer13 = "false"
|
||||
scale_type_x13 = "source"
|
||||
scale_x13 = "1.000000"
|
||||
scale_type_y13 = "source"
|
||||
scale_y13 = "1.000000"
|
||||
shader14 = "shaders/ambi_temporal_pass.slang"
|
||||
filter_linear14 = "true"
|
||||
wrap_mode14 = "clamp_to_border"
|
||||
mipmap_input14 = "false"
|
||||
alias14 = "ambi_temporal_pass"
|
||||
float_framebuffer14 = "true"
|
||||
srgb_framebuffer14 = "false"
|
||||
scale_type_x14 = "source"
|
||||
scale_x14 = "1.000000"
|
||||
scale_type_y14 = "source"
|
||||
scale_y14 = "1.000000"
|
||||
shader15 = "shaders/isrotated.slang"
|
||||
filter_linear15 = "true"
|
||||
wrap_mode15 = "mirrored_repeat"
|
||||
mipmap_input15 = "false"
|
||||
alias15 = "isrotated_pass"
|
||||
float_framebuffer15 = "false"
|
||||
srgb_framebuffer15 = "false"
|
||||
scale_type_x15 = "viewport"
|
||||
scale_x15 = "0.100000"
|
||||
scale_type_y15 = "viewport"
|
||||
scale_y15 = "0.100000"
|
||||
shader16 = "shaders/final_pass.slang"
|
||||
filter_linear16 = "true"
|
||||
wrap_mode16 = "mirrored_repeat"
|
||||
mipmap_input16 = "false"
|
||||
alias16 = "final_pass"
|
||||
float_framebuffer16 = "false"
|
||||
srgb_framebuffer16 = "false"
|
||||
scale_type_x16 = "viewport"
|
||||
scale_x16 = "1.000000"
|
||||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
TEMPERATURE = "7000.000000"
|
||||
GAMMA_OUT = "0.550000"
|
||||
DO_FXAA = "1.000000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_SAT_BLEED = "1.000000"
|
||||
SAT_BLEED_PAL = "1.000000"
|
||||
SAT_BLEED_STRENGTH = "0.500000"
|
||||
SAT_BLEED_SIZE_LEFT = "3.000000"
|
||||
SAT_BLEED_SIZE_RIGHT = "3.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.600000"
|
||||
IN_GLOW_WH = "3.500000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.900000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.520000"
|
||||
HALO_W = "3.000000"
|
||||
HALO_H = "3.000000"
|
||||
HALO_GAMMA = "1.100000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINE_DARK = "0.700000"
|
||||
SCANLINE_COMPENSATION = "0.200000"
|
||||
SCANLINES_BLEEDING = "1.000000"
|
||||
SCANLINE_FLICKERING = "0.000000"
|
||||
SCANLINE_FLICKERING_POWER = "0.500000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.500000"
|
||||
GEOM_WARP_Y = "0.500000"
|
||||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_INNER_ZOOM = "-0.005000"
|
||||
BEZEL_FRAME_ZOOM = "0.139000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.400000"
|
||||
AMBI_POWER = "5.000000"
|
||||
DO_VIGNETTE = "1.000000"
|
||||
V_SIZE = "2.700000"
|
||||
V_POWER = "1.050000"
|
||||
DO_SPOT = "1.000000"
|
||||
S_POSITION = "194.000000"
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
monitor_body_linear = "true"
|
||||
monitor_body_wrap_mode = "clamp_to_edge"
|
||||
monitor_body_mipmap = "true"
|
||||
bg_under = "textures/background_under.png"
|
||||
bg_under_linear = "true"
|
||||
bg_under_wrap_mode = "mirrored_repeat"
|
||||
bg_under_mipmap = "true"
|
||||
bg_over = "textures/background_over.png"
|
||||
bg_over_linear = "true"
|
||||
bg_over_wrap_mode = "mirrored_repeat"
|
||||
bg_over_mipmap = "true"
|
246
bezel/koko-aio/tv-slotmask-bloom.slangp
Normal file
246
bezel/koko-aio/tv-slotmask-bloom.slangp
Normal file
|
@ -0,0 +1,246 @@
|
|||
shaders = "17"
|
||||
shader0 = "shaders/first_pass.slang"
|
||||
filter_linear0 = "false"
|
||||
wrap_mode0 = "mirrored_repeat"
|
||||
mipmap_input0 = "false"
|
||||
alias0 = "first_pass"
|
||||
float_framebuffer0 = "false"
|
||||
srgb_framebuffer0 = "false"
|
||||
scale_type_x0 = "source"
|
||||
scale_x0 = "2.000000"
|
||||
scale_type_y0 = "source"
|
||||
scale_y0 = "2.000000"
|
||||
shader1 = "shaders/fxaa.slang"
|
||||
filter_linear1 = "true"
|
||||
wrap_mode1 = "mirrored_repeat"
|
||||
mipmap_input1 = "true"
|
||||
alias1 = "FXAA_pass"
|
||||
float_framebuffer1 = "false"
|
||||
srgb_framebuffer1 = "false"
|
||||
scale_type_x1 = "source"
|
||||
scale_x1 = "1.000000"
|
||||
scale_type_y1 = "source"
|
||||
scale_y1 = "1.000000"
|
||||
shader2 = "shaders/shift_and_bleed.slang"
|
||||
filter_linear2 = "true"
|
||||
wrap_mode2 = "mirrored_repeat"
|
||||
mipmap_input2 = "false"
|
||||
alias2 = "shift_and_bleed_pass"
|
||||
float_framebuffer2 = "false"
|
||||
srgb_framebuffer2 = "false"
|
||||
scale_type_x2 = "source"
|
||||
scale_x2 = "1.000000"
|
||||
scale_type_y2 = "source"
|
||||
scale_y2 = "1.000000"
|
||||
shader3 = "shaders/in_glow.slang"
|
||||
filter_linear3 = "true"
|
||||
wrap_mode3 = "mirrored_repeat"
|
||||
mipmap_input3 = "false"
|
||||
alias3 = "in_glow_pass"
|
||||
float_framebuffer3 = "true"
|
||||
srgb_framebuffer3 = "false"
|
||||
scale_type_x3 = "source"
|
||||
scale_x3 = "1.000000"
|
||||
scale_type_y3 = "source"
|
||||
scale_y3 = "1.000000"
|
||||
shader4 = "shaders/halo.slang"
|
||||
filter_linear4 = "true"
|
||||
wrap_mode4 = "mirrored_repeat"
|
||||
mipmap_input4 = "false"
|
||||
alias4 = "halo_pass"
|
||||
float_framebuffer4 = "true"
|
||||
srgb_framebuffer4 = "false"
|
||||
scale_type_x4 = "source"
|
||||
scale_x4 = "1.000000"
|
||||
scale_type_y4 = "source"
|
||||
scale_y4 = "1.000000"
|
||||
shader5 = "shaders/avglum_pass.slang"
|
||||
filter_linear5 = "true"
|
||||
wrap_mode5 = "mirrored_repeat"
|
||||
mipmap_input5 = "false"
|
||||
alias5 = "avglum_pass"
|
||||
float_framebuffer5 = "false"
|
||||
srgb_framebuffer5 = "false"
|
||||
scale_type_x5 = "source"
|
||||
scale_x5 = "0.500000"
|
||||
scale_type_y5 = "source"
|
||||
scale_y5 = "0.500000"
|
||||
shader6 = "shaders/reflection_blur_h.slang"
|
||||
filter_linear6 = "true"
|
||||
wrap_mode6 = "mirrored_repeat"
|
||||
mipmap_input6 = "false"
|
||||
alias6 = "reflected_blurred_pass1"
|
||||
float_framebuffer6 = "false"
|
||||
srgb_framebuffer6 = "false"
|
||||
scale_type_x6 = "source"
|
||||
scale_x6 = "1.000000"
|
||||
scale_type_y6 = "source"
|
||||
scale_y6 = "1.000000"
|
||||
shader7 = "shaders/reflection_blur_v.slang"
|
||||
filter_linear7 = "true"
|
||||
wrap_mode7 = "mirrored_repeat"
|
||||
mipmap_input7 = "false"
|
||||
alias7 = "reflected_blurred_pass2"
|
||||
float_framebuffer7 = "false"
|
||||
srgb_framebuffer7 = "false"
|
||||
scale_type_x7 = "source"
|
||||
scale_x7 = "1.000000"
|
||||
scale_type_y7 = "source"
|
||||
scale_y7 = "1.000000"
|
||||
shader8 = "shaders/bloom_pass_1.slang"
|
||||
filter_linear8 = "true"
|
||||
wrap_mode8 = "mirrored_repeat"
|
||||
mipmap_input8 = "false"
|
||||
alias8 = "bloom_pass_1"
|
||||
float_framebuffer8 = "true"
|
||||
srgb_framebuffer8 = "false"
|
||||
scale_type_x8 = "source"
|
||||
scale_x8 = "1.000000"
|
||||
scale_type_y8 = "source"
|
||||
scale_y8 = "1.000000"
|
||||
shader9 = "shaders/bloom_pass_2.slang"
|
||||
filter_linear9 = "true"
|
||||
wrap_mode9 = "clamp_to_edge"
|
||||
mipmap_input9 = "false"
|
||||
alias9 = "bloom_pass_2"
|
||||
float_framebuffer9 = "false"
|
||||
srgb_framebuffer9 = "false"
|
||||
scale_type_x9 = "source"
|
||||
scale_x9 = "0.500000"
|
||||
scale_type_y9 = "source"
|
||||
scale_y9 = "0.500000"
|
||||
shader10 = "shaders/bloom_pass_3.slang"
|
||||
filter_linear10 = "true"
|
||||
wrap_mode10 = "clamp_to_edge"
|
||||
mipmap_input10 = "false"
|
||||
alias10 = "bloom_pass_3"
|
||||
float_framebuffer10 = "false"
|
||||
srgb_framebuffer10 = "false"
|
||||
scale_type_x10 = "source"
|
||||
scale_x10 = "1.000000"
|
||||
scale_type_y10 = "source"
|
||||
scale_y10 = "1.000000"
|
||||
shader11 = "shaders/bloom_pass_4.slang"
|
||||
filter_linear11 = "true"
|
||||
wrap_mode11 = "mirrored_repeat"
|
||||
mipmap_input11 = "false"
|
||||
alias11 = "bloom_pass_final"
|
||||
float_framebuffer11 = "false"
|
||||
srgb_framebuffer11 = "false"
|
||||
scale_type_x11 = "source"
|
||||
scale_x11 = "1.000000"
|
||||
scale_type_y11 = "source"
|
||||
scale_y11 = "1.000000"
|
||||
shader12 = "shaders/ambi_push_pass.slang"
|
||||
filter_linear12 = "true"
|
||||
wrap_mode12 = "mirrored_repeat"
|
||||
mipmap_input12 = "false"
|
||||
alias12 = "ambi_push_pass"
|
||||
float_framebuffer12 = "true"
|
||||
srgb_framebuffer12 = "false"
|
||||
scale_type_x12 = "source"
|
||||
scale_x12 = "1.000000"
|
||||
scale_type_y12 = "source"
|
||||
scale_y12 = "1.000000"
|
||||
shader13 = "shaders/ambi_pre_pass.slang"
|
||||
filter_linear13 = "true"
|
||||
wrap_mode13 = "clamp_to_border"
|
||||
mipmap_input13 = "true"
|
||||
alias13 = "ambi_pre_pass1"
|
||||
float_framebuffer13 = "false"
|
||||
srgb_framebuffer13 = "false"
|
||||
scale_type_x13 = "source"
|
||||
scale_x13 = "1.000000"
|
||||
scale_type_y13 = "source"
|
||||
scale_y13 = "1.000000"
|
||||
shader14 = "shaders/ambi_temporal_pass.slang"
|
||||
filter_linear14 = "true"
|
||||
wrap_mode14 = "clamp_to_border"
|
||||
mipmap_input14 = "false"
|
||||
alias14 = "ambi_temporal_pass"
|
||||
float_framebuffer14 = "true"
|
||||
srgb_framebuffer14 = "false"
|
||||
scale_type_x14 = "source"
|
||||
scale_x14 = "1.000000"
|
||||
scale_type_y14 = "source"
|
||||
scale_y14 = "1.000000"
|
||||
shader15 = "shaders/isrotated.slang"
|
||||
filter_linear15 = "true"
|
||||
wrap_mode15 = "mirrored_repeat"
|
||||
mipmap_input15 = "false"
|
||||
alias15 = "isrotated_pass"
|
||||
float_framebuffer15 = "false"
|
||||
srgb_framebuffer15 = "false"
|
||||
scale_type_x15 = "viewport"
|
||||
scale_x15 = "0.100000"
|
||||
scale_type_y15 = "viewport"
|
||||
scale_y15 = "0.100000"
|
||||
shader16 = "shaders/final_pass.slang"
|
||||
filter_linear16 = "true"
|
||||
wrap_mode16 = "mirrored_repeat"
|
||||
mipmap_input16 = "false"
|
||||
alias16 = "final_pass"
|
||||
float_framebuffer16 = "false"
|
||||
srgb_framebuffer16 = "false"
|
||||
scale_type_x16 = "viewport"
|
||||
scale_x16 = "1.000000"
|
||||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
TEMPERATURE = "7000.000000"
|
||||
GAMMA_OUT = "0.550000"
|
||||
DO_FXAA = "1.000000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_SAT_BLEED = "1.000000"
|
||||
SAT_BLEED_PAL = "1.000000"
|
||||
SAT_BLEED_STRENGTH = "0.500000"
|
||||
SAT_BLEED_SIZE_LEFT = "3.000000"
|
||||
SAT_BLEED_SIZE_RIGHT = "3.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.600000"
|
||||
IN_GLOW_WH = "3.500000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.900000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.520000"
|
||||
HALO_W = "3.000000"
|
||||
HALO_H = "3.000000"
|
||||
HALO_GAMMA = "1.100000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINE_DARK = "0.700000"
|
||||
SCANLINE_COMPENSATION = "0.200000"
|
||||
SCANLINES_BLEEDING = "1.000000"
|
||||
SCANLINE_FLICKERING = "0.000000"
|
||||
SCANLINE_FLICKERING_POWER = "0.500000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.000000"
|
||||
GEOM_CORNER_SMOOTH = "200.000000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.400000"
|
||||
AMBI_POWER = "1.000000"
|
||||
V_SIZE = "2.700000"
|
||||
V_POWER = "1.050000"
|
||||
S_POSITION = "194.000000"
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
monitor_body_linear = "true"
|
||||
monitor_body_wrap_mode = "clamp_to_edge"
|
||||
monitor_body_mipmap = "true"
|
||||
bg_under = "textures/background_under.png"
|
||||
bg_under_linear = "true"
|
||||
bg_under_wrap_mode = "mirrored_repeat"
|
||||
bg_under_mipmap = "true"
|
||||
bg_over = "textures/background_over.png"
|
||||
bg_over_linear = "true"
|
||||
bg_over_wrap_mode = "mirrored_repeat"
|
||||
bg_over_mipmap = "true"
|
245
bezel/koko-aio/tv-slotmask.slangp
Normal file
245
bezel/koko-aio/tv-slotmask.slangp
Normal file
|
@ -0,0 +1,245 @@
|
|||
shaders = "17"
|
||||
shader0 = "shaders/first_pass.slang"
|
||||
filter_linear0 = "false"
|
||||
wrap_mode0 = "mirrored_repeat"
|
||||
mipmap_input0 = "false"
|
||||
alias0 = "first_pass"
|
||||
float_framebuffer0 = "false"
|
||||
srgb_framebuffer0 = "false"
|
||||
scale_type_x0 = "source"
|
||||
scale_x0 = "2.000000"
|
||||
scale_type_y0 = "source"
|
||||
scale_y0 = "2.000000"
|
||||
shader1 = "shaders/fxaa.slang"
|
||||
filter_linear1 = "true"
|
||||
wrap_mode1 = "mirrored_repeat"
|
||||
mipmap_input1 = "true"
|
||||
alias1 = "FXAA_pass"
|
||||
float_framebuffer1 = "false"
|
||||
srgb_framebuffer1 = "false"
|
||||
scale_type_x1 = "source"
|
||||
scale_x1 = "1.000000"
|
||||
scale_type_y1 = "source"
|
||||
scale_y1 = "1.000000"
|
||||
shader2 = "shaders/shift_and_bleed.slang"
|
||||
filter_linear2 = "true"
|
||||
wrap_mode2 = "mirrored_repeat"
|
||||
mipmap_input2 = "false"
|
||||
alias2 = "shift_and_bleed_pass"
|
||||
float_framebuffer2 = "false"
|
||||
srgb_framebuffer2 = "false"
|
||||
scale_type_x2 = "source"
|
||||
scale_x2 = "1.000000"
|
||||
scale_type_y2 = "source"
|
||||
scale_y2 = "1.000000"
|
||||
shader3 = "shaders/in_glow.slang"
|
||||
filter_linear3 = "true"
|
||||
wrap_mode3 = "mirrored_repeat"
|
||||
mipmap_input3 = "false"
|
||||
alias3 = "in_glow_pass"
|
||||
float_framebuffer3 = "true"
|
||||
srgb_framebuffer3 = "false"
|
||||
scale_type_x3 = "source"
|
||||
scale_x3 = "1.000000"
|
||||
scale_type_y3 = "source"
|
||||
scale_y3 = "1.000000"
|
||||
shader4 = "shaders/halo.slang"
|
||||
filter_linear4 = "true"
|
||||
wrap_mode4 = "mirrored_repeat"
|
||||
mipmap_input4 = "false"
|
||||
alias4 = "halo_pass"
|
||||
float_framebuffer4 = "true"
|
||||
srgb_framebuffer4 = "false"
|
||||
scale_type_x4 = "source"
|
||||
scale_x4 = "1.000000"
|
||||
scale_type_y4 = "source"
|
||||
scale_y4 = "1.000000"
|
||||
shader5 = "shaders/avglum_pass.slang"
|
||||
filter_linear5 = "true"
|
||||
wrap_mode5 = "mirrored_repeat"
|
||||
mipmap_input5 = "false"
|
||||
alias5 = "avglum_pass"
|
||||
float_framebuffer5 = "false"
|
||||
srgb_framebuffer5 = "false"
|
||||
scale_type_x5 = "source"
|
||||
scale_x5 = "0.500000"
|
||||
scale_type_y5 = "source"
|
||||
scale_y5 = "0.500000"
|
||||
shader6 = "shaders/reflection_blur_h.slang"
|
||||
filter_linear6 = "true"
|
||||
wrap_mode6 = "mirrored_repeat"
|
||||
mipmap_input6 = "false"
|
||||
alias6 = "reflected_blurred_pass1"
|
||||
float_framebuffer6 = "false"
|
||||
srgb_framebuffer6 = "false"
|
||||
scale_type_x6 = "source"
|
||||
scale_x6 = "1.000000"
|
||||
scale_type_y6 = "source"
|
||||
scale_y6 = "1.000000"
|
||||
shader7 = "shaders/reflection_blur_v.slang"
|
||||
filter_linear7 = "true"
|
||||
wrap_mode7 = "mirrored_repeat"
|
||||
mipmap_input7 = "false"
|
||||
alias7 = "reflected_blurred_pass2"
|
||||
float_framebuffer7 = "false"
|
||||
srgb_framebuffer7 = "false"
|
||||
scale_type_x7 = "source"
|
||||
scale_x7 = "1.000000"
|
||||
scale_type_y7 = "source"
|
||||
scale_y7 = "1.000000"
|
||||
shader8 = "shaders/bloom_pass_1.slang"
|
||||
filter_linear8 = "true"
|
||||
wrap_mode8 = "mirrored_repeat"
|
||||
mipmap_input8 = "false"
|
||||
alias8 = "bloom_pass_1"
|
||||
float_framebuffer8 = "true"
|
||||
srgb_framebuffer8 = "false"
|
||||
scale_type_x8 = "source"
|
||||
scale_x8 = "1.000000"
|
||||
scale_type_y8 = "source"
|
||||
scale_y8 = "1.000000"
|
||||
shader9 = "shaders/bloom_pass_2.slang"
|
||||
filter_linear9 = "true"
|
||||
wrap_mode9 = "clamp_to_edge"
|
||||
mipmap_input9 = "false"
|
||||
alias9 = "bloom_pass_2"
|
||||
float_framebuffer9 = "false"
|
||||
srgb_framebuffer9 = "false"
|
||||
scale_type_x9 = "source"
|
||||
scale_x9 = "0.500000"
|
||||
scale_type_y9 = "source"
|
||||
scale_y9 = "0.500000"
|
||||
shader10 = "shaders/bloom_pass_3.slang"
|
||||
filter_linear10 = "true"
|
||||
wrap_mode10 = "clamp_to_edge"
|
||||
mipmap_input10 = "false"
|
||||
alias10 = "bloom_pass_3"
|
||||
float_framebuffer10 = "false"
|
||||
srgb_framebuffer10 = "false"
|
||||
scale_type_x10 = "source"
|
||||
scale_x10 = "1.000000"
|
||||
scale_type_y10 = "source"
|
||||
scale_y10 = "1.000000"
|
||||
shader11 = "shaders/bloom_pass_4.slang"
|
||||
filter_linear11 = "true"
|
||||
wrap_mode11 = "mirrored_repeat"
|
||||
mipmap_input11 = "false"
|
||||
alias11 = "bloom_pass_final"
|
||||
float_framebuffer11 = "false"
|
||||
srgb_framebuffer11 = "false"
|
||||
scale_type_x11 = "source"
|
||||
scale_x11 = "1.000000"
|
||||
scale_type_y11 = "source"
|
||||
scale_y11 = "1.000000"
|
||||
shader12 = "shaders/ambi_push_pass.slang"
|
||||
filter_linear12 = "true"
|
||||
wrap_mode12 = "mirrored_repeat"
|
||||
mipmap_input12 = "false"
|
||||
alias12 = "ambi_push_pass"
|
||||
float_framebuffer12 = "true"
|
||||
srgb_framebuffer12 = "false"
|
||||
scale_type_x12 = "source"
|
||||
scale_x12 = "1.000000"
|
||||
scale_type_y12 = "source"
|
||||
scale_y12 = "1.000000"
|
||||
shader13 = "shaders/ambi_pre_pass.slang"
|
||||
filter_linear13 = "true"
|
||||
wrap_mode13 = "clamp_to_border"
|
||||
mipmap_input13 = "true"
|
||||
alias13 = "ambi_pre_pass1"
|
||||
float_framebuffer13 = "false"
|
||||
srgb_framebuffer13 = "false"
|
||||
scale_type_x13 = "source"
|
||||
scale_x13 = "1.000000"
|
||||
scale_type_y13 = "source"
|
||||
scale_y13 = "1.000000"
|
||||
shader14 = "shaders/ambi_temporal_pass.slang"
|
||||
filter_linear14 = "true"
|
||||
wrap_mode14 = "clamp_to_border"
|
||||
mipmap_input14 = "false"
|
||||
alias14 = "ambi_temporal_pass"
|
||||
float_framebuffer14 = "true"
|
||||
srgb_framebuffer14 = "false"
|
||||
scale_type_x14 = "source"
|
||||
scale_x14 = "1.000000"
|
||||
scale_type_y14 = "source"
|
||||
scale_y14 = "1.000000"
|
||||
shader15 = "shaders/isrotated.slang"
|
||||
filter_linear15 = "true"
|
||||
wrap_mode15 = "mirrored_repeat"
|
||||
mipmap_input15 = "false"
|
||||
alias15 = "isrotated_pass"
|
||||
float_framebuffer15 = "false"
|
||||
srgb_framebuffer15 = "false"
|
||||
scale_type_x15 = "viewport"
|
||||
scale_x15 = "0.100000"
|
||||
scale_type_y15 = "viewport"
|
||||
scale_y15 = "0.100000"
|
||||
shader16 = "shaders/final_pass.slang"
|
||||
filter_linear16 = "true"
|
||||
wrap_mode16 = "mirrored_repeat"
|
||||
mipmap_input16 = "false"
|
||||
alias16 = "final_pass"
|
||||
float_framebuffer16 = "false"
|
||||
srgb_framebuffer16 = "false"
|
||||
scale_type_x16 = "viewport"
|
||||
scale_x16 = "1.000000"
|
||||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
TEMPERATURE = "7000.000000"
|
||||
GAMMA_OUT = "0.550000"
|
||||
DO_FXAA = "1.000000"
|
||||
DO_SHIFT_RGB = "1.000000"
|
||||
OFFSET_STRENGTH = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_SAT_BLEED = "1.000000"
|
||||
SAT_BLEED_PAL = "1.000000"
|
||||
SAT_BLEED_STRENGTH = "0.500000"
|
||||
SAT_BLEED_SIZE_LEFT = "3.000000"
|
||||
SAT_BLEED_SIZE_RIGHT = "3.000000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.600000"
|
||||
IN_GLOW_WH = "3.500000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
DARKLINES_STRENGTH = "0.900000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.520000"
|
||||
HALO_W = "3.000000"
|
||||
HALO_H = "3.000000"
|
||||
HALO_GAMMA = "1.100000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINE_DARK = "0.700000"
|
||||
SCANLINE_COMPENSATION = "0.200000"
|
||||
SCANLINES_BLEEDING = "1.000000"
|
||||
SCANLINE_FLICKERING = "0.000000"
|
||||
SCANLINE_FLICKERING_POWER = "0.500000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.000000"
|
||||
GEOM_CORNER_SMOOTH = "200.000000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.400000"
|
||||
AMBI_POWER = "1.000000"
|
||||
V_SIZE = "2.700000"
|
||||
V_POWER = "1.050000"
|
||||
S_POSITION = "194.000000"
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
monitor_body_linear = "true"
|
||||
monitor_body_wrap_mode = "clamp_to_edge"
|
||||
monitor_body_mipmap = "true"
|
||||
bg_under = "textures/background_under.png"
|
||||
bg_under_linear = "true"
|
||||
bg_under_wrap_mode = "mirrored_repeat"
|
||||
bg_under_mipmap = "true"
|
||||
bg_over = "textures/background_over.png"
|
||||
bg_over_linear = "true"
|
||||
bg_over_wrap_mode = "mirrored_repeat"
|
||||
bg_over_mipmap = "true"
|
253
bezel/koko-aio/tv-vibrant.slangp
Normal file
253
bezel/koko-aio/tv-vibrant.slangp
Normal file
|
@ -0,0 +1,253 @@
|
|||
shaders = "17"
|
||||
shader0 = "shaders/first_pass.slang"
|
||||
filter_linear0 = "false"
|
||||
wrap_mode0 = "mirrored_repeat"
|
||||
mipmap_input0 = "false"
|
||||
alias0 = "first_pass"
|
||||
float_framebuffer0 = "false"
|
||||
srgb_framebuffer0 = "false"
|
||||
scale_type_x0 = "source"
|
||||
scale_x0 = "2.000000"
|
||||
scale_type_y0 = "source"
|
||||
scale_y0 = "2.000000"
|
||||
shader1 = "shaders/fxaa.slang"
|
||||
filter_linear1 = "true"
|
||||
wrap_mode1 = "mirrored_repeat"
|
||||
mipmap_input1 = "true"
|
||||
alias1 = "FXAA_pass"
|
||||
float_framebuffer1 = "false"
|
||||
srgb_framebuffer1 = "false"
|
||||
scale_type_x1 = "source"
|
||||
scale_x1 = "1.000000"
|
||||
scale_type_y1 = "source"
|
||||
scale_y1 = "1.000000"
|
||||
shader2 = "shaders/shift_and_bleed.slang"
|
||||
filter_linear2 = "true"
|
||||
wrap_mode2 = "mirrored_repeat"
|
||||
mipmap_input2 = "false"
|
||||
alias2 = "shift_and_bleed_pass"
|
||||
float_framebuffer2 = "false"
|
||||
srgb_framebuffer2 = "false"
|
||||
scale_type_x2 = "source"
|
||||
scale_x2 = "1.000000"
|
||||
scale_type_y2 = "source"
|
||||
scale_y2 = "1.000000"
|
||||
shader3 = "shaders/in_glow.slang"
|
||||
filter_linear3 = "true"
|
||||
wrap_mode3 = "mirrored_repeat"
|
||||
mipmap_input3 = "false"
|
||||
alias3 = "in_glow_pass"
|
||||
float_framebuffer3 = "true"
|
||||
srgb_framebuffer3 = "false"
|
||||
scale_type_x3 = "source"
|
||||
scale_x3 = "1.000000"
|
||||
scale_type_y3 = "source"
|
||||
scale_y3 = "1.000000"
|
||||
shader4 = "shaders/halo.slang"
|
||||
filter_linear4 = "true"
|
||||
wrap_mode4 = "mirrored_repeat"
|
||||
mipmap_input4 = "false"
|
||||
alias4 = "halo_pass"
|
||||
float_framebuffer4 = "true"
|
||||
srgb_framebuffer4 = "false"
|
||||
scale_type_x4 = "source"
|
||||
scale_x4 = "1.000000"
|
||||
scale_type_y4 = "source"
|
||||
scale_y4 = "1.000000"
|
||||
shader5 = "shaders/avglum_pass.slang"
|
||||
filter_linear5 = "true"
|
||||
wrap_mode5 = "mirrored_repeat"
|
||||
mipmap_input5 = "false"
|
||||
alias5 = "avglum_pass"
|
||||
float_framebuffer5 = "false"
|
||||
srgb_framebuffer5 = "false"
|
||||
scale_type_x5 = "source"
|
||||
scale_x5 = "0.500000"
|
||||
scale_type_y5 = "source"
|
||||
scale_y5 = "0.500000"
|
||||
shader6 = "shaders/reflection_blur_h.slang"
|
||||
filter_linear6 = "true"
|
||||
wrap_mode6 = "mirrored_repeat"
|
||||
mipmap_input6 = "false"
|
||||
alias6 = "reflected_blurred_pass1"
|
||||
float_framebuffer6 = "false"
|
||||
srgb_framebuffer6 = "false"
|
||||
scale_type_x6 = "source"
|
||||
scale_x6 = "1.000000"
|
||||
scale_type_y6 = "source"
|
||||
scale_y6 = "1.000000"
|
||||
shader7 = "shaders/reflection_blur_v.slang"
|
||||
filter_linear7 = "true"
|
||||
wrap_mode7 = "mirrored_repeat"
|
||||
mipmap_input7 = "false"
|
||||
alias7 = "reflected_blurred_pass2"
|
||||
float_framebuffer7 = "false"
|
||||
srgb_framebuffer7 = "false"
|
||||
scale_type_x7 = "source"
|
||||
scale_x7 = "1.000000"
|
||||
scale_type_y7 = "source"
|
||||
scale_y7 = "1.000000"
|
||||
shader8 = "shaders/bloom_pass_1.slang"
|
||||
filter_linear8 = "true"
|
||||
wrap_mode8 = "mirrored_repeat"
|
||||
mipmap_input8 = "false"
|
||||
alias8 = "bloom_pass_1"
|
||||
float_framebuffer8 = "true"
|
||||
srgb_framebuffer8 = "false"
|
||||
scale_type_x8 = "source"
|
||||
scale_x8 = "1.000000"
|
||||
scale_type_y8 = "source"
|
||||
scale_y8 = "1.000000"
|
||||
shader9 = "shaders/bloom_pass_2.slang"
|
||||
filter_linear9 = "true"
|
||||
wrap_mode9 = "clamp_to_edge"
|
||||
mipmap_input9 = "false"
|
||||
alias9 = "bloom_pass_2"
|
||||
float_framebuffer9 = "false"
|
||||
srgb_framebuffer9 = "false"
|
||||
scale_type_x9 = "source"
|
||||
scale_x9 = "0.500000"
|
||||
scale_type_y9 = "source"
|
||||
scale_y9 = "0.500000"
|
||||
shader10 = "shaders/bloom_pass_3.slang"
|
||||
filter_linear10 = "true"
|
||||
wrap_mode10 = "clamp_to_edge"
|
||||
mipmap_input10 = "false"
|
||||
alias10 = "bloom_pass_3"
|
||||
float_framebuffer10 = "false"
|
||||
srgb_framebuffer10 = "false"
|
||||
scale_type_x10 = "source"
|
||||
scale_x10 = "1.000000"
|
||||
scale_type_y10 = "source"
|
||||
scale_y10 = "1.000000"
|
||||
shader11 = "shaders/bloom_pass_4.slang"
|
||||
filter_linear11 = "true"
|
||||
wrap_mode11 = "mirrored_repeat"
|
||||
mipmap_input11 = "false"
|
||||
alias11 = "bloom_pass_final"
|
||||
float_framebuffer11 = "false"
|
||||
srgb_framebuffer11 = "false"
|
||||
scale_type_x11 = "source"
|
||||
scale_x11 = "1.000000"
|
||||
scale_type_y11 = "source"
|
||||
scale_y11 = "1.000000"
|
||||
shader12 = "shaders/ambi_push_pass.slang"
|
||||
filter_linear12 = "true"
|
||||
wrap_mode12 = "mirrored_repeat"
|
||||
mipmap_input12 = "false"
|
||||
alias12 = "ambi_push_pass"
|
||||
float_framebuffer12 = "true"
|
||||
srgb_framebuffer12 = "false"
|
||||
scale_type_x12 = "source"
|
||||
scale_x12 = "1.000000"
|
||||
scale_type_y12 = "source"
|
||||
scale_y12 = "1.000000"
|
||||
shader13 = "shaders/ambi_pre_pass.slang"
|
||||
filter_linear13 = "true"
|
||||
wrap_mode13 = "clamp_to_border"
|
||||
mipmap_input13 = "true"
|
||||
alias13 = "ambi_pre_pass1"
|
||||
float_framebuffer13 = "false"
|
||||
srgb_framebuffer13 = "false"
|
||||
scale_type_x13 = "source"
|
||||
scale_x13 = "1.000000"
|
||||
scale_type_y13 = "source"
|
||||
scale_y13 = "1.000000"
|
||||
shader14 = "shaders/ambi_temporal_pass.slang"
|
||||
filter_linear14 = "true"
|
||||
wrap_mode14 = "clamp_to_border"
|
||||
mipmap_input14 = "false"
|
||||
alias14 = "ambi_temporal_pass"
|
||||
float_framebuffer14 = "true"
|
||||
srgb_framebuffer14 = "false"
|
||||
scale_type_x14 = "source"
|
||||
scale_x14 = "1.000000"
|
||||
scale_type_y14 = "source"
|
||||
scale_y14 = "1.000000"
|
||||
shader15 = "shaders/isrotated.slang"
|
||||
filter_linear15 = "true"
|
||||
wrap_mode15 = "mirrored_repeat"
|
||||
mipmap_input15 = "false"
|
||||
alias15 = "isrotated_pass"
|
||||
float_framebuffer15 = "false"
|
||||
srgb_framebuffer15 = "false"
|
||||
scale_type_x15 = "viewport"
|
||||
scale_x15 = "0.100000"
|
||||
scale_type_y15 = "viewport"
|
||||
scale_y15 = "0.100000"
|
||||
shader16 = "shaders/final_pass.slang"
|
||||
filter_linear16 = "true"
|
||||
wrap_mode16 = "mirrored_repeat"
|
||||
mipmap_input16 = "false"
|
||||
alias16 = "final_pass"
|
||||
float_framebuffer16 = "false"
|
||||
srgb_framebuffer16 = "false"
|
||||
scale_type_x16 = "viewport"
|
||||
scale_x16 = "1.000000"
|
||||
scale_type_y16 = "viewport"
|
||||
scale_y16 = "1.000000"
|
||||
DO_CCORRECTION = "1.000000"
|
||||
LUMINANCE = "0.300000"
|
||||
TEMPERATURE = "7200.000000"
|
||||
GAMMA_OUT = "0.450000"
|
||||
DO_FXAA = "1.000000"
|
||||
SHIFT_R = "-20.000000"
|
||||
SHIFT_G = "1.000000"
|
||||
SHIFT_B = "20.000000"
|
||||
DO_SAT_BLEED = "1.000000"
|
||||
SAT_BLEED_FALLOFF = "1.800000"
|
||||
DO_IN_GLOW = "1.000000"
|
||||
IN_GLOW_POWER = "1.700000"
|
||||
IN_GLOW_WH = "2.000000"
|
||||
IN_GLOW_GAMMA = "2.000000"
|
||||
DO_VMASK_AND_DARKLINES = "1.000000"
|
||||
RGB_MASK_STRENGTH = "1.000000"
|
||||
VMASK_USE_GM = "1.000000"
|
||||
VMASK_GAP = "1.000000"
|
||||
VMASK_OVERWHITE = "0.750000"
|
||||
DARKLINES_STRENGTH = "0.400000"
|
||||
DARKLINES_PERIOD = "6.000000"
|
||||
DRKLN_OVERWHITE = "0.750000"
|
||||
DO_HALO = "1.000000"
|
||||
HALO_POWER = "0.450000"
|
||||
HALO_W = "3.500000"
|
||||
HALO_H = "3.500000"
|
||||
HALO_GAMMA = "1.200000"
|
||||
DO_SCANLINES = "1.000000"
|
||||
SCANLINE_DARK = "0.100000"
|
||||
SCANLINES_BLEEDING = "0.825000"
|
||||
SCANLINE_FLICKERING = "1.000000"
|
||||
SCANLINE_FLICKERING_POWER = "0.850000"
|
||||
DO_BLOOM = "1.000000"
|
||||
BLOOM_MIX = "0.150000"
|
||||
BLOOM_SIZE = "1.500000"
|
||||
BLOOM_POWER = "8.000000"
|
||||
BLOOM_GAMMA_OUT = "1.200000"
|
||||
DO_CURVATURE = "1.000000"
|
||||
GEOM_WARP_X = "0.800000"
|
||||
GEOM_WARP_Y = "0.850000"
|
||||
GEOM_CORNER_SIZE = "0.005000"
|
||||
GEOM_CORNER_SMOOTH = "700.000000"
|
||||
DO_BEZEL = "1.000000"
|
||||
BEZEL_IMAGE_BORDER = "1.020000"
|
||||
AMBI_FALLOFF = "0.600000"
|
||||
AMBI_POWER = "2.000000"
|
||||
DO_VIGNETTE = "1.000000"
|
||||
V_SIZE = "1.900000"
|
||||
V_POWER = "1.050000"
|
||||
DO_SPOT = "1.000000"
|
||||
S_POSITION = "194.000000"
|
||||
S_POWER = "0.200000"
|
||||
textures = "monitor_body;bg_under;bg_over"
|
||||
monitor_body = "textures/monitor_body.png"
|
||||
monitor_body_linear = "true"
|
||||
monitor_body_wrap_mode = "clamp_to_edge"
|
||||
monitor_body_mipmap = "true"
|
||||
bg_under = "textures/background_under.png"
|
||||
bg_under_linear = "true"
|
||||
bg_under_wrap_mode = "mirrored_repeat"
|
||||
bg_under_mipmap = "true"
|
||||
bg_over = "textures/background_over.png"
|
||||
bg_over_linear = "true"
|
||||
bg_over_wrap_mode = "mirrored_repeat"
|
||||
bg_over_mipmap = "true"
|
Loading…
Reference in a new issue