Download Project

NRG showroom
Load the project in the NRGeditor then press the top right button to Start. Navigate the ShowRoom using your Keyboard and Mouse; each room introduces one or multiple types of NRGobject(s). To get more details about a certain Object simply get closer to its dedicated stand; more information and its common usage will appear on screen.

To learn more about a specific Object setup simply press the Esc key to enter Edit Mode; then select the desired Object and inspect its current Settings and Properties.

 StandardMesh

  • StaticMesh cannot be deformed but can contain LODs; they are usually used to represent static geometry within a level (ie. walls, floors etc...).
  • DynamicMesh has the ability to deform itself at runtime. There are two ways this type of Object can change its topology; either using SoftBody physics or by adding one or more MorphTarget.
  • SkeletalMesh can also be deformed but based on a Skeleton Asset. Based on an Animation sequence the Skeleton bones and joints are animated and as a result, deform the vertices of the Mesh attached to it.
 FracturedMesh

  • Creates Mesh Objects that can be destroyed at runtime.
  • Connected to a Fracture Asset a FracturedMesh can be destroyed based on the pre-calculated chunks contained in the Asset data.
  • Multiple Fracture Assets can be generated for the same FracturedMesh allowing you to link them dynamically at runtime to simulate that each time the Object breaks differently.
 LightSource

  • LightSource Object allows you to control the data of the most commonly used punctual light types.
  • They can handle by default all necessary properties for Ambient Light (+Spherical Harmonics), Sun Light (directional), Lamp (point light) and, Spots (directional cone or square light).
  • Once a LightSource is available in your Scene it is up to you to send the information to either a Fragment or a Compute Shader to calculate lighting.
 ParticleSystem

  • ParticleSystem Objects allows you to position in space and control at runtime an existing ParticleNetwork Asset which can be connected in three different ways.
  • Discrete: Create a full copy of the ParticleNetwork and force each particle to be updated independently.
  • Template: Update the ParticleNetwork once and reuses the calculation for all subsequent Templates using the same ParticleNetwork.
  • Instance: Forces a constant update of the connected ParticleNetwork for each ParticleSystem Object.
 EnergyField

  • An EnergyField is a special type of Object that acts as an attractor and is used to simulate real-world phenomenons.
  • EnergyField Objects can interact with other Object Transformation, Particles, SoftBody and, RigidBody Physics.
  • Eight default types of fields are available by default: Power, Wind, Swirl, Spin, Drag, Reflect, Turbulence and Tunnel.
 Probe

  • A Dynamic Probe Objects can perform 2d or 3d RTT (render to texture) operations from an arbitrary point in space.
  • When set to Static they can be used as Projectors and project onto a Scene either a 2d Texture or a 3d Cubemap.
  • Probes can be used to generate radiance and irradiance maps at runtime, generate dynamic shadow maps (either single or cascaded), and more.
 SoundSource

  • SoundSource are Objects that can be used to position 2d and 3d sounds in space; they can either play sounds directly or be buffered.
  • A SoundSource can either be Positional, Directional, or use to playback an Ambient track.
  • SoundSource can be connected to AudioFilters (low, high, and bandpass) and AudioEffects (such as echo or reverb) for a higher level of immersion.
 Ray

  • Ray Objects can be used to perform RayCast against Scene geometry, Physics World and existing Navigation Maps.
  • They can either be used as a standalone Object or can be Parented allowing you to easily implement logic code based if the ray hit or a miss.
  • Rays can be used to create ie. laser sight, various types of triggers; they can be used to control a locomotion system that controls inverse kinematics constraints etc.
 Region

  • Regions are used to create Volume based triggers in space.
  • Based on a specific type of Bounds they can detect if certain Objects either Enter, Leave or currently Intersect a specific Region volume.
  • Customized Logic Scripts can be created to take action based on the Events triggered by a specific Region.
 Miscellaneous

  • An Empty is the most basic form of an Object and simply contains a transformation. They can be used as placeholders or to mark a certain location in space.
  • Route Objects allows you to either connect an existing Path Asset or to generate a dynamic Navigation path at runtime. They can be used to drive an NPC in space, create Camera paths, and more.
  • Text Objects allow you to draw either in 2d or 3d True Type Font string to display either static or dynamic on screen information.

Renderer Features
The renderer implemented for this demo contains the following features and graphics functionalities. To get started using it inside your projects simply extract the NPK and get started!

Full PBR Workflow (Roughness + Metallic)
Emissive Surfaces + Glow & Bloom 6x
Depth Of Field
Multisample Antialias 4x + FXAA
Vignette, Filmic Grain
Pre-calculated Radiance and Irradiance Cubemaps
Ambient Occlusion & Reflections
Filmic Tonemapping (ACES)

Screen Space Ambient Occlusion
Contrast, Brightness, Exposure and Gamma Tuning Knobs