1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-16 02:49:55 +00:00
Commit graph

8705 commits

Author SHA1 Message Date
Chris Robinson
9568aa6a84 Use a condition variable to wake up the audio stream thread
This should make starting streams a bit more responsive, and allows us to do
more in it that really shouldn't wait for its next wake up.
2015-11-27 04:30:09 -08:00
Chris Robinson
4a078725d4 Play player voices locally 2015-11-27 02:57:44 -08:00
Chris Robinson
449eca4fb4 Properly mark streams as 2D or 3D 2015-11-27 02:36:33 -08:00
Chris Robinson
21bb2e9314 Use a deque for loudness buffers with a map lookup
Similar to Sound_Buffer, this allows individual Sound_Loudness objects to
retain a constant pointer when new ones are inserted on to the end.
2015-11-27 02:01:18 -08:00
Chris Robinson
5f8a09df97 Play player sounds (except footsteps) local to the listener 2015-11-27 02:01:18 -08:00
Chris Robinson
82f3651f81 Treat the sound offset as the offset in seconds 2015-11-27 02:01:17 -08:00
Chris Robinson
8b7587f9a6 Track whether a sound is 3D 2015-11-27 02:01:17 -08:00
Chris Robinson
fc912b135f Avoid unnecessarily friending classes 2015-11-27 02:01:17 -08:00
Marc Zinnschlag
7cc950ed64 Merge remote-tracking branch 'origin/master' 2015-11-27 10:34:22 +01:00
Marc Zinnschlag
b3532b6274 Merge remote-tracking branch 'scrawl/spells' 2015-11-27 10:21:17 +01:00
scrawl
44dd62067e Remove some unnecessary per-frame store searches 2015-11-27 02:13:56 +01:00
scrawl
783594033a Optimize MWMechanics::Spells
Use pointers as map keys instead of string IDs. Resolves a nasty performance bottleneck on functions like hasCommonDisease() that previously had to look up all contained spells from the ESM store on every call. hasCommonDisease() is called hundreds of times per frame by the AI target update since it's used to calculate target disposition.

The total cost of hasCommonDisease() was 2.7% of the frame loop, now it's negligible.
2015-11-27 01:07:15 +01:00
scrawl
fbee32729a Cache CellId
ESM::Cell::getCellId() was allocating a string on every call. This caused functions dealing with cellIds to be unnecessarily expensive.

For example, World::moveObject spent almost as much time comparing CellIds as it did updating Bullet's AABB after the move. OpGetDistance was by far the most expensive script instruction because it has to compare cellIds.

The total cost of getCellId() relative to the frame loop was about 0.3%.
2015-11-26 23:56:32 +01:00
scrawl
984c455027 Fix Show Owned option affecting tooltips that are not objects (Fixes #3036) 2015-11-26 18:23:39 +01:00
scrawl
bcca1beb69 Merge branch 'configwriter' into HEAD 2015-11-26 17:17:26 +01:00
scrawl
d894d54e41 Improve path conversions 2015-11-26 17:15:28 +01:00
Chris Robinson
d4238a6d91 Add config options for the sound buffer cache size
The cache size is specified with a min/max range, intended to avoid constant
unloading once the limit is reached. This way, buffers can be unloaded down to
a reasonable mimimum, allowing some more buffers to be subsequently loaded
without causing more unloading.
2015-11-26 02:13:37 -08:00
Chris Robinson
8715add72f Store sound buffers in a deque that's filled in as needed
A deque allows existing Sound_Buffer references to remain valid as long as new
ones are back-inserted. These references can be used instead of indices.
2015-11-26 01:26:33 -08:00
cfcohen
7605912ece Merge branch 'master' of https://github.com/OpenMW/openmw into config_writer_changes 2015-11-26 00:57:21 -05:00
scrawl
8a3ec14bc6 Revert "Merge remote-tracking branch 'sandstranger/opengles'"
This reverts commit cc9cab6fd1, reversing
changes made to da856eed95.
2015-11-25 19:22:48 +01:00
Marc Zinnschlag
ef68e2aec4 Merge remote-tracking branch 'origin/master' 2015-11-25 19:18:17 +01:00
cfcohen
67c4b17581 Commit files that I thought wre in the previous commit. :-[ I'm
accustomed to the hg behavior of commiting all modified files by
default.
2015-11-25 13:17:03 -05:00
Marc Zinnschlag
cc9cab6fd1 Merge remote-tracking branch 'sandstranger/opengles' 2015-11-25 19:15:53 +01:00
Chris Robinson
8f08ca9cba Revert "Avoid unsafe sizeof(x)/sizeof(x[0]) constructs for array counting"
This reverts commit 0d4fea896c.
2015-11-25 06:06:27 -08:00
Chris Robinson
04f885d8cc Rename mReferences to mUses 2015-11-25 04:24:27 -08:00
Chris Robinson
0d4fea896c Avoid unsafe sizeof(x)/sizeof(x[0]) constructs for array counting 2015-11-25 04:24:27 -08:00
Chris Robinson
a1bdb544db Avoid an unnecessary string copy 2015-11-25 04:24:27 -08:00
Chris Robinson
aac903484c Remove a really unnecessary method 2015-11-25 04:24:26 -08:00
Chris Robinson
73448c72f6 Replace Play_NoTrack with playManualSound3D, and rename the latter 2015-11-25 04:24:26 -08:00
Chris Robinson
caae305ddd Use a sorted list for unused buffers
Helps ensure the buffers being unloaded due to cache limits are not likely to
be needed anytime soon.
2015-11-25 04:24:26 -08:00
Chris Robinson
669b7a2295 Batch update changes together, when possible
Certain OpenAL implementations, including Rapture3D, Creative's hardware
drivers, and more recent versions of OpenAL Soft, can batch together changes so
that they all occur at once, avoiding potential discontinuities with one sound
being changed before another, or the listeenr being changed before sounds are.

On other implementaitons, this is a no-op and maintains existing behavior.
2015-11-25 04:24:26 -08:00
Chris Robinson
ea70b0baee Don't store the buffer in the sound struct 2015-11-25 04:24:25 -08:00
Chris Robinson
fd7d58fe7e Reset the sound handle back to null after unloading 2015-11-25 04:24:25 -08:00
Chris Robinson
4801661b34 Stop all sounds of the given id 2015-11-25 04:24:25 -08:00
Chris Robinson
8a69f676ec Remove some duplicate code 2015-11-25 04:24:25 -08:00
Chris Robinson
45628316f8 Remove an unnecessary check 2015-11-25 04:24:25 -08:00
Chris Robinson
574c1923fe Clear unused buffers after unloading them all 2015-11-25 04:24:25 -08:00
Chris Robinson
5ad772c3b3 Fix streaming sound time 2015-11-25 04:24:25 -08:00
Chris Robinson
3ce6aee98b Return a decoder from the loadVoice function 2015-11-25 04:24:25 -08:00
Chris Robinson
24f8c78fca Store sound buffer references by index instead of string 2015-11-25 04:24:24 -08:00
Chris Robinson
f7218f5a25 Use proper mutex mechanisms and don't check al errors in the stream thread 2015-11-25 04:24:24 -08:00
Chris Robinson
f9e18cd966 Prepare all Sound_Buffer objects when one is needed
This simply sets up the Sound record data to be used by the sound output. The
actual audio buffers, stored in the Sound_Handle, are still loaded on-demand.
2015-11-25 04:24:24 -08:00
Chris Robinson
6c3953766e Use separate lists for the sound name and its buffer
This should make sound lookup a bit more efficient, especially when an integer
ID can be used.
2015-11-25 04:24:24 -08:00
Chris Robinson
fbfcc4050f Stream voice clips
Voices tend to be a bit long, and not individually replayed often. So it's
better to stream them instead of loading theminto a sound buffer. The loudness
data is very small, though, so that can be kept buffered indefinitely.
2015-11-25 04:24:24 -08:00
Chris Robinson
eee6a19e31 Add a method to stream sounds in 3D 2015-11-25 04:24:24 -08:00
Chris Robinson
f1a1dc8408 Pass relevant sound parameters to the OpenAL_SoundStream constructor 2015-11-25 04:24:24 -08:00
Chris Robinson
83721092f2 Refactor the audio streaming code to be a bit saner 2015-11-25 04:24:23 -08:00
Chris Robinson
16f72886e9 Use separate lists for openal sounds and streams 2015-11-25 04:24:23 -08:00
Chris Robinson
0f33f41d8d Actually unload sounds when running over 2015-11-25 04:24:23 -08:00
Chris Robinson
22a6811425 Limit the sound buffer cache to 15MB 2015-11-25 04:24:23 -08:00
Chris Robinson
0b2747098c Keep track of unused sound buffers 2015-11-25 04:24:23 -08:00
Chris Robinson
4073495070 Add some missing sound handling 2015-11-25 04:24:23 -08:00
Chris Robinson
e362896817 Combine some duplicate code 2015-11-25 04:24:23 -08:00
Chris Robinson
febc7b510a Remove an unneeded method 2015-11-25 04:24:23 -08:00
Chris Robinson
3fdc3c4ea9 Use a separate map for say sounds
Also restores lip movement
2015-11-25 04:24:22 -08:00
Chris Robinson
9d0018e1bc Reorder active sound data to make lookup by Ptr better 2015-11-25 04:24:22 -08:00
Chris Robinson
495e138907 Load sound loudness and store it with the Sound_Buffer
Still not used for say yet, though
2015-11-25 04:24:22 -08:00
Chris Robinson
f4c22ec49e Hold a separate list for voice sound buffers
This fixes say. Ideally voices would be streamed, but the loudness/"lip" buffer
extraction should be separated from the buffer loading code.
2015-11-25 04:24:22 -08:00
Chris Robinson
4571218827 Load the sound as needed and pass it directly to the play methods
This breaks say sounds, loudness handling, and the cache limit. Fixes are
forthcoming.
2015-11-25 04:24:22 -08:00
Chris Robinson
e2beefd8b5 Store info calculated from the ESM::Sound record 2015-11-25 04:24:22 -08:00
scrawl
edfcb45ad7 Fix crash when onPcEquip script removes the equipped item (Fixes #3016) 2015-11-24 22:55:17 +01:00
sandstranger
69acacefff openmw building on Android with Opengl es 2015-11-23 20:28:35 +03:00
Marc Zinnschlag
da856eed95 Merge remote-tracking branch 'origin/master' 2015-11-23 18:17:36 +01:00
scrawl
3fe38e3556 Remove unused setting 2015-11-23 03:26:21 +01:00
scrawl
71cd57a3b5 Optimize World::getTimeStamp
World::getTimeStamp was searching through the globals store on every call. Not a big issue, but slow enough to show up in the profiler.
2015-11-22 23:55:21 +01:00
scrawl
62169a7039 Use a single-precision PositionAttitudeTransform in speed critical places 2015-11-22 19:54:26 +01:00
cfcohen
b507d5da5d One more tooltip fix. This one in the review dialog with Socucius Ergalla. 2015-11-22 00:50:36 -05:00
Marc Zinnschlag
8da04bf76f Merge remote-tracking branch 'scrawl/master' 2015-11-21 09:15:46 +01:00
scrawl
1b1d9a7a9c Fixed another tooltip 2015-11-21 02:05:27 +01:00
cfcohen
cf4f3d9ebc Correct tooltip for Magicka in stats window. 2015-11-20 14:57:42 -05:00
scrawl
43de13fa99 Do not allow resting on lava 2015-11-20 19:22:31 +01:00
scrawl
2d302aef99 Implement stayOutside script variable 2015-11-20 05:05:43 +01:00
scrawl
27617468c8 Fix the collision shape not updating when scaling an object via script 2015-11-20 03:29:58 +01:00
scrawl
5f143dee2d Fix lighting incontinuity at nightfall and sunrise 2015-11-20 03:22:35 +01:00
scrawl
61314e1db1 Fix bounding box of bullet debug drawer 2015-11-20 03:04:03 +01:00
scrawl
706b1d4c28 Disable culling of ClipNode 2015-11-20 02:22:37 +01:00
scrawl
cbf344663f animateCollisionShape checks if the shape is really animated 2015-11-20 00:17:07 +01:00
scrawl
894477849a Store animated collision objects in a separate container 2015-11-19 23:33:08 +01:00
scrawl
8c268f239e Set the object node scale before inserting model
This fixes initWorldSpaceParticles not taking object scale into account. Still not taking into account object rotation or node animations. Ideally the initWorldSpaceParticles needs to run in an updateCallback.
2015-11-19 15:57:12 +01:00
scrawl
ccc721ba3f Print the OpenMW version to the logfile 2015-11-19 02:56:42 +01:00
scrawl
f08cfa19ea Fix SoundManager::isPlaying to consider multiple entries with the same Ptr/id
Now it returns true if *any* sounds matching the given Ptr and id are playing. The previous behaviour was causing problems with "zombie" sounds (sounds that have finished playing, but weren't removed from the map yet) making the isPlaying method return false even though there's another legitimately playing sound in the map.
2015-11-19 01:06:51 +01:00
scrawl
a49058721e Use a contactTest for collision script functions
The previous method didn't work for stationary actors. This change fixes the grinder in "Sotha Sil, Dome of Kasia" not registering collisions if the player stands still. (Fixes #1934)
2015-11-18 21:20:12 +01:00
scrawl
9fce428929 ContactTestResultCallback: do not rely on col1 being the object tested against
Unsure why, but in some cases col0 and col1 are swapped.
2015-11-18 20:41:49 +01:00
scrawl
3453353091 AiCombat distance check takes into account collision box (Fixes #1699) 2015-11-18 19:00:43 +01:00
Marc Zinnschlag
020b3add94 Merge branch 'openmw-37' 2015-11-17 09:54:49 +01:00
Marc Zinnschlag
5de9a5e840 Merge remote-tracking branch 'origin/openmw-37' into openmw-37 2015-11-17 09:04:07 +01:00
scrawl
e62470d674 Auto-generate the collision shape for native mesh formats 2015-11-17 00:20:15 +01:00
scrawl
8cf57ef6ac Move BulletShapeManager and BulletShape to resource/ 2015-11-17 00:20:15 +01:00
scrawl
eb2f16d682 Support for loading .osg mesh format 2015-11-16 23:26:43 +01:00
scrawl
71d9e7dc52 Read Ambient Loop Sound ID and Rain Loop Sound ID from the INI file 2015-11-16 02:21:45 +01:00
scrawl
e9e12d396d Merge remote-tracking branch 'upstream/openmw-37' into HEAD 2015-11-15 21:37:32 +01:00
scrawl
0f347eccbf Flip the origin of global map texture
Now it's consistent with the overlay texture.
2015-11-15 21:36:41 +01:00
scrawl
8b7bdcd127 Fix the global map overlay viewport (Bug #3018) 2015-11-15 21:32:34 +01:00
scrawl
0220e82259 Remove unused SOUND_INPUT_INCLUDES cmake variable. 2015-11-14 17:17:22 +01:00
Alexander "Ace" Olofsson
d2a4175804 Add FFMPEG to include path for OpenMW
I'm a bit confused; `mwsound/ffmpeg_decoder.hpp/cpp` requires FFMPEG headers to compile, how did this work in the first place?
2015-11-14 16:02:42 +01:00
Marc Zinnschlag
de98ee0062 Merge remote-tracking branch 'scrawl/esm_rewrite' 2015-11-14 14:25:08 +01:00
Nikolay Kasyanov
4e3bbe01b6 OS X: disable glTexStorage2D because of OSG/driver issue
See http://forum.openscenegraph.org/viewtopic.php?p=65276#65276 for the details.
2015-11-14 13:50:01 +01:00
scrawl
0ec56d321a Remove unneeded using namespace 2015-11-14 03:01:40 +01:00
scrawl
05498ad592 Refactor: InputManager no longer depends on Engine 2015-11-14 03:01:24 +01:00
Marc Zinnschlag
c312162b57 Merge branch 'openmw-37' 2015-11-13 14:24:57 +01:00
scrawl
b8e11cf197 Merge commit 'pull/upstream/678' into HEAD
Conflicts:
	apps/esmtool/record.cpp
	apps/opencs/model/doc/savingstages.cpp
	apps/opencs/model/world/land.cpp
	apps/opencs/model/world/land.hpp
	apps/opencs/model/world/landtexture.cpp
	apps/openmw/mwworld/store.cpp
	components/esm/loadland.cpp
	components/esm/loadland.hpp
2015-11-13 01:34:36 +01:00
scrawl
8cd41f0ed4 Increase the ray distance for dropObjectOnGround (Fixes #3010) 2015-11-12 23:05:44 +01:00
scrawl
9897400d97 Restore the previous key focus widget after playing video 2015-11-12 19:03:24 +01:00
Emmanuel Anne
af7b5e636e improves InterpreterContext::updatePtr
This checks the update is really on the right pointer. It fixes the boat
disappearing in "fishing academy", and it allows scripts linked to objects
not to loose their default reference when using the object-> notation on
another object.
2015-11-12 17:53:17 +01:00
Bret Curtis
3ea3d07d44 really purge libav 2015-11-12 16:39:29 +01:00
scrawl
19cd987208 Fix Ptr updates in PositionCell
This was not the proper way to get the updated Ptr, it will only work for the player which isn't owned by any cell. For other objects, moving between cells makes the object owned by that cell and thus the getBase() pointer will change.
2015-11-12 14:32:39 +01:00
scrawl
9e3eb8291f Rotations: fix the rotation order for doors 2015-11-12 02:09:00 +01:00
scrawl
90b6fa5ef1 PlaceItem, PlaceItemCell angle should be treated as degrees (Fixes #3007) 2015-11-12 01:44:29 +01:00
scrawl
3647af8d73 Rotations: use different rotation order when object is rotated via script (Fixes #2062) 2015-11-12 01:44:00 +01:00
scrawl
b4ce73f179 Rotations: remove LocalRotation
This never existed in vanilla MW in the first place. The reason we got confused was because of a strange behaviour where the order of applying rotations changes as soon as a script touches the object's rotation.
2015-11-12 01:16:37 +01:00
scrawl
666fbba1e0 Rotations: World::rotateObject takes radians instead of degrees
Cuts down on the amount of redundant degree<->radians conversions in the codebase.
2015-11-12 01:09:39 +01:00
scrawl
6405049add Rotations: move doors via Rotation rather than LocalRotation
Now LocalRotation is unneeded, will remove in next commit.
2015-11-12 00:58:29 +01:00
scrawl
8aacbc398f Rotations: don't wrap the angle values for non-actors
It's not really necessary, and just complicates logic elsewhere. Neither does vanilla MW do it. As well, the question is if wrapping to [-PI, PI] or [0, 2*PI] would be the desired range.
2015-11-12 00:52:36 +01:00
scrawl
a68fd791c8 Remove a stray method declaration 2015-11-11 17:24:27 +01:00
scrawl
79c44d0bfe Style fix 2015-11-11 17:23:47 +01:00
scrawl
02148a43f5 Node mask fix 2015-11-11 17:22:31 +01:00
scrawl
0a52ee17c3 Fix Drawable removal issues 2015-11-11 17:04:06 +01:00
scrawl
afa590bddb Leak fix 2015-11-11 16:04:17 +01:00
scrawl
c62c1693e9 Disable copy constructor and operator= in PartHolder 2015-11-11 01:47:26 +01:00
scrawl
2e9805fa0e Leak fix 2015-11-11 00:50:57 +01:00
scrawl
b840c68f0c Do not create a depth buffer for the global map 2d rendering 2015-11-10 21:55:21 +01:00
scrawl
8e3bc981a2 Fix self-referencing camera 2015-11-10 21:45:53 +01:00
MatthewRock
a662a00c62 Fixing bug for merchant 2015-11-10 19:18:02 +01:00
scrawl
0409e5a043 Use OSG_VERSION_GREATER_EQUAL / LESS_THAN rather than MIN_VERSION_REQUIRED (cosmetic change) 2015-11-10 18:28:58 +01:00
scrawl
f1ac408f35 Place Drawables directly in the scene graph when built with OSG 3.4
OSG 3.4 adds the ability to place Drawables directly in the scene graph, without a Geode decorating them. Leveraging this should give a small performance boost, because the redundant Geodes increase culling overhead.

There is still an oustanding issue with the RemoveDrawableVisitor no longer working correctly, because Drawables can have multiple parents.
2015-11-10 18:23:42 +01:00
scrawl
35459f20d5 Refactor lighting mask 2015-11-10 17:23:12 +01:00
scrawl
91583fc027 Fix MWRender::Mask_ParticleSystem 2015-11-10 17:00:33 +01:00
scrawl
637cd3a628 Adjust the FirstPersonNeckController to follow the camera with a reduced factor (Fixes #1784) 2015-11-10 01:01:41 +01:00
scrawl
3c338b9da9 ObstacleCheck: tweak the stuck detection parameters
The netch_betty wander animation starts up so slowly that the creature thought it was stuck, even though it's not.
2015-11-09 20:35:31 +01:00
scrawl
d233bc483d ObstacleCheck: fix evasion issue
The check if (samePosition... would not work as intended because actors do not move in every frame when the framerate is higher than the physics framerate. In that case the actor would change its evasion direction almost every frame.
2015-11-09 20:35:31 +01:00
scrawl
caa523a959 ObstacleCheck: fix the framerate not being taken into account 2015-11-09 20:35:31 +01:00
scrawl
801dc8eee3 ObstacleCheck: fix weird distance calculation 2015-11-09 20:17:21 +01:00
scrawl
1b52749ae1 Adjust third person camera height based on character height 2015-11-09 17:42:35 +01:00
scrawl
b89945804c BookPage: implement hit test with margin for error 2015-11-09 02:57:49 +01:00
scrawl
055841e721 Improve cloud lighting 2015-11-09 02:22:40 +01:00
scrawl
f0a1434578 Dead actors underwater will float to the surface 2015-11-08 20:58:00 +01:00
scrawl
66925be440 Partially revert 682f30ef9c
This change made dead netch fall through the floor, because the animation moves the creature *below* its external collision box.
2015-11-08 19:59:33 +01:00
scrawl
516f2765a1 Use the ScalingLayer for journal, books and scrolls 2015-11-08 18:30:22 +01:00
scrawl
a7ad45e73e WindowBase::center use the layer size instead of render window size 2015-11-08 18:30:21 +01:00
scrawl
f9932130da Work around MyGUI bug with mouse event coordinates (fixed in git) 2015-11-08 18:30:21 +01:00
scrawl
6c12c9a467 Layer renaming fix 2015-11-07 19:45:30 +01:00
scrawl
d85d74e615 Use AdditiveLayer for the hit fader 2015-11-07 18:05:16 +01:00
scrawl
a90ef8afd0 layer renaming 2015-11-07 17:49:11 +01:00
scrawl
57b9eafa0f osgMyGUI: implement AdditiveLayer 2015-11-07 17:45:22 +01:00
scrawl
51f3a8fec6 osgMyGUI: move Platform methods to the .cpp file 2015-11-07 17:39:31 +01:00
scrawl
13c7235b6b Remove old FPS setting code 2015-11-07 00:13:13 +01:00
scrawl
2407f393ce Fix double update traversal in screenshot function 2015-11-06 23:14:27 +01:00
scrawl
6e69808129 Fix the frameNumber not being incremented in certain frames 2015-11-06 23:14:27 +01:00
scrawl
8e4e4e5e38 Fix infinite loop in addToLevList 2015-11-05 01:18:01 +01:00
scrawl
c996702b56 Fix some uninitialised variables found by static analysis 2015-11-04 20:34:50 +01:00
scrawl
1cf1c944b7 Don't attempt to render weather particles on the refraction and reflection textures 2015-11-03 23:20:17 +01:00
scrawl
209fa52883 Hide weather particles underwater (Fixes #2701) 2015-11-03 23:15:43 +01:00
scrawl
e3b30baff9 clipFudge fix 2015-11-03 23:10:52 +01:00
scrawl
682f30ef9c Fix incorrect uses of PhysicsSystem::getHalfExtents
Did not account for translation of collision box (mMeshTranslation in actor.cpp)
2015-11-03 19:05:36 +01:00
scrawl
46e07e4b19 Head tracking: fall back to target collision box center if the target has no head node 2015-11-03 18:27:15 +01:00
scrawl
a5f8ffb83d aimToTarget: Fix the collision box translation not being taken into account 2015-11-03 18:15:47 +01:00
scrawl
de97a8a3da Do not allow disabling the player object 2015-11-03 17:53:57 +01:00
scrawl
b72d5c5190 Don't play idlestorm animation when swimming 2015-11-03 17:48:35 +01:00
scrawl
c0a81030bb Make use of INI settings for the simple water 2015-11-03 02:24:50 +01:00
scrawl
30c828dff0 Include cleanup 2015-11-03 02:17:42 +01:00
scrawl
8e8f72408d Use diffuse/ambient lighting for the simple water 2015-11-03 02:12:00 +01:00
scrawl
380256977b Fix another renderBin issue with the weather particles
Depth sorting w.r.t. the rest of the scene was broken
2015-11-03 01:53:38 +01:00
scrawl
9902dfc9ef Comment 2015-11-03 01:53:22 +01:00
scrawl
ad016da31d Enable fog on weather particles 2015-11-03 01:42:37 +01:00
scrawl
fd1ccd21ff Disable freezeOnCull for weather particles 2015-11-02 23:49:22 +01:00
scrawl
5ca0ae5232 Don't add the same AlphaFader to multiple nodes 2015-11-02 23:38:34 +01:00
scrawl
d6f45c3390 Fix the renderbin for weather particles
Regression from commit 2ee6b41887
2015-11-02 21:51:01 +01:00
scrawl
bd1f3493d7 Fix weather particles not being cleared when changing from one particle effect to another 2015-11-02 21:35:03 +01:00
scrawl
0348b8df1c Fix applying of plane height in ClipCullNode (Fixes #2985) 2015-11-02 01:23:21 +01:00
scrawl
3f988327c7 Destructor fix 2015-11-02 00:57:59 +01:00
scrawl
913bbe347b Don't check the extension string every frame 2015-11-02 00:52:20 +01:00
scrawl
c60388afb6 Add fudge factor to move the water mesh away from camera when the camera gets too close 2015-11-02 00:34:09 +01:00
scrawl
4690ec12cc Render the water plane with GL_DEPTH_CLAMP if supported (Fixes #996) 2015-11-02 00:29:09 +01:00
scrawl
802620a86b Use TimeOfDayInterpolator for Land Fog Depth
Fixes the sudden fog jump at nightfall.
2015-11-01 23:03:16 +01:00
scrawl
45bf3e6788 Create TimeOfDayInterpolator class to refactor time handling in WeatherManager 2015-11-01 22:59:26 +01:00
scrawl
8da4530957 Use INI-imported underwater fog settings (Fixes #2907, Fixes #1511) 2015-11-01 22:09:27 +01:00
scrawl
bd9dc58560 Use the correct scale for actor swim height (Fixes #2833) 2015-11-01 21:45:58 +01:00
scrawl
7b817ba010 Fix the node masks of water cameras being reset (Bug #2984)
Node mask needs to remain Mask_RenderToTexture so the raytesting visitor won't go through the reflection graph.
2015-10-31 03:14:05 +01:00
scrawl
93f4d31cf9 Raytest mask fix (Fixes #2984) 2015-10-31 01:30:02 +01:00
scrawl
b9b154a015 Minor cleanup 2015-10-31 00:01:12 +01:00
scrawl
d90fa977e8 GL_DEPTH_COMPONEN24 fix 2015-10-29 13:52:48 +01:00
scrawl
7692ae175a Disable sun rendering on the reflection camera
Not needed, we have specular highlights.
2015-10-29 01:17:23 +01:00
scrawl
9b8e45fc01 Fix ripple particles z-fighting with the water surface 2015-10-29 00:28:09 +01:00
scrawl
d394b0793f waterLevel fix 2015-10-29 00:27:42 +01:00
scrawl
c9d7078b4b Water: add texture quality setting to the settings window 2015-10-29 00:27:42 +01:00
scrawl
8433e0679f Water: connect to settings window 2015-10-29 00:25:24 +01:00
scrawl
9f8d36b573 Water code cleanup 2015-10-29 00:25:24 +01:00
scrawl
11c997d09d Water: move reflection code to a new class 2015-10-29 00:25:24 +01:00
scrawl
ebdf25ccb9 Water: move refraction code to a new class 2015-10-29 00:25:24 +01:00
scrawl
7bbdb13138 Remove debug code 2015-10-29 00:25:24 +01:00
scrawl
6ba9f561ea Use simple water for the local map 2015-10-29 00:25:24 +01:00
scrawl
09631385c3 Use boost ifstream for water resources 2015-10-29 00:25:24 +01:00
scrawl
d485dd0782 Water: fix world UV coords 2015-10-29 00:25:24 +01:00
scrawl
9f2f503d37 Water: pass the near and far planes 2015-10-29 00:25:24 +01:00
scrawl
37c9c12962 Water: clipping plane offset 2015-10-29 00:25:23 +01:00
scrawl
700a0099c3 Remove debug code 2015-10-29 00:25:23 +01:00
scrawl
e13eb625d3 New water WIP
Changes compared to old (Ogre) water:
- Uses depth-texture readback to handle the underwater fog in the water shader, instead of handling it in the object shader
- Different clipping mechanism (glClipPlane instead of a skewed viewing frustum)
- Fixed bug where the reflection camera would look strange when the viewer was very close to the water surface
- Toned down light scattering, made the waterColor a bit darker at night
- Fixed flipped water normals and strange resulting logic in the shader

Still to do: see comments...
2015-10-29 00:25:23 +01:00
scrawl
944e6d0844 Fix adjustment of inventory preview size when guimode changes (Fixes #2973) 2015-10-26 14:26:02 +01:00
scrawl
515c52211e Disable mipmaps for temporary screenshot texture 2015-10-25 18:28:50 +01:00
scrawl
7b954e8cc3 Remove unnecessary dependency on MWScrollBar 2015-10-24 16:04:08 +02:00