| Support Forum Library Source SourceForge Page G3D Web Page |
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.
| Scene | Sample scene graph. | |
| Entity | Base class for objects in a G3D::Scene. | |
| | Base class for Entitys that use a built-in G3D model class. | |
| Camera | Abstraction of a lens or pinhole camera. | |
| | Post processing: gamma correction, exposure, bloom, and screen-space antialiasing. | |
| | Makes multiple gather passes. | |
| | Simple defocus post-process shader. | |
| Lighting | A rich environment-lighting model that contains both global and local sources. | |
| | An (invisible) emitting surface (AREA) or point (DIRECTIONAL, SPOT, OMNI) light. | |
| | ||
| | Screen-space ambient obscurance. | |
| ArticulatedModel | Load 3DS, IFS, PLY2, and OFF files, or construct models from code | |
| | ||
| | ||
| | ||
| | (See also MapComponent, Component1, Component3, Component4) | |
| | ||
| | ||
| MD2Model | Quake 2 character | |
| RenderDevice | Abstraction of a graphics rendering context (GPU). | |
| 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 | Abstraction of the programmable hardware pipeline. | |
| | All arguments. | |
| VertexBuffer | A block of GPU memory within which G3D::AttributeArrays for vertex, texcoord, normal, etc. | |
| | A block of GPU memory storing a stream of vector data (e.g., vertices, normals, texture coordinates) | |
| | A stream of indices referencing into an AttributeBuffer. | |
| Framebuffer | Holds a set of G3D::Textures or G3D::Renderbuffers for use as draw targets. | |
| GBuffer | Saito and Takahashi's Geometry Buffers, typically used today for deferred shading. | |
| Surface | The surface of a model, posed and ready for rendering. |
| GApp | Optional base class for quickly creating 3D applications. | |
| 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 text1 | |
| GApp::onEvent, GApp::onUserInput | Overridable event handlers | |
| UserInput | Pollable keyboard, mouse, and joystick state used inside an event handler | |
| GuiButton, GuiCheckBox, GuiDropDownList, GuiSlider, GuiRadioButton, GuiLabel, GuiTextBox, GuiTextureBox, GuiTabPane | 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. | |
| | Uses a First Person (Quake- or World of Warcraft style) mapping to translate keyboard and mouse input into a flying camera position. | |
| | 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 |
| Profiler | Measures execution time on the CPU and GPU of parts of a program. | |
| Stopwatch | Accurately measure durations and framerates. | |
| RenderDevice::Stats | Reports measured GPU performance and throughput. | |
| GApp::showRenderingStats | Display performance information on the 3D window | |
| System::mallocPerformance, System::mallocStatus, System::resetMallocPerformanceCounters | Measure heap size and detect memory leaks | |
| System::beginCycleCount, System::endCycleCount | Cycle-accurate timing of very short routines |
| Image | Provides general image loading, saving, conversion and pixel access. | |
| PixelTransferBuffer | Base class for transfering arrays of pixels between major classes, generalized over CPU arrays, memory-mapped files, and OpenGL Pixel Buffer Objects. | |
| Texture | GPU image representation | |
| 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 | |
| RenderDevice::applyRect | Assumes push2D mode is already active. | |
| RenderDevice::push2D | ||
| Framebuffer | An "off-screen" rendering surface used for image processing on the GPU | |
| Image3 | RGB floating point 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) | |
| 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 | |
| Film | 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 OldShader | |
| TextInput(TextInput::FROM_STRING, ...) | Tokenizer for parsing complex strings |
| Any | Easy loading and saving of human-readable configuration files. | |
| BinaryInput, BinaryOutput | ||
| TextInput, TextOutput | ||
| FileSystem | ||
| filenameContainsWildcards | ||
| readWholefile, writeWholeFile | ||
| createTempFile |
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, | |||
| RayGridIterator | Computes conservative line raster/voxelization across a grid for use in walking a grid spatial data structure or or voxel scene searching for intersections. 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 | ||
| Camera::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. |
| GThread | Platform independent thread implementation. | |
| ThreadSet | Manages a set of threads. | |
| GMutex | Mutual exclusion lock used for synchronization. | |
| Spinlock | A mutual exclusion lock that busy-waits when locking. | |
| AtomicInt32 | An integer that may safely be used on different threads without external locking. | |
| MemoryManager | Abstraction of memory management. | |
| | Allocates memory on 16-byte boundaries. | |
| | A MemoryManager implemented using the C runtime. | |
| | Allocates memory in large blocks and then frees it as an area. |
1.8.2