Classes in this module implement FUSEE's 3D rendering capability. Many classes contain methods that enable user code to render 3D content, create 3D output windows, create and maniulate scene contents, organize scene contents in scene graphs, etc.
Among the most important classses are
Some of the functionality relies on platform specific implementations found in underlying platform-dependent modules. Common classes used by both, this module and underlying platform-dependent implementation modules can be found int the Fusee.Engine.Common namespace.
Axis-Aligned Bounding Box Calculator. Use instances of this class to calculate axis-aligned bounding boxes on scenes, list of scene nodes or individual scene nodes. Calculations always include any child nodes.
The Audio class provides all audio functionality. It is accessible from everywhere.
A box shaped collision object.
A capsule shaped collision object.
Use this component to add Code to Objects in the scene graph. Will not serialize/deserialize
Base class for various collision shape types.
A collision shape made up of other shapes of various types.
Defines a cone-shaped collision object
A cone twist constraint
Use ConVSceneToHighLevel to create new high level graph from a low level graph (made out of scene nodes and components) in order to have each visited element converted and/or split into its high level, render-ready components.
This is the fastest kind of arbitrary shape. It is defined by a cloud of vertices but the shape formed is the smallest convex shape that encloses the vertices. For making a convex dynamic shape like a TV, this is ideal. Make sure to reduce the number of vertices below say 100.
Creates a simple cube geometry straight from the code.
Parameters sent with aor event.
A container that stores indices for vertices, normals and texture coordinates. The values are used for conversion to different geometry face formats, e.g. Triangles.
A FontMap creates an Image containing a subset of rendered glyphs of a given Font. In addition a FontMap provides information about each glyph on the image such as its pixel position on the image. Such an image can be used together with the provided information to create geometry consisting of individual quads with each quad displaying a single character of a text string.
Stores threedimensional, polygonal geometry and provides methods for manipulation. To actually render the geometry in the engine, convert Geometry to Mesh objects.
Creates a Icosahedron geomentry straight from the code.
Creates a Icosphere geomentry straight from the code.
Handles and manages all input devices. Input is a staticton (a singleton with an additional static interface).
Input device instances expose access to underlying physical input devices such as mouse, keyboard, game pads etc. Users can either poll axis values or button state from an Input device or add event listeners reacting on value or state changes, no matter how the underlying physical device provides axis or button data. Additionally users can define their own axes by specifying calculation rules how to generate values from existing axes or buttons.
Creates a fusee-compatible mesh from a triangulated Jometri geometry
This class is used to load 3D Models in .obj format into memory.
Core network object. Handles all connections by accessing underlying interface implementations.
Creates a plane geometry straight from the code that is divided in 9 tiles. This geometry is intended for displaying GUI Textures.
Creates a simple plane geometry straight from the code.
A render canvas object references the physical output screen space real estate (e.g. the rendering window). A typical Game application will inherit from this class and overrite methods to implement your user code to to be performed on events like initialization, resize, and display refresh. In the future, it will be likely that this class' functionality will be divided at two different places with one containing the more view oriented aspects and the other containing the more application oriented aspects.
The render context contains all functions necessary to manipulate the underlying rendering hardware. Use this class' elements to render geometry to the RenderCanvas associated with this context. If you have worked with OpenGL or DirectX before you will find many similarities in this class' methods and properties.
Use instances of this class to store a set of render states that need to be applied as a whole. Instances are used in the effects system to set a couple of states before a render pass is performed.
The RigidBody class ...
Use a Scene Renderer to traverse a scene hierarchy (made out of scene nodes and components) in order to have each visited element contribute to the result rendered against a given render context.
Compiler for ShaderCode. Takes a MaterialComponent, evaluates input parameters and creates pixel and vertexshader
A ShaderEffect contains a list of render passes with each pass item being a combination of a set of render states, and a pair of Pixel and Vertex Shader Programs (the code running on the GPU). In addition a ShaderEffect contains the actual values for all the shaders' (uniform) variables.
Use this component in Code. Will not serialize/deserialize
Handles settings of shaderprograms. Currently not implemented.
Instances of this class represent a pair of a Vertex and a Pixel shader code, both compiled an uploaded to the gpu ready to be used.
Creates a simple sphere geometry straight from the code.
EventArgs to propagate changes of a Texture object's life cycle and property changes. Used inside .
The Time class provides all time information. Time is a staticton (a singleton with an additional static interface).
A datatype for the list of (uniform) parameters possibliy occurring in one of the shaders in the various passes. Each of this array entry consists of the parameter's name and its initial value. The concrete type of the object also indicates the parameter's type.
An effect pass declaration contains the vertex and pixel shader source code as well as a RenderStateSet declaration for the rendering pass declared by this instance.
Used in conjunction with a FontMap containing information about a rendered character (glyph) on a font map texture.
This struct saves a light found by a Viserator with all parameters
A delegation for the event listeners of a CodeComponent.
All supported lightning calculation methods LegacyShaderCodeBuilder.cs supports.
Enum describes if a Texture has been disposed or if the texture's region changed. Used inside.
Symbolic value describing the double-touchpoint action with the highest intensity performed by a user with the first two touchpoints.