Andrei Kortunov
14b756a692
Use a generic logging system for RecastNavigation
2019-04-08 20:31:21 +04:00
Bret Curtis
7808cbbfe8
Merge pull request #2292 from akortunov/fallback
...
Make fallback map static to simplify constructors
2019-04-07 17:43:59 +02:00
bzzt
391f6faffb
Remove unused defaultViewer / defaultViewPoint
2019-04-07 11:21:09 +04:00
bzzt
e908790584
Inherit the view point from main camera for water RTT cameras
2019-04-07 11:21:07 +04:00
Andrei Kortunov
489e5c6cce
Store preloaded terrain view in the main thread
2019-04-07 11:15:21 +04:00
bzzt
63ab7345be
Reuse traversal result for different traversal with same view point
...
Rename eyePoint to viewPoint to match OSG conventions (eyePoint is the camera position, viewPoint is for LOD handling)
2019-04-07 11:14:37 +04:00
Bret Curtis
a5504f8cc1
Merge pull request #2297 from Capostrophic/esm
...
Make sure the record hasn't ended in getHString hack (bug #4938 )
2019-03-31 21:15:23 +02:00
bzzt
1a65adacdd
Do not allocate dummy LightStateAttribute's for every stateset
2019-03-30 21:36:08 +04:00
Capostrophic
4b6fc5f720
Make sure the record hasn't ended in getHString hack (bug #4938 )
2019-03-30 20:11:22 +03:00
Andrei Kortunov
368d1f9d25
Merge pull request #2191 from akortunov/viewer
...
Do not store Viewer reference in the ViewData
2019-03-30 08:24:44 +04:00
Andrei Kortunov
cae456a4aa
Merge pull request #2294 from Capostrophic/arguments
...
Ignore extra arguments to PlayLoopSound3D too
2019-03-30 08:18:39 +04:00
Capostrophic
7ef7555c19
Ignore extra arguments to PlayLoopSound3D too
2019-03-30 01:06:01 +03:00
Andrei Kortunov
a302ec9c65
Make fallback map static to simplify constructors
2019-03-29 15:30:49 +04:00
Capostrophic
17dce28705
Improve compiler messages
2019-03-29 00:59:26 +03:00
bzzt
c8d2107b80
Do not store Viewer reference in the ViewData
2019-03-28 09:51:45 +04:00
Bret Curtis
1e9eac568f
Merge pull request #2249 from akortunov/cache
...
Implement generic caching system
2019-03-25 13:32:23 +01:00
Bret Curtis
6cbf1288ff
Merge pull request #1929 from Capostrophic/elseif
...
Ignore the rest of the line after else operator (bug #3006 )
2019-03-24 16:35:49 +01:00
Capostrophic
cbce1a1b7c
Ignore the rest of the line after else (bug #3006 )
2019-03-24 18:34:33 +03:00
Bret Curtis
8f8bba66d9
Merge pull request #2178 from Capostrophic/declaration
...
Ignore extra text after a local variable declaration (bug #4867 )
2019-03-24 16:33:21 +01:00
Capostrophic
786f3e5fc3
Remove unused and unfinished blendmap packing feature
2019-03-22 22:15:28 +03:00
Capostrophic
af47ec7756
Skip extra text after variable declaration (bug #4867 )
2019-03-21 17:00:40 +03:00
Bret Curtis
5e12073b47
Merge pull request #2272 from akortunov/optimize_terrain
...
Do not block loading while compiling composite maps
2019-03-21 09:17:02 +01:00
Andrei Kortunov
b466bfee40
Enable light sources directly to avoid virtual calls
2019-03-21 10:27:50 +04:00
Andrei Kortunov
0e1f5f68b6
Do not allow different threads to compile the same composite map
2019-03-21 08:52:13 +04:00
Andrei Kortunov
cad45e96ac
Remove redundant mCompile set - we do not use data from it anyway
2019-03-21 08:42:48 +04:00
bzzt
c2986b3bd7
Do not block the loading thread while compiling composite maps in the
...
draw thread
2019-03-20 21:42:53 +04:00
Bret Curtis
26feedfcae
Merge pull request #2268 from akortunov/scanfix
...
Fix some issues from the Coverity Scan report
2019-03-19 17:27:48 +01:00
Bret Curtis
19dcbf2b3d
Merge pull request #2266 from Capostrophic/vsync
...
Vsync tweaks
2019-03-19 09:23:48 +01:00
Andrei Kortunov
b2fca46206
Fix a couple of minor issues in shadows
2019-03-19 09:14:07 +04:00
Andrei Kortunov
7995a92672
Initialize missing variables
2019-03-19 09:12:31 +04:00
Capostrophic
9b65f0dbca
Vsync tweaks
...
Try to use adaptive vsync if available
Don't use vsync if unavailable
2019-03-18 21:45:02 +03:00
Bret Curtis
b819690e82
Merge pull request #2264 from akortunov/optimize_terrain
...
Delete composite map layers in the background thread
2019-03-18 13:52:17 +01:00
bzzt
aa5a071aef
Delete composite map layers in the background thread
2019-03-18 14:00:50 +04:00
Bret Curtis
d56733149c
Merge pull request #2201 from akortunov/optimize_terrain
...
Optimize terrain
2019-03-18 08:59:10 +01:00
Bret Curtis
45221418bd
Merge pull request #2260 from elsid/fix_clean_unused_navmeshes
...
Fix clean unused navmeshes
2019-03-18 08:57:46 +01:00
bzzt
6029ed4ecc
Reject empty quad tree nodes at the cell level without land data
2019-03-18 10:27:29 +04:00
bzzt
36fa51b6ad
Fix bounding box calculation for terrain shapes
2019-03-18 10:27:09 +04:00
elsid
4624f31788
Report navigator stats
2019-03-17 22:15:18 +03:00
elsid
8adc83f6e2
Fix clean unused navmeshes
...
weak_ptr doesn't have constructor for shared_ptr&& type, so ptr wasn't
moved, just copied.
2019-03-17 21:28:34 +03:00
elsid
2c78d530a2
Use static vector to store stat names
2019-03-17 20:50:15 +03:00
Bret Curtis
ab69ad65ed
Merge pull request #2234 from Capostrophic/terrain
...
Some more improvements from bzzt's branch
2019-03-17 18:07:19 +01:00
Capostrophic
de572226e4
Update optimizer with upstream improvements
2019-03-17 07:59:16 +03:00
bzzt
b42ad0f610
Inline certain terrain storage functions
2019-03-17 07:27:27 +03:00
bzzt
e131e6699c
Match vertex colors data type to source
2019-03-17 07:24:22 +03:00
elsid
c91deaf7af
Use std::vector::data method to avoid reference binding to null pointer
2019-03-16 00:46:00 +03:00
elsid
dd0b45ede6
Do not pass nullptr to std::memcmp
2019-03-14 22:15:57 +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
Andrei Kortunov
2ed05a5195
Implement generic caching system
2019-03-14 09:10:19 +04:00
elsid
8e09468f45
Don't set display list usage for navmesh
2019-03-12 00:05:55 +03:00
Bret Curtis
7b1a62fc1d
Merge pull request #2247 from akortunov/loadtex
...
Allow to override texture records in the game
2019-03-11 21:05:30 +01:00
Andrei Kortunov
943279abbb
Consider land texture with given ID and index as override for base texture with the same ID and index (bug #4736 )
2019-03-11 20:19:19 +04:00
Bret Curtis
7efdddd53c
Merge pull request #2242 from elsid/make_shared
...
Use std::make_shared
2019-03-11 07:53:02 +01:00
Bret Curtis
cb1a5f3679
Merge pull request #2245 from elsid/navigator_refactor
...
Refactor navigator related code
2019-03-11 07:51:43 +01:00
Bret Curtis
7b793b8809
Merge pull request #2244 from elsid/navmesh_cache_item_refactor
...
Make NavMeshCacheItem consistent
2019-03-11 07:51:22 +01:00
elsid
68948bc847
Avoid key allocation to find tile in cache
2019-03-11 03:01:41 +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
elsid
849f2078c1
Swap outside critical section
2019-03-10 23:58:49 +03:00
elsid
8d2af94b75
Use default objects for NavigatorStub methods result
2019-03-10 23:58:49 +03:00
elsid
ece111d05a
Check for jobs using predicate
2019-03-10 23:58:49 +03:00
elsid
c05fc9e054
Add missing cleanup
2019-03-10 23:58:49 +03:00
elsid
ce9aebcba1
Clear all changed tiles after post
2019-03-10 23:58:48 +03:00
elsid
9d61c49478
Store key by reference in tiles map
2019-03-10 23:56:52 +03:00
elsid
614d5243c3
Make NavMeshCacheItem consistent
...
Move all logic related to this type into its methods.
2019-03-10 23:07:36 +03:00
elsid
b3c5d64ff3
Use std::make_shared
2019-03-10 22:07:46 +03:00
elsid
f6a1d3cecf
Store weak pointers to navmesh in jobs queue
...
To avoid useless processing for removed navmeshes.
2019-03-10 17:06:19 +03:00
elsid
ccc709a316
Store guarded navmesh cache item in shared_ptr
...
Remove useless SharedGuarded type.
2019-03-10 17:06:19 +03:00
elsid
0479ebf5ae
Remove unused actors and navmeshes on update
...
When there is only one actor (player) on a scene and it moving to other
cell first it will be removed from navigator then added. Remove cause
navmesh removing for its half extents. After it is added navmesh for
same half extents is created and added. While this all happens there are
still jobs for old navmesh are processing. Old navmesh still exists
because it is stored by shared pointer. So jobs take tiles from cache
and place them into old navmesh. After that other jobs take same tiles
from cache (half extents and coordinates are equal) and place them into
other navmesh. dtNavMesh changes tile data on add and remove. Adding tile
to two dtNavMesh corrupts tile in both nameshes.
2019-03-10 17:06:15 +03:00
Chris Djali
c328c4a010
Merge pull request #2231 from akortunov/warnfix
...
Get rid of C-style limits in the shadows code
2019-03-09 19:00:39 +00:00
Andrei Kortunov
bacaa1f789
Get rid of C-style limits in the shadows code
2019-03-09 13:52:03 +04:00
Andrei Kortunov
12f9184d00
Allow to interrupt terrain preloading
2019-03-09 13:15:23 +04:00
Andrei Kortunov
b214c54b3a
Calculate bounding volumes when preloading model instance
2019-03-09 13:15:16 +04:00
Bret Curtis
c20e69ef24
Merge pull request #2227 from elsid/fix_twitchy_massive_creatures
...
Fix twitchy movement for massive creatures (bug #4907 )
2019-03-09 02:11:11 +01:00
elsid
b9f21ec81a
Use custom steps size to make smooth path depending on half extents
2019-03-08 22:33:34 +03:00
bzzt
e0cf460ba3
Do not load terrain beyond the viewing distance
2019-03-08 22:15:27 +04:00
Andrei Kortunov
a6fd077537
Render nearby default cells if the Distant Terrain is disabled
2019-03-08 22:15:27 +04:00
Andrei Kortunov
46e1ed660c
Revert "Render default land texture for Wilderness cells with distant terrain"
...
This reverts commit 888c2d9a33
.
2019-03-08 22:15:27 +04:00
elsid
f2e47d640d
Add option to limit max number of navmesh tiles
2019-03-08 17:39:04 +03:00
elsid
ff47df4f2c
Repost navmesh update jobs when failed because of out of memory
...
DT_OUT_OF_MEMORY error is returned when limit of tiles is reached.
2019-03-08 17:39:04 +03:00
elsid
82e2739bae
Notify workers when only at least one job is posted
2019-03-08 15:27:16 +03:00
elsid
b9b8ed177c
Store priority values as named fields
2019-03-08 15:23:36 +03:00
elsid
0c16fef285
Add navmesh update status builder
2019-03-08 15:07:07 +03:00
elsid
14c9190f49
Move tile replacement into separate function
2019-03-08 15:06:11 +03:00
elsid
b6243e7d1f
Fix name styleguide
2019-03-08 15:02:49 +03: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
Bret Curtis
0764271999
Merge pull request #2224 from elsid/fix_odr_violation
...
Fix ODR violation for VDSMCameraCullCallback
2019-03-08 09:09:36 +01:00
Bret Curtis
a381a1aff4
Merge pull request #2222 from akortunov/warnfix
...
Attempt to fix Clang warnings about hidden virtual methods
2019-03-08 00:09:31 +01: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
Bret Curtis
c55141d18d
Merge pull request #2217 from Capostrophic/shader
...
Move forcePPL and clamp to global shader defines (task #4869 )
2019-03-07 16:56:09 +01:00
Andrei Kortunov
72db11b56c
Fix Clang warnings about hidden virtual methods
2019-03-07 17:53:59 +04:00
Capostrophic
0cdc46dfd6
Move forcePPL and clamp to global shader defines (bug #4869 )
2019-03-05 23:36:08 +03:00
Capostrophic
59f7df187d
Add explicit variant of Journal
2019-03-05 20:47:05 +03:00
elsid
27d7452267
Update scaled objects in navigator
2019-03-04 22:59:39 +03:00
Bret Curtis
14c93b3df0
Revert "Merge pull request #2204 from elsid/fix_navigator_update"
...
This reverts commit 26fb0e7a0f
, reversing
changes made to 42b2391303
.
2019-03-04 11:06:15 +01:00
elsid
133d7447f3
Update scaled objects in navigator
2019-03-03 16:46:41 +03:00
Andrei Kortunov
bf5f68a4d8
Replace boost GCD to the homebrew implementation
2019-03-02 17:32:05 +04:00
Bret Curtis
cd70354f34
Merge pull request #2190 from akortunov/terrain
...
Make Distant Terrain configurable
2019-03-02 11:19:45 +01:00
Bret Curtis
3b8b0b5dd7
Merge pull request #2197 from akortunov/quadtree
...
Optimize terrain QuadTree build
2019-03-01 17:09:06 +01:00
Andrei Kortunov
56fea4b062
Add setting to control composite geometry size
2019-03-01 18:02:40 +04:00
bzzt
9d44e18af6
Allow to configure terrain vertex LOD
2019-03-01 18:02:38 +04:00
bzzt
03f23b235a
Optimize terrain QuadTree build
2019-03-01 16:17:11 +04:00
bzzt
fd94d7f7ff
Make Distant Terrain more configurable (feature #4890 )
2019-03-01 14:51:13 +04:00
Grigory Latyshev
3872d7476b
Move makeOsgVec3f() to settingsutils.hpp
...
Remove all other makeOsgVec3f() implementations
2019-02-28 20:03:42 +00:00
Bret Curtis
fe23acdd14
Merge branch 'misc_stringutils_tolower' into 'master'
...
Simplify Misc::StringUtils::toLower
See merge request OpenMW/openmw!71
2019-02-28 19:59:05 +00:00
David Cernat
12cef51122
Merge pull request #2192 from Capostrophic/bzzt
...
Port minor fixes from bzzt's branch
2019-02-28 12:55:58 +02:00
bzzt
567ad293fd
Don't discard object cache with uninitialized timestamp
...
This can happen during terrain loading
2019-02-28 03:01:32 +03:00
bzzt
b2000b7642
Fix quad tree node child bounding box dimensions
2019-02-28 02:51:46 +03:00
bzzt
172cb74763
Delete composite map layers on demand
2019-02-28 02:47:00 +03:00
bzzt
4f387fdf1c
Prune empty quad tree nodes
2019-02-28 02:47:00 +03:00
bzzt
aecbc2f01c
Fix crash when incremental compile operation is not used
2019-02-28 02:46:59 +03:00
Grigory
af7b6a09a8
Simplify Misc::StringUtils::toLower
2019-02-28 00:24:43 +03: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
bzzt
5bce3cbc68
Don't use MWRender namespace in common terrain components
2019-02-27 00:04:01 +03:00
Capostrophic
9bc360267b
Ignore stray explicit references for names in expressions
2019-02-26 17:47:18 +03:00
Capostrophic
cc855e065a
Ignore stray references for variables in Set instruction
2019-02-26 16:58:16 +03:00
elsid
33f6fb258d
Option to set specific random seed for random number generator
2019-02-26 09:36:34 +03:00
Bret Curtis
3316938dfc
Merge pull request #2182 from Capostrophic/format
...
Replace Boost format and replace_all where possible
2019-02-24 20:17:31 +01:00
Bret Curtis
56d5fc788c
Merge pull request #2163 from Capostrophic/hello
...
AI data handling minor revisions
2019-02-24 20:14:08 +01:00
Capostrophic
e70cc10305
Some more de-boosting
2019-02-24 03:20:20 +03:00
Capostrophic
8ecd0b82a4
Replace Boost format and replace_all where possible
2019-02-24 03:20:20 +03:00
Bret Curtis
d4564a9be7
Merge pull request #2180 from akortunov/includes
...
Remove redundant includes
2019-02-24 01:14:16 +01:00
Bret Curtis
8cf2523a8d
Merge pull request #2176 from akortunov/rollcontroller
...
Add support for NiRollController
2019-02-23 23:55:27 +01:00
Bret Curtis
44920352ce
Merge pull request #2181 from Capostrophic/boost
...
Get rid of Boost.Array
2019-02-23 23:54:30 +01:00
Capostrophic
594ea39f5d
Revise AI data handling
...
Make Hello 16-bit unsigned as it's intended to be
Get rid of redundant mHasAI boolean
Always save AI data subrecord
Adjust creature and NPC default rating values to Morrowind defaults
2019-02-23 21:00:47 +03:00
Bret Curtis
4a69d96483
Merge branch 'esm_name_template_fix' into 'master'
...
Make sure that proper operator function of ESM:FIXED_STRING is used for char[N] argument
See merge request OpenMW/openmw!63
2019-02-23 13:39:15 +00:00
Adam Fandrejewski
75c204cdd8
Fix #4835 - undefined behavior - uninitialized mCtx
2019-02-23 13:35:25 +00:00
Andrei Kortunov
3032b177a1
Remove redundant includes
2019-02-23 08:02:12 +04:00
Capostrophic
58788de7c4
Get rid of Boost.Array
2019-02-22 23:16:34 +03:00
Bret Curtis
212f097b3c
Merge pull request #2172 from akortunov/pvs_fix
...
Fix some issues, found by PVS-Studio
2019-02-22 15:01:37 +01:00
elsid
73734fc04d
Fix update navmesh for not changed objects
...
When update method is called for not changed object befor this change
all object tiles were considered as not object tiles and were removed.
Also this marked those tiles as changed. This lead to alternation
between remove and add each tile update method was called. Problem was
detected by using Animated Containers mod.
2019-02-22 11:48:31 +03:00
Andrei Kortunov
60f112d11c
Add support for NiRollController (feature #4675 )
2019-02-21 12:34:35 +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
7a9ff9f7b3
Merge pull request #2161 from akortunov/switchnode
...
Do not create a redundant parent node for LOD and Switch nodes
2019-02-18 19:46:25 +01:00
Bret Curtis
09262e0336
Merge pull request #2170 from elsid/disable_navigator_option
...
Add option to disable DetourNavigator component (feature #4833 )
2019-02-18 16:01:30 +01:00
Andrei Kortunov
18a59df050
Throw exceptions by value instead of reference
2019-02-17 10:24:25 +04:00
elsid
da6df818ff
Fix update navmesh
...
Every updated object should produce a set of changed tiles where it is
placed. Before this change only current object tiles were updated. If
object was moved to another set of tiles then navmesh were not changed
in new tiles.
TileCachedRecastMeshManager::updateObject should add all new tiles if object
was moved and remove all no more used tiles. Both new and old tiles should be
marked as changed.
Also add tests to show desired result for add, update, remove.
2019-02-17 01:50:53 +03:00
elsid
9626b6ec42
Add option to disable DetourNavigator component to find paths
2019-02-16 15:50:58 +03:00
elsid
34c594f01e
Add default initializators for settings fields
2019-02-16 15:39:06 +03:00
elsid
16675fd254
Return empty path when navmesh is not found for agent
2019-02-16 15:37:06 +03:00
elsid
1d3668cd22
Add Navigator interface
2019-02-16 15:37:06 +03:00
elsid
d63881e054
Make Navigator::findPath independent from class fields
2019-02-16 15:14:05 +03:00
elsid
a0ed981a7c
Fix operator ++ for OutputTransformIterator
2019-02-16 15:09:57 +03:00
elsid
c68e64a2a7
Make navigator from settings manager setting in separate function
2019-02-16 14:41:11 +03:00
Andrei Kortunov
058e289162
Do not create a redundant parent node for LOD and Switch nodes (bug #4837 )
2019-02-09 12:02:09 +04:00
Andrei Kortunov
573b3f4f1d
Init target for AI packages from old saves
2019-02-05 08:03:31 +04: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