Emmanuel BENOîT
68d01ca42e
Shaders are no longer found under /shaders in the project; they can be anywhere. In addition, paths for both (program) instructions in the script and include directives in shader source code are relative to the file which contains them.
120 lines
2.8 KiB
Text
120 lines
2.8 KiB
Text
################################################################################
|
|
# Combine
|
|
|
|
(fn combine-init ()
|
|
# Assets
|
|
(sampler smp-combine-input (sampling nearest))
|
|
(sampler smp-combine-bloom
|
|
(sampling linear)
|
|
(mipmaps nearest)
|
|
(lod 0 100))
|
|
(texture tx-combined rgba-nu8 $vp-width $vp-height)
|
|
(odbg tx-combined ldr-alpha "Combined output")
|
|
(if $use-compute (
|
|
(program prg-combine "combine.c.glsl")
|
|
(pipeline pl-combine prg-combine)
|
|
)(
|
|
(framebuffer rt-combined tx-combined)
|
|
(program prg-combine "combine.f.glsl")
|
|
(pipeline pl-combine prg-fullscreen prg-combine)
|
|
))
|
|
|
|
# Bloom parameters
|
|
(input bloom-strength .45)
|
|
(input bloom-attenuation .3)
|
|
|
|
# Vignette effect
|
|
(input vignette-shape-m 1)
|
|
(input vignette-shape-p 8)
|
|
(input vignette-shape-r 1)
|
|
(input vignette-aspect-ratio .5)
|
|
(input vignette-apply-base 0)
|
|
(input vignette-apply-max 1)
|
|
|
|
# Color grading
|
|
(input cg-lift-r 0)
|
|
(input cg-lift-g 0)
|
|
(input cg-lift-b 0)
|
|
(input cg-gain-r 1)
|
|
(input cg-gain-g 1)
|
|
(input cg-gain-b 1)
|
|
(input cg-gamma-r 0)
|
|
(input cg-gamma-g 0)
|
|
(input cg-gamma-b 0)
|
|
|
|
# Input overrides
|
|
(ui-overrides
|
|
(section "Post-processing"
|
|
(section "Bloom"
|
|
(section "Output"
|
|
(float "Strength" bloom-strength
|
|
(min 0) (max 1) (slider))
|
|
(float "Attenuation / level" bloom-attenuation
|
|
(min 0) (max 1) (slider))
|
|
)
|
|
)
|
|
|
|
(section "Color grading"
|
|
(color-grading "Lift"
|
|
cg-lift-r cg-lift-g cg-lift-b
|
|
(base -.1) (unit .1))
|
|
(color-grading "Gain"
|
|
cg-gain-r cg-gain-g cg-gain-b
|
|
(base 0) (unit 1))
|
|
(color-grading "Gamma"
|
|
cg-gamma-r cg-gamma-g cg-gamma-b
|
|
(base -.9) (unit .9))
|
|
)
|
|
)
|
|
# FIXME: overrides for vignette
|
|
)
|
|
)
|
|
|
|
(fn combine-render (in-main in-bloom)
|
|
(profiling "Combine"
|
|
(uniforms-i prg-combine 0 0)
|
|
(uniforms-i prg-combine 1 1)
|
|
|
|
(use-pipeline pl-combine)
|
|
(if (not $use-compute) (
|
|
(uniforms prg-combine 2 $vp-width $vp-height)
|
|
(use-framebuffer rt-combined)
|
|
))
|
|
(use-texture 0 in-main smp-combine-input)
|
|
(use-texture 1 in-bloom smp-combine-bloom)
|
|
(uniforms prg-combine 3
|
|
(get-input bloom-strength)
|
|
(get-input bloom-attenuation))
|
|
(uniforms prg-combine 4
|
|
(get-input vignette-shape-m)
|
|
(get-input vignette-shape-p)
|
|
(get-input vignette-aspect-ratio)
|
|
(get-input vignette-shape-r))
|
|
(uniforms prg-combine 5
|
|
(get-input vignette-apply-base)
|
|
(get-input vignette-apply-max))
|
|
(uniforms prg-combine 6
|
|
(get-input cg-lift-r)
|
|
(get-input cg-lift-g)
|
|
(get-input cg-lift-b))
|
|
(uniforms prg-combine 7
|
|
(get-input cg-gain-r)
|
|
(get-input cg-gain-g)
|
|
(get-input cg-gain-b))
|
|
(uniforms prg-combine 8
|
|
(get-input cg-gamma-r)
|
|
(get-input cg-gamma-g)
|
|
(get-input cg-gamma-b))
|
|
|
|
(if $use-compute (
|
|
(image 0 tx-combined 0)
|
|
(compute $vp-width $vp-height 1)
|
|
)(
|
|
(viewport 0 0 $vp-width $vp-height)
|
|
(fullscreen)
|
|
))
|
|
)
|
|
)
|
|
|
|
|
|
# vim: syntax=demo-srd
|