Commit Graph

362 Commits

Author SHA1 Message Date
Bret Curtis e1a5435531 Merge commit '8a8107e8' 2020-04-22 13:22:54 +02:00
Chris Djali 71c46204ec
Merge pull request #2781 from mp3butcher/partsysfix
Particle System shading and lighting (fixing bug#3676 and #4949)
2020-04-20 21:29:50 +01:00
Julien Valentin 886fd5efc9 enable particle shading and force particle normal to (0.3,0.3,0.3)
and update changelog
2020-04-20 22:15:34 +02:00
Bret Curtis 8a8107e837 as it says; revert vismask and uncomplicate openmw 2020-04-20 20:57:38 +02:00
Capostrophic c3cc8ee1e1 Disable specular lighting for 4.0.0.2 and earlier files 2020-04-17 14:08:29 +03:00
Julien Valentin 6e2a651252 fix particle alpha 2020-04-16 02:48:42 +02:00
Capostrophic e1d635cd71 Make extra sure groups with special behavior aren't optimized out 2020-04-10 18:11:21 +03:00
Capostrophic 80239235d3 Always create NiGeometry nodes as MatrixTransform 2020-03-31 13:04:03 +03:00
Capostrophic 7319eda54e Correct drawable property apply order (bug #5313) 2020-03-23 20:47:47 +03:00
Capostrophic 2b3ecff004 Remove broken fixed function pipeline support
Added by mistake
2020-03-03 21:50:50 +03:00
Capostrophic 6999f1fd28 Add an option to apply lighting to environment maps 2020-03-03 20:08:59 +03:00
Capostrophic 19a7245251 Add bump mapping support 2020-03-03 13:32:30 +03:00
Andrei Kortunov 8c177f0306 Take in account transformations of NiCollisionSwitch 2020-02-25 11:09:36 +04:00
Andrei Kortunov 77d6fe46ca Handle NiCollisionSwitch node 2020-02-19 12:14:21 +04:00
Andrei Kortunov 84979fa8b7 Move VisMask to components 2020-02-16 16:03:35 +04:00
Capostrophic e363d5df21 Some more minor NIF support fixes 2020-02-02 17:28:46 +03:00
capostrophic e654a52b70 More NIF adjustments
Constant interpolation support
2020-01-02 13:07:27 +03:00
Andrei Kortunov c41562fa27 Make TextureProperty warnings more informative 2019-12-15 13:56:20 +04:00
Capostrophic 909c8ef0ea Avoid working with empty controller data (bug #5229) 2019-12-14 20:35:23 +03:00
Andrei Kortunov 5b5c52d92e Handle NiKeyframeController for NiTriShape (feature #5224) 2019-12-10 16:20:27 +04:00
Andrei Kortunov 51cfd070c6 Use transformations of NiSwitchNode 2019-11-09 21:43:08 +04:00
Capostrophic 8056107c6e More minor NIF improvements 2019-10-16 01:36:43 +03:00
Capostrophic 83f61d1636 Support target color in NiMaterialColorController (bug #5159) 2019-09-16 22:31:18 +03:00
Capostrophic 8baddefdbd Refactor extra data and particle modifier handling
Objects no longer inherit from extra data class
"Controlled" harmful abstraction no longer exists
Introduced NiParticleModifier/NiParticleCollider abstractions
Extra data size reading moved into the base read() method
2019-09-13 20:26:22 +03:00
Capostrophic c0438a0c6b Avoid using getPtr on empty geometry data 2019-08-26 23:01:58 +03:00
Alexei Dobrohotov 64fde2d7c2
Fix crash when NiGeometry lacks NiGeometryData 2019-08-24 22:34:56 +03:00
capostrophic 9c7474f88c Implement NiPalette support (feature #4882) 2019-08-16 20:21:09 +03:00
capostrophic efa463af8f Fix non-tiling textures clamp mode (bug #5137) 2019-08-16 16:26:11 +03:00
Alexei Dobrohotov 3668473d6d
Fix comment 2019-08-10 19:22:46 +03:00
Alexei Dobrohotov eaedf34975
Fix ventriloquism 2019-08-10 19:21:36 +03:00
Alexei Dobrohotov 307e9ba666
Merge pull request #2413 from akortunov/weapon
Refactor weapon types behaviour
2019-08-09 20:02:10 +03:00
Andrei Kortunov f0cef772fa Refactor weapon types behaviour
1. Move weapon types behaviour from switches to the table (should allow
us to de-hardcode weapon types later)
2. Gereralize bones injection to actors skeletons (instead of using the
hardcoded xbase_anim_sh.nif)
2019-08-09 19:40:27 +04:00
capostrophic 9e93c9ecd2 Fix multiple-strip NiTriStrips loading 2019-08-08 22:48:24 +03:00
capostrophic 93f73fe87b Fix comparison 2019-08-08 20:41:46 +03:00
capostrophic 7fc3153f62 Reduce code duplication further 2019-08-08 20:29:45 +03:00
capostrophic 91efdf18a9 Reduce Bullet part code duplication 2019-08-08 19:02:08 +03:00
capostrophic ed154f0e2c Fix typo and replace failsave with an assert 2019-08-08 18:42:58 +03:00
capostrophic 7cc70ffb50 Reduce skinned shape code duplication 2019-08-08 18:37:42 +03:00
capostrophic bd6c455fd4 Reduce code duplication for non-skinned shapes 2019-08-08 18:12:46 +03:00
capostrophic b4f54651f8 Make sure strips have valid size 2019-08-08 17:15:33 +03:00
capostrophic adb06913f7 Add basic NiTriStrips rendering (no physics yet) 2019-08-08 17:09:06 +03:00
capostrophic 8efbdeaa57 Load NiTriStrips/NiTriStripsData (don't do anything yet) 2019-08-08 17:09:06 +03:00
capostrophic 6928adcee1 Prevent front() and operator[] from causing undefined behavior 2019-08-04 14:47:33 +03:00
AnyOldName3 bb72ed9744 Merge branch '9' into 'master'
IMPORTANT!! racingcrashfix #4766

See merge request OpenMW/openmw!119
2019-07-01 15:36:40 +00:00
Capostrophic e06178bf0f Make sure shadow shapes aren't visible (bug #5063) 2019-06-22 18:13:41 +03:00
Capostrophic 7c8360d0f3 Use NiSwitchNode initial index field 2019-06-09 01:58:02 +03:00
bzzt ffe8bbd2dd racingcrashfix #4766 2019-05-29 13:37:00 +00:00
Andrei Kortunov 861d41f4a4 Native graphics herbalism support (feature #5010) 2019-05-02 23:03:47 +04:00
bzzt a567111400 Use emplace instead of find-assign 2019-02-27 00:10:34 +03:00
Bret Curtis d4564a9be7
Merge pull request #2180 from akortunov/includes
Remove redundant includes
2019-02-24 01:14:16 +01:00
Andrei Kortunov 3032b177a1 Remove redundant includes 2019-02-23 08:02:12 +04: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
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
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
Bret Curtis e748abde7d
Merge pull request #2147 from akortunov/uvcontroller
Apply UVControllers only for given UV Set
2019-01-28 10:20:43 +01:00
Andrei Kortunov 87598f9419 Fill Switch and LOD nodes names 2019-01-27 15:18:57 +04:00
Andrei Kortunov b2126c2b6b Apply UVControllers only for given UV Set (bug #4827) 2019-01-26 14:53:33 +04:00
AnyOldName3 8482236a82 Merge remote-tracking branch 'upstream/master' into osgshadow-test-vdsm 2019-01-24 23:09:23 +00:00
Andrei Kortunov 2c38e337ae Support NiSwitchNode (feature #4812) 2019-01-23 21:01:54 +04:00
Andrei Kortunov 39c4a7833c Fix out of range exception when try to load a particle node with empty sizes array (bug #4804) 2019-01-16 22:00:50 +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
AnyOldName3 474770eca8 Switch shadow map rendering to a specialised, simplified shader. 2018-10-16 21:23:31 +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
Andrei Kortunov 09427d3f5e Take in account transformations of NiTriShape and NiSkinData in skinning (bug #4437) 2018-09-16 14:38:58 +04:00
Andrei Kortunov 1452684d9e Use new logging system for components 2018-08-14 19:42:41 +04:00
Andrei Kortunov 7d6e3673e0 Implement advanced logging system (feature #4581) 2018-08-12 13:38:15 +04:00
Capostrophic 85208eff7f Revert untextured shapes rendering changes 2018-08-08 21:10:00 +03:00
Capostrophic bda23c6ad6 Fix nodemask 2018-08-07 20:49:10 +03:00
Capostrophic a1e3b2e586 Don't render NiTriShapes without NiTexturingProperty (bug #4483) 2018-08-05 16:24:24 +03:00
Andrei Kortunov 469bb29621 Do not try to handle shape controllers as node controllers 2018-07-30 21:45:17 +04:00
Andrei Kortunov 7e0df01c83 Do not optimize animated shapes (bug #3950) 2018-07-28 16:48:57 +04:00
Andrei Kortunov 2fada94879 Improve MRK NiStringExtraData handling (bug #4419) 2018-06-08 15:44:35 +04:00
tri4ng1e d4d1703bcf
Some PVS-Studio and cppcheck fixes
cppcheck:
[apps/esmtool/record.cpp:697]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[apps/esmtool/record.cpp:1126]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[apps/esmtool/record.cpp:1138]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[apps/niftest/niftest.cpp:36]: (performance) Function parameter 'filename' should be passed by reference.
[apps/niftest/niftest.cpp:41]: (performance) Function parameter 'filename' should be passed by reference.
[apps/opencs/model/prefs/boolsetting.cpp:25]: (warning) Possible leak in public function. The pointer 'mWidget' is not deallocated before it is allocated.
[apps/opencs/model/prefs/shortcuteventhandler.cpp:52]: (warning) Return value of std::remove() ignored. Elements remain in container.
[apps/openmw/mwstate/quicksavemanager.cpp:5]: (performance) Variable 'mSaveName' is assigned in constructor body. Consider performing initialization in initialization list.

PVS-Studio:
apps/opencs/model/filter/parser.cpp  582  warn  V560 A part of conditional expression is always true: allowPredefined.
apps/opencs/view/world/referencecreator.cpp  67  warn  V547 Expression '!errors.empty()' is always false.
apps/opencs/view/world/referencecreator.cpp  74  warn  V547 Expression '!errors.empty()' is always false.
apps/opencs/view/doc/loader.cpp  170  warn  V560 A part of conditional expression is always true: !completed.
apps/opencs/view/doc/loader.cpp  170  warn  V560 A part of conditional expression is always true: !error.empty().
apps/opencs/model/tools/pathgridcheck.cpp  32  err  V517 The use of 'if (A) {...} else if (A) {...}' pattern was detected. There is a probability of logical error presence. Check lines: 32, 34.
apps/opencs/model/world/refidadapterimp.cpp  1376  err  V547 Expression 'subColIndex < 3' is always true.

apps/openmw/mwgui/widgets.hpp  318  warn  V703 It is odd that the 'mEnableRepeat' field in derived class 'MWScrollBar' overwrites field in base class 'ScrollBar'. Check lines: widgets.hpp:318, MyGUI_ScrollBar.h:179.
apps/openmw/mwgui/widgets.hpp  319  warn  V703 It is odd that the 'mRepeatTriggerTime' field in derived class 'MWScrollBar' overwrites field in base class 'ScrollBar'. Check lines: widgets.hpp:319, MyGUI_ScrollBar.h:180.
apps/openmw/mwgui/widgets.hpp  320  warn  V703 It is odd that the 'mRepeatStepTime' field in derived class 'MWScrollBar' overwrites field in base class 'ScrollBar'. Check lines: widgets.hpp:320, MyGUI_ScrollBar.h:181
apps/openmw/mwmechanics/actors.cpp  1425  warn  V547 Expression '!detected' is always true.
apps/openmw/mwmechanics/character.cpp  2155  err  V547 Expression 'mode == 0' is always true.
apps/openmw/mwmechanics/character.cpp  1192  warn  V592 The expression was enclosed by parentheses twice: ((expression)). One pair of parentheses is unnecessary or misprint is present.
apps/openmw/mwmechanics/character.cpp  521  warn  V560 A part of conditional expression is always true: (idle == mIdleState).
apps/openmw/mwmechanics/pathfinding.cpp  317  err  V547 Expression 'mPath.size() >= 2' is always true.
apps/openmw/mwscript/interpretercontext.cpp  409  warn  V560 A part of conditional expression is always false: rank > 9.
apps/openmw/mwgui/windowbase.cpp  28  warn  V560 A part of conditional expression is always true: !visible.
apps/openmw/mwgui/journalwindow.cpp  561  warn  V547 Expression '!mAllQuests' is always false.
apps/openmw/mwgui/referenceinterface.cpp  18  warn  V571 Recurring check. The '!mPtr.isEmpty()' condition was already verified in line 16.
apps/openmw/mwworld/scene.cpp  463  warn  V547 Expression 'adjustPlayerPos' is always true.
apps/openmw/mwworld/worldimp.cpp  409  err  V766 An item with the same key '"sCompanionShare"' has already been added.
apps/openmw/mwworld/cellstore.cpp  691  warn  V519 The 'state.mWaterLevel' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 689, 691.
apps/openmw/mwworld/weather.cpp  1125  warn  V519 The 'mResult.mParticleEffect' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1123, 1125.
apps/openmw/mwworld/weather.cpp  1137  warn  V519 The 'mResult.mParticleEffect' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1135, 1137.

apps/wizard/unshield/unshieldworker.cpp  475  warn  V728 An excessive check can be simplified. The '(A && B) || (!A && !B)' expression is equivalent to the 'bool(A) == bool(B)' expression.
apps/wizard/installationpage.cpp  163  warn  V735 Possibly an incorrect HTML. The "</p" closing tag was encountered, while the "</span" tag was expected.

components/fontloader/fontloader.cpp  427  err  V547 Expression 'i == 1' is always true.
components/nifosg/nifloader.cpp  282  warn  V519 The 'created' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 278, 282.
components/esm/loadregn.cpp  119  err  V586 The 'clear' function is called twice for deallocation of the same resource. Check lines: 112, 119.
components/esm/cellref.cpp  178  warn  V581 The conditional expressions of the 'if' statements situated alongside each other are identical. Check lines: 175, 178.
components/esmterrain/storage.cpp  235  warn  V560 A part of conditional expression is always true: colStart == 0.
components/esmterrain/storage.cpp  237  warn  V560 A part of conditional expression is always true: rowStart == 0.
2018-04-18 12:36:10 +00:00
scrawl c920f95d1e
Don't incorrectly discard root node transformation (Fixes #4272) 2017-12-31 23:49:43 +00:00
scrawl 03554b2f4b Fix some style issues flagged by cppcheck 2017-10-15 17:06:58 +02: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
scrawl bc82c6a35d Use white color if told to use nonexisting vertexcolors (Fixes #3833) 2017-08-27 21:22:44 +00:00
scrawl 5d2fe5e887 Implement lightmode/vertmode of NiVertexColorProperty 2017-08-27 21:22:17 +00:00
scrawl 40dc1dd6f5 Fix checking a variable before it's assigned (Bug #3950) 2017-07-10 23:50:24 +02:00
Bret Curtis 07f75e1104 replace boost::shared_ptr in extern and components 2017-06-09 19:08:53 +02:00
scrawl 45d9e38616 Fix check for default material 2017-04-22 14:27:45 +02: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 1402e0b872 Don't optimize billboard nodes (Fixes #3774) 2017-02-27 00:39:35 +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 4e5a1e6123 nifloader: improve setting of DataVariance 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 c45013c983 Fix particle systems not being rendered in their first frame 2017-02-21 18:15:30 +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 892d1b162d nifloader: ignore nodes named 'bounding box' (Fixes #3650) 2017-02-12 15:44:09 +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 f3045331f1 Fix regression in handling of NiZBufferProperty 2017-02-03 01:49:49 +01:00
scrawl 851f61ac82 Always assign osg::Material when a material controller is used 2017-02-01 21:10:43 +01:00
scrawl 9180089a3b Add sharing for more State Attributes, most notably BlendFunc and AlphaFunc, to improve the state tracking in osg::State and reduce the number of GL calls 2017-02-01 06:00:14 +01:00
scrawl 960d4a96c3 Reduce the number of osg::Material state by setting the default state on the graph root 2017-02-01 06:00:14 +01:00
scrawl e399e10607 Add missing lock in shareMaterial 2017-02-01 06:00:14 +01:00
scrawl 115e563a7a Fix race conditions caused by Array <-> GLBufferObject interactions (Bug #3580)
The first part of the fix is to assign VBO/EBO's upon loading the array in the Nif reader. This avoids triggering the 'addVertexBufferObjectIfRequired' code path in osg::Geometry which has the race condition when two threads add the same Array at the same time. Essentially, we want the Arrays to be 'const' when they come out of the Nif reader.

The second part of the fix is to make sure not to create empty arrays in the Nif reader (importantly, not assigning a VBO to the empty array). This empty array would be deleted when the NIFFile is cleaned up, and the detachment of the VBO assigned to it (which is still in use by other arrays) would cause threading issues.

This rare crash bug was first introduced with commit a7c5beb7c5. When using OSG dev version 3.5 the crashes were a little more prevalent, because 'addVertexBufferObjectIfRequired' in osg::Geometry is now used even when VBO's are disabled (as part of the VAO support changes).
2017-01-19 22:23:41 +01:00
scrawl aafff1deb6 Fix memory leak 2016-12-16 20:40:15 +01:00
MiroslavR 99bcf47167 Implement NiSphericalCollider (Closes #3644) 2016-12-06 01:32:13 +01:00
Allofich 6ec37b5cfb Fix shadowing warnings 2016-10-02 17:48:54 +09:00
Allofich a8e9f2df67 Cleanup 2016-09-19 05:20:04 +09:00
Allofich be96ff1fd1 Remove redundant parameter 2016-09-18 01:57:47 +09:00
Allofich a033ba3bd2 Override spell textures by NiTexturingProperty 2016-09-14 23:03:04 +09:00
scrawl a5da3a269e Fix shadowing warnings 2016-08-29 12:20:00 +02:00
scrawl 341e3846c0 Use initial particle state to compute the initial bounding box (Fixes #3500) 2016-08-16 23:28:03 +02:00
scrawl 513e1da8a3 Remove unneeded casts 2016-08-14 16:44:11 +02:00
MiroslavR 721fa28c1e Fix assertion failure with NiTextureEffect missing source texture 2016-07-16 18:59:18 +02:00
MiroslavR 9c6739f1b3 Fix doubled particle spawn range 2016-07-11 22:40:58 +02:00
MiroslavR 2a987b6857 Do not skip inactive keyframe controllers (Bug #1942) 2016-07-10 19:02:28 +02:00
scrawl 62018e802b Minor fix to particle system AutoPlay flag handling
The previous commit broke some magic effects (e.g. shield). The controller's emit start/stop times should control the emitter, while the absence of the ParticleSystem's autoplay flag should freeze the whole particle system if no valid controller source gets assigned. This revised version works for both the Shield effect and the "dagoth ur death sparkles" effect.
2016-05-14 22:55:14 +02:00
scrawl 7202072196 Freeze particle systems on construction if the AutoPlay flag is missing 2016-05-14 22:38:49 +02:00
scrawl 0c08f705c5 Make the ParticleSystemController freeze the particle system instead of the emitter (Bug #3390) 2016-05-14 22:36:53 +02:00
scrawl e30bb31a79 Handle the particle node's AutoPlay flag (Bug #3390) 2016-05-14 22:35:34 +02:00
scrawl bc36269617 When a controller is present more than once in the same keyframe file, pick the first one (Fixes #2719) 2016-03-26 14:59:49 +01:00
scrawl aae43dbff5 Set the MorphGeometry vertex buffer object usage to GL_DYNAMIC_DRAW 2016-03-11 16:10:39 +01:00
scrawl 84b8da7a09 Share the osg::Material on drawables
Reduces the number of GL calls / frame by ~4%.
2016-03-11 01:06:54 +01:00
scrawl abcfe9bcee Don't add empty text key objects 2016-03-10 17:01:14 +01:00
scrawl 02d23564dc Include cleanup 2016-03-10 14:29:45 +01:00
scrawl f898bf493f Don't use Geodes 2016-03-10 13:17:01 +01:00
scrawl 82b792f808 Eliminate dynamic_cast in BillboardCallback 2016-03-05 20:02:33 +01:00
scrawl dd2fbfc0a2 Fix windows build 2016-03-02 21:57:25 +01:00
scrawl 6e7c6fdd7e Implement NiTexturingProperty::DecalTexture 2016-03-01 18:41:36 +01:00
scrawl 30d06bfe0e Add comment 2016-03-01 17:27:54 +01:00
scrawl 64636bd85a Improve error reporting 2016-03-01 17:05:02 +01:00
scrawl cdccf03228 Fix mismatched delete 2016-02-25 21:32:42 +01:00
scrawl 5f4ace1bc2 Implement support for sphere map NiTextureEffects (Fixes #1827) 2016-02-24 21:06:41 +01:00
scrawl 90a99991d1 Use empty() instead of !size() 2016-02-22 19:06:12 +01:00
scrawl e647ee5424 Support RGB and RGBA embedded textures in NIF files (Fixes #2295) 2016-02-18 19:37:56 +01:00
scrawl 606758d72f NifLoader: create the BumpTexture slot, but don't use it yet 2016-02-18 19:37:56 +01:00
scrawl 4cd4131da9 NifLoader: assign a name to created textures
This name will tell the shader visitor how to handle that texture.
2016-02-18 19:37:56 +01:00
scrawl 50e92c8136 NifLoader: move texture property handling to a separate function 2016-02-18 19:37:56 +01:00
scrawl acf44fd9e5 NifLoader: handleTextureControllers outside of the NumTextures loop 2016-02-18 19:37:55 +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
scrawl 9e53e12c70 More renaming of TextureManager -> ImageManager 2016-02-05 23:10:27 +01:00
scrawl f99f403dda Rename TextureManager to ImageManager 2016-02-05 23:03:53 +01:00