Commit Graph

124 Commits (08f06c6c2d6f89eeea5c85a6dc82ec92e5fcc802)

Author SHA1 Message Date
scrawl cdccf03228 Fix mismatched delete 9 years ago
scrawl 5f4ace1bc2 Implement support for sphere map NiTextureEffects (Fixes #1827) 9 years ago
scrawl 90a99991d1 Use empty() instead of !size() 9 years ago
scrawl e647ee5424 Support RGB and RGBA embedded textures in NIF files (Fixes #2295) 9 years ago
scrawl 606758d72f NifLoader: create the BumpTexture slot, but don't use it yet 9 years ago
scrawl 4cd4131da9 NifLoader: assign a name to created textures
This name will tell the shader visitor how to handle that texture.
9 years ago
scrawl 50e92c8136 NifLoader: move texture property handling to a separate function 9 years ago
scrawl acf44fd9e5 NifLoader: handleTextureControllers outside of the NumTextures loop 9 years ago
scrawl 5824619a95 Clean up includes 9 years ago
scrawl 8b596dfcbe Remove support for OSG 3.2
Since commit e8662bea31, we're using OSG functionality that contains an unfixed crash bug in version 3.2. The bug is fixed in version 3.4 (OSG commit 6351e5020371b0b72b300088a5c6772f58379b84)
9 years ago
scrawl 9e53e12c70 More renaming of TextureManager -> ImageManager 9 years ago
scrawl f99f403dda Rename TextureManager to ImageManager 9 years ago
scrawl 6ef848b7c5 Remove TextureManager::getTexture2D
Instead use getImage and let the caller create the Texture. Sharing of textures is then handled in post by the SharedStateManager.

This is closer to what the OSG serializer does.

Streamlines the TextureManager and will make it easier to multithread.
9 years ago
scrawl 2eda495f89 Build fix for OSG 3.2 9 years ago
scrawl 06ed20abf8 Use the initial pose of a MorphGeometry for object placement (Fixes #3136) 9 years ago
scrawl 6b48acaf0e Don't optimize TriShapes with controllers (Fixes #3143) 9 years ago
scrawl 723c392a73 NifLoader: fall back to the first UV set when encountering invalid UV set references 9 years ago
scrawl 0731595c2b Wrap a Texture2D in a ref_ptr 9 years ago
scrawl 31c3324705 Don't assume the emitter node is a Group (Fixes #3082)
This would be a correct assumption by default, but is no longer true when the NifLoader::optimize() function optimizes the graph.
9 years ago
scrawl e3d3380c8c Remove return value for in-place toLowerStr 9 years ago
scrawl 1d5af3c9c8 Remove unneeded cast 9 years ago
scrawl ac366f1603 Fix the rig bounds being updated twice per frame
Unlike what I expected, the osgUtil::UpdateVisitor is set to traverse all children (not only active children). The FrameSwitch was thus traversing both RigGeometries part of the double-buffering scheme, rather than only the one active in the current frame.
9 years ago
scrawl 9b96fcc224 Set the particle scaleReferenceFrame to local space 9 years ago
scrawl 21e25f4756 Use the traversalNumber as frame number 9 years ago
scrawl 0965a9059d Handle NiLODNode using osg::LOD (Fixes #3008) 9 years ago
scrawl 1edcb219a7 Leak fix 9 years ago
scrawl 0409e5a043 Use OSG_VERSION_GREATER_EQUAL / LESS_THAN rather than MIN_VERSION_REQUIRED (cosmetic change) 9 years ago
scrawl f1ac408f35 Place Drawables directly in the scene graph when built with OSG 3.4
OSG 3.4 adds the ability to place Drawables directly in the scene graph, without a Geode decorating them. Leveraging this should give a small performance boost, because the redundant Geodes increase culling overhead.

There is still an oustanding issue with the RemoveDrawableVisitor no longer working correctly, because Drawables can have multiple parents.
9 years ago
scrawl 64abdbabe3 Small refactor of controllers handling, print warning messages for unhandled controllers 9 years ago
scrawl 35f5be680b Support for NiVisController on trishape nodes 9 years ago
scrawl 2ee6b41887 Handle NiAlphaProperty on a drawable basis
Removes the RenderBin nesting complication. Also results in leaner StateSets, so the cull phase should be a bit faster.
9 years ago
scrawl 8e69c80bf6 Add framenumber checks in various cull callbacks, so we don't update more than once per frame when multiple cameras are used 9 years ago
scrawl 76fb68a9c0 Handle particle systems that don't have emitters
Fixes a crash in the Magic Diversity mod.
9 years ago
Arthur Moore 2d93a6f6cb Be more verbose when dealing with unhandled nif texture properties 10 years ago
scrawl ac1f64b559 Fix StencilProperty front face mixup (Fixes #2802) 10 years ago
scrawl 7a5f220ac5 GlowTexture keeps the alpha channel from the previous texture stage 10 years ago
scrawl 39539603bf Re-enable a warning message 10 years ago
scrawl a7c5beb7c5 Remove redundant allocations for NIF meshes 10 years ago
scrawl 81a4a6da6b Make better use of the available texture units (Bug #2702)
Nvidia drivers only support a maximum of 4 fixed function texture units. To resolve this problem, bind texture units in order instead of binding to the NiTexturingProperty::TextureType unit.
10 years ago
scrawl 934166a853 Ignore the alpha value for particle materials (Bug #2699) 10 years ago
scrawl d7a4a9fd66 Create NIF root nodes as Group instead of Transform when possible 10 years ago
scrawl b79ab1a3b8 Fix InverseWorldMatrix bug introduced by last commit 10 years ago
scrawl ec25f1da95 Fix ParticleSystem bug introduced by last commit 10 years ago
scrawl ad46ff7a98 Remove redundant Transform nodes for TriShapes/ParticleSystems with an identity transform 10 years ago
scrawl ab597f672e State the filename in NIF loader warning messages 10 years ago
scrawl 6a788c3462 Minor cleanup 10 years ago
scrawl a5b72a358b Prune empty nodes in RemoveDrawableVisitor
Gets rid of 28 useless transform nodes in base_anim.1st.nif.
10 years ago
scrawl 9e049894e8 Reduce the number of StateSets created for NIF scene graphs
The Material state is now set on the NiTriShape's node rather than the Geode, thus merged with other state like NiTexturingProperties, etc that are typically attached to the NiTriShape.

Effectively cuts in half the number of StatSets for a NIF file, resulting in big speedup (~10%) in the Cull and Draw phases.
10 years ago
scrawl 8d6620b074 Assign an initial bounding box to particle systems 10 years ago
scrawl b5099324d1 Enable ParticleSystem's FreezeOnCull, big speed-up in Vivec 10 years ago