[][src]Crate rg3d

3D Game Engine.

Features:

  • Scene graph with pivot, camera, mesh, light, particle system, sprite nodes.
  • FBX Loader - both ASCII and binary. Note: Only 7100 - 7400 versions are supported!
  • Advanced node-based UI with these widgets:
    • Border
    • Button
    • Canvas (layout panel)
    • Grid (layout panel)
    • Stack panel
    • Scroll bar
    • Scroll viewer
    • Scroll content presenter
    • Text
    • Text box
    • List box
    • Window
  • Fonts - TTF Loader (compound characters are not supported yet)
  • Built-in save/load using object visitor - save/load state of engine in one call.
  • Skinning
  • Animation blending - allows you to blend your animations as you want to, i.e. idle animation can be blended with walk.
  • Animation retargetting - allows you to remap animation from one model to another.
  • Automatic resource management
    • Texture
    • Models
    • Sound buffers
  • Deferred shading
    • Point light
    • Spot light
    • Bump mapping
  • Particle systems with soft particles.
  • Sounds
  • Physics

Demos

For now there is one big project written using rg3d engine: https://github.com/mrDIMAS/rusty-shooter

Re-exports

pub use rand;
pub use rg3d_core as core;
pub use rg3d_physics as physics;
pub use rg3d_sound as sound;
pub use rg3d_ui as gui;

Modules

animation
dpi

UI scaling is important, so read the docs for this module if you don't want to be confused.

engine

Engine is container for all subsystems (renderer, ui, sound, resource manager). It also creates a window and an OpenGL context.

error
event

The Event enum and assorted supporting types.

event_loop

The EventLoop struct and assorted supporting types, including ControlFlow.

monitor

Types useful for interacting with a user's monitors.

platform

Contains traits with platform-specific methods in them.

renderer

Renderer is a "workhorse" of the engine, it draws scenes and user interface. For now there is almost no possibility to change pipeline of renderer, you can only modify quality settings. This will change in future to make renderer more flexible.

resource
scene

Contains all structures and methods to create and manage scenes.

utils

Utilities module provides set of commonly used algorithms.

window

The Window struct and associated types.

Structs

Context

Represents an OpenGL Context.

ContextBuilder

An object that allows you to build Contexts, RawContext<T>s and WindowedContext<T>s.

ContextWrapper

A context which has an underlying window, which may or may not be stored separately.

GlAttributes

Attributes to use when creating an OpenGL Context.

PixelFormat

Describes a possible format.

PixelFormatRequirements

Describes how the backend should choose a pixel format.

PossiblyCurrent

A type that Contexts which might possibly be currently current on some thread take as a generic.

Rect

Enums

Api

All APIs related to OpenGL that you can possibly get while using glutin.

ContextError

Error that can happen when manipulating an OpenGL Context.

CreationError

Error that can happen while creating a window or a headless renderer.

GlProfile

Describes the requested OpenGL Context profiles.

GlRequest

Describes the OpenGL API and version that are being requested when a context is created.

NotCurrent

A type that Contexts which are not currently current on any thread take as a generic.

ReleaseBehavior

The behavior of the driver when you change the current context.

Robustness

Specifies the tolerance of the OpenGL Context to faults. If you accept raw OpenGL commands and/or raw shader code from an untrusted source, you should definitely care about this.

Statics

GL_CORE

The minimum core profile GL context. Useful for getting the minimum required GL version while still running on OSX, which often forbids the compatibility profile features.

Traits

ContextCurrentState

A trait implemented on both NotCurrent and PossiblyCurrent.

Type Definitions

RawContext

Represents an OpenGL Context which has an underlying window that is stored separately.

WindowedContext

Represents an OpenGL Context and the Window with which it is associated.