scrawl
7e4450da55
Change the renderOrder of composite maps to ensure they are updated before water reflections or other cameras that may be using it.
2017-03-14 19:27:55 +01:00
scrawl
b1d4bb5708
Add CompositeMapRenderer
...
Temporarily render all terrain using composite maps for testing purposes
2017-03-14 19:27:55 +01:00
scrawl
e323b2fa7b
Use the SceneManager's ShaderManager
2017-03-14 19:27:55 +01:00
scrawl
0fc465da59
Store the min/max height in LandData
2017-03-14 19:27:55 +01:00
scrawl
051c17a184
Make reportStats const
2017-03-14 19:27:55 +01:00
scrawl
80a0398f9d
Load LandData into the LandObject to avoid threading conflicts when the same data is being loaded by two threads
2017-03-14 19:27:55 +01:00
scrawl
20d30bb8d7
Move mDataLoaded into LandData
2017-03-14 19:27:55 +01:00
scrawl
16b5cadd9e
Fix order of operations w.r.t clearing cache
2017-03-14 19:27:55 +01:00
scrawl
2c68ed4fb4
Remove no longer required use of UnrefQueue as the new resource manager will naturally clear the cache from the worker thread
2017-03-14 19:27:55 +01:00
scrawl
35d53acc65
Factor out terrain chunk loading/caching into a new resource manager
2017-03-14 19:27:55 +01:00
scrawl
274690f790
Refactor BufferCache to allow caching buffers of different sizes
2017-03-14 19:27:55 +01:00
scrawl
9a3a64f0c4
Add resource manager for ESM::Land to allow data to be unloaded when no longer required
2017-03-14 19:27:55 +01:00
scrawl
804f873649
terrain: factor out texture caching into a separate class
2017-03-14 19:27:55 +01:00
scrawl
4cd4457d21
Add support for Functors to ObjectCache
2017-03-14 19:27:55 +01:00
scrawl
9d72d9f0c9
Change order of operations in SceneManager::updateCache to allow deleting of StateSets that just got unreferenced by the scene
2017-03-14 19:27:55 +01:00
scrawl
eef63a880a
terrain: use a custom drawable for multi-pass render instead of osgFX::Effect
...
osgFX::Effect is awkward to use because of the lazy-definition of passes, no support for compileGLObjects, useless 'Technique' abstraction and having to define silly methods like 'effectAuthor()'
Handling the multi-pass rendering inside the Drawable also avoids redundant culling tests against the same bounding box for each pass.
2017-03-14 19:27:55 +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
c1fe9f2a89
Avoid warping the mouse cursor more than necessary
...
Apparently, the SDL_WarpMouseInWindow can be very expensive (anywhere from 0.1-5ms) due to XSync() in the implementation.
This was causing no-grab=1 configurations to suffer from terrible stuttering when turning the view.
2017-03-14 00:31:27 +01:00
scrawl
928e2061f7
Remove redundant tolower
2017-03-13 02:48:23 +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
21aad00612
Don't pass key events to the viewer when Alt modifier is held
...
Fixes the stats panel briefly showing up when using 'Alt+F4' to exit.
2017-03-08 01:27:04 +01:00
scrawl
fc95a45cb6
Don't pass repeat key events to the viewer's eventQueue
2017-03-08 01:27:04 +01:00
Nikolay Kasyanov
7f429f26e1
Allow getting available version information even when clone is shallow
2017-03-07 21:53:49 +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
5866f0f80b
Add OPENMW_OPTIMIZE env variable to help debugging optimizer-related issues
...
Example:
OPENMW_OPTIMIZE=OFF
OPENMW_OPTIMIZE="~FLATTEN_STATIC_TRANSFORMS"
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
62cc091414
Fix incorrect setting of TexMat in terrain material
2017-03-02 18:07:01 +01:00
scrawl
a759ef5d2e
Leave the MyGUI::PixelFormat as Unknown when loading from file as its not required.
2017-03-01 19:04:05 +01:00
scrawl
8fc7942d64
Refactor osgMyGUI::OSGTexture to store width/height inside the object
2017-03-01 19:04:05 +01:00
scrawl
d8505e4f48
Fix a multithreading crash caused by modification of live Geometry
2017-03-01 03:36:04 +01:00
scrawl
4e0011bfc8
Improve NPC loading performance by caching the cleaned objectRoot
2017-03-01 03:00:49 +01:00
scrawl
058681ad73
ShaderVisitor: avoid reset of rig geometry when not required
2017-03-01 03:00:08 +01:00
scrawl
1402e0b872
Don't optimize billboard nodes ( Fixes #3774 )
2017-02-27 00:39:35 +01:00
scrawl
706ac45c76
Fix missing particles caused by shallow copy of ParticleSystemController
2017-02-26 23:10:41 +01:00
scrawl
9b27ec4945
Remove redundant and ambiguous NiNode::makeBone()
...
Ambiguous because a skeleton can have multiple skinned meshes, with their own bone weights/bind matrix each.
2017-02-26 22:39:23 +01:00
scrawl
aba3c471a9
nifloader: fix setting of dataVariance for non-controlled bones and refactor the code
2017-02-26 22:34:45 +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
585524805f
Add 'tri ' variant of part filters to optimizer ignore list
2017-02-25 21:48:07 +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
75677f03e7
Remove SceneManager::notifyAttached
2017-02-24 02:58:41 +01:00
scrawl
3df7a8c4d8
Avoid FLATTEN_STATIC_TRANSFORMS optimization for non-Geometry drawables
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
5e2335f250
Use the osgUtil::Optimizer post loading in the SceneManager
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
4e5a1e6123
nifloader: improve setting of DataVariance
2017-02-23 23:28:50 +01:00
scrawl
1d6b5b2a52
Add StringUtils::CiComp operator
2017-02-23 23:28:50 +01:00
scrawl
6e996bf2a3
Create TriShapes with an identity transform as a Group
2017-02-23 23:28:50 +01:00
scrawl
6e5d9efa93
Remove NifLoader::optimize, to be replaced with something better
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
d75a3fd0fb
Add SharedStateManager to the stats panel
2017-02-23 23:28:49 +01:00
scrawl
8f79fa3d72
Add resource statistics panel opened with F4
2017-02-22 14:28:45 +01:00
scrawl
3693f05ef5
Transform world-space particle systems in update callback so that animations are accounted for
2017-02-21 23:27:20 +01:00
scrawl
c45013c983
Fix particle systems not being rendered in their first frame
2017-02-21 18:15:30 +01:00
scrawl
4aa40d16bc
Increase the importance of light radius when sorting lights (Bug #2759 )
2017-02-21 04:32:59 +01:00
scrawl
3f27c8cc97
Always print context for script warnings to remove the need for verbose option
...
(Fixes #2813 )
2017-02-21 04:32:59 +01:00
scrawl
3b24bb9a5e
Use OS X cursor workaround for GL_VENDOR ATI and add an environment variable for control
2017-02-19 13:46:40 +01:00
scrawl
aa8459b5c7
Revert "Remove redundant allocations for NIF meshes"
...
This reverts commit a7c5beb7c5
.
Conflicts:
components/nif/data.cpp
components/nifbullet/bulletnifloader.cpp
components/nifosg/nifloader.cpp
2017-02-18 02:33:41 +01:00
scrawl
6a37909ee7
Revert "Fix race conditions caused by Array <-> GLBufferObject interactions (Bug #3580 )"
...
This reverts commit 115e563a7a
.
2017-02-18 02:33:41 +01:00
scrawl
57b585570a
Preload magic effect visuals of the player's selected weapon/spell
2017-02-15 21:01:25 +01:00
scrawl
ddd6605608
Move WNAM out of LandData to avoid redundant (de)allocations on startup
2017-02-14 07:58:16 +01:00
scrawl
e00b420f68
Move saving of LandData into Land::save
2017-02-14 07:58:16 +01:00
scrawl
325bf66653
Return const Land in ESMStore
2017-02-14 07:58:16 +01:00
Marc Zinnschlag
93c5630e02
Merge remote-tracking branch 'matahualpa/openmw-cs_tablecontents'
2017-02-13 10:06:08 +01:00
scrawl
892d1b162d
nifloader: ignore nodes named 'bounding box' ( Fixes #3650 )
2017-02-12 15:44:09 +01:00
MAtahualpa
b4ef9e2314
Update loadbook.cpp
2017-02-12 13:53:10 +01:00
MAtahualpa
5a58ab1837
Update loadbook.hpp
2017-02-12 13:52:36 +01:00
scrawl
bbcba57495
Disable hitAttemptActorId saving code for now
2017-02-10 06:26:32 +01:00
scrawl
2ea0db1d1a
Merge pull request #1198 from Allofich/combat
...
Make combat engagement logic more like vanilla
2017-02-10 06:20:04 +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
d141b98f0c
Add base animations to preloadCommonAssets
2017-02-09 03:32:40 +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
d3e1dbe920
Fix race conditions in terrain loader caused by static variables
2017-02-09 00:53:48 +01:00
scrawl
4d53ab6c32
nifloader: attempt to remove redundant root node when a Skeleton is added
2017-02-08 20:04:17 +01:00
scrawl
2a42c4781e
nifloader: override animflags instead of accumulating them
2017-02-08 19:53:02 +01:00
scrawl
0187f2ce4c
nifloader: combine animFlags and particleFlags (Bug #2100 )
2017-02-08 19:53:02 +01:00
scrawl
bccfd6cef8
nifloader: handle textures with no image that are later assigned in a FlipController
...
As found in vurt's trees (Bug #2100 )
2017-02-08 19:52:33 +01:00
scrawl
792f505b2a
Fix potential crash in ShaderVisitor for textures with no image assigned
2017-02-08 19:16:07 +01:00
scrawl
45ae8d5ffa
Add support for GL_AMBIENT colorMode to shaders as required by particle systems
2017-02-08 18:39:24 +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
Allofich
5d2090684a
Store mHitAttemptActorId in save files
2017-02-07 01:26:26 +09: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
c95868969b
Early out for scene graphs with no update callbacks in SceneManager::notifyAttached
2017-02-04 01:22:43 +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
b4a6b6387b
Create own instance of osgDB::SharedStateManager so we control when to call prune()
...
prune() is now called in the background thread, just like the resource cache update.
Seems to improve performance by ~0.3 ms/frame
2017-02-03 03:27:12 +01:00