Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/editors/shaders/image_uv_editor_region_frag.glsl
- This file was added.
| uniform sampler2D image; | |||||
| /* UIResouces.TH_BACK */ | |||||
| uniform vec3 uiColorBackground; | |||||
| uniform vec4 shuffleChannels; | |||||
| /* Normalize to scene camera far/near plane */ | |||||
| uniform float cameraClipStart = 0.1; | |||||
| uniform float cameraClipEnd = 100.0; | |||||
| uniform float cameraClipScale = 0.01; | |||||
| in vec2 texCoord_interp; | |||||
| out vec4 fragColor; | |||||
| #ifdef IMAGE_SHADER_FLAG_NORMALIZE_DEPTH | |||||
| float normalize_depth(float input_depth) | |||||
| { | |||||
| float clippedValue = mix(0.0, 1.0, 1.0 - (input_depth - cameraClipStart) * cameraClipScale); | |||||
| clippedValue = clamp(clippedValue, 0.0, 1.0); | |||||
| /* Add a small curvation to show the depth texture better */ | |||||
| clippedValue *= clippedValue; | |||||
| return clippedValue; | |||||
| } | |||||
| #endif | |||||
| void main() | |||||
| { | |||||
| vec4 color; | |||||
| #ifndef IMAGE_SHADER_FLAG_REPEAT_IMAGE | |||||
| if (texCoord_interp.x < 0.0 || texCoord_interp.x > 1.0 || texCoord_interp.y < 0.0 || | |||||
| texCoord_interp.y > 1.0) { | |||||
| /* set alpha to 1 so checkerboard does not bleed in */ | |||||
| fragColor = vec4(uiColorBackground, 1.0); | |||||
| return; | |||||
| } | |||||
| #endif /* !IMAGE_SHADER_FLAG_REPEAT_IMAGE */ | |||||
| #ifdef IMAGE_SHADER_FLAG_VALID_IMAGE | |||||
| color = texture(image, texCoord_interp); | |||||
| # ifdef IMAGE_SHADER_FLAG_SHUFFLE_CHANNELS | |||||
| float shuffled_channel = color.r * shuffleChannels.r + color.g * shuffleChannels.g + | |||||
| color.b * shuffleChannels.b + color.a * shuffleChannels.a; | |||||
| # ifdef IMAGE_SHADER_FLAG_NORMALIZE_DEPTH | |||||
| shuffled_channel = normalize_depth(shuffled_channel); | |||||
| # endif /* IMAGE_SHADER_FLAG_NORMALIZE_DEPTH */ | |||||
| color = vec4(shuffled_channel); | |||||
| # endif /* IMAGE_SHADER_FLAG_SHUFFLE_CHANNELS */ | |||||
| # ifndef IMAGE_SHADER_FLAG_USE_ALPHA | |||||
| color.a = 1.0; | |||||
| # endif /* !IMAGE_SHADER_FLAG_USE_ALPHA */ | |||||
| #else /* IMAGE_SHADER_FLAG_VALID_IMAGE */ | |||||
| /* TODO: draw grid */ | |||||
| color = vec4(0.0, 0.0, 0.0, 0.0); | |||||
| #endif /* IMAGE_SHADER_FLAG_VALID_IMAGE */ | |||||
| fragColor = color; | |||||
| } | |||||
| No newline at end of file | |||||