Skip to content

Commit

Permalink
Merge pull request #693 from TheCreatorGrey/master
Browse files Browse the repository at this point in the history
Added camera noise shader
  • Loading branch information
pokepetter committed Aug 9, 2024
2 parents cb371db + fad942e commit 6b4b589
Showing 1 changed file with 50 additions and 0 deletions.
50 changes: 50 additions & 0 deletions ursina/shaders/screenspace_shaders/camera_noise.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
from ursina import Shader


camera_noise_shader = Shader(
fragment='''
#version 430
uniform sampler2D tex;
uniform float noise_offset = 1;
uniform float strength = 1;
in vec2 uv;
out vec4 color;
void main() {
vec3 rgb = texture(tex, uv).rgb;
float noise = fract(sin(dot(uv+noise_offset, vec2(12.9898, 78.233))) * 43758.5453);
noise -= .5;
noise *= strength;
rgb += noise;
color = vec4(rgb.r, rgb.g, rgb.b, 1.0);
}
''',
geometry='',
default_input={
'noise_offset':1,
'strength':.2
})



if __name__ == '__main__':
from ursina import *
app = Ursina()

e = Entity(model='sphere', color=color.orange)
e = Entity(model='cube', y=-1)
camera.shader = camera_noise_shader
EditorCamera()

#camera.set_shader_input("strength", .2)

def update():
# Since there isn't really a way to generate pseudorandom numbers in GLSL by themselves, this needs to be put here, otherwise the noise will be static.
camera.set_shader_input("noise_offset", random.randint(0, 100)/100)

app.run()

0 comments on commit 6b4b589

Please sign in to comment.