Commit Graph

59 Commits

Author SHA1 Message Date
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
Robert Osfield
5c5ceef90d Added support for local relative paths 2004-11-23 10:46:37 +00:00
Robert Osfield
ce07879e2e Moved plugins across to using ReaderWriter::Options* for search paths in addition
to standard osgDB::DataFilePaths
2004-11-22 23:54:45 +00:00
Robert Osfield
a6369da4f4 Moved Registry::CacheHintOptions into ReaderWriter::Options 2004-11-22 14:10:12 +00:00
Robert Osfield
1f5b044c71 Made ReaderWriter::className const 2004-10-26 10:26:43 +00:00
Robert Osfield
024044094e Added support for readNode(istream,Options*) into OBJ to allow loading
over the internet
2004-10-06 13:09:35 +00:00
Robert Osfield
de686f409b Added support for spherical texture mapping and better file search support
for meterial files.
2004-08-31 14:48:05 +00:00
Robert Osfield
5d8d05970e Added handling of short (<=4 points) polygons as tri fans and the rest
as polygons which are tesselated, to improve load and build time, yet
still resselating the large polygons that need it.
2004-08-27 08:03:26 +00:00
Robert Osfield
b5c2d85962 Improvements to handling of winding of polygons. 2004-08-26 16:20:26 +00:00
Robert Osfield
889704964b Rewrite of OBJ parser + converter to OSG 2004-08-26 14:33:38 +00:00
Robert Osfield
a8c05e9342 Improvements to the handling of OBJ files 2004-08-16 13:17:29 +00:00
Robert Osfield
f02c75f5ea Added Vec2d, Vec3d and Vec4d classes, and remapped Vec2, Vec3 and Vec4 to
Vec2f, Vec3f an Vec4f respectively, with typedef's to the from Vec* to Vec*f.
2004-05-20 10:15:48 +00:00
Robert Osfield
459b350eb9 Fixed comments on the OBJ coords system 2004-04-06 20:15:11 +00:00
Robert Osfield
0b1f6fedc9 Changed the comment to make it clear what axis change is implementated. 2004-04-01 07:49:32 +00:00
Robert Osfield
ac812539d8 Added scale parameter into PositionAttitudeTransform.
Added pivotPoint parameter into AnimationPathCallack.
2004-02-22 11:58:44 +00:00
Robert Osfield
407fbdb353 From Bob Keuhne, warning fixes under OSX 2004-01-30 16:12:53 +00:00
Robert Osfield
3fefc3cc7e Removed comments, and move the tri stipper slightly later in the code to
apply it on all geometries.
2003-12-12 16:34:46 +00:00
Robert Osfield
83bf813e58 Moved the responsibility for finding file to load on to the ReaderWriter plugins,
instead of osgDB::Registry where it original lay.  This has been done to allow
fileName strings to be encode data rather than just file names, such as one
requires when using PagedLOD along with plugins for doing dynamic tesselation.
2003-12-08 11:24:43 +00:00
Robert Osfield
e9df154427 From John Tan, support for offset and scale tex coords via TexMat. 2003-11-21 19:33:09 +00:00
Robert Osfield
b0b73f4ad9 Changed the texture search path mechanism to better utlise the OSG's search file
path mechansim.
2003-10-05 16:16:39 +00:00
Robert Osfield
ce15c880b1 From Mike Weiblen, updates to osgGL2 to support Uniform values 2003-10-05 11:30:54 +00:00
Robert Osfield
e7b1edef56 Improved the tesselation of obj surfaces so that rendering performance
is significantly improved.
2003-09-16 19:53:51 +00:00
Robert Osfield
6019d54dc2 Added support for per vertex colors. 2003-09-16 09:54:41 +00:00
Robert Osfield
4c168fc193 Fixed the OBJ loader so that it shares all duplicate state, improving the
load time and rendering performance significantly.
2003-09-13 15:59:38 +00:00
Don BURNS
15f88f35b2 *** empty log message *** 2003-06-24 15:40:09 +00:00
Robert Osfield
0a5ed26940 Moved the new osg::IndexedGeometry class over the top of the the existing
osg::Geometry class, and removed the temporary IndexedGeometry.  Port the rest
of the OSG across to account for the change in method calls -
osg::Geometry::addPrimitive(..) becomes osg::addPrimitiveSet(..)
2002-10-02 13:12:16 +00:00
Robert Osfield
55215651d7 Renamed osg::Primitive to osg::PrimitiveSet which better reflect what it
encapsulates.

Added new osg::IndexGeometry implemention, *not* complete yet.

Changed the rest of the OSG to handle the renaming og Primitive to PrimitiveSet.
2002-09-20 14:51:59 +00:00
Don BURNS
2b10b4c3df Fixed 69 occurance of 'Seperate' misspelling (should be 'Separate') 2002-08-29 03:22:27 +00:00
Robert Osfield
8e75f531e3 Converted code dependant on osg::Texture across to its replacement osg::Texture2D. 2002-08-25 15:31:44 +00:00
Robert Osfield
7a8eeb3c92 Converted the osg::Material::set/getShininess option to use the standard
OpenGL range of 0.0 to 128.0 instead of the previous normalised shiniess
range. This brings it inline with the way the rest of the OSG uses a
1 to 1 mapping to OpenGL.

Converted the various loaders to use the new range, which is almost all
cases was simply removing the /128.0f which was required before!
2002-07-18 09:55:30 +00:00
Robert Osfield
6f392cdbfa Ported distribution across to use the new osg::MatrixTransform and osg::BlendFunc
class instead of osg::Transform and osg::Transparancy respectively.
2002-07-12 18:12:01 +00:00
Robert Osfield
c1fc3dcdb9 Ported all the demos and loaders across to use the new multitexturing API. 2002-07-10 11:22:24 +00:00
Robert Osfield
26497c7581 Change =0 to osg::Vec2Array::iterator() in .obj loader to get round warnings
under gcc3.0.x
2002-06-28 08:36:02 +00:00
Robert Osfield
bdafc27d9c Ported pfb, txp and obj loaders across to use osg::Geometry. 2002-06-26 14:34:04 +00:00
Robert Osfield
6dbfa3b88d Fixes to .obj plugin from gideon. 2002-04-25 11:30:21 +00:00