Commit Graph

1290 Commits

Author SHA1 Message Date
Robert Osfield
aa73e1d1d4 Added update traversal to run prior to doing kdtree build to make sure that
costs in build osgTerrain databases isn't incurred during the build traversal.
2008-06-06 10:51:23 +00:00
Robert Osfield
ac068178aa Added timing code 2008-06-05 18:52:29 +00:00
Robert Osfield
a9b1ea660d Basic implementation of kdtree generation based on vertices 2008-06-05 17:28:06 +00:00
Robert Osfield
9212d4dd95 Further work on fleshing out basic classes 2008-06-04 17:59:39 +00:00
Robert Osfield
338be0b926 Fleshed out some basic kd-tree data structures. 2008-06-03 17:29:27 +00:00
Robert Osfield
8d0c7890ce First cut of osgkdtree example, this will be used as a base of the development of
native kdtree support to help speed up intersection testing.
2008-06-03 16:13:49 +00:00
Robert Osfield
5711964481 Added unit test to smoke out a thread issue with using ofstream("/dev/null") inside
osg::notify()
2008-06-03 11:28:16 +00:00
Robert Osfield
1047f970bb From Adrian Egli, improvements to ParallelSplitShadowMap implementation 2008-05-28 14:11:22 +00:00
Robert Osfield
aee0e8dc37 Introduced a TerrainHandler that adjust the sameple ratio and vertical scale
of terrain interactively using the 'r','R' and 'v','V' keys respecitvely.
2008-05-27 15:28:39 +00:00
Robert Osfield
ae303e38e9 From Paul Melis, "Here is an update to the osgviewerWX example. Keyboard events were not always received because the GraphicsWindowWX wasn't receiving focus. It now receives focus when the mouse enters the window.
* I split the mouse handling from a monolithic method to separate ones, slightly cleaner than a whole bunch of if()'s, especially with another case of the mouse entering the canvas.
* I changed the EVT_KEY_DOWN handler to an EVT_CHAR handler, although that now makes the up and down handler assymetric. The new down-handler returns translated key codes, so when you press the S key (without anything else), it actually returns 's' and not 'S' as the EVT_KEY_DOWN did. This means that statistics can be called up in the viewer window, while the example previously only printed a "Stats output:" line to the console. I'm not truly happy that the up handler returns _untranslated_ key codes. But solving this completely would probably mean adding some table that translated from wxWidgets' untranslated key codes to OSG's internal ones. This might be interesting to add, as anyone using OSG + wxWidgets in any serious manner would also have to add this.
* I commented out the evt.Skip()'s in the keyboard handlers as these would only be necessary if there were some key events that are not handled. But currently all key events are simply forwarded.
* I changed the handling of a mouse drag to a more general mouse move"
2008-05-26 21:09:54 +00:00
Robert Osfield
7592e50cde Introduce --pbuffer-only width height option, and added fps reporting to stats output 2008-05-26 16:25:31 +00:00
Robert Osfield
57ce3f820e Added basic --pbuffer width height support 2008-05-26 15:41:54 +00:00
Robert Osfield
7aac7ef381 Added better stats reporting 2008-05-26 14:30:48 +00:00
Robert Osfield
bb1f6ff7c1 Added feedback of pixel format chosen for read back 2008-05-26 12:01:24 +00:00
Robert Osfield
8ed9b303f1 Added automatic selection of the pixel type according to the window type 2008-05-26 11:59:25 +00:00
Robert Osfield
d2afe3e956 Added option for doing triple buffering, and set the default read format
to GL_RGBA
2008-05-26 11:53:51 +00:00
Robert Osfield
dc7db11e63 Switch to using an inital draw callback when use --start-frame 2008-05-25 22:06:41 +00:00
Robert Osfield
5664c51cf0 Added option for setting whether the front or back buffer should be read using
--front and --back command line options.
2008-05-25 21:52:32 +00:00
Robert Osfield
28fd4b07c9 Added option for controlling whether the front buffer is read at the start of the
frame or the back buffer at the end of the frame.
2008-05-25 21:35:39 +00:00
Robert Osfield
cc07d064bf Changed default format to GL_BGR 2008-05-24 08:13:55 +00:00
Robert Osfield
90308d22aa Added single buffered and double buffered PBO support, and --no-pbo,
--single-pbo and --double-pbo command line parameters
2008-05-23 16:26:03 +00:00
Robert Osfield
f9f1aab67d Added basic glReadPixels code 2008-05-22 17:50:22 +00:00
Robert Osfield
fd76054eac Added camera final callback attachment code. 2008-05-22 15:43:01 +00:00
Robert Osfield
0a3737eb2c Fixed name of source file 2008-05-22 13:11:23 +00:00
Robert Osfield
29d067639c Added new osgscreencapture example folder, implementation to follow 2008-05-22 13:10:40 +00:00
Robert Osfield
01f58ffbb2 From Jeremy Moles, fixed window resize problem 2008-05-09 10:27:59 +00:00
Robert Osfield
4345382316 From Jeremy Moles, osgviewerGTK example 2008-05-08 16:39:10 +00:00
Robert Osfield
4f881b9a09 From Jeremy Moles,"Here's a small example I us to test text rendering in osgWidget; I
figured it might be helpful to folks in OSG who need to do the same.
"
2008-05-07 13:46:24 +00:00
Robert Osfield
53630a2b14 From Wojchiech Lewandowski, add missing setDataVariance(DYNAMIC) and extra event handlers 2008-04-24 16:24:16 +00:00
Robert Osfield
234bfeb648 Removed hardware down sampling hack from GeoemtryTechnique and replaced with Terrain::g/setSampleRatio()
usage.
2008-04-22 11:39:47 +00:00
Robert Osfield
1b29fb8933 From John Shue, build fix for QT 3.x 2008-04-17 11:12:21 +00:00
Robert Osfield
db1bd13c4c From Tim Moore, compile fix for gcc 4.3 2008-04-15 11:50:34 +00:00
Robert Osfield
f9c70f2f76 Added --unit entry for controlling which texture unit the overlay works on. 2008-04-11 14:14:28 +00:00
Robert Osfield
6fed4022a6 Added reference to osgstereomatch example to osgmultiplerendertargets.
Added usage example use OpenSceneGraph-Data/Images examples
2008-04-11 13:04:21 +00:00
Robert Osfield
98a2289a59 From Jose Delport, a MRT example implementing stereo matching. 2008-04-11 11:58:27 +00:00
Robert Osfield
11f9575b24 From Melchior Franz, "The GUIEventAdapter header file had KeySymbols for the super and
hyper keys defined already, but these modifiers were missing in
GUIEventAdapter::ModKeyMask, and the EventQueue ingored them as well.

The attached diff/archive adds the missing parts for Super/Hyper
modifier key support.


I'm aware that this might not be supported on all systems/keyboards
out of the box, but decided to submit it anyway because:

- developers are aware of differences between input devices
 (Some mice have scroll wheels, others don't. Some have five or
 more buttons, some have only one. Some keyboards don't have
 numpads, some have AltGr, some don't etc.)

- even if someone relies on Hyper/Super in distributed software,
 this is easy to fix and doesn't create lock-in conditions

- while the names Hyper/Super may only be common on X11, they are
 just symbol names and not OS-specific

- even though some systems might not offer these additional modifiers
 by default, it's likely that all of them have at least 8 modifier
 levels internally, so it should only be a matter of OS configuration
 to make them work

- having super/hyper available is useful to offer a user ways
 to define local key definitions that are safe from collisions with
 predefined "official" key assignments"
2008-04-11 11:10:12 +00:00
Robert Osfield
22edadcdf3 Added --mouse option to enable mouse tracking, and fixed bug in assumption
that nv is not null.
2008-04-11 10:10:40 +00:00
Robert Osfield
fb5c839b31 From Jose Delport, introduced osgmultiplerendertargets example 2008-04-02 13:48:41 +00:00
Robert Osfield
49accb1635 Reordered set up of scene and event handlers to prevent warning 2008-03-28 15:28:03 +00:00
Robert Osfield
6396a156a2 Renamed osgTerrain::TerrainSystem to osgTerrain::Terrain 2008-03-27 11:55:03 +00:00
Robert Osfield
35c5bd2c92 Renamed Terrain to TerrainTile 2008-03-27 10:55:39 +00:00
Robert Osfield
a9d283ca73 Introduce TerrainSystem node which decorates a complete terrain model made up of Terrain tiles. 2008-03-26 20:06:54 +00:00
Robert Osfield
434337b7c8 From Tomas Hnilica, "
Attached is modified source of AdapterWidget.cpp file from osgviewerQT
example. Original was token today from SVN - trunk. (2.3.6).
 --mdi option needs to be set to run MDI version.

Few notes:
- tested on Windows box (Win XP)
- using QT4
- I was not able to execute the example with QOSGWidget  - had same
error like described in [osg-users] "fate error using QOSGWidget in
develop release
2.3.0" thread from Shuxing Xiao, 2008-01-08.
- problems are described in source

--

And Later post:

The problem of keypress events was solved by QT community, attached is
repaired AdapterWidget.cpp file.
In the AdapterWidget class constructor following line was added:
setFocusPolicy(Qt::ClickFocus);
Scene disappearing by resizing to minimum still needs to be fixed..."
2008-03-25 15:21:14 +00:00
Robert Osfield
920554c4f7 From Wojciech Leandowski, "I removed few lines of code that were setting Threading mode and Screen mode. I believe they are now not neccessary because the same does osgViewer::Viewer argument parser. In fact argument list does not contain these args after they were parsed by osgViewer::Viewer constructor.
I also allowed myself to add ThreadingHandler to the example."
2008-03-25 11:50:28 +00:00
Robert Osfield
26526038ca Added mutex to prevent multiple cull threads changing the MultiTextureControl at one time. 2008-03-24 18:03:19 +00:00
Robert Osfield
584882ad24 Added full range of cameras manipulators to osgmultitexturecontrol example 2008-03-24 10:53:14 +00:00
Robert Osfield
1d1dcf2cf3 To osg::AutoTransform added support for MinimumScale, MaximumScale and AutoScaleTransitionWidth parameters
and a new scheme for computing the scaling when using autoscale that introduces smooth
transitions to the scaling of the subgraph so that it looks more natural.
2008-03-18 15:37:38 +00:00
Robert Osfield
b08f438946 Added example code showing how to set the minimum and maximum scales 2008-03-18 10:45:47 +00:00
Robert Osfield
80d5d01698 Fixed moving model bug where the moving model code was looking for a transform with DataVariance set to DYNAMIC, but the scene graph set up code was leaving the setting to default to STATIC. Fix involved setting DataVariance on moving transoforms to DYNAMIC. 2008-03-17 12:23:06 +00:00
Robert Osfield
7ec5673a7e Added fire effect, enabled by --fire command line option. The new fire effect
has been introduced to reproduce the scaling of paricle effects
2008-03-17 10:29:23 +00:00
Robert Osfield
cf8cbc5af4 From Paul Melis, "typo fix : NVidea -> NVidia (including option --Nvidea)" 2008-03-14 16:51:39 +00:00
Robert Osfield
a364f933e4 Added iostream include 2008-03-14 14:35:15 +00:00
Robert Osfield
daef0f64f2 From Jose Delport, "attached is a version of osgunittests that does not give false alarms
for the case where q1 = -q2. The output of 'osgunittests quat' is now
much cleaner.
"
2008-03-13 16:38:05 +00:00
Robert Osfield
670c7967ae From Paul Melis, "Here is an updated osgviewerWX example to bring it more in line with the
other GUI toolkit examples. It now takes a model file as command-line
argument (complaining if there isn't one), and its startup window size
is now actually applied (it used to be too small). I tested this with a
unicode-build of wxWidgets, as that is the recommended build type on
Linux with GTK. I'm pretty sure this version of the example will work
for the ANSI build as well, but I have no way of testing."
2008-03-13 16:22:07 +00:00
Robert Osfield
9ce276c5d7 From Alberto Luaces, "Here I send minor corrections to the text output by the osgforest example when
building its graphs. The message "Creating billboard based forest" appears
four times regardless of the actual type of the graph being built.
"
2008-03-13 13:43:22 +00:00
Robert Osfield
3bdfb700aa Added extra event handlers to make viewer more functional 2008-03-11 12:10:09 +00:00
Robert Osfield
d8f674a59d From Jean-Sebastien Guay and Robert Osfield, added optional --CompositeViewer path into osgpick to illustrate how to do picking in both viewers and as unit test for picking. 2008-03-04 14:19:03 +00:00
Robert Osfield
02b52cb73a From Paul Martz, a third person view CompositeViewer example 2008-03-04 13:30:41 +00:00
Robert Osfield
a145975de1 Removed single threaded setting 2008-03-04 11:50:35 +00:00
Robert Osfield
a2e8d90194 Implemented fade between layers using MultiTextureControl node 2008-03-03 18:12:21 +00:00
Robert Osfield
289ef1279d Added beginings of new osgmultitexturecontrol example 2008-03-03 14:17:56 +00:00
Robert Osfield
36bbfa9935 Fixed naming 2008-03-01 12:29:49 +00:00
Robert Osfield
aa43b3c8a6 Added Camera::g/setIntialDrawCallback and g/setFinalDrawCallback(), and added
screen snapshot example code to osghud.
2008-02-29 15:25:57 +00:00
Robert Osfield
79276b3169 From He Sicong, "fixed shader calculation of ray tracing" 2008-02-28 10:56:03 +00:00
Robert Osfield
3b4af26136 From Paul Martz, fixed get/set methods API 2008-02-27 11:43:58 +00:00
Robert Osfield
c52fdc0c77 Reverted back to previous version of osgtext 2008-02-25 13:07:37 +00:00
Robert Osfield
e869200b3d Refactored the mutex usage in osgText and freetype plugin to prevent multi-thread crash 2008-02-25 12:54:54 +00:00
Robert Osfield
67f1503c7d Refactored osgTerrain so that the interface for setting up layer is more straight forward, and added support into GeometryTechnique for handling multiple layers 2008-02-22 11:52:23 +00:00
Robert Osfield
fb2726b0db From Philip Lowman, workaround for gcc 3.2.3 bug 2008-02-19 09:49:12 +00:00
Robert Osfield
e0e98d3426 From Mike Weiblen, "an aesthetic enhancement for displaying important version information." 2008-01-28 20:52:31 +00:00
Robert Osfield
7761129f9b From Andy Skinner, build fixes for Solaris. 2008-01-18 21:07:03 +00:00
Robert Osfield
578f385760 From Mike Weiblen, support for geometry shaders, and osgeometryshaders example to demonstrate them. 2008-01-08 14:29:44 +00:00
Robert Osfield
a33a0047a4 Fixed warning 2008-01-08 14:22:59 +00:00
Robert Osfield
b222d4201c From Paul Martz, "The osgocclusionquery example contained some duplicate code that was also in the core OSG occlusion query code. This change removes the need for that." 2007-12-26 22:00:28 +00:00
Robert Osfield
dea067050c Renamed osgText::Font::SizePair to osgText::FontSizePair in prep for use this more
widely within osgText/freetype plugin.

Added support for inserting loading models into --mt multithreaded implementation.
2007-12-23 13:18:40 +00:00
Robert Osfield
4889342c4a From Paul Martz, Introduced osg::OcclusionQueryNode with support for OpenGL occlusion query extension 2007-12-21 14:45:16 +00:00
Robert Osfield
998ba32501 Added parsing of parameters to Viewer constructor. 2007-12-16 13:29:02 +00:00
Robert Osfield
fddcebd479 Added StateSetManipulator for testing purposes, and fixed typo 2007-12-16 13:25:40 +00:00
Robert Osfield
be5f709bdb From Mike Garrity, "There was an on again/off again thread on OSG users about
creating subclasses of osg::Array that referenced data
stored an application's internal data structures. I took
a stab at implementing that and ran into a couple of
downcasts in Geometry.cpp. Enclosed is my take at fixing
those along with a simple example of how to do this."
2007-12-11 15:55:02 +00:00
Robert Osfield
b668a54e17 From Eric Wing, "For osgviewerCocoa, a very simple change to allow toggling between
fullscreen mode and back between views. (To activate, double click on
the view to toggle.) It demonstrates/uses the new one-liner fullscreen
method introduced in Leopard. Code will still compile and run in
pre-Leopard (thanks to Obj-C dynamic/late binding), but code path is
treated as a no-op in those cases."
2007-12-10 20:36:34 +00:00
Robert Osfield
f4afa427a7 From Roland Smeenk, "Attached you will find a large set of small typo fixes (mainly in the comments)." 2007-12-10 17:30:18 +00:00
Robert Osfield
f69a48e552 From David Callu, added support of 3D text to osgText and associated plugins. 2007-12-10 15:15:56 +00:00
Robert Osfield
65bef96a6e From Peter Hrenka, "Due to popular demand I would like to submit this
enhanced version of PolytopeIntersector.


New features of PolytopeIntersector :

* Dimension mask: The user may specify the dimensions of the
   primitives to be tested. Checking polytope-triangle and
   polytope-quad intersections is rather slow so this can
   be turned off.
* Reference plane: The resulting intersections are sorted
   by the distance to this plane.

New memebers of PolytopeIntersector::Intersection :

* distance: Distance of localIntersectionPoint to the reference plane
* maxDistance: Maximum distance of all intersectionPoints to the
   reference plane.
* intersectionPoints: The points intersecting the planes of the polytope
   or points completely inside the polytope.
* localIntersectionPoint: arithmetic mean of all intersection points
* primitiveIndex: Index of the primitive that intersected


I added some more output to the example osgkeyboardmouse."
2007-12-08 16:37:05 +00:00
Robert Osfield
195ed8ba26 From David Cullu and Robert Osfield, David addded a new style of OSG integration with QT by sublcassing from QTWidget and using osgViewer to create the graphics context, Robert added integration of this codes
with the original AdapterWidget implementation still available by default.   The new implementation can be accessed by running:

  osgviewerQT cow.osg --QOSGWidget
2007-12-08 15:46:19 +00:00
Robert Osfield
0120bae9f7 From Jeremy Moles, "This extra call to SDL_VideoSetMode() prevents my viewport from getting
all wonky when I resize the SDL window. I'm not sure if this bug has
always existed or not, but according to the SDL documentation this
operation should be safe regardless, and doesn't not introduce the need
for extra memory management (that is: there is no need to "cleanup" the
old screen variable, that is all handled by SDL for us).
"
2007-12-08 15:04:47 +00:00
Robert Osfield
b112e15b13 From Bob Kuehne, added extra event handlers 2007-12-06 17:53:22 +00:00
Robert Osfield
188b196ca6 From Mathias Froehlich, "n examples/osgfadetext/CMakeLists.txt osgSim as dependency is missing." 2007-12-06 17:07:04 +00:00
Robert Osfield
5b305e37b0 From Mathias Froehlich, "Attached is a changed version of osgunittests.cpp. The __FUNCTION__
macro/string value is not portable. Instead the functions name is just put
into the string."
2007-12-06 17:01:22 +00:00
Robert Osfield
3d7fbeca28 Added testPolytope entry 2007-12-04 14:43:14 +00:00
Robert Osfield
ca9b2dc7db From Colin Dunlop, add --devices support. 2007-11-17 11:50:13 +00:00
Robert Osfield
2e2ddba49e Added support for setting volume in xine plugin, manual adjustment of volume
in osgmove example, and clamping to 0 to 1.0 range in quicktime plugin
2007-11-04 16:08:05 +00:00
Robert Osfield
b5f681b86f Changed the threading model to single threaded. 2007-10-05 09:03:51 +00:00
Robert Osfield
b3ecb8f38f From Mahai Radu, improvements to handling of spotlights 2007-10-03 12:48:23 +00:00
Robert Osfield
1dc06b4553 From Mihair Radu, "Most of the additions are small utility methods:
- set the resolution of the shadow map; it calls dirty() to
re-initialize at next update
- keep a list of Shader objects to use instead of the default ones, if
the list is empty, the default shaders are used
- explicitly create the Uniform variables, so that subsequent additions
that require more Uniforms can put them in a central place
- set a Light or LightSource to use explicitly for shadow casting,
allows multiple lights in the scene, with one casting shadows

There are two additions that do not ( yet ) function correctly, but in
the present usage they do not interfere with the regular usage of the
techique:
- support for using spotlights, it's using Light.spotCutoff to determine
if it's a spot-light and not point-light,
   there is an error in the setup of either the shadow camera or the
texgen, most likely due to the direction of the spotlight, since the
position is being used just like in point or directional lights.
- creation of a debugHUD
   the hud is created properly, ( the example included shows it ), but
it displays only white, there has been some discussion of displaying the
shadow map, but I could not find it, the addition of a simple fragment
shader with the appropriate color transform should get this going."
2007-10-02 21:45:09 +00:00
Robert Osfield
55d5a4d28a Introduced a OSG_PLUGIN_PREFIX variable into CMake build system with it set to
"" for all platforms except Cygwin where its set to "cygwin_" and Mingw where
it is set to "mingw_".  Updated osgDB::Registry to look for these for the plugins.
Updated the osgintrospection example to search for these names as well.
2007-10-02 21:26:22 +00:00
Robert Osfield
441b0c34bd Updated to reflect new CompositeViewer threading models 2007-10-02 21:24:23 +00:00
Robert Osfield
48f19b72bd Added support for CompositeViewer to WindowSizeHandler, ThreadingHandler, RecordCameraPathManipulator and HelpHandler. 2007-09-30 19:27:31 +00:00
Robert Osfield
4cf73d4c87 Changed HelpHandler so it supports use with CompositeViewer and Viewer 2007-09-30 19:15:32 +00:00
Robert Osfield
4ef1864432 From Stephan Huber, add basic support for CompositeViewer in StatsHandler 2007-09-29 11:41:57 +00:00
Robert Osfield
5b263f583f Added record path manipulator 2007-09-28 08:52:00 +00:00