Support Forum       G3D Web Page     
Samples


Starter (G3D10/samples/starter)

A good starting point for building your own G3D programs. Has subdirectory structure, a journal, a Windows resource file, and standalone solution files. Just copy everything from samplers/starter to your own directory and rename starter.sln. Do not rename main.*.

To aid in discovering methods, the sample App class overrides most G3D::GApp event handling methods. You do not have to do this... the default GApp::onGraphics3D, GApp::onPose, and other methods are fine for most programs. (This is the program that iCompile creates for you in an empty directory on Linux and MacOS.)

VR Starter (G3D10/samples/vrstarter)

A good starting point for VR applications. Optimized to provide performance for VR rendering and based on the G3D::VRApp base class, which extends G3D::GApp with some VR-specific elements. Built-in teleportation, elevation adjustment for the player, and support for pluggable gaze-tracking solutions. Automatically falls back to emulating a HMD and gaze tracker if physical ones are not present.

Tiny Starter (G3D10/samples/tinyStarter)

Like starter, but without the directory structure, scene loading, journal, and default event handler method overrides. If you're making a small prgram and want the minimal GApp subclass, this is a good place to start.

Viewer (G3D10/tools/viewer)

Loads most data files supported by G3D, including, OBJ, FBX, 3DS, STL, IFS, GTM, MP4, PNG, JPG, FNT, ArticulatedModel.Any, UniversalMaterial.Any, and displays them in an appropriate manner. Use this for previewing objects, discovering font characters, and debugging data files.

All Stages Shader (G3D10/samples/allStagesShader)

Shows domain (tessellation), hull, vertex, geometry, and fragment (pixel) shaders. While these are fully supported both by G3D and OpenGL, in practice most developers are migrating to either vertex + pixel or mesh + pixel shaders as the other stages have not proved a good fit for most GPU algorithms.

  • G3D::Shader
  • Tessellation, hull, geometry, vertex, and pixel shader

CPU Real Time Ray Trace (G3D10/samples/cpuRealTimeRayTrace)

Program that shades ray hits on the CPU. The actual ray-triangle intersection will be CPU or GPU depending on your graphics card and processor.

Deep G-Buffer Radiosity (G3D10/samples/deepGbufferRadiosity)
  • Screen space effects
  • Complex GUI development
  • G3D::GBuffer
  • Splitscreen rendering

Entity (G3D10/samples/entity)

A spaceship flying video game demonstrating how to mix procedural and data-driven Entity construction.

Geometry Shader (G3D10/samples/geometry)

Image Processing (G3D10/samples/imageProcessing)

A good starting point for 2D image operations in G3D, where the input and output tend to be in Textures and most passes are fullscreen.

Implict Planet Shader (G3D10/samples/implicitPlanet)

A "shadertoy"-style implicit surface with multiple passes for different effects at different resolutions. Demonstrates render-to-texture as well as advanced shader techniques.

Maximum Performance (G3D10/samples/maxPerf)
Image coming soon–example under construction!

A stripped down rendering loop designed for near-minimal latency and near-peak throughput. This has simple graphics and is intended for display measurements in research when measuring the upper bound ("speed of light") performance for graphics. The approach taken here would not scale for complex graphics and interaction, where the usual G3D::Scene and G3D::Surface infrastructure performs high-level optimizations but incurs some fixed overhead.

Minimal OpenGL (G3D10/samples/minimalOpenGL)

An example of using OpenGL without most of G3D's abstractions. This is intended for teaching OpenGL and creating minimal bug reports for graphics card vendors. It makes a clear case for why it is usually much more efficient for both the programmer and the computer to build applications on a higher-level engine.

  • Raw OpenGL initialization and implementation
  • Raw OpenVR initialization and implementation
  • Procedural texturing
  • Direct use of uniform interface blocks
  • Direct use of textures and framebuffers

Multiple Views (G3D10/samples/multiview)

Rendering to multiple viewports to create a CAD-like application

md

Net Chat (G3D10/samples/netChat)

Path Tracer (G3D10/samples/pathTracer)

Provides a GUI for non-realtime rendering with the built-in PathTracer class. Automatically GPU accelerated on NVIDIA graphics cards via OptiXTriTree.

Pixel Shader (G3D10/samples/pixelShader)

Primary Ray Trace (G3D10/samples/primaryRayTrace)

Using G3D::TriTree to cast arbitrary rays. This technique is useful for light field and VR displays as well as tracing reflection probes. This example shows a fisheye projection with full GPU shading.

Procedural Geometry (G3D10/samples/proceduralGeometry)

Ray Marching (G3D10/samples/rayMarch)
  • Extensive pixel shader and fractal geometry
  • VR rendering

Remote Rendering (G3D10/samples/remoteRender)

Shadertoy (G3D10/samples/shadertoy)

Mimics the shadertoy.com interface to allow desktop offline ports of shaders with minimal changes.

FPS Game (G3D10/samples/simpleGame)

Simple game infrastructure demonstrating collision detection and first person movement.

Texture2DArray (G3D10/samples/texture2DArray)


documentation generated on Wed Nov 24 2021 08:01:52 using doxygen 1.8.15