Guest User

Untitled

a guest
Nov 20th, 2018
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.90 KB | None | 0 0
  1. (bloom:define-shader-function world2/v ((pos :vec3)
  2. &uniform
  3. (model :mat4)
  4. (view :mat4)
  5. (proj :mat4)
  6. (cell-type :int)
  7. (world world-data :ssbo :std-430))
  8. (with-slots (width height) world
  9. (let* ((map-size (vec2 width height))
  10. (coords (get-cell-coords world cell-type))
  11. (offset (vec3 (- (* coords 2) map-size) 0))
  12. (model-pos (vec3 (* model (vec4 (+ offset pos) 1)))))
  13. (values (* proj view (vec4 model-pos 1))
  14. model-pos))))
  15.  
  16. (bloom:define-shader-function generate-texture/wall ((frag-pos :vec3))
  17. (let* ((cracks-noise (umbra.noise:perlin (vec3 (* frag-pos 0.011))))
  18. (cracks (umbra.noise:cellular-fast (vec3 (* frag-pos 0.09))))
  19. (cracks (vec3 (- 1 (clamp (* 2.75 (pow cracks (* cracks-noise 5.5))) 0 1))))
  20. (stone-noise-1 (umbra.noise:perlin (vec3 (* frag-pos 0.38))))
  21. (stone-noise-2 (umbra.noise:simplex-perlin (vec3 (* frag-pos 0.18))))
  22. (stone-noise-3 (umbra.noise:cellular-fast (vec3 (* frag-pos 0.044))))
  23. (stone-noise-4 (umbra.noise:cellular-fast (vec3 (* frag-pos 0.054))))
  24. (stone (mix (vec3 (+ (* 0.28 stone-noise-1)
  25. (* 0.35 stone-noise-2)
  26. (* 0.45 stone-noise-3)))
  27. (vec3 stone-noise-4)
  28. 0.35)))
  29. (values stone cracks)))
  30.  
  31. (bloom:define-shader-function world2/f ((frag-pos :vec3)
  32. &uniform
  33. (cell-type :int)
  34. (opacity :float))
  35. (umbra:mvlet* ((stone cracks (generate-texture/wall frag-pos)))
  36. (values (vec4 stone opacity)
  37. (vec4 cracks opacity))))
Add Comment
Please, Sign In to add comment