Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (bloom:define-shader-function world2/v ((pos :vec3)
- &uniform
- (model :mat4)
- (view :mat4)
- (proj :mat4)
- (cell-type :int)
- (world world-data :ssbo :std-430))
- (with-slots (width height) world
- (let* ((map-size (vec2 width height))
- (coords (get-cell-coords world cell-type))
- (offset (vec3 (- (* coords 2) map-size) 0))
- (model-pos (vec3 (* model (vec4 (+ offset pos) 1)))))
- (values (* proj view (vec4 model-pos 1))
- model-pos))))
- (bloom:define-shader-function generate-texture/wall ((frag-pos :vec3))
- (let* ((cracks-noise (umbra.noise:perlin (vec3 (* frag-pos 0.011))))
- (cracks (umbra.noise:cellular-fast (vec3 (* frag-pos 0.09))))
- (cracks (vec3 (- 1 (clamp (* 2.75 (pow cracks (* cracks-noise 5.5))) 0 1))))
- (stone-noise-1 (umbra.noise:perlin (vec3 (* frag-pos 0.38))))
- (stone-noise-2 (umbra.noise:simplex-perlin (vec3 (* frag-pos 0.18))))
- (stone-noise-3 (umbra.noise:cellular-fast (vec3 (* frag-pos 0.044))))
- (stone-noise-4 (umbra.noise:cellular-fast (vec3 (* frag-pos 0.054))))
- (stone (mix (vec3 (+ (* 0.28 stone-noise-1)
- (* 0.35 stone-noise-2)
- (* 0.45 stone-noise-3)))
- (vec3 stone-noise-4)
- 0.35)))
- (values stone cracks)))
- (bloom:define-shader-function world2/f ((frag-pos :vec3)
- &uniform
- (cell-type :int)
- (opacity :float))
- (umbra:mvlet* ((stone cracks (generate-texture/wall frag-pos)))
- (values (vec4 stone opacity)
- (vec4 cracks opacity))))
Add Comment
Please, Sign In to add comment