glow rendering fixes to bring stars back

This commit is contained in:
asrael 2026-02-10 11:10:37 -06:00
parent 657b590b6f
commit c538641ec8
26 changed files with 773 additions and 1491 deletions

View file

@ -2,10 +2,8 @@
(local effects (require :pxl8.effects))
(local net (require :pxl8.net))
(local colormap (require :mod.colormap))
(local entities (require :mod.entities))
(local menu (require :mod.menu))
(local palette (require :mod.palette))
(local sky (require :mod.sky))
(local textures (require :mod.textures))
@ -26,14 +24,16 @@
(local player-height 72)
(local player-radius 12)
(local step-height 24)
(local day-length 1800)
(local turn-speed 4.0)
(var auto-run-cancel-key nil)
(var auto-run? false)
(var bob-time 0)
(var cam-pitch 0)
(var day-time 0)
(var cam-x 416)
(var cam-y 0)
(var cam-y 600)
(var cam-yaw 0)
(var cam-z 416)
(var camera nil)
@ -43,6 +43,7 @@
(var land-squash 0)
(var last-dt 0.016)
(var light-time 0)
(var glows nil)
(var lights nil)
(var bsp-materials-setup false)
(var network nil)
@ -102,8 +103,7 @@
(fn init []
(pxl8.set_relative_mouse_mode true)
(pxl8.set_palette palette 256)
(pxl8.set_colormap colormap 16384)
(pxl8.load_palette "res/palettes/palette.ase")
(for [i 0 7]
(let [t (/ i 7)
r 0xFF
@ -117,6 +117,8 @@
(when (not camera)
(set camera (pxl8.create_camera_3d)))
(when (not glows)
(set glows (pxl8.create_glows)))
(when (not lights)
(set lights (pxl8.create_lights)))
@ -143,6 +145,7 @@
(world:set_bsp_material 0 floor-mat)
(world:set_bsp_material 1 wall-mat)
(world:set_bsp_material 3 trim-mat)
(entities.setup-lighting (chunk:bsp) 2)
(set bsp-materials-setup true))))))
(fn sample-input []
@ -194,7 +197,7 @@
(pxl8.info "Exiting through door...")
(let [exit-x (+ door-x 50)
exit-z door-z
exit-y 200]
exit-y 600]
(network:exit_chunk exit-x exit-y exit-z)
(set cam-x exit-x)
(set cam-z exit-z)
@ -287,6 +290,7 @@
(let [target-phase (* (math.floor (/ bob-time math.pi)) math.pi)]
(set bob-time (+ (* bob-time 0.8) (* target-phase 0.2))))))
(set day-time (% (+ day-time (/ dt day-length)) 1))
(set light-time (+ light-time (* dt 0.5)))
(set real-time (+ real-time dt))))))
@ -345,14 +349,13 @@
(pxl8.begin_frame_3d camera lights {
:ambient 2
:dither true
:fog_density 0.0
:fog_density 0.002
:celestial_dir [0.5 -0.8 0.3]
:celestial_intensity 0.3})
(pxl8.clear_depth)
(sky.update-gradient 1 2 6 6 10 18)
(when (not (menu.is-wireframe))
(sky.update-gradient 1 2 6 6 10 18))
(sky.render smooth-cam-x eye-y smooth-cam-z (menu.is-wireframe))
(sky.render-stars smooth-cam-x eye-y smooth-cam-z 1.0 last-dt)
(pxl8.clear_depth)
(pxl8.set_wireframe (menu.is-wireframe))
@ -364,6 +367,10 @@
(entities.render-door (menu.is-wireframe) (if voxel-space 128 0))
(pxl8.end_frame_3d)
(when (not (menu.is-wireframe))
(sky.render-stars smooth-cam-x eye-y smooth-cam-z day-time 0 last-dt))
(pxl8.pop_target))
(pxl8.push_target)