Some improvements in VL.Stride made for recent projects

Hello everyone,

here are some open-source improvements for VL.Stride from recent projects that improve the quality of the output or help when debugging 3d issues.

TR.Stride: Terrain, Atmosphere, and Sky Rendering

With TR.Stride you get terrain, ocean, atmosphere, and sky rendering. This allows you to render time-of-day lighting with atmospheric scattering, also depending on a geo-location.

High-Quality Post Effects

Also from TR.Stride but developed further, these post-effects add higher-quality versions of the existing post-effects, specifically the bloom and ACES tone map.

XeGTAO Integration

XeGTAO, a high-quality real-time screen space ambient occlusion ported to VL by @torinos, has been integrated at the right stage into the high-quality post effects. This improves the look of a scene greatly.

Adjustable Global Shadow Map Size

Adjust the size of the global shadow map, which controls the amount of shadow detail in the 3d environment.

Improved Lights and Light Helpers

Light bug fix and better look for helpers.

RenderDocManager

The Stride RenderDocManager has been added, which makes API, texture, mesh, and line-by-line shader debugging possible. You can activate it with the command line argument --debug-gpu and then vvvv will appear as a running instance in RenderDoc you can connect to and capture a frame by banging the RenderDocManager node. If the Stride profiler is enabled (F3) you also get a named hierarchy of the draw calls.

image

Except for the last one, none of them are polished for usability or are really up to the standards of the other parts in the official VL libraries. But if you need anything of that right now, you know that it exists and you have the possibility to use it by using the VL.Stride fork as a source repo.

A big thank you to

https://studiobruell.de

and

https://www.jhh.ch

for commissioning the work that has made these improvements possible.

20 Likes

The latest merge with the VL.StandardLibs is now here: GitHub - studiobruell/VL.StandardLibs at feature-merge-compiled

2 Likes

Hey! Are there plans to PR that into StandardLibs?

5 Likes

There is motivation, but currently no funding to pay for the work.

Had a look at it and tried to merge. Was able to compile it, but there are quite some open questions regarding the merge.

here is a protocol of what happened:

based on mergetool feedback, double check:

  • CircleRenderer, CreateTriangleStripIndices (Internal), DynamicMesh (Indexed), ArrorRenderer, RectangleRenderer, AxisAndGridRenderer, RayRenderer
  • Effects\TextureFX\TextureFXEffect.sdfx
  • Effects\TextureFX\TextureFXGraphEffect - Kopie.sdfx
  • Effects\TextureFX\TextureFXGraphEffect.sdfx
  • Effects\TextureFX\Utils\Swizzle_Internal_TextureFX.sdsl

then solved some compile issues:

  • updated to .net8
  • GameSettingsAsset in VL.Stride Terrain folder conflicted during asset compilation → removed for now
  • ResolveRenderTargetAsSRV has to be looked at again

but after starting up I am now a bit clueless what to try to see the full glory of the new features (regarding TR).
One thing, that bothers me:
TR.Stride has activity 2 years ago. I would feel much better if those stride features would get accepted by Stride itself. It would then evolve naturally with Stride and its design decisions, .Net updates etc. So this feels a bit risky to me.

Anyway, had a look and I guess we’d need to

  • clarify some things
  • add help patches
  • discuss the TR activity issue and how to best deal with it
  • maybe also discuss how we could align in certain areas, if the TR thing is too risky. I understand that besides TR there are improvements & fixes ppl could benefit from.

So, I understand this correctly: This is up for grabs, the only thing missing is a clear common understanding on how to integrate, merge, communicate. Is that right?

Thank you, Tebjan!

5 Likes

There is a newer branch that should have fewer conflicting files and some improvements here: GitHub - SpaceMusicZH/VL.StandardLibs at feature-merge-compiled-5.3

This was merged just a few weeks ago.

And yes, the merge isn’t the main workload, it is more about checking each feature and reviewing/improving it for useability and general quality standards for an official release. The current state is more at “let’s make it work for the project”…

2 Likes