Updated ChangeLog

This commit is contained in:
Robert Osfield 2008-09-18 16:48:21 +00:00
parent 44113cfa14
commit 9f1672ca4c

360
ChangeLog
View File

@ -1,3 +1,363 @@
2008-09-18 16:03 +0000 [r8897] robert:
* Added Serializer wrappers
2008-09-18 15:50 +0000 [r8896] robert:
* Moved Serializer header from VPB into osgDB.
2008-09-18 15:44 +0000 [r8895] robert:
* Updated wrappers
2008-09-18 15:18 +0000 [r8892-8893] robert:
* refactored the getWindows(..) and getContexts(..) methods so that
they produce consistent ordering based on the order Camera/slave
camera ordering.
* From Mathias Froehlich, "Attached one namespace/scope lookup
problem which shows up on irix."
2008-09-18 14:48 +0000 [r8891] robert:
* From Christopher Blaesius, "Soft shadow mapping is basically the
same as hard shadow mapping beside that it uses a different
fragment shader. So for me it makes sense that
osgShadow::SoftShadowMap is derived from osgShadow::ShadowMap,
this makes it easier to maintain the two classes. Additional
SoftShadowMap also provides the same Debug methods as ShadowMap."
2008-09-18 13:54 +0000 [r8889-8890] robert:
* Updated wrappers
* From Alan Dickinson, change methods to virtual.
2008-09-18 13:18 +0000 [r8888] robert:
* From John Argentieri, added missing _stripTextureFilePath( false
) initializer.
2008-09-18 13:09 +0000 [r8887] robert:
* From Chris Denham, added missing ccopy of polyOffset in copy
constructor
2008-09-18 13:05 +0000 [r8886] robert:
* From Chris Denham, " I think I may have discovered a bug in
osgShadow/ShadowMap.cpp that results in incomplete shadows being
generated. The problem seems to caused by an incorrect
interpretation of the spot light cutoff angle. The valid ranges
for spot cutoff are 0-90 and 180, i.e half the 'field of view'
for the spotlight. Whereas the shadow map code seems to assume
the the spot cutoff is equal to the field of view. This results
in the shadows generated by the spotlight getting clipped at half
the spot cutoff angle. I have fixed this in my copy of
ShadowMap.cpp: =============================== //Original code
from OSG 2.6: if(selectLight->getSpotCutoff() < 180.0f) //
spotlight, then we don't need the bounding box { osg::Vec3
position(lightpos.x(), lightpos.y(), lightpos.z()); float
spotAngle = selectLight->getSpotCutoff();
_camera->setProjectionMatrixAsPerspective(spotAngle, 1.0, 0.1,
1000.0);
_camera->setViewMatrixAsLookAt(position,position+lightDir,osg::Vec3(0.0f,1.0f,0.0f));
} =============================== // My modifications: float fov
= selectLight->getSpotCutoff() * 2; if(fov < 180.0f) //
spotlight, then we don't need the bounding box { osg::Vec3
position(lightpos.x(), lightpos.y(), lightpos.z());
_camera->setProjectionMatrixAsPerspective(fov, 1.0, 0.1, 1000.0);
_camera->setViewMatrixAsLookAt(position,position+lightDir,osg::Vec3(0.0f,1.0f,0.0f));
} This change seems correct for spot cutoff in the range 0, 90,
but since OpenGL doesn't claim to support cutoffs >90 && <180,
I'm not sure how shadow map should deal with those cases, but
ignoring spot cut off greater than 90 here seems reasonable to
me. "
2008-09-18 12:57 +0000 [r8885] robert:
* From Ralf Habacker, "the appended patch fixes the problem
reported on
http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/2008-January/006110.html.
" > Using QOSGWidget - QWidget + osgViewer creating the graphics
context. > > Windows Error #2000: [Screen #0]
GraphicsWindowWin32::setWindow() - Unable > to create OpenGL
rendering context. Reason: The pixel format is invalid. > > > >
And then the following fate error pops up: > > > > The
instruction at "0x014c7ef1" referenced memory at "0x000000a4",
The > memory could not be "read". > > Click on Ok to terminate
the program > > Click on CANCEL to debug the program > >
2008-09-18 12:50 +0000 [r8884] robert:
* From Robert Osfield and Christophe Loustaunau, fixes for support
for 16bit and 32bit tiff images
2008-09-18 10:52 +0000 [r8883] robert:
* From Mathias Froehlich, "I did some performance test runs with
the development gcc-4.4 version. To make it compiel with future
gcc's we sppear to need the attached missing includes ..."
2008-09-18 10:49 +0000 [r8882] robert:
* From Mathieu Marache, "This is an addition for osgSim
reader/writer for the osg ascii file format adding
osgSim::OverlayNode support. "
2008-09-18 10:39 +0000 [r8880-8881] robert:
* From Tim Moore, "his submission fixes a bug when the
ModularEmitter and ParticleSystem are in different frames of
reference. Specifically, it supports the case where the
ParticleSystem is not in the world frame. One way this can come
up is if your world coordinate system is Earth-centric; the float
coordinates of particles don't have enough precision to avoid
terrible jitter and other rendering artifacts, so it's convenient
to root the particle systems in a local Z-up coordinate system
that gets moved around from time to time. " Tweak from Robert
Osfield, converted code to use new Drawable::getWorldMatrices
method
* Improved the constness of parameters the
Node::getWorldMatrices(..) method. Added
Drawable::getWorldMatrices(const Node*) method.
2008-09-17 20:02 +0000 [r8879] robert:
* From Rob Bloemkool, "This is a submission for
src/osgPlugins/ogr/ReaderWriterOGR.cpp - adds display of options
when using osgconv --formats. - adds useGroupPerFeature option to
have each feature in a separate group. Usage: OSG_OPTIMIZER=OFF
osgconv -e ogr -O addGroupPerFeature <infile> <outfile> "
2008-09-17 19:51 +0000 [r8878] robert:
* From Ewe Woessner, "I looked at the Anaglyphic stereo
implementation in SceneView.cpp and think I spotted some
copy-paste bugs. osg::ColorMask* leftColorMask =
_renderStageLeft->getColorMask(); if (!leftColorMask) {
leftColorMask = new osg::ColorMask();
_renderStageLeft->setColorMask(leftColorMask); ^^^^ here it said
right, I think this should be Left. } // ensure that right eye
color planes are active. osg::ColorMask* rightColorMask =
_renderStageRight->getColorMask(); ^^^^ similar here, I think
this should be right if (!rightColorMask) { rightColorMask = new
osg::ColorMask();
_renderStageRight->setColorMask(rightColorMask); } and i further
removed an unnecessary setColorMask."
2008-09-17 19:25 +0000 [r8877] robert:
* From Mattias Helsing, CMakeLists.txt changes: "I installed latest
Cmake(2.6.1) on a new machine and got a CMP008 warning from
cmake. This fix set up osg to use the old behaviour which have
worked before. We might set this to NEW but I need to do more
testing first. I'l be able to test this on winxp with msvc80/90
and ubuntu hardy with gcc-4.2. quote from cmake cvs log policy
CMP0008 to decides how to treat full path libraries that do not
appear to be valid library file names. Such libraries worked by
accident in the VS IDE and Xcode generators with CMake 2.4 and
below." OsgMarcroUtils.cmake changes: "On Philips suggestion
truncated a redundant if/else construction in OsgMacroUtils to
avoid developer warnings in cmake-2.6.1 concerning cmake policy
CMP0008 which allows full paths to libraries only with valid
library names "
2008-09-17 18:56 +0000 [r8874-8875] robert:
* From Alberto Luaces, "Cygwin's cmake build adds a "d" postfix to
the plugins installed in debug mode. Nevertheless, the code
doesn't acknowledge that, so I had problems with debug versions
of the library not being able to open their plugins whereas the
release versions worked fine. I have made the same changes in
Registry.cpp that are available for the rest of platforms
appending that "d" to their plugins. I have also updated the
CMakeLists.txt file to get "_DEBUG" defined at compilation time.
I have copied the already existent conditional block because of
cmake's bizarre operator precedence. Since Cygwin defines both
CYGWIN and WIN32, the following would suffice: IF(CYGWIN OR UNIX
AND NOT WIN32 AND NOT APPLE) Sadly, it actually doesn't work, so
I wrote a new conditional block just for Cygwin. I could join the
two blocks when the parentheses support is added in newer
versions of cmake."
* From Adrian Egli, "i came around reviewing my code, and found now
finally a solution to remove the polygon offset issue. as we all
know the polygon offset has a different behaviour on different
GPU system (ATI, NVidia) and this make the use of polygon offset
complicate. so i looked for a solution to remove this offset. i
changed the shader, also the filtering (default: on) use now a
correct 3x3 filter: 1 0 1 0 2 0 1 0 1 div: 6 of course a better
one would be 1 2 1 2 4 2 1 2 1 div: 16 but this isn't as
performant as the simple filter above is. because we need only 5
texture lookups instead of 9, and the result is still good, if
you wish we can add a enum to change the pcf filter type once, if
there is a need. testet on NVidia Quatro 570M and on ATI Radeon
X1600 "
2008-09-17 18:51 +0000 [r8873] robert:
* From Adrian Egli, "I changed the PSSM shadow map implementation,
if we have filtered turned on, it should be now correct. The
implementation is more robut on different scene. i tested it on
NVIDIA card against a park scene, a chess board and a terrain.
unfort. i couldn't test it on any ATI system. may there will be
still another problem there. if there are still some artefacts.
we should try out better fZOffSet value "
2008-09-17 18:42 +0000 [r8872] robert:
* From Bill Prendergast, "Found a typo in CameraRenderOrderSortOp
in osg/GraphicsContext.cpp (V2.6.0 and prior) as noted below:
struct CameraRenderOrderSortOp { inline bool operator() (const
Camera* lhs,const Camera* rhs) const { if
(lhs->getRenderOrder()<rhs->getRenderOrder()) return true; if
(rhs->getRenderOrder()<lhs->getRenderOrder()) return false; --->
return lhs->getRenderOrderNum()<lhs->getRenderOrderNum(); ^^^ ^^^
} }; Corrected code attached."
2008-09-17 17:25 +0000 [r8871] robert:
* From Christophe Loustaunau," I have found some errors on the
example osgGeometryShaders. It's about the varying in the
geometry shader. take a look at the varying vec4 v_color. In the
vertex shader, v_color is initialized to gl_vertex then in the
geometry shader v_color is initialized to gl_PositionIn[0] and in
the fragment shader v_color is used as the fragment color. Try to
initialized v_color to vec4(1.0, 0.0, 0.0, 1.0) in the vertex
shader and comment the line : " v_color = v;\n" in the geometry
shader, and you will see the lines as black ! It's because you
have to use keywords in and out. extract from :
http://www.opengl.org/registry/specs/EXT/geometry_shader4.txt :
in - for function parameters passed into a function or for input
varying variables (geometry only) out - for function parameters
passed back out of a function, but not initialized for use when
passed in. Also for output varying variables (geometry only).
Then for a geometry shader, a varying must be an array : extract
from :
http://www.opengl.org/registry/specs/EXT/geometry_shader4.txt :
Since a geometry shader operates on primitives, each input
varying variable needs to be declared as an array. Each element
of such an array corresponds to a vertex of the primitive being
processed. If the varying variable is declared as a scalar or
matrix in the vertex shader, it will be a one-dimensional array
in the geometry shader. Each array can optionally have a size
declared. If a size is not specified, it inferred by the linker
and depends on the value of the input primitive type. Here is a
patch based on the svn version of osg that correct that. "
2008-09-17 17:13 +0000 [r8870] robert:
* From Max Bandazian, "Lines 302-305 of WindowManager.cpp seem to
have a parenthesizing error - the code is if( (!win ||
win->getVisibilityMode() == Window::VM_PARTIAL) &&
!win->isPointerXYWithinVisible(x, y) ) continue; But it probably
should be if (!win || (win->getVisibilityMode() ==
Window::VM_PARTIAL) && !win->isPointerXYWithinVisible(x, y)))
continue; The effect of the bug is to segfault if a
non-osgWidgets::Window node hasn't been excluded from picking via
NodeMask."
2008-09-17 17:07 +0000 [r8869] robert:
* Updated wrappers
2008-09-17 16:14 +0000 [r8868] robert:
* 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 14:23 +0000 [r8864-8867] robert:
* Updated osgwidget examples to use the new osg::clone() methods
* Updated wrappers of osgWidget
* Tweaks to facilitate osgWrapper build
* Introduce new templated clone(..) methods that return the correct
type of object cloned.
2008-09-17 11:43 +0000 [r8863] robert:
* Added support for finding DCMTK-3.5.4 installed lib/include
placement
2008-09-16 18:41 +0000 [r8862] robert:
* Added osgVolume to docs and wrappers
2008-09-16 15:32 +0000 [r8858-8859] robert:
* Introduced beginings of osgVolume NodeKit.
* Complted the first pass at the DCMTK based dicom loader
2008-09-16 09:31 +0000 [r8857] robert:
* 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-15 19:59 +0000 [r8856] robert:
* Added optional usage of DCMTK in the dicom plugin
2008-09-15 11:27 +0000 [r8855] robert:
* From Ralf Habacker, removed redundent SwitchLayer::clear()
2008-09-14 10:31 +0000 [r8853] robert:
* Introduced Geometry::containsSharedArrays() and
Geometry::duplicateSharedArrays() to support a fix to the
osgUtil::Simplifier that couldn't handle shared arrays
2008-09-13 13:38 +0000 [r8852] robert:
* Added reading of whole directories of images
2008-09-13 09:09 +0000 [r8851] robert:
* Introduced TransferFunction1D::assign(ValueMap&).
2008-09-12 15:41 +0000 [r8850] robert:
* Removed use of ints and reading from gl_FragColor in shader
2008-09-11 16:11 +0000 [r8849] robert:
* Updated version numbers in prep for up comming dev release
2008-09-11 16:06 +0000 [r8848] robert:
* Added an svn update into the make ChangeLog entry.
2008-09-11 16:01 +0000 [r8847] robert:
* Updated wrappers