Files
OpenSpace/modules/base/shaders/sphere_fs.glsl
T
ElonOlsson 87c1372744 Todays Sun, PR for branch: feature/WSA (#3652)
The merge commit
---------

Co-authored-by: shyamthyagarajan <shyammuralithyagarajan@gmail.com>
Co-authored-by: Lundkvist <alundkvi@ndc.nasa.gov>
Co-authored-by: lundkvistarn <lundkvistarn@live.se>
Co-authored-by: Alexander Bock <mail@alexanderbock.eu>
Co-authored-by: Emma Broman <emma.broman@liu.se>
Co-authored-by: Alexander Bock <alexander.bock@liu.se>
2025-06-12 09:57:26 -04:00

72 lines
3.1 KiB
GLSL

/*****************************************************************************************
* *
* OpenSpace *
* *
* Copyright (c) 2014-2025 *
* *
* Permission is hereby granted, free of charge, to any person obtaining a copy of this *
* software and associated documentation files (the "Software"), to deal in the Software *
* without restriction, including without limitation the rights to use, copy, modify, *
* merge, publish, distribute, sublicense, and/or sell copies of the Software, and to *
* permit persons to whom the Software is furnished to do so, subject to the following *
* conditions: *
* *
* The above copyright notice and this permission notice shall be included in all copies *
* or substantial portions of the Software. *
* *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, *
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A *
* PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT *
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF *
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE *
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
****************************************************************************************/
#include "fragment.glsl"
in vec4 vs_position;
in vec2 vs_textureCoords;
in vec3 vs_normal;
in float vs_screenSpaceDepth;
uniform sampler2D colorTexture;
uniform bool usingTransferFunction = false;
uniform sampler1D transferFunction;
uniform vec2 dataMinMaxValues;
uniform float opacity;
uniform bool mirrorTexture;
Fragment getFragment() {
vec2 texCoord = vs_textureCoords;
Fragment frag;
if (mirrorTexture) {
texCoord.x = 1.0 - texCoord.x;
}
if (usingTransferFunction) {
vec4 dataValue = texture(colorTexture, texCoord);
float minVal = dataMinMaxValues.x;
float maxVal = dataMinMaxValues.y;
// dataValue and minVal comes from the same texture so dataValue cannot be < minVal
float lookUpVal = (dataValue.x - minVal) / (maxVal - minVal);
frag.color = vec4(
texture(transferFunction, lookUpVal).rgb,
1.0
);
}
else {
frag.color = texture(colorTexture, texCoord);
}
frag.color.a *= opacity;
frag.depth = vs_screenSpaceDepth;
// G-Buffer
frag.gPosition = vs_position;
frag.gNormal = vec4(vs_normal, 1.0);
return frag;
}