1- #
21# Glossy Fish Eye
3- #
4- # A fish-eye shader is used on the main surface and
5- # a glossy specular reflection shader is used on the
6- # offscreen canvas.
72#
3+ # A fish-eye shader is used on the main surface and
4+ # a glossy specular reflection shader is used on the
5+ # offscreen canvas.
86
97attr_reader :ball , :canvas , :glossy , :fisheye , :img , :use_fish_eye
8+ SHADERS = %w( FishEye.glsl GlossyFrag.glsl GlossyVert.glsl ) . freeze
109
1110def setup
1211 sketch_title 'Glossy fish eye'
1312 @canvas = create_graphics ( width , height , P3D )
1413 @use_fish_eye = true
15- @fisheye = load_shader ( 'FishEye.glsl' )
14+ shaders = SHADERS . map { |shader | data_path ( shader ) }
15+ @fisheye = load_shader ( shaders [ 0 ] )
1616 fisheye . set ( 'aperture' , 180.0 )
17- @glossy = load_shader ( 'GlossyFrag.glsl' , 'GlossyVert.glsl' )
17+ @glossy = load_shader ( shaders [ 1 ] , shaders [ 2 ] )
1818 glossy . set ( 'AmbientColour' , 0.0 , 0.0 , 0.0 )
1919 glossy . set ( 'DiffuseColour' , 0.9 , 0.2 , 0.2 )
2020 glossy . set ( 'SpecularColour' , 1.0 , 1.0 , 1.0 )
@@ -34,26 +34,26 @@ def draw
3434 canvas . background ( 0 )
3535 canvas . push_matrix
3636 canvas . rotate_y ( frame_count * 0.01 )
37- canvas . point_light ( 204 , 204 , 204 , 1000 , 1000 , 1000 )
38- canvas . pop_matrix
39- ( 0 ... canvas . width + 100 ) . step ( 100 ) do |x |
40- ( 0 ... canvas . width + 100 ) . step ( 100 ) do |y |
41- ( 0 ... canvas . width + 100 ) . step ( 100 ) do |z |
37+ canvas . point_light ( 204 , 204 , 204 , 1_000 , 1_000 , 1_000 )
38+ canvas . pop_matrix
39+ ( 0 ...canvas . width + 100 ) . step ( 100 ) do |x |
40+ ( 0 ...canvas . width + 100 ) . step ( 100 ) do |y |
41+ ( 0 ...canvas . width + 100 ) . step ( 100 ) do |z |
4242 canvas . push_matrix
4343 canvas . translate ( x , y , -z )
4444 canvas . shape ( ball )
4545 canvas . pop_matrix
4646 end
4747 end
4848 end
49- canvas . end_draw
50- shader ( fisheye ) if use_fish_eye
49+ canvas . end_draw
50+ shader ( fisheye ) if use_fish_eye
5151 image ( canvas , 0 , 0 , width , height )
5252end
5353
5454def mouse_pressed
5555 @use_fish_eye = !use_fish_eye
56- reset_shader
56+ reset_shader
5757end
5858
5959def settings
0 commit comments