top of page

Space Engineers 2: Rendering Engineering Work

  • Writer: Landon Townsend
    Landon Townsend
  • Oct 23
  • 2 min read

Updated: Dec 5

All images taken from Marek's Dev Diary and in game from the VS2 release

Unfortunately, I cannot show before and after comparisons for some of these techniques, due to lack of access to the source code. I have tried to include descriptions when relevant in order to compensate for this.


Raytraced Global Illuminations and Reflections

I prioritized performance, stability, lack of noticeable artifacts and correct "feel," over source of truth accuracy. I would have liked to work on this more, but my attention was pulled to other work when this was "good enough."

This involved a lot of novel work to make it effective in our highly dynamic environment, which requires visual stability within the interiors of moving ships.

ree
ree

ree
ree

Shown below is a screenshot demonstrating the combination of raytraced GI/reflections with non-raytraced direct lighting

ree

Volumetric Clouds, Atmosphere and Sunsets:

The implementation is too complex for me to go into in a quick post, but the visuals speak for themselves. Clouds and atmospheres are both made to work with the transition of the player/camera from the planet surface to space.

ree
ree
ree
ree
ree

Heuristic Anti-Aliased Shadow Sampling

This technique uses quick math on quad groups of sampled shadow texels to approximate edge direction and stretch the resulting elliptical sample. It helps straighten out lines that would otherwise have crooked bumps or lose detail with normal shadow mapping. It's a novel technique. but in hindsight, a bit expensive. However, artists wanted sharp shadows on higher settings, so it worked out with the artistic vision.

ree

Split First/Third Person Character Shadows, Smooth Shadow Sampling

This involves the rendering of extra higher-texel-density shadow maps for the character, and separate maps/stencils so that a third person shadow can render while the character is in first person.

ree
ree

Deferred Light Clustering / Real Time Radius Adjustment

This video shows an implementation of deferred clustering with real time adjustment to light radii in extreme edge cases, to maintain performance.


PBR Material Refactor: Switch From Blinn-Phong to GGX Lighting Model

This involved switching to industry standard GGX model, along with various refactors to the material pipeline. Among these were importance sampled environment maps, and normal variation to roughness mipmap generation, with a pull request submitted to Microsoft's TexAssemble repository for assembling a texture from mipmaps.

ree

Terrain (Collaborative Work)

I stabilized tessellation by generating the mip levels sampled from the displacement map, using the approximate triangle size. This keeps displacement mapped vertices from "wiggling" as the distance changes and tessellation adjusts.

ree

The screenshot below shows the incorporation of noise in material overlap regions, for natural looking transitions between materials.

ree

I was also responsible for the implementation and polish of height blending functionality.

ree

In addition, I contributed various work on things like performance improvements and bugfixes.


Dynamic Armor Bevels

With this novel technique, armor faces on a grid are processed on the CPU and data is sent to the GPU in order to render bevels on edges.


Before:

ree

After:

ree

Stabilization of problematic grate pattern under FSR/TAA

With this implemented, turning FSR/TAA on changes the parallax/cutout/sample bias behavior specifically for these grates, in order to prevent flickering/streaking artifacts and keep a smooth appearance and impression of transparency. It's a novel technique but also fairly simple.

ree
ree

 
 
 

Comments


Featured Posts
Recent Posts
Archive
Search By Tags
Follow Us
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square
bottom of page