Commit Graph

16 Commits

Author SHA1 Message Date
Robert Osfield
dd996a3289 Introduced CMake option OSG_PROVIDE_READFILE option that defaults to ON, but when switched to OFF disables the building of the osgDB::read*File() methods,
forcing users to use osgDB::readRef*File() methods.  The later is preferable as it closes a potential threading bug when using paging databases in conjunction
with the osgDB::Registry Object Cache.  This threading bug occurs when one thread gets an object from the Cache via an osgDB::read*File() call where only
a pointer to the object is passed back, so taking a reference to the object is delayed till it gets reassigned to a ref_ptr<>, but at the same time another
thread calls a flush of the Object Cache deleting this object as it's referenceCount is now zero.  Using osgDB::readREf*File() makes sure the a ref_ptr<> is
passed back and the referenceCount never goes to zero.

To ensure the OSG builds when OSG_PROVIDE_READFILE is to OFF the many cases of osgDB::read*File() usage had to be replaced with a ref_ptr<> osgDB::readRef*File()
usage.  The avoid this change causing lots of other client code to be rewritten to handle the use of ref_ptr<> in place of C pointer I introduced a serious of
templte methods in various class to adapt ref_ptr<> to the underly C pointer to be passed to old OSG API's, example of this is found in include/osg/Group:

    bool addChild(Node* child); // old method which can only be used with a Node*

    tempalte<class T> bool addChild(const osg::ref_ptr<T>& child) { return addChild(child.get()); } // adapter template method

These changes together cover 149 modified files, so it's a large submission. This extent of changes are warrent to make use of the Object Cache
and multi-threaded loaded more robust.



git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@15164 16af8721-9629-0410-8352-f15c8da7e697
2015-10-22 13:42:19 +00:00
Robert Osfield
7ae45b7ac2 From Marc Helbling, "patch adding support for ambient material in the FBX plugin. It's a straightfoward adaptation of the emissive support and has been tested on a proprietary model."
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14495 16af8721-9629-0410-8352-f15c8da7e697
2014-11-20 09:32:38 +00:00
Robert Osfield
81c23564b5 From Björn Blissing, "Fix to support correct shininess and transparency in FBX plugin"
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14272 16af8721-9629-0410-8352-f15c8da7e697
2014-06-25 08:18:05 +00:00
Robert Osfield
82ecbe98da From Laurens Voerman, "Autodesk released a new version of their FBX Software Development Kit (web page http://usa.autodesk.com/adsk/servlet/pc/item?siteID=123112&id=10775847).
The API has changed quite a bit, so lots of changes had to be made in the osg readerwriter. The preious version of the FBX SDK (2013.3) already deprecated a lot of the names and functions. The code I submit now still compiles against 2013.3 (possibly needs a #define FBX_NEW_API). Not sure if that's useful, but it might ease the transition."
2013-06-03 14:27:14 +00:00
Robert Osfield
14a563dc9f Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Robert Osfield
f38a855a73 Conveted tabs to four spaces and added a return to end of file 2011-06-21 09:53:34 +00:00
Michael PLATINGS
dc123461c7 Fixed redundant "enumeration not handled in switch" warnings.
Fixed a warning about a comparison between different enums - EUnifiedMappingType was being compared with EMappingType. In general the FBX SDK is moving away from Get & Set functions to giving direct access to properties, so I have changed GetMappingType() to CurrentMappingType.Get()
2011-06-21 09:29:32 +00:00
Michael PLATINGS
c7814cf50a Updated to use FBX SDK 2012.1 2011-05-03 09:11:04 +00:00
Michael PLATINGS
caa9ef591e Disabled the RGB components of the opacity texture 2011-02-18 11:04:01 +00:00
Robert Osfield
9bb86b5534 Fixed warnings 2011-01-25 16:48:53 +00:00
Robert Osfield
1f0a8aff32 Changed dos endings to unix line endings 2011-01-11 17:29:11 +00:00
Michael PLATINGS
5ea4a8c0f3 From Alessandro Terenzi: previously the plugin ignored UV scaling values eventually stored in the FBX file, now they are read and set for each supported texture map (not considering reflection maps).
From Michael Platings: fixed UVs for files that don't explicitly reference the name of a UV channel.
2010-06-09 09:12:20 +00:00
Michael PLATINGS
82ea9597e5 Added support for Euler angles and step/linear/cubic-bezier interpolation. 2010-06-08 17:32:36 +00:00
Michael PLATINGS
359b6b480d From Alessandro Terenzi: modifications for supporting opacity, reflective and emissive maps beyond the already supported diffuse map in the FBX plugin.
A problem with transparency has also been fixed: objects were transparent wrt themselves but were opaque wrt to other objects.
Finally I added the support for "mixing factors" of diffuse, reflective and opacity textures/values.

From Michael Platings: added "LightmapTextures" plugin option that changes the way textures are interpreted so Alessandro's models appear correctly. Also refactored to put many functions in one class to avoid passing around too many arguments to functions.
2010-06-04 19:50:32 +00:00
Michael PLATINGS
660cb74877 Workaround for models with inverted transparency 2010-03-18 19:02:12 +00:00
Michael PLATINGS
4f72d66cbe 2010-02-24 10:12:11 +00:00