diff options
Diffstat (limited to 'archived/projt-launcher/launcher/resources/shaders')
4 files changed, 75 insertions, 0 deletions
diff --git a/archived/projt-launcher/launcher/resources/shaders/fshader.glsl b/archived/projt-launcher/launcher/resources/shaders/fshader.glsl new file mode 100644 index 0000000000..d6a93db5d9 --- /dev/null +++ b/archived/projt-launcher/launcher/resources/shaders/fshader.glsl @@ -0,0 +1,20 @@ +// Copyright (C) 2024 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause +// https://code.qt.io/cgit/qt/qtbase.git/tree/examples/opengl/cube/fshader.glsl +#ifdef GL_ES +// Set default precision to medium +precision mediump int; +precision mediump float; +#endif + +uniform sampler2D texture; + +varying vec2 v_texcoord; + +void main() +{ + // Set fragment color from texture + vec4 texColor = texture2D(texture, v_texcoord); + if (texColor.a < 0.1) discard; // Optional: Discard fully transparent pixels + gl_FragColor = texColor; +} diff --git a/archived/projt-launcher/launcher/resources/shaders/shaders.qrc b/archived/projt-launcher/launcher/resources/shaders/shaders.qrc new file mode 100644 index 0000000000..6667e8b61a --- /dev/null +++ b/archived/projt-launcher/launcher/resources/shaders/shaders.qrc @@ -0,0 +1,7 @@ +<RCC> + <qresource prefix="/shaders"> + <file>vshader_skin_model.glsl</file> + <file>vshader_skin_background.glsl</file> + <file>fshader.glsl</file> + </qresource> +</RCC>
\ No newline at end of file diff --git a/archived/projt-launcher/launcher/resources/shaders/vshader_skin_background.glsl b/archived/projt-launcher/launcher/resources/shaders/vshader_skin_background.glsl new file mode 100644 index 0000000000..9072af6bbf --- /dev/null +++ b/archived/projt-launcher/launcher/resources/shaders/vshader_skin_background.glsl @@ -0,0 +1,11 @@ + +attribute vec4 a_position; +attribute vec2 a_texcoord; + +varying vec2 v_texcoord; + +void main() +{ + gl_Position = a_position; + v_texcoord = a_texcoord; +} diff --git a/archived/projt-launcher/launcher/resources/shaders/vshader_skin_model.glsl b/archived/projt-launcher/launcher/resources/shaders/vshader_skin_model.glsl new file mode 100644 index 0000000000..7908813529 --- /dev/null +++ b/archived/projt-launcher/launcher/resources/shaders/vshader_skin_model.glsl @@ -0,0 +1,37 @@ +// Copyright (C) 2024 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause +// https://code.qt.io/cgit/qt/qtbase.git/tree/examples/opengl/cube/vshader.glsl + +// Dylan Schooner - 2025 +// Modification: Implemented final Z-NDC re-inversion to compensate +// for rigid OpenGL 2.0 context forcing glClearDepth(1.0). +// This flips the high-precision Reverse Z output to the standard [0, W] range. + +#ifdef GL_ES +// Set default precision to medium +precision mediump int; +precision mediump float; +#endif + +uniform mat4 mvp_matrix; +uniform mat4 model_matrix; + +attribute vec4 a_position; +attribute vec2 a_texcoord; + +varying vec2 v_texcoord; + +void main() +{ + // Calculate vertex position in screen space + gl_Position = mvp_matrix * model_matrix * a_position; + + // Invert the z component of our Reverse Z matrix back to standard NDC + float near_z = gl_Position.z; + float w_c = gl_Position.w; + gl_Position.z = w_c - near_z; + + // Pass texture coordinate to fragment shader + // Value will be automatically interpolated to fragments inside polygon faces + v_texcoord = a_texcoord; +} |
