2021-03-28 13:52:25 -07:00

5.6 KiB

2021-03-28

  • bake s/d-lights visibility data into bsp leaves

Next

  • rtx: use light visibility data
  • rtx: read rad file data
    • rtx: hack: interpret textures with '~' or '{' as emissive
  • rtx: emissive particles
  • rtx: textures
  • rtx: add fps
    • rtx: don't group brush draws by texture -- this has failed: increases BLAS count to ~3000, halves fps
    • better AS structure (fewer blases, etc)
    • rasterize into G-buffer, and only then compute lighting with rtx
  • rtx: better random
  • rtx: some studio models have glitchy geometry

Planned

  • bake light visibility in compute shader
  • rtx: cull light sources (dlights and light textures) using bsp
  • enable entity-parsed lights by lightstyles
  • dlight for flashlight seems to be broken
  • restore render debug labels
  • make 2nd commad buffer for resource upload
  • fix sprite blending; there are commented out functions that we really need (see tunnel before the helicopter in the very beginning)
  • fix projection matrix differences w/ gl render
  • bad condition for temp vs map-permanent buffer error message
  • draw more types of beams
  • fix brush blending
  • sprite depth offset
  • fix incorrect viewport sprite culling
  • improve g_camera handling; trace SetViewPass vs RenderScene ...
  • loading to the same map breaks geometry
  • studio model lighting
  • move all consts to vk_const
  • what is GL_Backend*/GL_RenderFrame ???
  • particles
  • decals
  • issue: transparent brushes are too transparent (train ride)
  • render skybox
  • mipmaps
  • lightmap dynamic styles
  • flashlight
  • screenshot
  • fog
  • studio models survive NewMap; need to compactify buffers after removing all brushes
  • sometimes it gets very slow (1fps) when ran under lldb (only on stream?)
  • optimize perf: cmdbuf managements and semaphores, upload to gpu, ...
  • rtx: studio models should not pre-transform vertices with modelView matrix

Someday

  • start building command buffers in beginframe
  • multiple frames in flight (#nd cmdbuf, ...)
  • cleanup unused stuff in vk_studio.c
  • (helps with RTX?) unified rendering (brush/studio models/...), each model is instance, instance data is read from storage buffers, gives info about vertex format, texture bindings, etc; which are read from another set of storage buffers, ..
  • waf shader build step -- get from upstream
  • embed shaders into binary
  • verify resources lifetime: make sure we don't leak and delete all textures, brushes, models, etc between maps
  • custom allocator for vulkan
  • stats
  • better 2d renderer: fill DRAWQUAD(texture, color, ...) command into storage buffer instead of 4 vertices
  • auto-atlas lots of smol textures: most of model texture are tiny (64x64 or less), can we not rebind them all the time? alt: bindless texture array
  • can we also try to coalesce sprite draw calls?
  • not visibly watertight map brushes
  • collect render_draw_t w/o submitting them to cmdbuf, then sort by render_mode, trans depth, and other parameters, trying to batch as much stuff as possible; only then submit

Previously

2021-02-06

  • alpha test
  • compare w/ gl R_SetRendeMode
    • raster state
    • color constants
  • culling
  • shaders s/map/brush/
  • pipeline cache
  • swapchain getting stale
  • HUD sprites
  • issue: lightmap sometimes gets corrupted on map load

2021-02-08

  • move entity rendering-enumeration into vk_scene

2021-02-10

  • refactor brush into brushes and separate rendering/buffer management
  • animated textures (accept PR)

2021-02-13

  • move pipelines from brush to render
  • render temp buffer api
  • draw studio models somehow
  • studio models vk debug markers
  • studio models white texture as lightmap
  • studio models fixes

2021-02-15

  • weapon models -- viewmodel
  • coalesce studio model draw calls
  • initual sprite support

2021-02-17

  • draw some beams

2021-02-20

  • refactor vk_render interface:
    • move uniform_data_t to global render state inside render_draw_t, remove any mentions of uniform/slots from api; alt: global render state?
    • rename RenderDraw to SubmitDraw
    • add debug label to render_draw_t?; alt: VK_RenderDebugNameBegin/End
    • perform 3d rendering on corresponding refapi calls, not endframe
  • fix sprite blending

2021-02-22

  • RTX: load extensions with -rtx arg
  • vk_render: buffer-alloc-centric upload and draw api

2021-03-06

  • (RTX; common) Staging vs on-GPU buffers
  • rtx: BLAS construction on buffer unlock
  • rtx: ray trace compute shader
  • dlight test

2021-03-08

  • studio models normals
  • rtx: geometry indexing

2021-03-10

  • rtx: dlights
  • rtx: dlight shadows
  • rtx: dlight soft shadows

2021-03-13

  • rtx: blend normals according to barycentrics
  • rtx: (debug/dev) shader reload
  • rtx: make projection matrix independent render global/current/static state
  • rtx: model matrices
  • rtx: light entities -- still not enough to enlight maps :(
  • rtx: path tracing

2021-03-15

  • rtx: control bounces with cvars
  • rtx: device-local buffers -- doesn't affect perf noticeably :(
  • rtx: emissive materials
    • rtx: emissive textures
    • rtx: emissive beams

2021-03-17..20

  • rtx: lower resolution framebuffer + upscale
  • rtx: importance sample emissive surface
  • rtx: remove entnity-parsed lights
  • rtx: naive temporal denoise: mix with previous frame

2021-03-22

  • rtx: traverse bsp for science!