1,819 Commits over 1,491 Days - 0.05cph!
Tag code as NOT using constant buffers, as we are using structured buffers now
Support for both Constant and Structured buffer
Strip texture transform entirely from scenesystem
Fix shader code related to structured buffer transforms
Move away from a cbuffer to a structured buffer
Set the config on transform_buffer correctly
Merge branch 'new-shader-api' of sbox into new-shader-api-premerge
Iterate on shading, cleanup internal sbox_pixel
Add new standard.vfx ubershader
Merge branch 'master' of sbox into new-shader-api-premerge
Mixed light support
Iterate on new shader api, make inputs take preprocessed shaderparams rather than pixelinput and material data
Boost ambient occlusion on hemispheric light coming from up-down
Merge branch 'master' of sbox into new-shader-api-premerge
Lightmapped direct light support, better define shading struct
Merge branch 'master' of sbox into new-shader-api-premerge
Merge branch 'master' of sbox into new-shader-api-premerge
Start using classes for shading itself
Merge branch 'master' of sbox into new-shader-api-premerge
Remove warnings, iterate on class-based shading, cleanup
tidy up api
Strip ShadeParams from lighting data, that should be exclusive to shading classes
More indirect lighting work
DFG Lookup table
Unclustered seamless cubemaps, fix view ray
Add DFG texture sampler to shader
Have position offset on orbitcamera
Better air control, tap for short hops, hold for long jump
https://cdn.discordapp.com/attachments/963075472437178449/965698988047233124/sbox_0002.mp4
Add walljump
Add ledge grab
Improved waljump
https://i.imgur.com/CBaoXjJ.mp4
Tidy up ledgegrab
Adjust jump power for new jump behaviour
Adjust walljump and ledgegrab
add LedgeGrab and WallJump to PlatformController
Disable camera collision for now until I finish orbiting camera, make camera orbit player if we move camera manually
Merge branch 'main' of sbox-platformer
Add shading methods, cleanup api
Use world normals for material, start implementing IndirectLight, MixedLight and StaticLight, cleanup, move ambient occlusion to IndirectLight
Iterate over new lighting api, cleanup, add stubs for MixedLight and IndirectLight, add LightShade struct
Make base class an optional parameter for VFX classes
Allow members to be static or have other identifiers on VFX
Use classes for dynamic light
Add class_member_definition to VFX variable parser on ANTLR
Add multi select combo box, use it for enum flags in property editor https://files.facepunch.com/layla/1b0511b1/sbox-dev_bxdOgE3sui.png
Remake multi select combo box for enum flags in pure C# (needs styling)
Adjust input settings layout to scroll
Input settings style tweaks
Fix out of range exception
Fix map & resource path lists shrinking in addon editor
Fix CheckBox not pulling package meta bool binds
Fix up/down arrow caret navigation on multiline inputs
Fix caret position on newline characters
Previous fix missed an edge case and did not work with emojis, hope this way isn't shit
Documentation and other minor code adjustments
Prop gibs now inherit material group
Delete engine break commands, and replace some useful ones with c# implementations
ModelDoc: Give the user a chance to copy a model into an addon dir if they try to import a model from outside an addon dir
Remove engine break commands code
Citizen: updated unicycle pedaling animation
Switch to new api urls
Tools doesn't need its own package query function
Force CBasePlayer transmit always
Fix NRE when deserializing a dictionary that ends up with a null key
Citizen/unicycle: added sequences for fast pedaling and leaning
Citizen/unicycle: updated pedaling animations so that feet are always flat relative to pedals
Citizen/unicycle: updated balance sequences
Citizen/unicycle: fixed a couple mistakes
Recompile sbox_glass
Remove usage of PropertyAttribute in Decal asset
Get rid of Alpha/RenderFX properties from base.fgd in favor of RGBA color properties
Removed Hammer inputs/outputs from all engine entities to stop confusion, since they do not work anyway
Theme consistency
Fix StartLobby errors
Upgrade "Use IDictionary<{1}, {2}> instead of Dictionary<{1}, {2}>" to an error instead of a warning
Ignore ResetLatched in IV_PHASE_RENDERING
Populate main menu screen with trending games
SceneSystem - ignore objects with invalid bounds
if it ain't in this spawn group, how can it be in the pvs?
Fast return if setting model but model didn't change
Fix menu exception when gameicon doesn't have info yet
ContainsInterpolationVarsForPhase return false if rendering
Package Updated/Created is DateTimeOffset
Icon showing updated within last day
Simplify switching to local api
Fixed client not knowing particle names
Add class and interface language support to VFX Compiler
Iterate on lighting for new api, split baked and dynamic lighting
Trim core shader code, add pixel.lighting.hlsl
Start work on new base shader, remove old emissive combos
Accidentally removed ripple collision, let's put it back
Merge branch 'master' of sbox
Merge branch 'master' of sbox
Tweak ripplecompute, clamp collision and ripple size
Fix missing summary tag close on ScenePortal
Better way to do ripples for moving water surfaces
https://i.imgur.com/xWvwdAg.mp4
Refactor water, allow for moveable surfaces
Add ripples simulation forces for moveable water
https://cdn.discordapp.com/attachments/834319259458994216/958656107813941258/sbox_0054.mp4
Clamp water xRes and yRes to not overflow dynamic vertex buffers, allows for water bodies of any size, revisit for env_sea
Fix reflection vector on simple reflections
Add source files for Gauss
https://i.imgur.com/zMD4T9I.jpg
Fix underwater caustics
Pass Time.Delta to shader parameters
Fix water collisions being wonky
Minor tweaks on water
Add surface roughness slider to water
Simulate ripples on bullet impact
https://imgur.com/a/8eGjZdj
Don't use nullable for water properties, set default value instead
New ripple simulation with collisions
Add drag to fluid simulation and collisions
Cleanup ripplecompute and how ripples are added
Fix seamless entry on water, better water caustics, remove options for tesselation other than on/off, iterate on waves
Cleanup hull base shader
Cleanup ripple collision and propagation
Adjust ripple strength
New underwater surface method
Port eyeball shader to use our shared code, fixes clip planes on water
Add fog support to water surface, cleanup
Clamp radius of water directly on C# side, send D_VIEW_INTERSECTION combo
Put water combos right into place, upload water shader objects (including ripple)
Propagate ripple by framerate, fixes it slowing down on low framerates
Don't put r_water_ripples inside RippleCompute.cs, breaks when pushing it to shader
Add render bounds for water, only render water if we are are looking at it's bounds
Use two tone fog by default on test water
Push latest water shader objects
New ripple simulation with collisions
Add drag to fluid simulation and collisions
Cleanup ripplecompute and how ripples are added
Fix seamless entry on water, better water caustics, remove options for tesselation other than on/off, iterate on waves
Cleanup hull base shader
Cleanup ripple collision and propagation
Adjust ripple strength
New underwater surface method
Port eyeball shader to use our shared code, fixes clip planes on water
Add fog support to water surface, cleanup
Clamp radius of water directly on C# side, send D_VIEW_INTERSECTION combo
Put water combos right into place, upload water shader objects (including ripple)
Propagate ripple by framerate, fixes it slowing down on low framerates
Don't put r_water_ripples inside RippleCompute.cs, breaks when pushing it to shader
Faster, much better water caustics
Simulate wind ripples on water, increase offset, make underwater fog blend seamless with edges and view
Add seamless entry to water, fix splash and ripple height
Iterate underwater fog
Water cleanup
Send blank info about splashes to GPU if we have no new ripple force to simulate
Add two tone fog
Fix refraction ray on water
New normal sampling method for water, other fixes
Finish overwater surface rewrite, optimize normal function even further
Readd horizon aliasing reduction to new normal method
Only clamp to AABB in RippleCompute if our computing radius is big enough
Disable debugview on water
Squashed commit from water-refactor2
Fix syntax errors cauased from merge due to refactors
Get WaterSceneObject & RippleCompute on the refactored API
bInMonitorLayer no longer used, calculation of what was used for it is now in rendergamesystem
Fix non-viewmodel entities being invisible
Add RenderTargetSize to ScenePortal
Fix assertions when trying to copy depth texture in some rare occasions
Flush our scratch render targets on the moment we first initialize the gameso that it matches the size of the main window
When running on tools mode at least, the game will allocate a scratch render target the size of the monitor, rather than of the running viewport until we resize the window, this causes problems on effects that use framebuffer grabbing, and should save us VRAM space by having the texture not overscan
Update PlanarReflection API with reflection direction
Simplify water input
Fix underwater top surface being rendered twice, use hardware alpha for underwater fog blending, more refactoring
Iterate on underwater pass of water, start adding refraction to it, major cleanup
Add a blank slice after the renderer has initialized when trying to add first lightcookie slice
Remove high quality shadows
Remove game specific attributes recording
Merge branch 'water-refactor3' of sbox
Render AO on dynamic objects, don't render it on monitors
Refactor aoproxy code, add stub for cylinder aoproxy shape
Aoproxy_splat objects
Render AO on dynamic objects, don't render it on monitors
Refactor aoproxy code, add stub for cylinder aoproxy shape
Flush our scratch render targets on the moment we first initialize the gameso that it matches the size of the main window
When running on tools mode at least, the game will allocate a scratch render target the size of the monitor, rather than of the running viewport until we resize the window, this causes problems on effects that use framebuffer grabbing, and should save us VRAM space by having the texture not overscan
Flush our scratch render targets on the moment we first initialize the gameso that it matches the size of the main window
When running on tools mode at least, the game will allocate a scratch render target the size of the monitor, rather than of the running viewport until we resize the window, this causes problems on effects that use framebuffer grabbing, and should save us VRAM space by having the texture not overscan
bInMonitorLayer no longer used, calculation of what was used for it is now in rendergamesystem
Fix non-viewmodel entities being invisible
Squashed commit from water-refactor2
Fix syntax errors cauased from merge due to refactors
Get WaterSceneObject & RippleCompute on the refactored API
Update sceneobject flags, remove VR_ prefix
Delete a bunch more code from other games and remove their rendering pipeline flags
Fix aliasing on DoF, remove unneeded passes
Initial work on dof rewrite
Iteration on DoF rewrite
Fix aliasing on DoF, remove unneeded passes
Render objects hidden in first person on monitors, render player's own reflection on water, make it easier to programatically set up default values on layers
Much better way to handle hide in first person
Fix RippleCompute under latest changes
Add horizon aliasing reduction for water
Merge branch 'water-rework' into water-refactor2
Refactor how mixed baked lights are calculated to later support multiple lights at once
Removed unused lightbinner that was mostly just duplicated code
Fix data structure of light info compute buffer to support multiple baked mixed shadows and cleanup
Reorder data structure, give support to more than 2 cascades for mixed lights, add vignietting for shadows on multiple static lights at once
Up our shader ABI, document changes, and rename elements of that enum to better clarify
Make lighting data structure from shader match what's on cpu side
Multiple mixed shadows support, fix sunlight bugs with multiple mixed shadows
Pass number of mixed cascades to shader
Naive shadow atlas downsampling test
Consider mixed light shadows for atlas downsampler too
Add cvar to maximum mixed light shadows, make a lot of this clientside
Add option to render mixed shadows only on viewmodels
Fix self shadowing on dynamic objects with mixed shadows
Add helper method to get the wanted shadow sampler given the context, clean up code
Pass viewmodel shadow sampler on the shader side
Viewmodel shadows on mixed shadows 🙏
Cleanup lightcomponent, reenable shadow fading
Remove unnecessary debug pragmas
Actually don't need VFX ABI change, old shaders will simply not receive shadows, no need to break them
Update core shaders for light rework
Update base addon-level shaders with the light rework changes
https://i.imgur.com/cSffiRg.jpeg
Merge pull request #177 from Facepunch/light-rework-rebase
Light rework
Update core shaders for light rework
Update base addon-level shaders with the light rework changes
https://i.imgur.com/cSffiRg.jpeg
Refactor how mixed baked lights are calculated to later support multiple lights at once
Removed unused lightbinner that was mostly just duplicated code
Fix data structure of light info compute buffer to support multiple baked mixed shadows and cleanup
Reorder data structure, give support to more than 2 cascades for mixed lights, add vignietting for shadows on multiple static lights at once
Up our shader ABI, document changes, and rename elements of that enum to better clarify
Make lighting data structure from shader match what's on cpu side
Multiple mixed shadows support, fix sunlight bugs with multiple mixed shadows
Pass number of mixed cascades to shader
Naive shadow atlas downsampling test
Consider mixed light shadows for atlas downsampler too
Add cvar to maximum mixed light shadows, make a lot of this clientside
Add option to render mixed shadows only on viewmodels
Fix self shadowing on dynamic objects with mixed shadows
Add helper method to get the wanted shadow sampler given the context, clean up code
Pass viewmodel shadow sampler on the shader side
Viewmodel shadows on mixed shadows 🙏
Cleanup lightcomponent, reenable shadow fading
Remove unnecessary debug pragmas
Actually don't need VFX ABI change, old shaders will simply not receive shadows, no need to break them
Pass selfillum to material helper
Get the parameters from shared standard ps code in sbox_pixel, dont include the shared standard ps code include into it