TR.Stride
Various stride utilities / projects (stride3d.net)
![Atmosphere and Ocean Screenshot Atmosphere and Ocean](https://github.com/johang88/TR.Stride/raw/master/Screenshot.jpg?raw=true)
TR.Stride.Atmosphere
Implementation of https://github.com/sebh/UnrealEngineSkyAtmosphere
Usage
- Add
TR.Stride.Atmosphere
to your project
- Add AtmosphereRenderFeature to graphics compositor
- Add SimpleGroupToRenderStageSelector to the newly added render feature, set effect name to AtmosphereRenderSkyRayMarchingEffect
- In MeshRenderFeature add a new sub render feature `AtmosphereTransparentRenderFeature
- MeshRenderFeature render stage selector change effect name in Mesh Transaprent render stage selector from ForwardShadingEffect to AtmosphereForwardShadingEffect
- Change LightDirectionalGroupRenderer to AtmosphereLightDirectionalGroupRenderer in MeshRenderFeature -> ForwardLightingRenderFeeature
- Make sure "Bind Depth As Resource During Transparent Rendering" is checked on the Forward renderer node (this is the default setting)
- Create game object, add light component with type = Sun, this is basically just a regular directional light.
- Create game object, add atmosphere component, link with sun light
- Done :)
Issues
- Atmosphere can not be moved
- Diretional light might be incorrect in editor after a hot reload, this is due to an issue in stride where component references are not correctly restored
TR.Stride.Ocean
Implementation of https://github.com/gasgiant/FFT-Ocean/
Usage
- Add
TR.Stride.Ocean
to your project
- Create an empty entity
- Add OceanComponent to the entity
Customization
Custom materials and models can be generated by implementing the IOceanMesh
and IOceanMaterial
interfaces, default implementations of a basic lod material and corresponding clip mesh are provided. The material implementation can be set to return null
in case custom render features are used instead of the regular material system.
Issues
- Currently requires that you have at least one other model in your scene, it will crash due to a missing model processor otherwise.
- No MipMaps atm, generation exists in the code base but it does not look very well. Uncomment code in
WaveCascade.cs
to enable, and modify OceanEmissive.sdsl
to use TextureName.Sample(sampler, uv)
instead of TextureName.SampleLevel(sampler, uv, 0)
to enable usage in pixel shader.