This page lists the most commonly used G3D APIs grouped into functional tasks:
Boldface links designate the most common and easy-to-use features. Indented links are subtopics; they may be helper classes or subclasses. Not all API entry points are shown in this index.
Integrated high-level infrastructure for physically-based (photorealistic) shader-driven GPU rendering and CPU ray tracing.
See also All Scene Graph
ArticulatedModel Load 3DS, IFS, PLY2, and OFF files, or construct models from code
Material
Material::Settings
SuperBSDF
Component (See also MapComponent , Component1 , Component3 , Component4 )
BumpMap
SuperSurface
Lighting Point, spot, directional, hemisphere ambient, and environment map
Sky
SkyParameters
GLight
SuperShader Customizable GPU shader for use with Material
Pass
NonShadowedPass
ExtraLightPass
ShadowedPass
GBuffer Saito and Takahashi's Geometry Buffers for deferred shading.
GCamera Pinhole camera with clipping planes
ShadowMap
GBuffer Saito and Takahashi's Geometry Buffers for deferred shading.
RenderDevice Abstraction of a graphics rendering context.
Texture A 1D, 2D, or 3D array (e.g., an image) stored on the GPU, commonly used for mapping reflectance values (colors) over meshes.
Shader A pair of functions written in GLSL that are invoked by the GPU per vertex and per pixel.
Framebuffer Holds a set of G3D::Textures or G3D::Renderbuffers for use as draw targets.
VertexBuffer A block of GPU memory within which G3D::VertexRanges can be allocated.
VertexRange A block of GPU memory storing a stream of vector data (e.g., vertices, normals, texture coordinates).
GApp For each frame, the GApp has several tasks that can be implemented by overriding base class methods.
GuiPane Container and creator of other GUI controls; obtained from a GuiWindow
GuiWindow Skinnable GUI (documentation contains GUI sample code)
GEvent , GEventType Event class and type enum, used inside an event handler
GFont Explicitly render text
GApp::onEvent , GApp::onUserInput Overridable event handlers
BackgroundWidget A full-screen texture that sits behind everything else in the scene.
UserInput Pollable keyboard, mouse, and joystick state used inside an event handler
GuiButton , GuiCheckBox , GuiDropDownList , GuiSlider , GuiRadioButton , GuiLabel , GuiTextBox , GuiTextureBox GUI controls created by GuiPanel
Widget
Surface2D 2D object scene graph, used by Widgets for rendering
Manipulator Exports a coordinate frame, typically in response to user input.
FirstPersonManipulator Uses a First Person (Quake- or World of Warcraft style) mapping to translate keyboard and mouse input into a flying camera position.
ThirdPersonManipulator By default, the ThirdPersonManipulator moves an object relative to its own axes.
msgBox Create a new OS window popup message
debugAssert Assertion macro with friendly dialog box in DEBUG builds
debugPrintf Prints to the 3D console, terminal, and log.txt
screenPrintf Prints information that repeats every frame to the screen
debugDraw Draw a shape for debugging purposes
consolePrintf Prints to the 3D console and log.txt
logPrintf Prints to log.txt
GApp::debugPane Add your own debugging GUI controls to this provided window
debugPrintf Prints to the terminal (Unix) or Output Window (Win) in DEBUG builds
logPrintf Prints to the log.txt file (which you should regularly check for warnings!)
Draw Render simple geometric primitives without loading a model
debugAssertM Assertion macro with a string message in DEBUG builds
alwaysAssertM Assertion macro that remains even in optimized builds
GApp::catchCommonExceptions Turn uncaught exceptions into assertion failures
Log Guarantees output is written to disk before Log::printf returns
describeSystem Returns a string describing the current machine
isValidHeapPointer Used in assertions to identify bad pointers
isValidPointer Used in assertions to identify bad pointers
setAssertionHook Override the behavior of assertion failures
setFailureHook Override the behavior of alwaysAssertM failures in RELEASE builds
GApp::showDebugText Enable GApp::debugPrintf output
Sky Skybox, moon, sun, and stars
IFSModel Rigid body
ArticulatedModel Rigid bodies connected by joints, loads 3DS and IFS models
BSPMap Quake 3 map
MD2Model Quake 2 character
Surface Static object that is prepared for rendering. Exposes geometry and adjacency information
GCamera Pinhole perspective camera abstraction
Shape Geometric primitives primarily used for bounding volumes and debugging
Material BSDF; surface material properties
Shadow rendering algorithms first determine shadowed locations, and then paint ambient illumination everywhere, and finally add illumination only in non-shadowed areas. There are two major algorithms for determining the shadowed locations in real-time, shadow volumes and shadow maps. G3D supports both, on programmable and fixed function hardware.
VideoInput Read from AVI, MPG and other video files in real-time
VideoOutput Write video files
Draw::rect2D Stretch a Texture over a rectangle on screen
Texture GPU image representation
Framebuffer An "off-screen" rendering surface used for image processing on the GPU
Image3 RGB floating point image
Image1 Monochrome floating point image
Image4 RGBA floating point image
Image1uint8 8-bit Monochrome image
Image3uint8 24-bit RGB image
Image4uint8 32-bit RGBA image
Color1 , Color3 , Color4 Floating-point monochrome, RGB, and RGBA color (no clamping)
Color1uint8 , Color3uint8 , Color4uint8 8-bit Monochrome, 24-bit RGB, and 32-bit RGBA color (clamped to 0-1 / 0-255)
GImage Fast but harder to use mono-8, RGB-24, or RGBA-32 image
Map2D Templated image class, e.g., for creating normal maps or arbitrary grids of values
WrapMode Specifies how out-of-bounds image locations are treated for Texture, Map2D, and Image classes
gaussian1D Generate 1D blur filter coefficients
GaussianBlur Fast GPU 1D blur
ToneMap Gamma correct, adaptation, and bloom for realistic lighting
beginsWith , endsWith
format Convert numbers to strings (a safe sprintf)
isSlash , isWhiteSpace , isDigit , isNewline , isLetter , isQuote
stringSplit , stringJoin
toUpper , toLower Change case
trimWhitespace Remove blanks at the beginning and end of a string
STR Macro for creating large blocks of quoted text, usually used with Shader
TextInput (TextInput::FROM_STRING , ...)Tokenizer for parsing complex strings
Any Encodes typed, structured data and can serialize it to a human readable format that is very similar to the Python language's data syntax.
BinaryInput , BinaryOutput
TextInput , TextOutput
getFiles , getDirs Get a directory listing, including wildcards
readWholefile , writeWholeFile
AnyVal Can hold any common value and read/write tables of named values. Very useful for making configuration files
copyFile
createTempFile
filenameContainsWildcards , filenameBaseExt , filenameExt , filenamePath , pathConcat , parseFilename Filename parsing and manipulation
isDirectory , fileIsNewer , fileExists , fileLength File testing and comparison
Ray tracing and physical simulation both compute intersections between geometric primitives. G3D distinguishes between "moving" collision detection, where two objects are moving with relative constant velocity; and "fixed" detection where where the relative velocity of the objects is zero. The two problems are related. A "moving point" is the same as a fixed ray, a "moving sphere" is a fixed capsule, and so on. Thus for ray tracing one often uses "moving point" collision detection instead of rays (which is reasonable, since ray tracing simulates photons moving around a scene).
TriTree Static bounding interval hierarchy for Ray-Tri intersections.
Intersect
CollisionDetection Moving and fixed collisions between many kinds of primitives
Ray , Sphere , Plane , Box , AABox , Triangle , Tri , Plane , Line , Cylinder , Capsule , Shape Geometric primitives
DirectionHistogram A histogram on the surface of a sphere.
MeshAlg Routines for operating on triangle meshes
KDTree Axis-aligned binary space partition tree for O(log n) collision detection
PointKDTree AABSP tree optimized for zero-extent objects. Primarily used as a photon map
GCamera::worldRay Obtain the ray through a pixel
Image3 , Image4 Useful for software rendering output and texture maps
Vector3::reflectionDirection , Vector3::refractionDirection
ReliableConduit Message-based TCP infrastructure ideal for most games
NetListener Server-side way of listening for incoming connections
BinaryInput , BinaryOutput Used by serialize/deserialize methods to binary encode messages for transfer.
NetAddress IP, port, and hostname addressing
LightweightConduit Message-based UDP infrastructure. Allows multi-cast and NAT traversal, but at the cost of unreliable transfer.
G3D Innovation Engine documentation generated on Fri Nov 20 15:04:16 2009 using
1.5.9