Commit Graph

8254 Commits

Author SHA1 Message Date
Robert Osfield
22eae68e48 From Mathias Froehlich, "This is a generic optimization that does not depend on any cpu or instruction
set.

The optimization is based on the observation that matrix matrix multiplication
with a dense matrix 4x4 is 4^3 Operations whereas multiplication with a
transform, or scale matrix is only 4^2 operations. Which is a gain of a
*FACTOR*4* for these special cases.
The change implements these special cases, provides a unit test for these
implementation and converts uses of the expensiver dense matrix matrix
routine with the specialized versions.

Depending on the transform nodes in the scenegraph this change gives a
noticable improovement.
For example the osgforest code using the MatrixTransform is about 20% slower
than the same codepath using the PositionAttitudeTransform instead of the
MatrixTransform with this patch applied.

If I remember right, the sse type optimizations did *not* provide a factor 4
improovement. Also these changes are totally independent of any cpu or
instruction set architecture. So I would prefer to have this current kind of
change instead of some hand coded and cpu dependent assembly stuff. If we
need that hand tuned stuff, these can go on top of this changes which must
provide than hand optimized additional variants for the specialized versions
to give a even better result in the end.

An other change included here is a change to rotation matrix from quaterion
code. There is a sqrt call which couold be optimized away. Since we divide in
effect by sqrt(length)*sqrt(length) which is just length ...
"
2008-09-17 16:14:28 +00:00
Robert Osfield
0598ac3b69 Updated osgwidget examples to use the new osg::clone() methods 2008-09-17 14:23:25 +00:00
Robert Osfield
fbeabc23e0 Updated wrappers of osgWidget 2008-09-17 14:23:05 +00:00
Robert Osfield
5c5ab84420 Tweaks to facilitate osgWrapper build 2008-09-17 14:21:47 +00:00
Robert Osfield
7ec5632bcc Introduce new templated clone(..) methods that return the correct type of object cloned. 2008-09-17 14:21:19 +00:00
Robert Osfield
97b37cb117 Added support for finding DCMTK-3.5.4 installed lib/include placement 2008-09-17 11:43:14 +00:00
Robert Osfield
d57ad27fcc Added osgVolume to docs and wrappers 2008-09-16 18:41:13 +00:00
Robert Osfield
6ea2adf1f5 Introduced beginings of osgVolume NodeKit. 2008-09-16 15:32:23 +00:00
Robert Osfield
28af7882f5 Complted the first pass at the DCMTK based dicom loader 2008-09-16 15:31:47 +00:00
Robert Osfield
b5474780c3 Change the GLSL textureRec and texture2D parameters to use .st to make sure they only use 2D coords.
Add setResizeNonPowerOfTwoHint to false for Texture2D.
2008-09-16 09:31:29 +00:00
Robert Osfield
d07f3d5662 Added optional usage of DCMTK in the dicom plugin 2008-09-15 19:59:12 +00:00
Robert Osfield
c7b66322be From Ralf Habacker, removed redundent SwitchLayer::clear() 2008-09-15 11:27:30 +00:00
Robert Osfield
d71a6f6cab Introduced Geometry::containsSharedArrays() and Geometry::duplicateSharedArrays() to
support a fix to the osgUtil::Simplifier that couldn't handle shared arrays
2008-09-14 10:31:27 +00:00
Robert Osfield
b55ed0c56b Added reading of whole directories of images 2008-09-13 13:38:06 +00:00
Robert Osfield
995ead176a Introduced TransferFunction1D::assign(ValueMap&). 2008-09-13 09:09:51 +00:00
Robert Osfield
b000198cc4 Removed use of ints and reading from gl_FragColor in shader 2008-09-12 15:41:30 +00:00
Robert Osfield
dc1b52aa7c Updated version numbers in prep for up comming dev release 2008-09-11 16:11:51 +00:00
Robert Osfield
9c97895116 Added an svn update into the make ChangeLog entry. 2008-09-11 16:06:37 +00:00
Robert Osfield
f494bc5b8a Updated wrappers 2008-09-11 16:01:17 +00:00
Robert Osfield
e1930d127e Refinements to SwitchLayer and WhiteListTileLoadedCallback 2008-09-11 14:28:42 +00:00
Robert Osfield
2be243deda Added support for SwitchLayer into GeometryTechnique 2008-09-11 14:27:50 +00:00
Robert Osfield
ff299eb104 Introduced osgTerrain::WhiteListTileLoadedCallback for the management of options terrain layers 2008-09-11 13:21:58 +00:00
Robert Osfield
a214a677f8 First cut of WhiteListTileLoadedCallback 2008-09-11 10:40:48 +00:00
Robert Osfield
04a3f0da1c Changed the createGeodeFromImage code to use the non power of two extension, and disabled mipmapping 2008-09-11 09:26:14 +00:00
Robert Osfield
4f6b405edf Added support for reading source image file names from the command line. 2008-09-11 09:05:16 +00:00
Robert Osfield
b4b5b5ea41 Introduced TerrainTile::TileLoadedCallback 2008-09-10 18:11:54 +00:00
Robert Osfield
ed4bd41574 Removed unneccessary compound name usage 2008-09-10 16:17:17 +00:00
Robert Osfield
898a0c11c2 Removed debugging output 2008-09-10 11:38:49 +00:00
Robert Osfield
f738ab8fe2 Changed the image reading so that it leverages the osgDB::Input::readImage() method
to ensure that it picks up on any local paths set on the Input object.
2008-09-10 11:28:47 +00:00
Robert Osfield
c266cef6b1 Changed the path management so that the node path is prepended on the database path list, rather than replacing it. 2008-09-10 11:27:45 +00:00
Robert Osfield
b0cf7823a7 Added playing of the imagesequence on creation of the imagesequence 2008-09-10 11:27:00 +00:00
Robert Osfield
45ccf11161 Added osg::Image::set/getWriteHint() that allows images themselves to control how
they are written to disk, either inline or as an external file.  Added support for
this in the .ive plugin.  Default of WriteHint is NO_PREFERNCE, in which case it's
up to the reader/writer to decide.
2008-09-10 11:26:30 +00:00
Robert Osfield
c478ad08fc Fix for when looping is is disabled 2008-09-04 17:30:56 +00:00
Stephan Maximilian HUBER
db83ee7add From Stephan Huber: updated XCode-project 2008-09-04 14:23:29 +00:00
Robert Osfield
d2e29efcd9 Added acceptance of .ogv extensions in xine-lib plugin 2008-09-02 16:13:54 +00:00
Robert Osfield
08883dbf6c Added setSetName/getSetName() methods 2008-09-02 12:55:26 +00:00
Robert Osfield
0a5a91f5a1 Update ChangeLog 2008-09-01 16:28:02 +00:00
Robert Osfield
8759984f52 Replaced uint with unsigned int 2008-09-01 15:29:22 +00:00
Robert Osfield
8044188457 Introduced a OSG_MAINTAINER section of cmake build to help support making tags and branches 2008-09-01 15:27:35 +00:00
Robert Osfield
d10d0137b9 Updated wrappers 2008-09-01 14:05:40 +00:00
Robert Osfield
13878d9a2e Changed curr and min to current and minimum respectively, to avoid compile problems under Windows 2008-09-01 14:03:41 +00:00
Robert Osfield
99a294ebae Implemented support for ShapeAttributeList, used John Vidar Larring's initial
submission as a base, but implementing the user data functionality in a different
way to facilitate more flexible user data support
2008-09-01 12:40:33 +00:00
Robert Osfield
befa2112f8 From John Vidar Larring, initial cut of .ive support for ShapeAttributeList user data 2008-09-01 12:39:19 +00:00
Robert Osfield
4a18b9cee1 Updated version for 2.7.2 dev release 2008-09-01 11:09:03 +00:00
Robert Osfield
58f4290310 Updated wrappers 2008-09-01 10:49:22 +00:00
Robert Osfield
6d9206224d Added call to free in setValue methods to prevent potential memory leak 2008-09-01 10:48:28 +00:00
Robert Osfield
2582e0342a From Mathias Froehilch,"Current include/osgSim/ShapeAttribute also misses string.h include because of
strdup.
Attached is the changed file."
2008-09-01 10:46:50 +00:00
Robert Osfield
7945f94246 From He Sicong, "I found a bug here in VERTICAL_SPLIT stereo type:
The vertical separation not actually displayed as it is set.  So some
display the up and down stereo images style will not be correct.
Someone may forget to change the "Horizontal" to "Vertical" after
copying and pasting the code from above HORIZONTAL_SPLIT code segment.
I've attached the file. By replacing the incorrect "Horizontal" to
"Vertical", the bug is gone.
"
2008-09-01 10:22:06 +00:00
Robert Osfield
5484981693 Removed std:: from in front of strcmp and added a string.h 2008-09-01 10:19:06 +00:00
Robert Osfield
2ce8fbdcf9 From Wojciech Lewandowski, "Most recent changes to CameraPathEventHandler change path writing method. Now control points are written on the fly. But default stream precision is not adjusted as it used to and remains set to 6 digits (at least with VS 2008) so larger coordinates like positions on Earth Ellipsoid loose lots of fidelity. This patch fixes this issue.
"
2008-09-01 10:06:19 +00:00