1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-01-20 10:53:52 +00:00
Commit graph

755 commits

Author SHA1 Message Date
AnyOldName3
cc2ce9fa3e Explicitly default-construct array
The docs seem to imply this is automatic when the array contains a
class-type, which osg::ref_ptr is, but I got a crash log that doesn't
make sense if that's true.
2020-12-19 21:57:42 +00:00
AnyOldName3
0b5d5eab4c Move is faster 2020-12-18 02:11:51 +00:00
AnyOldName3
05ad44d0b1 Set correct array size 2020-12-18 01:44:46 +00:00
AnyOldName3
ce2bcba5d4 Replace deprecated alpha test in shader visitor 2020-12-17 14:57:43 +00:00
Nelsson Huotari
8b2bf12e8f Use bip01 for root bone name 2020-12-15 13:51:49 +02:00
Nelsson Huotari
6c1f6169c0 Fix root movement glitch 2020-12-15 13:50:19 +02:00
Nelsson Huotari
256aa5e71d Use const auto& 2020-12-12 22:23:20 +02:00
AnyOldName3
5ad297e6ff Guarantee glow updater regenerates shaders on completion
Previously, it would edit the odd numbered stateset, then regenerate
shaders for the even-numbered one, then edit the even numbered one, and
regenerate shaders for the odd numbered one (or vice versa if it
finished during an even numbered frame). This would leave one of the
shader programs still trying to use the state that had been removed.
2020-12-03 18:41:32 +00:00
Andrei Kortunov
8084a336b5 Replace zeroes and nulls by nullptrs 2020-11-29 11:14:07 +04:00
Nelsson Huotari
55dcc6582a Don't duplicate getFileExtension, use OpenMW's namespaces 2020-11-28 15:03:10 +02:00
Nelsson Huotari
3232faa703 Use const ref instead of value 2020-11-20 19:41:01 +02:00
Nelsson Huotari
32d4344803 Don't copy osga-data in base class keyframecontroller, fix warnings. 2020-11-20 19:38:29 +02:00
Nelsson Huotari
6e77ad1f6a OSG-Collada animation support 2020-11-19 01:11:56 +02:00
Nelsson Huotari
f78a5d795c Separate keyframes logic to provide basis for osgAnimation integration. 2020-11-18 22:48:47 +02:00
AnyOldName3
37661bffea Merge branch 'shadowdisable-fix' into 'master'
Make disableShadowsForStateSet a no-op when shadows are disabled

See merge request OpenMW/openmw!205
2020-11-18 18:56:36 +00:00
AnyOldName3
7768556ce6 Set dummy state when disabling shadows indoors
As we don't reconfigure all shaders without shadows when we disable them
indoors (as it'd probably add a hitch to transitioning in and out) we
need to set up dummy state so the shaders don't do anything illegal.

This hadn't had symptoms for most objects as when indoors, nearly
everything would be drawn first in one of the water RTTs, which had
dummy state to disable shadows already. This wasn't true of the water
plane itself, though, yet somehow it took until just now for anyone to
report that.

This resolves vtastek's issue where the water would be invisible indoors
2020-11-16 21:01:20 +00:00
AnyOldName3
1e0df23d14 Merge branch 'shadows-bin' into 'master'
Use a custom renderbin to avoid pointless OpenGL state switches

See merge request OpenMW/openmw!402
2020-11-13 16:29:41 +00:00
AnyOldName3
fcfd340c69 Actually copy alpha blended drawables to the new stategraph 2020-11-12 23:23:40 +00:00
AnyOldName3
55f65752fd Don't bind unnecessary colour buffer when drawing shadow maps 2020-11-12 17:55:10 +00:00
AnyOldName3
cdbf19a508 Tidy up run-on lines 2020-11-12 17:04:23 +00:00
AnyOldName3
296dce470a Spelling fix 2020-11-12 16:58:29 +00:00
AnyOldName3
72f7e6a702 Handle all shadow alpha uniforms in shadowsbin 2020-11-12 00:26:30 +00:00
AnyOldName3
5d046bc95d Mark override 2020-11-11 14:58:06 +00:00
Alexei Dobrohotov
53f91a3aa5
Merge pull request #3018 from akortunov/emplace
Use emplace_back instead of push_back
2020-11-01 01:58:56 +03:00
AnyOldName3
449506fef1 Attempt to explain what shadowsbin is doing 2020-10-31 19:06:20 +00:00
Alexei Dobrohotov
4fc5e22e9e NIF fixes and cleanup
Get rid of NodeIndexHolder
Use unsigned 32-bit type for NIF record index
Fix calculation of the number of UV sets
2020-10-26 02:51:25 +03:00
AnyOldName3
f7dddb8857 Merge branch '3' of https://gitlab.com/bzzt/openmw into shadows-bin
This won't actually work.
2020-10-23 17:55:15 +01:00
Andrei Kortunov
065ed5138e Use emplace_back instead of push_back 2020-10-18 10:27:35 +04:00
Andrei Kortunov
8ca3c3b123 Mark overrided methods by override keyword 2020-10-16 22:18:54 +04:00
Alexei Dobrohotov
9f08dc9968 Revert "Merge branch 'skinning' into 'master'"
This reverts merge request !327
2020-10-08 23:24:28 +00:00
Alexei Dobrohotov
6be808e301 RigGeometry: convert some pairs to structs 2020-10-08 03:05:59 +03:00
AnyOldName3
fd14dad789 const osg::ref_ptf reference should be faster than value as constructor and destructor are non-trivial
I played around in GodBolt and got into an argument to determine this. The difference will be immeasurably small, but my curiosity has been satisfied.
2020-08-20 03:01:43 +01:00
AnyOldName3
707204133d Double-buffer shadow uniforms that change each frame 2020-08-20 00:38:13 +01:00
AnyOldName3
ce98d7053b Double buffer view-dependent data stateset 2020-08-19 22:55:41 +01:00
AnyOldName3
98b2d5d921 Make shadow debug HUD thread-safe
* Double buffer the frustum uniforms.
* Don't mess with the debug geometry's StateSet.
* Change two-element vectors to arrays so the size is explicit.
2020-08-19 19:29:19 +01:00
Andrei Kortunov
215ddb9106 Do not print warnings for VisController 2020-08-12 11:16:37 +04:00
Capostrophic
46825e8a4d Move NIF record index back to a separate user object
This makes sure it's never erroneously optimized out. NodeIndexHolders don't need to be cloned as their record index is never supposed to be changed.
2020-07-26 09:57:43 +03:00
Capostrophic
cc791af0f5 Serialization fixes
Make sure NifOsg::MatrixTransform serialization behaves as intended
Add a dummy serializer for NifOsg::UVController
2020-07-26 09:57:43 +03:00
Capostrophic
3b55d657e5 CopyRigVisitor: Log the number of parents in multiple parents error 2020-07-26 09:57:43 +03:00
Capostrophic
a61267f57d Replace NodeUserData with a custom transform node 2020-07-26 09:57:43 +03:00
Capostrophic
4c9cefefdd Get rid of NifOsg::CollisionSwitch 2020-07-26 09:57:43 +03:00
Bret Curtis
0c2fea8254
Merge pull request #2932 from elsid/replace_open_threads
Replace OpenThreads by std types
2020-07-04 13:11:23 +02:00
Andrei Kortunov
ef6fe8d52a Fix crash in the stateset updater (regression #5478) 2020-06-30 09:01:17 +04:00
elsid
40ad87bc4d
Replace OpenThreads by std types 2020-06-25 22:16:09 +02:00
elsid
3251687a3d
Use std types for WorkQueue 2020-06-24 21:23:31 +02:00
psi29a
f94ca28dbe #5463: Optimizer fix, problem was indeed related to tangents not being transformd properly. 2020-06-18 17:23:16 +00:00
psi29a
66b5cf9f1d Merge branch 'master' into 'near_far_mode_in_launcher'
# Conflicts:
#   files/settings-default.cfg
2020-06-16 23:05:07 +00:00
bzzt lost a hitlab login
26ab176389 profiling
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:28 +02:00
bzzt lost a hitlab login
daa2761c2d alphablending & billboardfix
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:28 +02:00
bzzt lost a hitlab login
f12879a04c allow statesetupdater as cullcallback = faster + works in paging
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:28 +02:00
bzzt lost a hitlab login
9f0398c021 intersection by refnum tag + enable paging for acti,door,cont
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:28 +02:00
bzzt lost a hitlab login
ce505a9bb3 crashfix + optimiziation
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:27 +02:00
bzzt
d684f1a78f terrainbased objectpaging
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:27 +02:00
Icecream95
f14db21745
Make disableShadowsForStateSet a no-op when shadows are disabled
Otherwise the GPU has to do useless shadow comparisons when shadows
are disabled.
2020-05-17 19:52:23 +12:00
Capostrophic
78b1bbe130 Remove unnecessary null check 2020-05-15 10:34:49 +03:00
Capostrophic
72e5043eda CopyRigVisitor fixes
Make sure it copies all relevant drawable parent nodes (e.g. including the node with the environment map effect)
Make sure it doesn't copy nodes multiple times
2020-05-15 01:12:06 +03:00
psi29a
b72720f357 Merge branch 'shadow-transparency-rework' into 'master'
Only alpha-test shadows when necessary

See merge request OpenMW/openmw!170
2020-05-08 21:32:16 +00:00
Bret Curtis
aaa8990006
Merge pull request #2799 from Capostrophic/simplewaterfog
Fix simple water with radial fog enabled
2020-05-08 20:48:04 +02:00
Bret Curtis
f51476a3c5
Merge pull request #2816 from Capostrophic/switchlod
CollisionSwitch and Switch/LOD node fixes
2020-05-01 23:49:08 +02:00
Bret Curtis
5f0f2f0f16 rename to better reflect what is going on per AnyOldName3 comment; added none option 2020-05-01 00:34:31 +02:00
Bret Curtis
bf6daa7269
Merge pull request #2811 from Capostrophic/emitter
Allow particle emitters to be attached to an arbitrary node
2020-04-30 14:56:49 +02:00
Capostrophic
957d2a890f Ignore empty children of osg::LOD and osg::Switch like in OSG 2020-04-30 15:04:58 +03:00
Capostrophic
63fe02b1ba CollisionSwitch and Switch/LOD node fixes
Properly apply transformations to both switch and LOD nodes
Allow both NiSwitchNode and NiLODNode to be the root node
Properly add CollisionSwitch into the scene graph
2020-04-30 15:04:57 +03:00
psi29a
bb5fe13e13 Make sure it is either one or the other with the default to bounding volumes. 2020-04-29 23:06:44 +00:00
Bret Curtis
d38c3e971c remove extra line 2020-04-29 17:05:08 +02:00
Bret Curtis
ae729a1ac7 add ability to set the type of near far method to be used in shadow calculation; default to bounding volumes; cleaned up code while there and re-ordered items 2020-04-29 16:36:48 +02:00
Capostrophic
6b874e397b Make particle system cloning map names more sensible 2020-04-29 12:25:52 +03:00
Capostrophic
f516178ec9 Fix particle processor cloning
Extend emitter handling comment in NIF loader
2020-04-29 11:14:22 +03:00
psi29a
476a74c2d3 Merge branch 'bzzt_5_tight_scene_bound' into 'master'
Allow use of OSG's Bounding Volumes

See merge request OpenMW/openmw!189
2020-04-29 07:44:03 +00:00
Bret Curtis
31a75a962a Add 3 additional classes to be ignored who dumping "showscenegraph" debug output; less spammy 2020-04-27 11:56:10 +02:00
Bret Curtis
ca0adc25bb add two additional classes we do not need to serialize; less pam during showscenegraph debug dump. 2020-04-27 11:51:18 +02:00
Bret Curtis
886b9813ad Something changed in OSG 3.6 that makes the command "showscenegraph" less useful; it writes out raw data of images to the debug output file openmw.ogst. This commit adds the hint and restores default behaviour found in OSG 3.4 2020-04-27 11:40:49 +02:00
bzzt
dc33eeadf1 tightscenebound is uncessary after water bbfix 2020-04-27 08:42:46 +02:00
elsid
c59c8ae1f4
Remove unused macro 2020-04-24 20:38:55 +02:00
Capostrophic
688e804548 Fix simple water with radial fog enabled 2020-04-24 13:52:53 +03:00
Bret Curtis
8a8107e837 as it says; revert vismask and uncomplicate openmw 2020-04-20 20:57:38 +02:00
AnyOldName3
1cf2036386 Don't add empty PrimitiveSets (prevent undefined behaviour) 2020-04-18 02:38:20 +01:00
AnyOldName3
12044a607b Only alpha-test shadows when necessary
Previously we always discarded shadow map fragments if the alpha channel of the output would have been low, but there were some (modded) assets that have non-one alpha but have testing or blending disabled so end up opaque anyway. This lets the shadows of those objects match.
2020-04-10 15:45:37 +01:00
Andrei Kortunov
02d7b13075
Merge pull request #2529 from akortunov/nodecopy
Copy transformations data when we clone node
2020-04-04 15:04:49 +04:00
elsid
7ae7cb181d
Support recast mesh rendering 2020-03-14 09:38:24 +01:00
Andrei Kortunov
84979fa8b7 Move VisMask to components 2020-02-16 16:03:35 +04:00
bzzt
d340224c95 shadowsbin for gl state reduction 2019-11-20 13:37:00 +00:00
elsid
2e1d8a5e55
Remove unused virtual modifiers in DebugHUD
/home/elsid/dev/openmw/components/sceneutil/mwshadowtechnique.cpp:3127:9: warning: Call to virtual function during construction [clang-analyzer-optin.cplusplus.VirtualCall]
        addAnotherShadowMap();
        ^
/home/elsid/dev/openmw/components/sceneutil/mwshadowtechnique.cpp:3094:5: note: Loop condition is true.  Entering loop body
    for (int i = 0; i < 2; ++i)
    ^
/home/elsid/dev/openmw/components/sceneutil/mwshadowtechnique.cpp:3094:5: note: Loop condition is true.  Entering loop body
/home/elsid/dev/openmw/components/sceneutil/mwshadowtechnique.cpp:3094:5: note: Loop condition is false. Execution continues on line 3102
/home/elsid/dev/openmw/components/sceneutil/mwshadowtechnique.cpp:3126:21: note: Assuming 'i' is < 'numberOfShadowMapsPerLight'
    for (int i = 0; i < numberOfShadowMapsPerLight; ++i)
                    ^
/home/elsid/dev/openmw/components/sceneutil/mwshadowtechnique.cpp:3126:5: note: Loop condition is true.  Entering loop body
    for (int i = 0; i < numberOfShadowMapsPerLight; ++i)
    ^
/home/elsid/dev/openmw/components/sceneutil/mwshadowtechnique.cpp:3127:9: note: This constructor of an object of type 'DebugHUD' has not returned when the virtual method was called
        addAnotherShadowMap();
        ^
/home/elsid/dev/openmw/components/sceneutil/mwshadowtechnique.cpp:3127:9: note: Call to virtual function during construction
2019-11-17 18:50:11 +01:00
elsid
bd149b909f
Remove unused virtual modifiers in ShadowManager
/home/elsid/dev/openmw/components/sceneutil/shadow.cpp💯9: warning: Call to virtual function during construction [clang-analyzer-optin.cplusplus.VirtualCall]
        setupShadowSettings();
        ^
/home/elsid/dev/openmw/components/sceneutil/shadow.cpp💯9: note: This constructor of an object of type 'ShadowManager' has not returned when the virtual method was called
/home/elsid/dev/openmw/components/sceneutil/shadow.cpp💯9: note: Call to virtual function during construction
/home/elsid/dev/openmw/components/sceneutil/shadow.cpp:104:9: warning: Call to virtual function during construction [clang-analyzer-optin.cplusplus.VirtualCall]
        enableOutdoorMode();
        ^
/home/elsid/dev/openmw/components/sceneutil/shadow.cpp:104:9: note: This constructor of an object of type 'ShadowManager' has not returned when the virtual method was called
/home/elsid/dev/openmw/components/sceneutil/shadow.cpp:104:9: note: Call to virtual function during construction
2019-11-17 18:26:56 +01:00
Andrei Kortunov
f09d20434c Clamp number of shadow maps 2019-11-17 17:25:02 +04:00
Andrei Kortunov
7074baa1c2 Clamp number of shadow maps, as described in docs 2019-11-13 15:10:22 +04:00
bzzt
b6ed2f1718 Add optional shadow map max distance and fading 2019-11-02 18:06:39 +03:00
Andrei Kortunov
e568ad30ea Copy transformations data when we clone node (bug #5163) 2019-09-19 11:35:15 +04:00
Andrei Kortunov
d4a8023e1a
Merge pull request #2485 from Capostrophic/lighting
Add support for QuadraticMethod/LinearMethod setup (bug #4965, continuation)
2019-08-11 22:17:40 +04:00
capostrophic
62fd2d47a5 Rewrite flickering/pulsing to work more like vanilla (bug #4952) 2019-08-11 20:33:13 +03:00
capostrophic
c0d5cbdc8b Add support for QuadraticMethod/LinearMethod setup (bug #4965) 2019-08-10 13:25:49 +03:00
Andrei Kortunov
8557346fbd Use glow for enchanted arrows (feature #5122) 2019-08-07 12:58:14 +04:00
Capostrophic
6622e36226 Only merge pure osg::Groups in the optimizer 2019-06-09 11:47:43 +03:00
Alexei Dobrohotov
1444ef6f43
Merge pull request #2298 from akortunov/optimize
Do not allocate eight dummy LightStateAttribute's for every stateset
2019-05-11 02:32:34 +03:00
Capostrophic
05d94d35f9 Make disabled shadow defines map static 2019-04-29 19:31:46 +03:00
Capostrophic
85e99182ce Revise light source configuration (bug #4965)
Set up attenuation less awkwardly
Use global attenuation settings for magic light source
Use constant attenuation settings
2019-04-10 22:31:31 +03:00
bzzt
1a65adacdd Do not allocate dummy LightStateAttribute's for every stateset 2019-03-30 21:36:08 +04:00
Andrei Kortunov
b466bfee40 Enable light sources directly to avoid virtual calls 2019-03-21 10:27:50 +04:00
Andrei Kortunov
b2fca46206 Fix a couple of minor issues in shadows 2019-03-19 09:14:07 +04:00
Capostrophic
de572226e4 Update optimizer with upstream improvements 2019-03-17 07:59:16 +03:00
Bret Curtis
7917f1fc84
Merge pull request #2252 from akortunov/terrain
Do not allocate empty callbacks in the RigGeometry
2019-03-14 14:53:35 +01:00
bzzt
4ab93aeffe Do not allocate empty callbacks in the RigGeometry 2019-03-14 12:37:41 +04:00
elsid
8e09468f45
Don't set display list usage for navmesh 2019-03-12 00:05:55 +03:00
elsid
4395a92c35
Use display list to render navmesh
Slightly improves performance of massive navmesh rendering.
2019-03-10 23:58:49 +03:00
Andrei Kortunov
bacaa1f789 Get rid of C-style limits in the shadows code 2019-03-09 13:52:03 +04:00
Bret Curtis
551563cbfb Merge branch 'clsb-warning' into 'master'
Hopefully fix Clang warning about hiding overloaded virtual functions

See merge request OpenMW/openmw!82
2019-03-08 08:50:03 +00:00
elsid
47e87cc2bd
Fix ODR violation for VDSMCameraCullCallback
This class is also defined in OpenSceneGraph at global namespace.
2019-03-07 23:49:23 +03:00
AnyOldName3
d34724a3c4 Hopefully fix Clang warning about hiding overloaded virtual functions 2019-03-07 20:46:10 +00:00
Grigory Latyshev
3872d7476b Move makeOsgVec3f() to settingsutils.hpp
Remove all other makeOsgVec3f() implementations
2019-02-28 20:03:42 +00:00
bzzt
8c649f05e6 Don't reallocate light list vector unnecessarily 2019-02-27 00:12:14 +03:00
bzzt
a567111400 Use emplace instead of find-assign 2019-02-27 00:10:34 +03:00
Andrei Kortunov
3032b177a1 Remove redundant includes 2019-02-23 08:02:12 +04:00
Chris Djali
cb5a57e41b
Merge pull request #1547 from AnyOldName3/osgshadow-test-vdsm
Shadows
2019-02-20 15:35:49 +00:00
AnyOldName3
0c8ad0a3bb Double buffer debug HUD frustum geometries to prevent race conditions. 2019-02-19 18:13:03 +00:00
Bret Curtis
f4313c02e1
Merge pull request #2153 from akortunov/glowing_windows
Native glowing windows support
2019-02-04 14:50:13 +01:00
Andrei Kortunov
60c9806d62 Share RigGeometry node data 2019-02-03 13:09:49 +04:00
Andrei Kortunov
9e4a339ad3 Daytime node switch support (feature #4836) 2019-02-02 10:50:15 +04:00
AnyOldName3
15547750ba Correct behaviour of use front face culling setting to not use back face culling either when disabled. 2019-02-01 00:29:13 +00:00
AnyOldName3
cfe921fb82 Remove uneeded includes. 2019-01-31 20:12:42 +00:00
AnyOldName3
2761a38562 Prettify shadow define map setup. 2019-01-31 20:12:17 +00:00
AnyOldName3
57e10e26b2 Make variable name less confusing 2019-01-31 14:58:57 +00:00
AnyOldName3
a24b8ec3d2 Fix enable/disable mixup. 2019-01-31 14:57:56 +00:00
AnyOldName3
556c9a3382 Add normal-offset shadow mapping to remove shadow acne (flicker) 2019-01-30 22:28:00 +00:00
Andrei Kortunov
03b71d3c30 Improve switchable nodes handling by optimizer 2019-01-27 15:19:48 +04:00
AnyOldName3
8482236a82 Merge remote-tracking branch 'upstream/master' into osgshadow-test-vdsm 2019-01-24 23:09:23 +00:00
AnyOldName3
d82c85913a Don't bother multiplying a matrix by its inverse and applying that to the light direction.
Hopefully this will improve numerical stability and reduce shadow flicker a little.
2019-01-24 23:07:38 +00:00
AnyOldName3
4438ab4493 Use CullVisitor traversal mask for light manager. 2019-01-24 22:42:23 +00:00
Andrei Kortunov
2c38e337ae Support NiSwitchNode (feature #4812) 2019-01-23 21:01:54 +04:00
Andrei Kortunov
8e6fd348d1 RigGeometry optimization: optimize geometry optimization 2019-01-09 21:01:33 +04:00
Andrei Kortunov
254f01b89d RigGeometry optimization: vector iteration is more cheap than map iteration 2019-01-09 11:52:11 +04:00
Ilya Zhuravlev
07e9ce84b3 Replace volatile bools with std::atomic<bool> 2018-12-24 14:19:35 -05:00
AnyOldName3
199e6ed82d Revert "Use forward declaration to reduce build times."
This reverts commit 305b9826df.
2018-12-19 23:53:14 +00:00
AnyOldName3
305b9826df Use forward declaration to reduce build times. 2018-12-19 16:23:32 +00:00
AnyOldName3
7b108ae9a2 Disable depth sorting for translucent objects in the shadow maps 2018-12-19 01:45:05 +00:00
AnyOldName3
53188f61fc Fix animation bug with VAOs 2018-12-18 19:44:30 +00:00
Bret Curtis
fc19c842cf
Revert "fix a rig bug visible with OSG_VERTEX_BUFFER_HINT=VAO" 2018-12-13 20:09:46 +01:00
AnyOldName3
2d5da1a6fa Don't exclusively rely on a shadow map if its bounds have been expanded since the cull traversal. 2018-12-08 20:39:41 +00:00
mp3butcher
7a85e10d2f fix a rig bug visible with OSG_VERTEX_BUFFER_HINT=VAO 2018-12-02 23:36:27 +01:00
AnyOldName3
0a409c0ab8 Make shadow map front-face culling configurable 2018-12-01 00:26:43 +00:00
AnyOldName3
dd207d9e54 Make the shadow polygon offset parameters configurable 2018-11-30 00:55:54 +00:00
AnyOldName3
aa11832949 Resolve bugs with depth-clamped shadow maps 2018-11-29 01:17:58 +00:00
AnyOldName3
7ad4882f0c Fix debug hud frustum outline disappearence 2018-11-21 23:45:47 +00:00
AnyOldName3
061fa57335 Switch to better-performing data types for debug hud geometry 2018-11-21 22:38:50 +00:00
AnyOldName3
632b0d8979 Make shadow maps use their whole depth range for the overlap with the view frustum and rely on depth clamping to ensure objects outside the frustum still cast shadows. 2018-11-20 23:02:28 +00:00
AnyOldName3
660e423e99 Correct debug hud frustum colour 2018-11-20 23:01:04 +00:00
AnyOldName3
3785ba6aa0 Merge upstream/master 2018-10-30 22:38:09 +00:00
AnyOldName3
1ca7ea23d1 Add extra uniforms to the disabled shadows StateSet so that the shadow texture samplers are bound ot the dummy shadow maps correctly. 2018-10-30 17:07:11 +00:00
AnyOldName3
b0907f8929 Add todos in case they're left until after the shadow PR is merged 2018-10-18 16:01:36 +01:00
AnyOldName3
474770eca8 Switch shadow map rendering to a specialised, simplified shader. 2018-10-16 21:23:31 +01:00
elsid
dc09674362
Add command and settings option to enable actors paths render 2018-10-13 22:16:32 +03:00
elsid
70a369f70e
Add command to enable NavMesh render
togglenavmesh or tnm
2018-10-13 22:16:28 +03:00
AnyOldName3
0124be5713 Merge upstream/master 2018-10-10 21:23:19 +01:00
Andrei Kortunov
e06f0b797a Replace all NULLs to nullptr 2018-10-09 10:21:12 +04:00
Andrei Kortunov
87394f2ebb Revert "Take in account transformations of NiTriShape and NiSkinData in skinning (bug #4437)"
This reverts commit 09427d3f5e since the
fix is not entirely correct.
2018-09-29 16:21:40 +04:00
Kyle Cooley
6bece13a32 Use new Log class for error message 2018-09-27 13:14:59 +04:00
Kyle Cooley
e2ac392a40 Move common stuff to scene util, fix errors with 1st person meshes 2018-09-27 13:14:59 +04:00
Kyle Cooley
8444ee9981 Start rendering npc's 2018-09-27 13:14:59 +04:00
Andrei Kortunov
09427d3f5e Take in account transformations of NiTriShape and NiSkinData in skinning (bug #4437) 2018-09-16 14:38:58 +04:00
Marc Zinnschlag
24ce8cce72 Merged pull request #1898 2018-08-29 12:04:52 +02:00
Andrei Kortunov
0ddd0e4edc Fix light flicker amplitude calculation 2018-08-28 14:57:11 +04:00
Andrei Kortunov
c677f7ca27 Rework pulsing light sources (bug #4615) 2018-08-28 14:57:08 +04:00
Marc Zinnschlag
232ea4f793 Merged pull request #1887 2018-08-27 12:52:30 +02:00
Sophie Kirschner
c412f99963 Remove commented lines in UnrefWorkItem::doWork 2018-08-26 11:08:06 +03:00
Andrei Kortunov
ff241fb787 Optimize skinning (task #4605) 2018-08-25 20:45:59 +04:00
Sophie Kirschner
4dd9386c4f Fix error: member access into incomplete type 'SceneUtil::UnrefWorkItem'
Fixes compile error encountered on OSX 10.9 with g++

sophie:build pineapple$ g++ --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin13.4.0
Thread model: posix

The compilation error:

[ 24%] Building CXX object apps/openmw/CMakeFiles/openmw.dir/mwrender/renderingmanager.cpp.o
In file included from /Users/pineapple/git/openmw/apps/openmw/mwrender/renderingmanager.cpp:1:
In file included from /Users/pineapple/git/openmw/apps/openmw/mwrender/renderingmanager.hpp:4:
/Users/pineapple/git/openmw/openmw-deps/include/osg/ref_ptr:35:36: error: member access into incomplete type 'SceneUtil::UnrefWorkItem'
        ~ref_ptr() { if (_ptr) _ptr->unref();  _ptr = 0; }
                                   ^
/Users/pineapple/git/openmw/./components/sceneutil/unrefqueue.hpp:14:11: note: in instantiation of member function
      'osg::ref_ptr<SceneUtil::UnrefWorkItem>::~ref_ptr' requested here
    class UnrefQueue : public osg::Referenced
          ^
/Users/pineapple/git/openmw/./components/sceneutil/unrefqueue.hpp:10:11: note: forward declaration of 'SceneUtil::UnrefWorkItem'
    class UnrefWorkItem;
2018-08-24 16:41:52 +03:00
AnyOldName3
db707a31ec Add clipping planes when allow shadow map overlap is enabled 2018-08-23 13:14:02 +01:00
AnyOldName3
15e820825f Fix another convex hull clipping issue and restore z-clipping 2018-08-21 14:00:29 +01:00
AnyOldName3
80082308f0 Merge upstream (shadermanager log system revamp) 2018-08-17 18:22:13 +01:00
AnyOldName3
dd501f4132 Make ConvexHull::clip more resilient against large values. 2018-08-17 17:47:52 +01:00
AnyOldName3
987306feb9 Fix ConvexHull::extendTowardsNegativeZ 2018-08-16 23:48:19 +01:00
Andrei Kortunov
1452684d9e Use new logging system for components 2018-08-14 19:42:41 +04:00
AnyOldName3
3b3721897d Make indoor shadows disableable. 2018-08-08 23:56:11 +01:00
AnyOldName3
6286f5a1d4 Ensure RigGeometry child geometries have sensible bounds without actually computing them. 2018-08-08 23:24:57 +01:00
AnyOldName3
71778e2552 Disable convex hull clipping based on render leaf traverser results in the z direction. 2018-07-31 23:42:44 +01:00
AnyOldName3
02ab3b466a Use simplified convex hull clipping maths from the other function doing hte same thing 2018-07-31 23:30:15 +01:00
AnyOldName3
85aba2e1da Add toggleable shadow debug overlay. 2018-06-28 17:24:36 +01:00
AnyOldName3
ed68db5ef9 Fix issue where the camera frustum cropping wouldn't consider where casters might cast shadows, just where they actually were. 2018-06-19 23:48:59 +01:00
AnyOldName3
f5b144ef77 Improve bounds calculation for shadow casters outside of the viewing frustum 2018-06-12 17:04:56 +01:00
AnyOldName3
50fdd0be99 Resolve computed near plane issues with extremely high viewing distances. 2018-05-29 00:52:43 +01:00
AnyOldName3
2c30bc1b4f Accidentally fix the one remaing case where shadows look awful while refactoring some stuff. 2018-05-18 22:39:57 +01:00
AnyOldName3
9f0a49c303 Disable CSM when disabled in the settings. 2018-05-17 20:27:10 +01:00
AnyOldName3
84284a60a7 Make CSM shader changes controllable by the setting. 2018-05-17 17:35:55 +01:00
AnyOldName3
5d05aadb37 Begin to let settings toggle between CSM and PSSM 2018-05-17 16:57:01 +01:00
AnyOldName3
7255c266ba Merge branch 'osgshadow-test-vdsm' into osgshadow-test-dicking-around-with-cascading-shadow-maps 2018-05-16 21:21:05 +01:00
AnyOldName3
fc1aee10f4 Remove function declaration that somehow snuck in. 2018-05-16 21:20:17 +01:00
AnyOldName3
1b30d47d7f Add a hacky temporary version of cascading shadow maps 2018-05-13 12:56:40 +01:00
AnyOldName3
44b2cf2b7f Merge upstream. 2018-05-11 19:15:04 +01:00
AnyOldName3
166e7df778 Improve debug HUD frustum 2018-05-11 19:08:42 +01:00
AnyOldName3
4547151863 Add the view frustum to the debug HUD (in the most annoying way possible) 2018-05-05 00:08:00 +01:00
scrawl
6c79c0fb35
Add an empty compileGLObjects implementation to Rig/MorphGeometry to avoid unnecessary creation of display list done by osg 2018-04-18 12:36:08 +00:00
elsid
14daadded7
Add virtual destructors
To fix warnings:
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.3.1/../../../../include/c++/7.3.1/bits/shared_ptr_base.h:588:8: warning: delete called on non-final 'NifOsg::ControllerFunction' that has virtual functions but non-virtual destructor
      [-Wdelete-non-virtual-dtor]
              delete __p;
              ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.3.1/../../../../include/c++/7.3.1/bits/shared_ptr_base.h:595:4: note: in instantiation of function template specialization
      'std::__shared_count<__gnu_cxx::_S_atomic>::__shared_count<NifOsg::ControllerFunction *>' requested here
        : __shared_count(__p)
          ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.3.1/../../../../include/c++/7.3.1/bits/shared_ptr_base.h:1079:17: note: in instantiation of function template specialization
      'std::__shared_count<__gnu_cxx::_S_atomic>::__shared_count<NifOsg::ControllerFunction *>' requested here
        : _M_ptr(__p), _M_refcount(__p, typename is_array<_Tp>::type())
                       ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.3.1/../../../../include/c++/7.3.1/bits/shared_ptr.h:129:25: note: in instantiation of function template specialization 'std::__shared_ptr<NifOsg::ControllerFunction,
      __gnu_cxx::_S_atomic>::__shared_ptr<NifOsg::ControllerFunction, void>' requested here
        shared_ptr(_Yp* __p) : __shared_ptr<_Tp>(__p) { }
                               ^
/home/elsid/dev/openmw/components/nifosg/nifloader.cpp:242:39: note: in instantiation of function template specialization 'std::shared_ptr<NifOsg::ControllerFunction>::shared_ptr<NifOsg::ControllerFunction, void>' requested here
                callback->setFunction(std::shared_ptr<NifOsg::ControllerFunction>(new NifOsg::ControllerFunction(key)));
                                      ^

/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.3.1/../../../../include/c++/7.3.1/bits/unique_ptr.h:78:2: warning: delete called on non-final 'MWGui::ResponseCallback' that has virtual functions but non-virtual destructor
      [-Wdelete-non-virtual-dtor]
        delete __ptr;
        ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.3.1/../../../../include/c++/7.3.1/bits/unique_ptr.h:268:4: note: in instantiation of member function 'std::default_delete<MWGui::ResponseCallback>::operator()' requested here
          get_deleter()(__ptr);
          ^
/home/elsid/dev/openmw/apps/openmw/mwgui/dialogue.cpp:58:23: note: in instantiation of member function 'std::unique_ptr<MWGui::ResponseCallback, std::default_delete<MWGui::ResponseCallback> >::~unique_ptr' requested here
    PersuasionDialog::PersuasionDialog(ResponseCallback* callback)
                      ^
2018-04-01 21:51:59 +03:00
AnyOldName3
e885612bd7 Make a dynamic cast static 2018-03-03 02:05:46 +00:00
AnyOldName3
b553b58de5 Fix another compiler warning 2018-03-03 02:03:16 +00:00
AnyOldName3
3bed2a7b01 Fix some copiler warnings (hopefully) 2018-03-03 02:01:03 +00:00
AnyOldName3
fc41902798 Replace a dynamic cast with string comarison 2018-03-01 14:37:11 +00:00
AnyOldName3
bc4b4c66e4 (Hopefully) add include which G++ requires even though VC++ doesn't. 2018-02-27 16:54:48 +00:00
AnyOldName3
d1a2955fa1 Merge upstream 2018-02-27 14:29:14 +00:00
AnyOldName3
66a114d6ec Fix a couple of warnings 2018-02-27 14:15:06 +00:00
AnyOldName3
f9cf1ac94b Separate indoor and outdoor shadow casting masks. 2018-02-27 00:13:51 +00:00
AnyOldName3
35eb71052e Tidy up the shadow manager 2018-02-26 23:52:46 +00:00
AnyOldName3
882b63cba9 Make split point control parameters configurable with the new shadow technique. 2018-02-26 23:00:46 +00:00
AnyOldName3
e233dae1cd Hook up the new shadow technique 2018-02-26 22:27:09 +00:00
AnyOldName3
97b607fc66 Make whitespace match upstream OSG 2018-02-26 21:10:06 +00:00
AnyOldName3
99db93510c Undo minor cockup where the same file appeared twice 2018-02-26 21:09:29 +00:00
AnyOldName3
639a4f5e8c Remove TODO left in by accident. Also, become 100 commits ahead of upstream. 2018-02-26 20:52:19 +00:00
AnyOldName3
478367bef3 Ensure the debug HUD won't crash if settings are changed at runtime. 2018-02-26 20:50:54 +00:00
AnyOldName3
7b52091a82 Make the debug hud enableable 2018-02-26 20:36:43 +00:00
AnyOldName3
5d719e9d5f Add the debug HUD to the new shadow technique 2018-02-26 20:20:01 +00:00
AnyOldName3
76f23c28b1 Make shadows disableable. 2018-02-26 16:25:44 +00:00
AnyOldName3
0f1e770c53 Transfer changes to cull to new shadow technique 2018-02-26 15:51:22 +00:00
AnyOldName3
4c31b38f77 Move CLSB changes to new shadow technique 2018-02-26 14:58:12 +00:00
AnyOldName3
06b2ce6646 Fix alignment issues caused by renaming classes 2018-02-26 14:34:14 +00:00
AnyOldName3
02d0ee3485 Rename old shadow class to shadow manager 2018-02-26 14:29:31 +00:00
AnyOldName3
ce02c83089 Copy debug shader source into new shadow technique 2018-02-26 14:27:47 +00:00
AnyOldName3
7bd4c5e4b3 Change class name 2018-02-24 00:57:58 +00:00
AnyOldName3
c815366044 Move to the correct namespace part 2 2018-02-24 00:55:24 +00:00
AnyOldName3
11e59d3c11 Move to the correct namespace. 2018-02-24 00:52:46 +00:00
AnyOldName3
324b398d29 Add a notice clarifying the source of the shadow technique files. 2018-02-24 00:15:54 +00:00
AnyOldName3
7467248555 Undo a modification from the upstream shadow technique which breaks compatibiltiy with OSG 3.4 2018-02-24 00:14:29 +00:00
AnyOldName3
273914aba8 Add osgShadow ViewDependentShadowMaps as they can be found in OSG's GitHub Repository 2018-02-24 00:13:05 +00:00
AnyOldName3
9ec59783ba Add basic support for distant terrain CLSB
(cherry picked from commit 0f9dc3e65b72e6fff762f7a0933bae6f861e5fd4)
2018-02-23 23:37:04 +00:00
AnyOldName3
cb6767b4fc Move the declaration of ComputeLightSpaceBounds to the header so that it can be accessed from other compilation units.
(cherry picked from commit 8ac4fb208897a18da4934dd6f2fe84560b44ba9d)
2018-02-23 23:35:01 +00:00
AnyOldName3
6251e0519e Use CLSB results to reduce maximum shadow map distance when sensible. 2018-02-23 23:31:53 +00:00
scrawl
25a6a67508
Fix the optimizer messing up LOD node's children (Fixes #4301) 2018-01-29 19:44:12 +00:00
AnyOldName3
9f20aaccfb Add some more advanced settings to control shadows. 2018-01-25 16:08:34 +00:00
AnyOldName3
6ec893b618 Merge remote-tracking branch 'refs/remotes/upstream/master' 2018-01-22 15:54:13 +00:00
scrawl
bba9a8dd91
Don't update off-screen animations
Make flying creatures animate in-place when out of processing range
2018-01-11 01:49:35 +00:00
AnyOldName3
bf9a1ded63 Mark a function as override 2018-01-02 16:39:05 +00:00
AnyOldName3
c3e0398d1c Add settings 2017-12-27 02:32:17 +00:00
AnyOldName3
c192c851db Make disabling shadows disable their performance impact, too. 2017-12-26 23:51:50 +00:00
AnyOldName3
8957c92a36 Switch to a more industry-standard shadow map splitting scheme 2017-12-17 00:52:10 +00:00
AnyOldName3
7cce2d6f87 Implement a more sensible shadow map cascading system 2017-12-12 22:37:40 +00:00
AnyOldName3
98cd9fc144 Add preliminary support for global shader defines. 2017-11-22 20:07:07 +00:00
AnyOldName3
e201e359a9 Move Shadow to Components 2017-11-08 01:44:49 +00:00
scrawl
03554b2f4b Fix some style issues flagged by cppcheck 2017-10-15 17:06:58 +02:00
Miloslav Číž
380a5799dd use bbox as wrap range & apply to all particle systems 2017-10-14 21:42:19 +02:00
Miloslav Číž
33a1459b11 search for particle system by class name 2017-10-14 21:41:47 +02:00
scrawl
dca31b7ffa Remove redundant _boundingBoxComputed which no longer exists in osg master (Fixes #4075) 2017-09-04 19:35:42 +00:00
scrawl
2e58024f1c Fix intersections with Rig/MorphGeometry, was caused by an issue in the LineSegmentIntersector not respecting the cullingActive flag of a drawable. 2017-09-03 14:14:15 +00:00
scrawl
5e790b567e Fix node path issue
Needs to be set so that the 'cullingActive' flag of the node path's end can be checked
2017-09-01 22:12:40 +00:00
scrawl
4bef8260ab Add const qualifiers 2017-09-01 21:42:36 +00:00
scrawl
5d524a6a10 Add custom version of MorphGeometry replacing osgAnimation
Double buffering, custom bounding box and the update in the cull visitor (instead of update) are now all handled internally rather than needing hacks and/or callbacks.
2017-09-01 21:42:36 +00:00
scrawl
209e139aa8 Move double buffering implementation inside RigGeometry
The double buffering is an implementation detail so it should be handled as such, rather than mandating the scene graph to be structured in a certain way.

Override accept(NodeVisitor&) instead of using callbacks.
2017-09-01 21:42:34 +00:00
scrawl
45f7563a55 Revert "Revert "Check for a Geometry node when attaching bodyparts""
Issue with shaders has been fixed with b9931fb71c

This reverts commit a1e3fb7604.
2017-08-31 21:40:35 +00:00
scrawl
a1e3fb7604 Revert "Check for a Geometry node when attaching bodyparts"
This reverts commit 3fc8634206.
2017-08-29 22:40:19 +00:00
scrawl
3fc8634206 Check for a Geometry node when attaching bodyparts (Fixes #3957) 2017-08-29 12:55:42 +00:00
Allofich
42402976e3 Fixes for building in MSVC 2017-06-13 19:38:12 +09:00
Bret Curtis
f0b21cca22 use own inline hash_combine function 2017-06-12 00:32:28 +02:00
Bret Curtis
154d7cffa2 replace and purge boost::function 2017-06-09 19:08:53 +02:00
Bret Curtis
07f75e1104 replace boost::shared_ptr in extern and components 2017-06-09 19:08:53 +02:00
Ewan Higgs
38a2de3c51 convert std::autor_ptr to std::unique_ptr, originally by Ewan Higgs and updated by Bret Curtis 2017-06-09 16:49:25 +02:00
scrawl
8d84869432 Fix commit 8f71b65d38 (don't overwrite the previous user data)
This resulted in a crash/corruption because the KeyframeController, for performance reasons, does not check that the expected user data is there and of correct type.

(Fixes #3829)
2017-05-05 05:27:00 +02:00
scrawl
8f71b65d38 sceneutil/attach: inherit the UserDataContainer to avoid the resource cache from being cleared incorrectly 2017-04-14 15:04:53 +02:00
scrawl
3d58ba7301 Fix boolean test 2017-03-15 17:50:13 +01:00
scrawl
34130fc5cc Fix handling in LightListCallback when the node is not a Group 2017-03-14 19:27:55 +01:00
scrawl
b78a9f89af Refactor LightListCallback to allow for integration in custom Drawables. 2017-03-14 19:27:55 +01:00
scrawl
13a6070629 Remove warning spam in skeleton.cpp
If the root bone is missing, that is caused by all bones being missing which will have been logged already.
2017-03-13 02:48:22 +01:00
scrawl
c1b1d502ee Fix up commit 330e5fefd1 2017-03-04 21:48:31 +01:00
scrawl
4051018862 optimizer: fix FlattenStaticTransformsVisitor not respecting the is permissible callback 2017-03-04 21:48:31 +01:00
scrawl
29556a1802 More consistent wording of errors/warnings
A Warning indicates a potential problem in the content file(s) that the user told OpenMW to load. E.g. this might cause an object to not display at all or as intended, however the rest of the game will run fine.

An Error, however, is more likely to be a bug with the engine itself - it means that basic assumptions have been violated and the engine might not run correctly anymore.

The above mostly applies to errors/warnings during game-play; startup issues are handled differently: when a file is completely invalid/corrupted to the point that the engine can not start, that might cause messages that are worded as Error due to the severity of the issue but are not necessarily the engine's fault.

Hopefully, being a little more consistent here will alleviate confusion among users as to when a log message should be reported and to whom.
2017-03-04 21:48:31 +01:00
scrawl
706ac45c76 Fix missing particles caused by shallow copy of ParticleSystemController 2017-02-26 23:10:41 +01:00
scrawl
5caf53b6a3 optimizer: avoid reordering nodes
Fixes an osgParticle cloning issue.

(Fixes #3773)
2017-02-26 03:25:17 +01:00
scrawl
a95773beef Fix unnecessary copy of ParticleSystem in SceneUtil::CopyOp 2017-02-26 03:15:57 +01:00
scrawl
48e0f098ff Add missing copy of callbacks when a Transform is replaced by Group
(Fixes #3770)
2017-02-24 07:38:03 +01:00
scrawl
330e5fefd1 optimizer: consider a Group with more than one child redundant as well
While there could be some value in this hierarchy (i.e. improved culling), we don't know if this is being used sensibly; and using a 'flat' hierarchy helps other optimizations.
2017-02-24 02:58:41 +01:00
scrawl
e4c12e5e56 optimizer: don't merge Geometry that has transparency sorting enabled 2017-02-24 02:58:27 +01:00
scrawl
ebfd845eae optimizer: run MERGE_GEOMETRY after removing redundant nodes 2017-02-23 23:28:50 +01:00
scrawl
43f31d6e54 optimizer: fix MERGE_GEOMETRY to work with Geometries not attached to a Geode 2017-02-23 23:28:50 +01:00
scrawl
f2a323238f optimizer: merge groups as part of REMOVE_REDUNDANT_NODES 2017-02-23 23:28:50 +01:00
scrawl
af716d4b61 optimizer: remove hardcoded condition in RemoveRedundantNodesVisitor 2017-02-23 23:28:50 +01:00
scrawl
698738c649 optimizer: use asXYZ() instead of dynamic_cast 2017-02-23 23:28:50 +01:00
scrawl
f7cb4bd245 optimizer: remove some cruft 2017-02-23 23:28:50 +01:00
scrawl
e33829d493 Add fork of osgUtil::Optimizer with backported fixes that have not been released yet
Remove optimizers that won't be used.
2017-02-23 23:28:50 +01:00
scrawl
305cccd263 Don't print Geometry data (vertices, triangles, etc.) in showscenegraph 2017-02-23 23:28:50 +01:00
scrawl
c231b06320 Remove boneOffset node after using it 2017-02-23 23:28:50 +01:00
scrawl
8f79fa3d72 Add resource statistics panel opened with F4 2017-02-22 14:28:45 +01:00
scrawl
4aa40d16bc Increase the importance of light radius when sorting lights (Bug #2759) 2017-02-21 04:32:59 +01:00
scrawl
67e4a7e37b Change some osg::clone's to direct copy constructor to avoid dynamic_cast overhead 2017-02-09 04:51:20 +01:00
scrawl
839928e210 Fix light data being reset for the wrong light 2017-02-09 02:46:30 +01:00
scrawl
a46593fa74 Add PreloadItem::abort() to avoid no longer required cells from blocking the work thread 2017-02-09 01:08:07 +01:00
scrawl
c00532d82d Add LightStateCache to avoid redundantly setting the same gl_Light
Normally, osg::State would do this for us (via lastAppliedAttribute), but since we're using a custom StateAttribute to apply all lights at once, we have to track ourselves.

Further reduction of GL calls in a typical scene by ~2%
2017-02-07 23:37:57 +01:00
scrawl
4d4dc1b9c1 Add specialized DisableLight state attribute for more efficient undoing of light state
Seems to reduce # of GL calls by 10-15% in a typical scene.
2017-02-07 23:01:36 +01:00
scrawl
a1069dce3c Change UnrefQueue to accept osg::Referenced instead of osg::Object 2017-02-04 02:24:42 +01:00
scrawl
33e654f94d Add explicit handling of most commonly used nodes to NodeVisitors to avoid excessive virtual function calls 2017-02-04 02:16:26 +01:00
scrawl
767eba941f Speed up finding of attachment node by using the cached nodeMap 2017-02-03 23:15:37 +01:00
scrawl
a76d693627 Speed up ControllerVisitor by skipping sub graphs that have no ChildrenRequiringUpdateTraversal() 2017-02-03 23:10:14 +01:00
scrawl
30b101b175 Fix build error in OSG_USE_FLOAT_MATRIX=OFF mode due to a double implicit conversion to double (pun doubly intended) 2017-02-03 06:49:34 +01:00
scrawl
84a92e665c Improve performance in RigGeometry by optimizing for the most common case of identity geomToSkelMatrix 2017-02-03 02:18:44 +01:00
scrawl
53e4db8a8f Add dummy serializer for CameraRelativeTransform to allow serializing content of Sky Root 2017-02-02 21:57:18 +01:00
scrawl
34deb6e7b1 Add 'showSceneGraph' command to export the scene or a particular object to .osgt for debugging purposes 2017-02-01 06:00:14 +01:00
scrawl
eae35af13d Check if the bounding box changed before calling dirtyBound() 2016-12-17 00:23:22 +01:00
scrawl
cca75499ee Clear the Skeleton's bone cache when a node is added/removed (Fixes #3663) 2016-12-16 20:09:20 +01:00
scrawl
c0faeea938 RigGeometry check if mesh has normals (Fixes #3667) 2016-12-15 22:39:21 +01:00
MiroslavR
11565b5966 Make actors with non-portable lights in inventory glow (Closes #2042, #3338) 2016-10-08 23:17:12 +02:00
scrawl
513e1da8a3 Remove unneeded casts 2016-08-14 16:44:11 +02:00
Aesylwinn
5753f52b47 Move water mesh + simple state generation to components library. 2016-08-05 13:25:05 -04:00
scrawl
8f62ea2e80 Fix for "RigGeometry rendering with no skeleton" errors 2016-07-02 20:19:55 +02:00
scrawl
d5f497c47d Pass the node path instead of the node visitor 2016-07-02 19:27:19 +02:00
scrawl
6fa95e72c5 Pass the traversal number instead of the node visitor 2016-07-02 19:26:11 +02:00
scrawl
824cd3be22 Do not set _boundingBoxComputed which is no longer used 2016-06-14 22:25:25 +02:00
Aesylwinn
b83f522ecd Changes to color scheme, slight change to drag indicator,
change tooltip description.
2016-05-29 13:26:29 -04:00
Aesylwinn
1781aaaa27 Drag indicator. 2016-05-18 12:17:26 -04:00
Aesylwinn
32ba5bf8b8 Initial pathgrid editting, support for selection and movement. 2016-05-12 19:35:49 -04:00
scrawl
17a0353a85 Fix forward declaration mismatch 2016-05-10 17:36:25 +02:00
Aesylwinn
14ae232938 Remove now unnecessary factory class.
It was originally used for storing normals, but that functionality
was removed.
2016-05-03 16:13:23 -04:00
Aesylwinn
b11f5b2717 Make edges differently colored. 2016-05-03 15:06:28 -04:00
Aesylwinn
0eb863d8fc Change color to blue to match the pathgrid visibility selector in the
editor and slightly increase the scaling.
2016-05-03 03:29:34 -04:00
Aesylwinn
7f0cc6e583 Add a color gradiant to pathgrid nodes to make them less of an eyesore. 2016-05-03 03:29:30 -04:00
Aesylwinn
3d26ff08c4 Get rid of lighting. 2016-05-03 03:29:07 -04:00
Aesylwinn
d141672b53 Pathgrid geometry creator 2016-05-02 22:09:48 -04:00
scrawl
2f8be401cc Add the unref work items to the front of the workqueue (Bug #3273)
Ensures that memory still gets freed even if the workqueue is overloaded.
2016-03-29 00:27:56 +02:00
scrawl
8052225460 Remove leftover call to setTexCoordArrayList 2016-03-23 22:56:04 +01:00
scrawl
cc0afe901f Store a pointer to tangents array to avoid potential type casting issue 2016-03-23 17:03:04 +01:00
scrawl
d1f6169889 Add special handling of RigGeometry tangents in ShaderVisitor 2016-03-23 16:48:41 +01:00
scrawl
95e80e7eff RigGeometry: don't directly modify the primitive set list
This is to ensure that an element buffer object will be assigned to the primitive sets if necessary.
2016-03-23 00:10:22 +01:00
scrawl
c73ec71123 Revert "Store the RigGeometry's source vertices and normals directly"
This reverts commit 7a347e3483.
2016-03-22 23:28:57 +01:00
scrawl
60c8c4fdda Revert "Animate tangents in RigGeometry"
This reverts commit 9cf963b751.
2016-03-22 23:28:52 +01:00
scrawl
9cf963b751 Animate tangents in RigGeometry 2016-03-22 22:14:35 +01:00
scrawl
7a347e3483 Store the RigGeometry's source vertices and normals directly 2016-03-22 22:01:56 +01:00
scrawl
d986b1a48b Add comment 2016-03-11 19:28:53 +01:00
scrawl
1abb77f8a1 Cleanup 2016-03-11 19:18:51 +01:00
scrawl
9f03982e0b Use a dedicated VBO for RigGeometry's vertices and normals
The VBO used by the source geometry's arrays may be unintentionally shared with other RigGeometries.

The vertices and normals are the only attributes that are modified at all, so using a dedicated VBO for these should improve performance further.
2016-03-11 19:08:48 +01:00
scrawl
50b8260a39 Disable VBOs in RigGeometry while investigating a crash possibly related to commit cda8a88f0d 2016-03-11 18:21:55 +01:00
scrawl
4eb090a8d0 Set the RigGeometry vertex buffer object usage to GL_DYNAMIC_DRAW 2016-03-11 16:09:48 +01:00
scrawl
174dd82894 Manually apply the osg::Light state
Reduce the amount of virtual function calls. Don't use the osg::Light's lightNum. Don't set spotlight state that we're not using (yet).
2016-03-11 15:43:20 +01:00
scrawl
58e0e8bd4e Enable vertex buffer objects in RigGeometry 2016-03-11 01:39:09 +01:00
scrawl
f898bf493f Don't use Geodes 2016-03-10 13:17:01 +01:00
scrawl
137dde7cf8 Include cleanup 2016-03-10 12:59:17 +01:00
scrawl
0df975a4d7 Properly detach nodes in CopyRigVisitor (Fixes #3234) 2016-03-06 11:33:07 +01:00
scrawl
563807ee53 Share the StateSet used to invert front face 2016-03-02 13:33:44 +01:00
scrawl
8791063110 Fix "RigGeometry rendering with no skeleton" warnings in rare cases 2016-02-29 18:20:56 +01:00
scrawl
1e5b4bea0a Don't create an unnecessary osg::Group when copying over a rig 2016-02-29 17:50:18 +01:00
scrawl
90a99991d1 Use empty() instead of !size() 2016-02-22 19:06:12 +01:00
scrawl
3e854a84a2 Slightly more efficient applying of light state 2016-02-18 19:37:57 +01:00
scrawl
f93b7ec943 Fix light state issue
GLSL does not respect gl_Disable(GL_LIGHTX), so we have to set unused lights to zero.

Sadly, this change makes the applying of the modelView matrix less efficient. So far I couldn't find a better solution, osg's state tracker keeps getting in the way. :(
2016-02-18 19:37:57 +01:00
scrawl
9376811213 Vertex lighting shader 2016-02-18 19:37:57 +01:00
scrawl
c4d38bb42d Fix clang analyzer warnings 2016-02-16 19:17:04 +01:00
scrawl
5824619a95 Clean up includes 2016-02-12 19:28:10 +01:00
scrawl
8b596dfcbe Remove support for OSG 3.2
Since commit e8662bea31, we're using OSG functionality that contains an unfixed crash bug in version 3.2. The bug is fixed in version 3.4 (OSG commit 6351e5020371b0b72b300088a5c6772f58379b84)
2016-02-12 14:46:45 +01:00
Marc Zinnschlag
da6dcfc49e Merge remote-tracking branch 'scrawl/resource' 2016-02-10 16:23:38 +01:00
scrawl
afe533e670 Accept a const Object in UnrefQueue 2016-02-09 19:00:30 +01:00
scrawl
40a6e05e17 Use a deque instead of vector in UnrefQueue 2016-02-09 16:09:55 +01:00
scrawl
d11c2864df Introduce UnrefQueue to handle the deleting of no longer needed objects in the background thread 2016-02-09 15:45:35 +01:00
scrawl
84f01b7527 Remove unneeded forward declaration 2016-02-08 16:27:28 +01:00
scrawl
b7e69cbc64 Refactor WorkQueue, merge WorkTicket and WorkItem
Allow the caller to hold on to the WorkItem. This makes it possible for a derived WorkItem to store the result of the work within the WorkItem itself.
2016-02-06 22:42:45 +01:00
scrawl
e02f35264f Work around OSG 3.2 not respecting the DEEP_COPY_CALLBACK flag (Fixes #3183) 2016-02-06 15:08:12 +01:00
scrawl
8360cccce7 Don't clone Drawable UpdateCallbacks twice
The Drawable copy constructor takes care of that already.
2016-02-01 21:02:48 +01:00
scrawl
aec8c38461 Move observer_ptr include where it belongs 2016-01-25 21:03:33 +01:00
Tobias Kortkamp
0659687bfb Some fixes for building on FreeBSD 2016-01-25 14:13:16 +01:00
scrawl
458a305bff OpenCS: add lighting mask 2016-01-11 23:14:43 +01:00