Some Basic Concepts

About Icarus Forums Icarus Scene Engine General Some Basic Concepts

This topic contains 0 replies, has 1 voice, and was last updated by  admin 2 years, 1 month ago.

  • Author
  • #385


    Any project built using ISE starts with:

    Panel. The Panel defines the end “Screen” or “Window” that ISE renders to, and the Viewport. This rendering information is passed down the pipeline as the “Context”.

    Panels then have any number of Scene Levels attached.

    A Scene Level may be a Camera, a Group, a Scene, a Surface etc..that as Lights, Effects and Scene Objects attached to the Level (as well as other Levels).

    A Scene Object is either a Shape, Control, Geometry, an Entity, or another Level. A single renderable Scene Object then has a Material and/or Coordinates.

    A Shape is a dynamically-built shape in ISE, like a Box, Sphere, Circle, Rectangle, Text, Cylinder, Capsule, Terrain etc..

    A Control is a UI control, with a themable border, docking and anchoring options, text positioning & wrapping, and pointer events.

    Geometry is a collection of Entities. An Entity is either a Mesh, or an instance of a Mesh.

    Materials then have multiple Layers, and each Layer specifies a Texture and Component.

    during Rendering, a Material auto-generates a Shader Program, based on a Shader, which is responsible for dynamically generating the entire Vertex and Fragment shader programs based on the Material definition and current applicable Effects and Lights.

    This shader program is then uniquely identified by it’s Specification, a text-code that represents the unique material configuration.

    Coordinates are specified in one of the many internal types:

    Point (X, Y)
    Vector (X, Y, Z, W)
    Angles (X, Y, Z) in Radians
    Euler (Vector + Angles)
    PositionRotation (Vector + Rotation Matrix)
    Scalar (X, Y, Z multiplier)
    Matrix (4×4 matrix)
    Trajectory (Position, Target and Normal)
    Composite (an array of any of the above Coordinate types)

    A Surface is an off-screen rendering of a Camera to one or two Textures (Color and/or Depth). The Surface Texture can then be used to map onto another Mesh, and the Surface contains code for automatic translation of collision rays between the Mesh (inc. the Texture coordinates that were hit) and the Surface rendering.


    In addition, there are many animatable types, as animation can occur on any C# object, as long as there’s a property for it, and that property has a supported Animatable type:


    Each animation is created using a Track of the relevant type, i.e. Track. Add the Track to a Scene for it to then Animate.

    Tracks have KeyFrames, and KeyFrames have a FrameType which determines how the Key frame’s Control Points are updated.

    Many objects have helper functions for quickly creating specific tracks, i.e. a Control.TextFadeIn() creates a track for fading in the Text. There are also MoveTo, SlideTo helpers.


    The raw files that make up the Meshes, Audio and Textures.


    A SceneX file is an XML recording of a set of SceneObjects, typically an AssetCollection.

    An AssetCollection imports Meshes, Materials and Textures into the XML in a native ISE format for fast loading. An associated .scenexb file is generated to contain binary data. This means that the .scenex file itself remains editable and manageable, and the binary data doesn’t cause the XML loading to fall over once it gets large enough.


    All audio processing runs in a background thread. ISE contains a native OGG format reader.

    Physics Simulation

    ISE contains a C# native physics engine, with ODE as the basis, running in a background thread.


    ISE 4.0 now uses SharpDX on Windows for management of Joystick and Gamepad devices. Older versions used the much simpler and more restrictive OpenTK input management, which still applies to non-Windows platforms.


    ISE contains an external set of C# and C DLL’s for interfacing with FFMPeg for video streaming and video encoding.

    • This topic was modified 2 years, 1 month ago by  admin.
    • This topic was modified 2 years, 1 month ago by  admin.
    • This topic was modified 2 years, 1 month ago by  admin.
    • This topic was modified 2 years, 1 month ago by  admin.
    • This topic was modified 2 years, 1 month ago by  admin.
    • This topic was modified 2 years, 1 month ago by  admin.
    • This topic was modified 2 years, 1 month ago by  admin.
    • This topic was modified 2 years, 1 month ago by  admin.

You must be logged in to reply to this topic.

Comments are closed.