Added Post Processing, Improved UI a lot, Made File Explorer look nicer, Fixed up Raycast Selection, Added Placeholder Playmode Button, Added cameras, Organized Create menu in Inspector, Added outlines to selected objects, added view output for viewing cameras while in Playmode area.
This commit is contained in:
31
Resources/Shaders/postfx_blur_frag.glsl
Normal file
31
Resources/Shaders/postfx_blur_frag.glsl
Normal file
@@ -0,0 +1,31 @@
|
||||
#version 330 core
|
||||
out vec4 FragColor;
|
||||
|
||||
in vec2 TexCoord;
|
||||
|
||||
uniform sampler2D image;
|
||||
uniform vec2 texelSize;
|
||||
uniform bool horizontal = true;
|
||||
uniform float sigma = 3.0;
|
||||
uniform int radius = 5;
|
||||
|
||||
const float PI = 3.14159265359;
|
||||
|
||||
void main() {
|
||||
float twoSigma2 = 2.0 * sigma * sigma;
|
||||
vec2 dir = horizontal ? vec2(1.0, 0.0) : vec2(0.0, 1.0);
|
||||
|
||||
vec3 result = texture(image, TexCoord).rgb;
|
||||
float weightSum = 1.0;
|
||||
|
||||
for (int i = 1; i <= radius; ++i) {
|
||||
float w = exp(-(float(i * i)) / twoSigma2);
|
||||
vec2 offset = dir * texelSize * float(i);
|
||||
result += texture(image, TexCoord + offset).rgb * w;
|
||||
result += texture(image, TexCoord - offset).rgb * w;
|
||||
weightSum += 2.0 * w;
|
||||
}
|
||||
|
||||
result /= weightSum;
|
||||
FragColor = vec4(result, 1.0);
|
||||
}
|
||||
15
Resources/Shaders/postfx_bright_frag.glsl
Normal file
15
Resources/Shaders/postfx_bright_frag.glsl
Normal file
@@ -0,0 +1,15 @@
|
||||
#version 330 core
|
||||
out vec4 FragColor;
|
||||
|
||||
in vec2 TexCoord;
|
||||
|
||||
uniform sampler2D sceneTex;
|
||||
uniform float threshold = 1.0;
|
||||
|
||||
void main() {
|
||||
vec3 c = texture(sceneTex, TexCoord).rgb;
|
||||
float luma = dot(c, vec3(0.2125, 0.7154, 0.0721));
|
||||
float bright = max(luma - threshold, 0.0);
|
||||
vec3 masked = c * step(0.0, bright);
|
||||
FragColor = vec4(masked, 1.0);
|
||||
}
|
||||
49
Resources/Shaders/postfx_frag.glsl
Normal file
49
Resources/Shaders/postfx_frag.glsl
Normal file
@@ -0,0 +1,49 @@
|
||||
#version 330 core
|
||||
out vec4 FragColor;
|
||||
|
||||
in vec2 TexCoord;
|
||||
|
||||
uniform sampler2D sceneTex;
|
||||
uniform sampler2D bloomTex;
|
||||
uniform sampler2D historyTex;
|
||||
|
||||
uniform bool enableBloom = false;
|
||||
uniform float bloomIntensity = 0.8;
|
||||
|
||||
uniform bool enableColorAdjust = false;
|
||||
uniform float exposure = 0.0; // EV stops
|
||||
uniform float contrast = 1.0;
|
||||
uniform float saturation = 1.0;
|
||||
uniform vec3 colorFilter = vec3(1.0);
|
||||
|
||||
uniform bool enableMotionBlur = false;
|
||||
uniform bool hasHistory = false;
|
||||
uniform float motionBlurStrength = 0.15;
|
||||
|
||||
vec3 applyColorAdjust(vec3 color) {
|
||||
if (enableColorAdjust) {
|
||||
color *= exp2(exposure);
|
||||
color = (color - 0.5) * contrast + 0.5;
|
||||
float luma = dot(color, vec3(0.299, 0.587, 0.114));
|
||||
color = mix(vec3(luma), color, saturation);
|
||||
color *= colorFilter;
|
||||
}
|
||||
return color;
|
||||
}
|
||||
|
||||
void main() {
|
||||
vec3 color = texture(sceneTex, TexCoord).rgb;
|
||||
if (enableBloom) {
|
||||
vec3 glow = texture(bloomTex, TexCoord).rgb;
|
||||
color += glow * bloomIntensity;
|
||||
}
|
||||
|
||||
color = applyColorAdjust(color);
|
||||
|
||||
if (enableMotionBlur && hasHistory) {
|
||||
vec3 history = texture(historyTex, TexCoord).rgb;
|
||||
color = mix(color, history, clamp(motionBlurStrength, 0.0, 0.98));
|
||||
}
|
||||
|
||||
FragColor = vec4(color, 1.0);
|
||||
}
|
||||
10
Resources/Shaders/postfx_vert.glsl
Normal file
10
Resources/Shaders/postfx_vert.glsl
Normal file
@@ -0,0 +1,10 @@
|
||||
#version 330 core
|
||||
layout (location = 0) in vec2 aPos;
|
||||
layout (location = 1) in vec2 aTexCoord;
|
||||
|
||||
out vec2 TexCoord;
|
||||
|
||||
void main() {
|
||||
TexCoord = aTexCoord;
|
||||
gl_Position = vec4(aPos, 0.0, 1.0);
|
||||
}
|
||||
Reference in New Issue
Block a user