Commit Graph

93 Commits

Author SHA1 Message Date
Alberto Luaces
2ade061ced Code comments, log strings and some variable spell fixes. 2020-10-29 15:14:29 +00:00
Robert Osfield
b063f510c1 Moved setting of isftream locale to Model::readOBJ(..) and Model::readMTL(..). 2020-01-17 09:13:27 +00:00
Robert Osfield
396cfca1ae Added explict setting of local to classic to avoid local platform settings affecting parsing 2020-01-17 08:54:52 +00:00
Robert Osfield
e6f6de640a Added readObject() implementations 2019-07-25 12:48:21 +01:00
Robert Osfield
00679c7631 Added ReaderWriterOBJ::readObject(..) implementations to address issue with using osgconv 2019-07-25 10:39:34 +01:00
Robert Osfield
8dea265a91 Fixed indentation 2019-07-18 14:08:41 +01:00
Long Huan
7ec8b65ec4 Add OutputTextureFiles Option
Add OutputTextureFiles Option support Write out the texture images to file
2019-07-18 14:00:11 +01:00
Long Huan
acac960227 fix obj-Plugin export texture file
Fix obj-plugin to support export texture file
2019-07-18 13:50:56 +01:00
Ralf Habacker
361ea5d15d obj plugin: add option "NsIfNotPresent=" for setting the specular exponent of a material if not present 2019-07-15 14:39:02 +02:00
Ralf Habacker
a3b2ac63b3 obj plugin: Fix bug not using specular color (Ks) for illumination mode > 2
See paragraph "Illumination models" at http://paulbourke.net/dataformats/mtl/ for details.
2019-07-15 14:26:31 +02:00
Alberto Luaces
02c310982e Fix typos and spelling. 2018-04-23 11:03:37 +01:00
Robert Osfield
a082b57c3f Removed usage of the osgUtil::TriStripVisitor is it generates osg::Geometry that perform very poorly when using VBO and VAO's vs GL DisplayLists.
With DisplayLists being deprecated in GL and VBO and VAO becoming standard it's best to standardize on using the osgUtil::MeshOptimizers instead of TripStrupVisitor
2018-04-20 11:44:44 +01:00
Robert Osfield
bf6db4eee7 Replaced the use of osgUtil::TriStripVisitor with ogUtil::MeshOptimizer usage to improve performance.
Fixed set setColorArray assignement to pass in the color binding
2018-04-19 19:36:19 +01:00
Robert Osfield
38e5fdadf0 From Ralf Habacker, patch refactoring struct ObjOptionsStruct
in obj plugin into a real class, which is a preparation for further obj
related patches.
2017-10-20 11:52:48 +01:00
luzpaz
2cd31f65e4 misc. typo fixes
mostly non-user-facing but some doxy.
2017-08-15 12:23:49 -04:00
Émilien Tlapale
34fb582074 Uncommenting missing argument. 2016-12-13 11:56:06 +01:00
Émilien Tlapale
d0fb365e25 Adding configurable precision for OBJ output. 2016-12-13 10:58:46 +01:00
Robert Osfield
e9b8069204 Fixed unused parameter warning. 2016-06-08 09:52:09 +01:00
Alberto Luaces
260cbab518 Typo fixes 2016-05-30 12:30:05 +01:00
Robert Osfield
78729e28fd From Marc Helbling, Clément Léger, Aurélien Chatelain, Paul Cheyrou-Lagrèze :
"a last submission for the obj plugin
* supports vertex color definition after vertex position by Clément Léger
* supports zbrush vertex color definition (as #MRGB comment) by Aurélien Chatelain
* adds a noReverseFace option to not mess with face definition by Aurélien Chatelain
* makes material parsing case insensitive (by Paul Cheyrou-Lagrèze and me)
* makes the plugin resilient to faulty vertex uv/normal definition (i.e. when a too big index is referenced) by Aurélien hatelain
"


git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14641 16af8721-9629-0410-8352-f15c8da7e697
2014-12-24 11:25:46 +00:00
Robert Osfield
834c940db1 From Farshid Lashkari, "The obj loader was overriding the existing database path list with the file path of the model, instead of prepending the file path to the path list. The latter seems to be more common behavior for most of the existing loader plugins. Also, the local options weren't actually being used when processing the scene graph for textures. I've attached the fix for both issues."
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14507 16af8721-9629-0410-8352-f15c8da7e697
2014-11-20 16:38:23 +00:00
Robert Osfield
c1ebc3ac0c Replaced deprecated osg::Geometry::set*Binding() usage 2013-06-27 08:44:15 +00:00
Robert Osfield
14a563dc9f Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Robert Osfield
1a080dfa6a Added fin.imbue(std::locale::classic()); to avoid problems with parsing of .obj files 2012-02-27 09:50:47 +00:00
Robert Osfield
a1ad09bba9 Added material setName. 2010-08-16 14:24:12 +00:00
Robert Osfield
805a78c3b5 Converted osg::notify to OSG_INFO 2010-05-28 16:27:37 +00:00
Robert Osfield
74f7ffcd32 From Ulrich Hertlein, "ttached are some tweaks to the Obj loader that allows a program supplied osgDB::Options object to be passed through the code. This allows for caching to be used with images.
The patched loader also complains more loudly if a material library file wasn't found or if a referenced material wasn't found in the material library."
2009-11-19 12:54:52 +00:00
Robert Osfield
a3f141d4b5 From Lee Butler, "The attached ZIP file contains a modified OBJ file format reader which
makes smoothing optional for verticies which do not have a normal
associated with them in the OBJ input file.  The previous behavior was
to always smooth at all verticies which did not have surface normals.
In this new implementation smoothing is on by default to be compatible
with previous behavior.  The user can now specify the "generateFacetNormals"
option to the reader to use facet normals for verticies where the OBJ
file does not specify a normal."

Note from Robert Osfield, changed "noSmoothing" naming used by Lee to "generateFacetNormals".
2009-11-18 14:08:46 +00:00
Robert Osfield
908432c732 Replaced readImageFile() usage with readRefImageFile() to prevent threading issues with caching of imagery in the osgDB::Registry cache. 2009-01-21 18:23:55 +00:00
Robert Osfield
fa499dc55f From Andy Skinner, fixes for Solaris build 2009-01-09 12:17:40 +00:00
Robert Osfield
e158c78ffa From David Spilling, better support for multitexture in obj loader. 2008-11-21 13:23:55 +00:00
Robert Osfield
720551d549 From Michael Platings, Converted std::fstream/ifstream/ofstream to osgDB::fstream/ifstream/ofstream and
fopen to osgDB::fopen to facilitate support for wide character filenames using UT8 encoding.
2008-11-07 15:08:08 +00:00
Robert Osfield
32907d679f From Alberto Lucas, fixed typo 2008-10-27 09:44:49 +00:00
Robert Osfield
48c31e5885 From Alberto Luaces, "it seems a copy-paste error is present on the OBJ loader when parsing the
options given by the user. "noTesselateLargePolygons" is being activated
instead of "noTriStripPolygons". I'm attaching the fixed file."
2008-10-24 11:38:40 +00:00
Robert Osfield
d8d2bc4193 From Ulrich Hertlein, "as I hinted at on osg-users in the "obj loader: map_* only reads last component" thread, this submission broke material/texture loading for some files I have that specify texture matrix scaling.
The following link shows a very comprehensive list of .mtl file options:
http://local.wasp.uwa.edu.au/~pbourke/dataformats/mtl/

Attached is a patch that should fix spacey filenames and optional texture scale/offset.  I have tested it with files I have that I modified to contain spaces in the texture filenames."
2008-07-25 15:45:40 +00:00
Robert Osfield
7dabdf5d7e Added supportOptions() entry docs 2008-07-24 12:01:45 +00:00
Robert Osfield
02b456bcfa Converted plugins to use the new supportsExtension()/supportsOptions/supportsProtocl() methods
to help enable better querying of supported features
2008-07-13 22:18:59 +00:00
Robert Osfield
4ca61c38f0 From Doug McCorkle, "Attached is patch that corrects/improves the following issues with the OBJ loader:
1. Added options to control wether the osgUtil::Tessellator or osgUtil::TriStripVisitor are run. By default they still run just as before.
2. Added support for the Emissive material. The data was being read from the mtl file but was never being applied to the model.
3. This is the main bug addressed, when a model is read in with an alpha value specified like:

newmtl Material__8
       Ns 24
       d 0.33
       illum 2
       Kd 0.204 0.204 0.204
       Ks 0 0 0
       Ka 0.153 0.153 0.153

where the alpha value is d. The loader would then overwrite the alpha value when reading the diffuse, specular, and ambient colors. I have changed all the material color readers to only set the values they read and to use the default colors specified in the constructor of the obj class. With these changes, the obj reader now handles opacity correctly if the alpha value is specified before the material colo"
2008-07-12 12:00:58 +00:00
Robert Osfield
61cb0833b9 From Bob Kuehne, "* add easy multiple texture targets support for obj by refactoring texture
load into it's own method.

* use new method from step 1 to load 'map_opacity' textures from .mtl files"
2008-05-12 10:18:41 +00:00
Robert Osfield
9d260213f7 From Ulrich Hertlein, "attached are some fixes and tweaks I made to the .obj loader:
- Material class contained both 'shininess' and 'Ns' member variables
- 'Ns' and 'Ni' are initialized to 0 ('Ni' is unused at the moment)
- only 'Ns' was read from .mtl file but 'shininess' was used for osg::Material
- 'illum' was read from .mtl file but never used; it is now used as follows
-- illum==0 -> no osg::Material created/attached therefore no lighting
-- illum==1 -> osg::Material specular is set to black
-- illum==2 (default) -> specular read from .mtl file is used
- 'map_Kd' and 'map_Ks' may contain additional arguments (e.g. '-s 1 1 1'),
these are now skipped over and the texture filename is properly extracted
"
2007-12-10 20:27:06 +00:00
Robert Osfield
bfbc73785a From Stephan Huber, "attached you'll find a first implementation for the obj-plugin to write
obj-files. It is not feature complete but usable.

Known issues:
* not all materials are handled correctly (especially when using
osg::StateAttribute::OVERRIDE), not all properties are supported
* could not test point and lines, all of my programs which are capable
to read obj-files only import triangle-meshes.
* only simple texture-handling"
2007-09-26 10:58:29 +00:00
Robert Osfield
9e2fe92ef1 From Rudolf Wiedemann, "I need to link OpenSceneGraph statically to my application, so I
completed the new registration of the plugin-readerwriters
("REGISTER_OSGPLUGIN") according to your osgstaticviewer-example (see
attachment, based on today's svn)."
2007-07-06 13:54:26 +00:00
Robert Osfield
02bda82b55 From Paul Martz and Robert Osfield, renamed include/osgUtil/Tesselator and associated classes/references to Tessellator etc. 2007-01-08 11:23:52 +00:00
Robert Osfield
c3313b99b2 Changed the texture wrap mode to repeat 2006-08-13 08:24:19 +00:00
Robert Osfield
c72530d2fd Added setting of name from the .obj goup name and object names. 2006-07-06 11:40:41 +00:00
Robert Osfield
f693fa6d2d Removed redundent debug message. 2006-07-06 11:33:07 +00:00
Robert Osfield
fd7ee0cf21 Add "hack" fix for black materials being exported from Maya. 2006-07-06 11:30:20 +00:00
Robert Osfield
31ec432e06 From David Spilling, added "noRotation" ReaderWriter::Option into the .obj plugin
to enable disabling of the automatic rotation from Y up coordinate frame to Z up coordinate frame.
2005-11-07 14:42:36 +00:00
Robert Osfield
7951be9573 Added support for handling transparent geometries and textures. 2005-03-18 11:21:01 +00:00
Robert Osfield
d9b9a6f1f8 Made read/write methods in ReaderWriter all const to facilate multi-threading 2004-11-23 15:29:52 +00:00