mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-18 11:54:59 -04:00
shaders: extract tint to include
Some shaders don't need tinting, that fixes them (was 0,0,0,0 color before, thus breaking it)
This commit is contained in:
parent
d83dac4f93
commit
f763d6284d
@ -18,6 +18,7 @@
|
||||
out vec4 foutColor;
|
||||
|
||||
|
||||
#include "minosoft:tint"
|
||||
#include "minosoft:texture"
|
||||
#include "minosoft:alpha"
|
||||
#include "minosoft:fog"
|
||||
@ -25,4 +26,5 @@ out vec4 foutColor;
|
||||
|
||||
void main() {
|
||||
applyTexel();
|
||||
applyTint();
|
||||
}
|
||||
|
@ -22,6 +22,7 @@ out vec3 finFragmentPosition;
|
||||
|
||||
uniform mat4 uViewProjectionMatrix;
|
||||
|
||||
#include "minosoft:tint"
|
||||
#include "minosoft:color"
|
||||
#include "minosoft:light"
|
||||
#include "minosoft:animation"
|
||||
|
@ -18,6 +18,7 @@
|
||||
out vec4 foutColor;
|
||||
|
||||
|
||||
#include "minosoft:tint"
|
||||
#include "minosoft:texture"
|
||||
#include "minosoft:alpha"
|
||||
#include "minosoft:fog"
|
||||
@ -25,4 +26,5 @@ out vec4 foutColor;
|
||||
|
||||
void main() {
|
||||
applyTexel();
|
||||
applyTint();
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ uniform uint uTintColor;
|
||||
out vec3 finFragmentPosition;
|
||||
|
||||
|
||||
#include "minosoft:tint"
|
||||
#include "minosoft:animation"
|
||||
#include "minosoft:color"
|
||||
|
||||
|
@ -21,6 +21,7 @@ uniform float uFlashProgress;
|
||||
|
||||
in vec4 finFlashColor;
|
||||
|
||||
#include "minosoft:tint"
|
||||
#include "minosoft:texture"
|
||||
#include "minosoft:alpha"
|
||||
#include "minosoft:fog"
|
||||
@ -28,6 +29,7 @@ in vec4 finFlashColor;
|
||||
|
||||
void main() {
|
||||
applyTexel();
|
||||
applyTint();
|
||||
|
||||
foutColor = mix(foutColor, finFlashColor, uFlashProgress);
|
||||
}
|
||||
|
@ -27,6 +27,7 @@ out vec4 finFlashColor;
|
||||
|
||||
out vec3 finFragmentPosition;
|
||||
|
||||
#include "minosoft:tint"
|
||||
#include "minosoft:animation"
|
||||
#include "minosoft:color"
|
||||
|
||||
|
@ -18,6 +18,7 @@
|
||||
out vec4 foutColor;
|
||||
|
||||
|
||||
#include "minosoft:tint"
|
||||
#include "minosoft:texture"
|
||||
#include "minosoft:alpha"
|
||||
#include "minosoft:fog"
|
||||
@ -25,4 +26,5 @@ out vec4 foutColor;
|
||||
|
||||
void main() {
|
||||
applyTexel();
|
||||
applyTint();
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ uniform uint uTintColor;
|
||||
out vec3 finFragmentPosition;
|
||||
|
||||
|
||||
#include "minosoft:tint"
|
||||
#include "minosoft:color"
|
||||
#include "minosoft:animation"
|
||||
|
||||
|
@ -19,6 +19,7 @@
|
||||
out vec4 foutColor;
|
||||
|
||||
|
||||
#include "minosoft:tint"
|
||||
#include "minosoft:texture"
|
||||
#include "minosoft:alpha"
|
||||
#include "minosoft:fog"
|
||||
@ -29,6 +30,7 @@ flat in uint finAllowTransparency;
|
||||
void main() {
|
||||
if (finTintColor.a == 0.0f) discard;
|
||||
applyTexel();
|
||||
applyTint();
|
||||
if (finAllowTransparency > 0u) {
|
||||
if (foutColor.a < 0.5f) discard;
|
||||
}
|
||||
|
@ -13,6 +13,8 @@
|
||||
|
||||
#version 330 core
|
||||
|
||||
#define POSITIVE_INFINITY 1.0f / 0.0f
|
||||
|
||||
layout (location = 0) in vec3 vinPosition;
|
||||
layout (location = 1) in vec2 vinUV;
|
||||
layout (location = 2) in float vinPartTransformNormal; // part(0x1FD0000) transform (0x7F000), normal (0xFFF)
|
||||
@ -28,13 +30,9 @@ uniform mat4 uTransform;
|
||||
|
||||
flat out uint finAllowTransparency;
|
||||
|
||||
out vec4 finTintColor;
|
||||
|
||||
#include "minosoft:tint"
|
||||
#include "minosoft:color"
|
||||
|
||||
|
||||
#define POSITIVE_INFINITY 1.0f / 0.0f
|
||||
|
||||
#include "minosoft:skeletal/shade"
|
||||
#include "minosoft:animation"
|
||||
|
||||
|
@ -19,6 +19,7 @@
|
||||
out vec4 foutColor;
|
||||
|
||||
|
||||
#include "minosoft:tint"
|
||||
#include "minosoft:texture"
|
||||
#include "minosoft:alpha"
|
||||
#include "minosoft:fog"
|
||||
@ -29,6 +30,7 @@ flat in uint finAllowTransparency;
|
||||
void main() {
|
||||
if (finTintColor.a == 0.0f) discard;
|
||||
applyTexel();
|
||||
applyTint();
|
||||
if (finAllowTransparency > 0u) {
|
||||
if (foutColor.a < 0.5f) discard;
|
||||
}
|
||||
|
@ -26,8 +26,7 @@ uniform uint uSkinParts;
|
||||
|
||||
flat out uint finAllowTransparency;
|
||||
|
||||
out vec4 finTintColor;
|
||||
|
||||
#include "minosoft:tint"
|
||||
#include "minosoft:skeletal/vertex"
|
||||
#include "minosoft:color"
|
||||
#include "minosoft:animation"
|
||||
|
@ -17,10 +17,12 @@ out vec4 foutColor;
|
||||
|
||||
in vec2 finUV;
|
||||
|
||||
#include "minosoft:tint"
|
||||
#include "minosoft:texture"
|
||||
#include "minosoft:alpha"
|
||||
#include "minosoft:animation"
|
||||
|
||||
void main() {
|
||||
applyTexel();
|
||||
applyTint();
|
||||
}
|
||||
|
@ -18,6 +18,7 @@ layout (location = 1) in vec2 vinUV;
|
||||
layout (location = 2) in float vinIndexLayerAnimation;// texture index (0xF0000000), texture layer (0x0FFFF000), animation index (0x00000FFF)
|
||||
layout (location = 3) in float vinTintColor;// Light (0xFF000000); 3 bytes color (0x00FFFFFF)
|
||||
|
||||
#include "minosoft:tint"
|
||||
#include "minosoft:color"
|
||||
#include "minosoft:animation"
|
||||
|
||||
|
@ -18,10 +18,12 @@ out vec4 foutColor;
|
||||
|
||||
in vec2 finUV;
|
||||
|
||||
#include "minosoft:tint"
|
||||
#include "minosoft:texture"
|
||||
#include "minosoft:alpha"
|
||||
#include "minosoft:animation"
|
||||
|
||||
void main() {
|
||||
applyTexel();
|
||||
applyTint();
|
||||
}
|
||||
|
@ -18,6 +18,7 @@ layout (location = 1) in vec2 vinUV;
|
||||
layout (location = 2) in float vinIndexLayerAnimation;// texture index (0xF0000000), texture layer (0x0FFFF000), animation index (0x00000FFF)
|
||||
layout (location = 3) in float vinTintColor;
|
||||
|
||||
#include "minosoft:tint"
|
||||
#include "minosoft:color"
|
||||
#include "minosoft:animation"
|
||||
|
||||
|
@ -17,10 +17,12 @@
|
||||
|
||||
out vec4 foutColor;
|
||||
|
||||
#include "minosoft:tint"
|
||||
#include "minosoft:texture"
|
||||
#include "minosoft:alpha"
|
||||
#include "minosoft:animation"
|
||||
|
||||
void main() {
|
||||
applyTexel();
|
||||
applyTint();
|
||||
}
|
||||
|
@ -19,6 +19,7 @@ layout (location = 2) in float vinIndexLayerAnimation;
|
||||
layout (location = 3) in float vinTintColor;
|
||||
|
||||
|
||||
#include "minosoft:tint"
|
||||
#include "minosoft:color"
|
||||
#include "minosoft:animation"
|
||||
|
||||
|
@ -35,17 +35,10 @@ layout(std140) uniform uSpriteBuffer
|
||||
flat out uint finAnimationArray1; out vec3 finAnimationPosition1;
|
||||
flat out uint finAnimationArray2; out vec3 finAnimationPosition2;
|
||||
out float finAnimationInterpolation;
|
||||
|
||||
// TODO: remove
|
||||
#ifndef NO_TINT_COLOR
|
||||
out vec4 finTintColor;
|
||||
#endif
|
||||
#elif defined SHADER_TYPE_FRAGMENT
|
||||
flat in uint finAnimationArray1; in vec3 finAnimationPosition1;
|
||||
flat in uint finAnimationArray2; in vec3 finAnimationPosition2;
|
||||
in float finAnimationInterpolation;
|
||||
|
||||
in vec4 finTintColor;// TODO: remove
|
||||
#endif
|
||||
|
||||
|
||||
@ -70,7 +63,7 @@ vec4 getAnimationTexture() {
|
||||
}
|
||||
|
||||
void applyTexel() {
|
||||
vec4 texel = getAnimationTexture() * finTintColor;
|
||||
vec4 texel = getAnimationTexture();
|
||||
foutColor = texel;
|
||||
|
||||
#ifdef TRANSPARENT
|
||||
|
@ -11,7 +11,7 @@
|
||||
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||
*/
|
||||
#define DEGREE_90 1.5707964f
|
||||
#define NO_TINT_COLOR
|
||||
#include "minosoft:tint"
|
||||
|
||||
float decodeNormalPart(uint data) {
|
||||
if (data < 8u) return (data / 8.0f) - 1.0f;
|
||||
|
@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Minosoft
|
||||
* Copyright (C) 2020 Moritz Zwerger
|
||||
*
|
||||
* 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/>.
|
||||
*
|
||||
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||
*/
|
||||
|
||||
#ifndef INCLUDE_MINOSOFT_TINT
|
||||
#define INCLUDE_MINOSOFT_TINT
|
||||
|
||||
#ifdef SHADER_TYPE_VERTEX
|
||||
out vec4 finTintColor;
|
||||
#endif
|
||||
|
||||
#ifdef SHADER_TYPE_FRAGMENT
|
||||
in vec4 finTintColor;
|
||||
|
||||
|
||||
void applyTint() {
|
||||
if (finTintColor.a <= 0.0f) discard;
|
||||
foutColor *= finTintColor;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
@ -15,10 +15,12 @@
|
||||
|
||||
out vec4 foutColor;
|
||||
|
||||
#include "minosoft:tint"
|
||||
#include "minosoft:texture"
|
||||
#include "minosoft:alpha"
|
||||
#include "minosoft:animation"
|
||||
|
||||
void main() {
|
||||
applyTexel();
|
||||
applyTint();
|
||||
}
|
||||
|
@ -36,6 +36,9 @@ in Vertex
|
||||
} ginVertex[];
|
||||
|
||||
|
||||
#include "minosoft:tint"
|
||||
|
||||
|
||||
void emit(vec3 offset, vec2 uv) {
|
||||
vec3 pointPosition = gl_in[0].gl_Position.xyz;
|
||||
|
||||
|
@ -13,8 +13,6 @@
|
||||
|
||||
#version 330 core
|
||||
|
||||
#define NO_TINT_COLOR
|
||||
|
||||
layout (location = 0) in vec3 vinPosition;
|
||||
layout (location = 1) in vec2 vinMinUV;
|
||||
layout (location = 2) in vec2 vinMaxUV;
|
||||
@ -25,7 +23,6 @@ layout (location = 5) in float vinTintColor;
|
||||
layout (location = 6) in float vinLight;
|
||||
|
||||
|
||||
|
||||
#include "minosoft:light"
|
||||
|
||||
|
||||
|
@ -18,6 +18,7 @@
|
||||
|
||||
out vec4 foutColor;
|
||||
|
||||
#include "minosoft:tint"
|
||||
#include "minosoft:texture"
|
||||
#include "minosoft:alpha"
|
||||
#include "minosoft:fog"
|
||||
@ -25,4 +26,5 @@ out vec4 foutColor;
|
||||
|
||||
void main() {
|
||||
applyTexel();
|
||||
applyTint();
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ layout (location = 3) in float vinIndexLayerAnimation;// texture index (0xF00000
|
||||
|
||||
out vec3 finFragmentPosition;
|
||||
|
||||
#include "minosoft:tint"
|
||||
#include "minosoft:animation"
|
||||
#include "minosoft:light"
|
||||
#include "minosoft:skeletal/vertex"
|
||||
|
@ -19,6 +19,7 @@
|
||||
out vec4 foutColor;
|
||||
|
||||
|
||||
#include "minosoft:tint"
|
||||
#include "minosoft:texture"
|
||||
#include "minosoft:alpha"
|
||||
#include "minosoft:fog"
|
||||
@ -26,4 +27,5 @@ out vec4 foutColor;
|
||||
|
||||
void main() {
|
||||
applyTexel();
|
||||
applyTint();
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ layout (location = 3) in float vinIndexLayerAnimation;// texture index (0xF00000
|
||||
|
||||
out vec3 finFragmentPosition;
|
||||
|
||||
#include "minosoft:tint"
|
||||
#include "minosoft:animation"
|
||||
#include "minosoft:color"
|
||||
#include "minosoft:skeletal/vertex"
|
||||
|
Loading…
x
Reference in New Issue
Block a user