From 19fb9fb9fb78fb7e364e231b4bdeda2ae98b870e Mon Sep 17 00:00:00 2001 From: ~keith Date: Sun, 27 Mar 2022 18:02:45 +0000 Subject: [PATCH] shader stuff --- wh-engine/render/shader.lisp | 2 +- wh-engine/render/shaders/basic-shader.lisp | 32 ++++++++-------------- 2 files changed, 13 insertions(+), 21 deletions(-) diff --git a/wh-engine/render/shader.lisp b/wh-engine/render/shader.lisp index a3ade5a..4c95eac 100644 --- a/wh-engine/render/shader.lisp +++ b/wh-engine/render/shader.lisp @@ -1,6 +1,6 @@ ;;;; wh-engine/render/shader.lisp ;;;; Lisp class for holding & handling shaders. -;; (in-package wh-engine/render) +(in-package wh-engine/render) (defun replace-xref-vars (forms vars replace-fun) (loop for elt on forms diff --git a/wh-engine/render/shaders/basic-shader.lisp b/wh-engine/render/shaders/basic-shader.lisp index 9cd64d1..a25600b 100644 --- a/wh-engine/render/shaders/basic-shader.lisp +++ b/wh-engine/render/shaders/basic-shader.lisp @@ -1,24 +1,5 @@ ;;;; basic-shader.lisp (Lisp shader code) - -#| -(define-shader basic-shader - (:version 330) - (:vertex-shader - :in ((vert-pos :type :vec3 :location 0) - (vert-uv :type :vec2 :location 1)) - :out ((uv :type :vec2)) - :uniform ((model :type :mat4) - (view :type :mat4) - (proj :type :mat4)) - :main ((setf *position* (* proj view model (vec4 vert-pos 1.0))) - (setf uv vert-uv))) - (:fragment-shader - :in ((uv :type :vec2)) - :out ((*frag-colour* :type :vec4)) - :uniform ((main-tex :type :sampler-2d) - (colour :type :vec4)) - :main ((setf *frag-colour* (* (sample-texture main-tex uv) colour))))) -|# +(in-package wh-engine/render) (define-shader basic-shader (:in ((vert-pos :type :vec3 :location 0) @@ -32,3 +13,14 @@ :version 330 :vert ((setf *position* (* proj view model (vec4 vert-pos 1.0)))) :frag ((setf *frag-colour* (* (sample-texture main-tex vert-uv) colour)))) + +(define-shader render-target-blit-shader + (:in ((vert-pos :type :vec2 :location 0)) + :out ((*frag-colour* :type :vec4) + (*frag-depth* :type :float)) + :uniform ((main-tex :type :sampler-2d) + (depth-tex :type :depth-sampler-2d))) + :version 330 + :vert ((setf *position* (vec4 vert-pos 0.0 1.0))) + :frag ((setf *frag-colour* (sample-texture main-tex vert-pos) + *frag-depth* (sample-texture depth-tex vert-pos))))