G3D

G3D project is a high-performance 3D graphics for games and simulations.
Download

G3D Ranking & Summary

Advertisement

  • Rating:
  • License:
  • BSD License
  • Price:
  • FREE
  • Publisher Name:
  • Matrix
  • Publisher web site:

G3D Tags


G3D Description

G3D project is a high-performance 3D graphics for games and simulations. G3D project is a high-performance 3D graphics for games and simulations.G3D is a C++ library for game developers, researchers, and students. It is a base of robust and high performance code common to most 3D projects. It is not a stand-alone graphics or game engine, but is a set of pieces to jump start your own engine or graphics project. The library has two parts: G3D for pure math, and GLG3D for interacting with hardware acceleration via OpenGL. You can use G3D without GLG3D if you want to use another 3D API (like DirectX) or don't like the OpenGL abstraction.What's New in This Release:· This release contains a hardware accelerated, skinnable OpenGL GUI, a new user manual, a new unified build system for all platforms, zipfile loading, and hundreds of other new features. What's New in This Release: · Video file reading and writing via FFmpeg added · Added computeBounds method to ArticulatedModel::Part that calls computeBounds on each TriList. Changed updateAll to automatically call computeBounds · Added constructor to Matrix4 to construct a matrix from an upper-left 3x3 submatrix and an upper-right 3x1 submatrix · Incompatible change: RegistryUtil functions now require an explicit value parameter instead of extracting the value from the key string. · Incompatible change:GApp now calls the onLogic handler before the simulation handlers but after the user input and network handlers · Incompatible change: Changed GHashCode and other functors to traits. See guidenewuser. Added typedefs and adapters to make this mostly backwards compatible. · Added parallax occlusion mapping to G3D::SuperShader (specify Material::parallaxSteps > 1) · Added normal mapping to G3D::SuperShader (specify Material::parallaxSteps == 0) · G3D::Texture resizes textures that exceed the device maximum size · G3D::Array now allows control over MIN_ELEMENTS and MIN_BYTES using template parameters · Clarified G3D::Any file format in documentation · G3D::Texture::PreProcess::gammaAdjust · G3D::ShadowMap::lightProjection(), G3D::ShadowMap::lightFrame() · Added Barycentric coordinates to CollisionDetection::isPointInTriangle · G3D::RenderDevice::beginOpenGL, G3D::RenderDevice::endOpenGL · PointAABSPTree::clearData · AABSPTree -> KDTree · GApp now allows the MidgetManager to process events in onEvent before the GApp::onEvent executes · Added spotlight support to SuperShader · Switched SuperShader to use ph · Adjusted standard deviation used in G3D::GaussianBlur to provide smoother filtering · Put HashTrait and EqualsTrait in their own headers separate from Table.h · ArticulatedModel::facet · Renamed GWindow to G3D::OSWindow · ReferenceCountedPointer now asserts that the pointer is not NULL on method invocation · G3D::ShadowMap now computes appropriate matrices for spot lights · Added ImageFormat::convert · 3- and 4- argument min and max · G3D::GaussianBlur now correctly sets the output viewport · G3D::Framebuffer::clear · IFSModel and ArticulatedModel now load Princeton Shape Benchmark OFF files. · G3D::Any CoordinateFrame now serialized using angles · CameraControlWindow now prints angles in degrees · ImageXXX classes now have a format() method · OSWindow::create · MeshAlg::toIndexedTriList now supports TRIANGLE_FAN input. · Tuned Table and hash functions for performance · GEvent::toString · G3D::TextInput now treats characters with ASCII code greater than 127 as symbols · G3D::ThreadSet · G3D::Texture::white · G3D::Matrix4::upper3x3 · G3D::Matrix4::homoMul · ArticulateModel::fromFile now takes a Matrix4 instead of a CoordinateFrame to allow arbitrary linear transformations. · ArticulatedModel::createCornellBox · Material::createDiffuse · ImageFormat::convert · G3D::filenameBase · Removed SDL_SysWMEvent, which was never supported by GEvent anyway · Removed TextureFormat::SAME_AS_SCREEN to break dependence on OpenGL · TextureFormat has been renamed to G3D::ImageFormat and moved into G3D.lib · Added variable time control points to G3D::Spline · Gui controls now have configureable GuiControl::setCaptionSize · Gui controls now default to no indent if the caption is "" (use " " for indent with no caption) · G3D::GuiContainer · G3D::GThread::started · buildg3d installation arguments changed--see · G3D::Vector3int32 · GuiButton now accepts an optional callback function/method · FileDialog now accepts an extra "note" argument · FileDialog::getFilename non-static to support subclassing · System::currentDateString · Expanded G3D::ArticulatedModel documentation · Build system now executes on multiple processors (about 1.8x speedup for dual-core) · Build system now caches dependencies (about 5x speedup for small incremental builds) · Patched LOAD_EXTENSION to work around gcc pointer-to-function cast issues · Tool buttons added to a G3D::GuiPane automatically align to the previous one. · Added invisible GuiPane style · G3D::uint128 · Increased BSPMap rendering by 10% by reducing state changes · Added prompt argument to FileDialog::getFilename · G3D::PosedModel::getBoxBounds on an array · G3D::PosedModel::getSphereBounds on an array · Changed RenderDevice::screenshot to save .png instead of .jpg files · G3D::SuperShader now supports a customMap and customConstant for experimenting with shaders. · G3D::SuperShader now does not ever light the "back" of a bump-mapped poly, even if the bumps should create a light-facing surface · G3D::Material promoted to its own class (was G3D::SuperShader::Material) · G3D::Matrix2 · G3D::VertexAndPixelShader::ArgList::size · G3D::pathConcat · G3D::WidgetManager::moveWidgetToBack · SuperShader / NonShadowed.pix now uses arrays of lights instead of separate variables · Reduced cost of release-mode Shader argument validation · G3D::PosedModel::sortAndRender now performs view-frustum culling of objects · G3D::Draw::lighting for visualizing light sources · G3D::SuperShader::Pass::purgeCache · G3D::GuiSlider::setRange · G3D::GuiPane::addPane no longer takes a · G3D::VertexAndPixelShader::ArgList::remove · Optimized G3D::Matrix::pseudoInverse; now about 2x faster · G3D::GLight::effectSphere · G3D::GuiWindow::moveTo · G3D::GuiWindow::setEnabled, enabled · G3D::GuiButton now sizes to its caption · G3D::GuiSlider now fires events on change and drag · G3D::Shader arguments (in G3D::VertexAndPixelShader::ArgList) may now be "optional" · G3D::GLight::point now has quadratic attenuation by default. · G3D::ImageFormat::name · g3dmath.h now includes inttypes.h on gcc and simulates it on visual studio · G3D::RenderDevice::cullFace · G3D::LineSegment2D::intersection · G3D::BinaryInput::setEndian · G3D::GEvent::MOUSE_BUTTON_CLICK · Generalized ShadowMap to work with spotlights as well as directional lights · G3D::GLCaps::supportsTexture, G3D::GLCaps::supportsRenderBuffer · Opaque G3D::ArticulatedModels now support more than 2 non-shadow casting light sources · Added proof symbol parsing to TextInput · Added G3D::AABox::corner() to match G3D::Box::corner() · OS X: G3D::CarbonWindow · OS X: iCompile now generates OS X application bundles and dmg files · OS X build no longer depends on X11 · G3D::FileDialog · G3D::Table now allows overriding the default equality operator for keys · Incompatible change: GApp::onBeforeSimulation now allows mutation of the timesteps · Incompatible change: Merged GApp::simTime and idealSimTime (the sim time is now idealized) · cmake now generates project files for Xcode, MinGW, and all Visual Studio versions · OS X: icompile and buildg3d now generate universal binaries on Intel machines · G3D::PosedModel::objectSpaceTangents · G3D::IFSModel::fromData · G3D::MeshAlg::generateGrid · G3D::BinaryOutput::ok() · G3D::generateFilenameBase · G3D::IFSModel::fromFile now defaults to not welding for improved performance · G3D::IFSModel members are now protected to allow subclassing · Removed G3D::uint in favor of G3D::uint32 · Added G3D::GMaterial(TextureRef) constructor · Made G3D::GMaterial fields floats · G3D::GuiControl::setCaption, G3D::GuiWindow::setCaption · G3D::GuiControl can now be subclassed for custom user-defined controls · G3D::GuiTheme::renderCanvas · G3D::GuiTheme::pauseRendering, G3D::GuiTheme::resumeRendering · G3D::PosedModel::sortAndRender · G3D::Framebuffer can now attach cube map faces · System::describeSystem now prints current working directory and application name · Added /usr/local/-G3D dir- to system data file path · Various patches for detecting new CPUs in System.cpp · g3d_Index macro now available in G3D::Shader GLSL code · G3D::BackgroundWidget · G3D::TriangleShape · Fix: incompatible change OSWindow::Settings::asynchronous is now spelled correclty, with two "n"s · Fix: Fixes for point-in-triangle and moving-sphere-fixed-tri; previous code projected onto the wrong axes, so barycentric coords were wrong for nearly vertical triangles. · Fix: Changed some doubles to floats in G3D::Triangle · Fix: Changed all of the isXXX(char) methods to take unsigned char arguments so that they can parse extended symbols · Fix: AABSPTree::deserializeStructure was missing a return statement · Fix: Draw::plane was drawing the plane reflected through the origin · Fix: Added template parameters to friends in AABSPTree and PointAABSPTree · Fix: System::findDataFile uses data directory set by GApp · Fix: AtomicInt32 decrement returns int32 instead of uint32 · Fix: OS X function keys now work correctly under CarbonWindow · Fix: OS X modifier keys now work correctly under CarbonWindow · Fix: OS X arrow keys now work correctly under CarbonWindow · Fix: Rewrote buildg3d to fix many longstanding bugs, including mismatched 'bin' directories and confusion about the 'install' target · Fix: gfxmeter reports now format correctly regardless of monitor width · Fix: patch to initialize correctly on the Mesa library, which crashes when requesting DEPTH24_STENCIL8 · Fix: stringSplit now works correctly for adjacent split characters · Fix: Draw::axes labels now obey current viewport · Fix: GuiWindow now loses focus when hidden · Fix: GFont::draw2D now computes correct horizontal bounds on text · Fix: GuiPane no longer renders when invisible · Fix: Clicking off of all GuiWindows makes none of them have focus · Fix: Win32Window now allows windows programmatically positioned anywhere on a multiple monitor screen · Fix: Win32Window now does not fail when dragging a GL context between multiple monitors · Fix: SuperShader now correctly lights bump-mapped surfaces in tangent space · Fix: GuiPane now renders its caption · Fix: Rect2D::border now grows the correct way (positive = grow) · Fix: Added % operator to TextInput · Fix: Added multi-line printing to GConsole · Fix: G3D::Texture can now create empty cube maps · Fix: G3D::Table iterator now correctly parameterized on hashfunction and equality function as well as key and value · Fix: G3D::Table now passes Values by reference when setting them, avoiding one copy · Fix: various Framebuffer/empty texture initialization bugs on ATI cards · Fix: uniform arrays for GLSL · Fix: All aliasing warnings have been fixed no longer needs -fno-strict-aliasing · Fix: debugAssert in Array::operator[](unsigned int n) wrong · Fix: GuiWindow::pack now recursively packs all child panes · Fix: patch to continue build when javac isn't found on both windows and linux · Fix: Fixes to make buildg3d work on non C: windows systems · Fix: Added faster overloads of GImage::stripAlpha() and GImage::insertRedAsAlpha() · Fix: GImage::save() with odd-widths bmp files · Fix: Draw::capule renders properly (capule was not visible) · Fix: Patched ShadowMap to work around ATI and OS X driver shadow map bugs. Incompatible change:Required changing several interfaces to take ShadowMapRef arguments. · Fix: GCamera::Frustum was facing backwards · Fix: texture glformats wrong (caused incorrect font rendering on Intel) · Fix: ArticulatedModel static methods do not force loading of shaders unless an ArticulatedModel has actually been loaded. · Fix: RenderDevice::setAlphaWrite/setColorWrite implemented correctly · Fix: Implemented ImageFormat::fromCode · Fix: Texture doesn't handle 3D textures correctly · Fix: Separate bool, float, and int back ends for GLSL shaders


G3D Related Software