1,460 Commits over 1,157 Days - 0.05cph!
Build debug at 1am
Get rid of MultiProcMaxCount from build retail bat I missed, reasoning in 0ce21462b8ec81ee7c89328fb10e083cdac2f442
Additional Gizmo Controls
Gizmo.Draw.LineCircle: fix starting angle always being a little too much
Improve Gizmo.Draw.LineCapsule
Improve Gizmo.Control.Capsule
ColliderCapsuleComponent has gizmo controls
Fix Gizmo.Control.BoundingBox
Additional Gizmo Controls
Gizmo.Draw.LineCircle: fix starting angle always being a little too much
Improve Gizmo.Draw.LineCapsule
Improve Gizmo.Control.Capsule
ColliderCapsuleComponent has gizmo controls
Fix Gizmo.Control.BoundingBox
Don't care about file mod changed for compile state, doesn't make sense and was causing constant recompiles when 2 assets of the same name existed
▍▉▍▌█▆ ▊▅▌▇▆_▆▅▌▇▋▅▇ - ▇▇▅ ▄▉▍▇ ▉▇█ ▌▉▇▊▊ ▇▉▅ ▊▋▊▉▄▌ ▄▌▇▆▉▆▆ ▆▇▇▋▍▇▌▄ ▍█▌▍ ▆# ▆▇▍▉▉▋
Pull workflow: build content before tests
Shut the couldn't find driver version warning up
Fix anim subgraphs not compiling with contentbuilder because there's no assetsystem
Update these vmdls that are failing to compile, using some mega old schema text
ci: test-managed depends on built content
ci: turn off orphan deletion on contentbuilder
Remove looptypeclientserver
Delete demos
Delete rcon
Remove clockdriftmgr
Delete gameeventsystem
Remove userinfochangeservice
ShaderGraph add ToolsWireframe and ToolsShadingComplexity modes
Fixes sboxgame/issues/issues/4104
ShaderGraph add Camera node with position, direction, near/far plane
https://files.facepunch.com/matt/1b1111b1/sbox-dev_0SbvbXMF1c.png
Fixes sboxgame/issues/issues/3996
Shadergraph transforms the given tangent normal into world space
Compiled light culling material
MapNode.OnAddedToDocument & MapNode.OnRemovedFromDocument
Run Scene.EditorTick() from Hammer
Get some scene prefabs going in Hammer
Hammer map worlds get a backing Scene, add that Scene's SceneWorlds to the render list
Add ComponentEditorWidget which can be decorated with CustomEditorAttribute
Example usage:
```cs
[CustomEditor( typeof( Terrain ))]
public class TerrainEditor : ComponentEditorWidget
{
// ...
}
```
Delete unused enums and networkclient defs
Pass engine version to discover api
Update default editor layout
Get rid of Sandbox.Server and Sandbox.Client
Rename Entity to HammerEntityDefinition, make it internal, delete some other things and mark lots of attributes as internal
Give test-managed a 10 min timeout
This test relied on Entity properties
Delete tons more Entity & Networking code
Strip C# Entity IO
Delete big chunks of entity networking, and stub a bunch of entities
Delete entities that will be prefabs
Delete base/Obsolete
Delete Net codegen
Delete test-server from CI since it's just testing legacy game loop
Heightfield shape collision (collide directly with heightmap values to save memory and construction time) https://files.facepunch.com/layla/1b2711b1/sbox-dev_te9aXdBHk6.mp4
Bit of cleanup
simd cell triangle vertices up front
Ray casts and shape casts against heightfield but slow because there's no acceleration structure yet
Shape cast against heightfield using swept bounds, awful for long traces but fine for player controller for now
Pin heightfield memory to the PhysicsShape so GC can't free it whilst native is using it
depthresolve uses min of all msaa samples
Pass engine version how web expects it when searching for packages
Remove r_depth_prepass option, we should always be doing it as part of forward+
Depth class uses the pre-resolved depth chain from the prepass instead of trying to sample an MSAA buffer, which was never working on certain MSAA levels and would've required a combo and loads of extra bullshit to do.
Add r_depth_debug to visualize the depth buffer
Make `ListView.ItemAlign = Align.SpaceBetween` work better, especially when there's not enough items to fill a row
ReflectionSerializedObject properties set their PropertyType
Wireframe and ToolsVisMode can be driven per-view by Camera attributes instead of global convars
vk: "fix" semaphore hang when recreating swapchains
vk: always use D32FS8 for depth buffer
Material::Init initializes TextureCoords too
Update new shader template
Remove stereo multiview instancing from debug menu
Add Texture.Update<T>( ReadOnlySpan<T> data ) & Texture2DBuilder.WithData<T>( ReadOnlySpan<T> data )
Stop using PixelInput for everything (#1336)
* PS_InitFinalCombiner( PS_INPUT ) -> PS_InitFinalCombiner() so it works without COMMON_PS_INPUT_DEFINED - this is just for default values anyway
PS_CommonTransformNormal should be wrapped in COMMON_PS_INPUT_DEFINED too
* Material shading API can be used without common PixelInput
Internals rewritten to remove reliance on a commonly defined PixelInput
instead every function just takes what it needs.
The only public methods you may have been using were changed like so:
```diff
- float3 TransformNormal( const PixelInput i, float3 vNormalTs )
+ float3 TransformNormal( float3 vNormalTs, float3 vGeometricNormalWs, float3 vTangentUWs, float3 vTangentVWs )
- float3 NormalWorldToTangent( PS_INPUT i, float3 vNormalWs )
+ float3 NormalWorldToTangent( float3 vNormalWs, float3 vGeometricNormalWs, float3 vTangentUWs, float3 vTangentVWs )
```
Material::From( PixelInput ... ), ShadingModelStandard::Shade( PixelInput ... )
stil exist but are wrapped in ifdef COMMON_PS_INPUT_DEFINED, so only work
with the common PixelInput include.
Material::Init() added to initialize a Material with default values
Geometric normals are now distinctive from normals in Material too, this
is important for the lighting model: https://files.facepunch.com/matt/1b1711b1/beforeafter.png
And a lot of tool vis modes were fixed too.
* Material.AmbientOcclusion float3 -> float
PS_InitFinalCombiner( PS_INPUT ) -> PS_InitFinalCombiner() so it works without COMMON_PS_INPUT_DEFINED - this is just for default values anyway
PS_CommonTransformNormal should be wrapped in COMMON_PS_INPUT_DEFINED too
Material shading API can be used without common PixelInput
Internals rewritten to remove reliance on a commonly defined PixelInput
instead every function just takes what it needs.
The only public methods you may have been using were changed like so:
```diff
- float3 TransformNormal( const PixelInput i, float3 vNormalTs )
+ float3 TransformNormal( float3 vNormalTs, float3 vGeometricNormalWs, float3 vTangentUWs, float3 vTangentVWs )
- float3 NormalWorldToTangent( PS_INPUT i, float3 vNormalWs )
+ float3 NormalWorldToTangent( float3 vNormalWs, float3 vGeometricNormalWs, float3 vTangentUWs, float3 vTangentVWs )
```
Material::From( PixelInput ... ), ShadingModelStandard::Shade( PixelInput ... )
stil exist but are wrapped in ifdef COMMON_PS_INPUT_DEFINED, so only work
with the common PixelInput include.
Material::Init() added to initialize a Material with default values
Geometric normals are now distinctive from normals in Material too, this
is important for the lighting model: https://files.facepunch.com/matt/1b1711b1/beforeafter.png
And a lot of tool vis modes were fixed too.
Material.AmbientOcclusion float3 -> float
ShaderGraph fixes
Fix
Material.AmbientOcclusion float3 -> float
PS_InitFinalCombiner( PS_INPUT ) -> PS_InitFinalCombiner() so it works without COMMON_PS_INPUT_DEFINED - this is just for default values anyway
PS_CommonTransformNormal should be wrapped in COMMON_PS_INPUT_DEFINED too
Material shading API can be used without common PixelInput
Internals rewritten to remove reliance on a commonly defined PixelInput
instead every function just takes what it needs.
The only public methods you may have been using were changed like so:
```diff
- float3 TransformNormal( const PixelInput i, float3 vNormalTs )
+ float3 TransformNormal( float3 vNormalTs, float3 vGeometricNormalWs, float3 vTangentUWs, float3 vTangentVWs )
- float3 NormalWorldToTangent( PS_INPUT i, float3 vNormalWs )
+ float3 NormalWorldToTangent( float3 vNormalWs, float3 vGeometricNormalWs, float3 vTangentUWs, float3 vTangentVWs )
```
Material::From( PixelInput ... ), ShadingModelStandard::Shade( PixelInput ... )
stil exist but are wrapped in ifdef COMMON_PS_INPUT_DEFINED, so only work
with the common PixelInput include.
Material::Init() added to initialize a Material with default values
Geometric normals are now distinctive from normals in Material too, this
is important for the lighting model: https://files.facepunch.com/matt/1b1711b1/beforeafter.png
And a lot of tool vis modes were fixed too.
Light fixes
Can use Material and shading without PixelInput