1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00
luanti/irr/include
Lars Müller 7ac5502fdf
Fix handling of skinned meshes for nodes
Second try after the revert in 8a28339 due to an unexpected regression.

- Rigidly animated models (e.g. the glTF frog node) were not working correctly,
  since cloning the mesh ignored the transformation matrices.
  Note that scaling the mesh needs to occur *after* transforming the vertices.
- Visual scale did not apply to skinned models,
  as resetting the animation overwrote scaled vertex data with static positions & normals.
  For backwards compatibility, we now apply a 10x scale to static, non-glTF models.

We now do scale static meshes, as the bug that caused meshes not to be scaled was limited to skeletally animated meshes,
hence we ought not to reproduce it for skinned meshes that do not take advantage of skeletal animations (e.g. current MTG doors).

However, glTF models (e.g. Wuzzy's eyeballs) up until recently were always affected due to technical reasons
(using skeletal animation for rigid animation).

Thus, to preserve behavior, we:

1. Do not apply 10x scale to glTF models.
2. Apply 10x scale to obj models.
3. Apply 10x scale to static x or b3d models, but not to animated ones.

See also: #16141
2025-05-20 18:37:33 +02:00
..
KHR Don't expose irrlicht internal headers as public 2024-10-09 16:25:02 +02:00
aabbox3d.h Fix situation around aabbox3d default constructor (#15586) 2024-12-29 14:36:30 +01:00
CIndexBuffer.h Irrlicht: Get rid of obsolete setDebugName (#15541) 2024-12-14 17:03:08 +01:00
CMeshBuffer.h Fix situation around aabbox3d default constructor (#15586) 2024-12-29 14:36:30 +01:00
coreutil.h Cleanup headers in irr/include/ (#15181) 2024-10-18 10:58:32 +02:00
CVertexBuffer.h Irrlicht: Get rid of obsolete setDebugName (#15541) 2024-12-14 17:03:08 +01:00
dimension2d.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
ECullingTypes.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
EDebugSceneTypes.h Add debug mode that shows mesh buffer bounding boxes 2025-01-04 12:40:14 +01:00
EDeviceTypes.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
EDriverFeatures.h Implement support for array textures in GL driver 2025-04-08 22:24:37 +02:00
EDriverTypes.h Cleanup headers in irr/include/ (#15181) 2024-10-18 10:58:32 +02:00
EFocusFlags.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
EGUIAlignment.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
EGUIElementTypes.h Purge some dead code (mostly Irrlicht) (#16111) 2025-05-04 16:31:44 +02:00
EHardwareBufferFlags.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
EMaterialProps.h Drop fixed pipeline lighting stuff (#15165) 2024-09-18 12:18:28 +02:00
EMaterialTypes.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
EPrimitiveTypes.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
EReadFileType.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
ESceneNodeTypes.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
EVertexAttributes.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
EVideoTypes.h Debloat IVideoDriver and IrrlichtDevice includes (#15080) 2024-08-31 11:44:30 +02:00
fast_atof.h Cleanup headers in irr/include/ (#15181) 2024-10-18 10:58:32 +02:00
IAnimatedMesh.h Cleanup headers in irr/include/ (#15181) 2024-10-18 10:58:32 +02:00
IAnimatedMeshSceneNode.h Support floating-point animation frame numbers 2024-10-10 21:39:57 +02:00
IBillboardSceneNode.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
IBoneSceneNode.h Refactor: Merge [IC]SkinnedMesh into SkinnedMesh (#15511) 2024-12-06 18:03:44 +01:00
ICameraSceneNode.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
IContextManager.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
ICursorControl.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
IDummyTransformationSceneNode.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
IEventReceiver.h Don't memset SEvent directly (#15359) 2024-10-31 19:24:43 +01:00
IFileArchive.h Drop gzip support from CZipReader 2025-03-30 18:17:19 +02:00
IFileList.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
IFileSystem.h Purge some dead code (mostly Irrlicht) (#16111) 2025-05-04 16:31:44 +02:00
IGPUProgrammingServices.h Clean up Irrlicht shader API 2024-12-31 14:47:46 +01:00
IGUIButton.h Reduce irrlicht_extrabloated.h includes in header files 2025-01-04 12:39:34 +01:00
IGUICheckBox.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
IGUIComboBox.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
IGUIEditBox.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
IGUIElement.h Purge some dead code (mostly Irrlicht) (#16111) 2025-05-04 16:31:44 +02:00
IGUIEnvironment.h Remove Irrlicht GUI gradients (#16015) 2025-05-07 08:56:00 +02:00
IGUIFileOpenDialog.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
IGUIFont.h IGUIFont / CGUITTFont code cleanups (#15581) 2024-12-23 12:49:47 +01:00
IGUIFontBitmap.h IGUIFont / CGUITTFont code cleanups (#15581) 2024-12-23 12:49:47 +01:00
IGUIImage.h Reduce irrlicht_extrabloated.h includes in header files 2025-01-04 12:39:34 +01:00
IGUIImageList.h Cleanup headers in irr/include/ (#15181) 2024-10-18 10:58:32 +02:00
IGUIListBox.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
IGUIScrollBar.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
IGUISkin.h Remove Irrlicht GUI gradients (#16015) 2025-05-07 08:56:00 +02:00
IGUISpriteBank.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
IGUIStaticText.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
IGUITabControl.h Cleanup headers in irr/include/ (#15181) 2024-10-18 10:58:32 +02:00
IGUIToolbar.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
IImage.h Drop support for storing mipmap data alongside IImage 2025-04-08 22:24:37 +02:00
IImageLoader.h Cleanup headers in irr/include/ (#15181) 2024-10-18 10:58:32 +02:00
IImageWriter.h Cleanup headers in irr/include/ (#15181) 2024-10-18 10:58:32 +02:00
IIndexBuffer.h Cleanup headers in irr/include/ (#15181) 2024-10-18 10:58:32 +02:00
ILogger.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
IMaterialRenderer.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
IMaterialRendererServices.h Cleanup headers in irr/include/ (#15181) 2024-10-18 10:58:32 +02:00
IMemoryReadFile.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
IMesh.h Add static glTF support (#14557) 2024-09-02 14:50:30 +02:00
IMeshBuffer.h Replace _IRR_DEBUG_BREAK_IF with assertions 2025-04-20 20:49:10 +02:00
IMeshCache.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
IMeshLoader.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
IMeshManipulator.h Fix situation around aabbox3d default constructor (#15586) 2024-12-29 14:36:30 +01:00
IMeshSceneNode.h Change material sharing for CMeshSceneNode 2025-02-22 16:19:04 +01:00
IOSOperator.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
IReadFile.h Cleanup headers in irr/include/ (#15181) 2024-10-18 10:58:32 +02:00
IReferenceCounted.h Replace _IRR_DEBUG_BREAK_IF with assertions 2025-04-20 20:49:10 +02:00
IRenderTarget.h GL: fix and clean up some code 2024-12-04 18:20:34 +01:00
irr_ptr.h Move irr_ptr.h too irr/include/ 2024-09-18 12:19:40 +02:00
irrArray.h Replace _IRR_DEBUG_BREAK_IF with assertions 2025-04-20 20:49:10 +02:00
irrlicht.h Purge some dead code (mostly Irrlicht) (#16111) 2025-05-04 16:31:44 +02:00
IrrlichtDevice.h Purge some dead code (mostly Irrlicht) (#16111) 2025-05-04 16:31:44 +02:00
irrMath.h Fix some (MSVC) compiler warnings 2025-04-20 20:49:10 +02:00
irrpack.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
irrString.h Replace _IRR_DEBUG_BREAK_IF with assertions 2025-04-20 20:49:10 +02:00
irrTypes.h Get rid of _IRR_OVERRIDE_ macro 2025-04-20 20:49:10 +02:00
irrunpack.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
ISceneCollisionManager.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
ISceneManager.h Purge some dead code (mostly Irrlicht) (#16111) 2025-05-04 16:31:44 +02:00
ISceneNode.h Replace _IRR_DEBUG_BREAK_IF with assertions 2025-04-20 20:49:10 +02:00
IShaderConstantSetCallBack.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
ITexture.h Implement support for array textures in GL driver 2025-04-08 22:24:37 +02:00
ITimer.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
IVertexBuffer.h Cleanup headers in irr/include/ (#15181) 2024-10-18 10:58:32 +02:00
IVideoDriver.h Purge some dead code (mostly Irrlicht) (#16111) 2025-05-04 16:31:44 +02:00
IWriteFile.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
Keycodes.h SDL: Use scancodes for keybindings (#14964) 2025-03-16 20:35:34 +01:00
line2d.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
line3d.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
matrix4.h Purge some dead code (mostly Irrlicht) (#16111) 2025-05-04 16:31:44 +02:00
mt_opengl.h Purge some dead code (mostly Irrlicht) (#16111) 2025-05-04 16:31:44 +02:00
path.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
plane3d.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
position2d.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
quaternion.h Get rid of definitelyIdentityMatrix (#15480) 2024-11-29 12:00:09 +01:00
rect.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
S3DVertex.h Copy irrlichtmt to <root>/irr/ 2024-03-26 21:39:02 +01:00
SAnimatedMesh.h Fix situation around aabbox3d default constructor (#15586) 2024-12-29 14:36:30 +01:00
SColor.h Add 10-bit texture format and setting to chose PP color depth 2024-12-04 18:20:34 +01:00
SExposedVideoData.h Irrlicht: Use EGL over GLX (#15286) 2024-10-22 23:04:46 +02:00
SIrrCreationParameters.h Expose OpenGL debugging as a normal setting 2024-04-15 17:48:33 +02:00
SkinnedMesh.h Fix handling of skinned meshes for nodes 2025-05-20 18:37:33 +02:00
SMaterial.h Purge some dead code (mostly Irrlicht) (#16111) 2025-05-04 16:31:44 +02:00
SMaterialLayer.h Reduce size of SMaterial struct 2025-01-12 14:49:25 +01:00
SMesh.h Fix situation around aabbox3d default constructor (#15586) 2024-12-29 14:36:30 +01:00
SMeshBuffer.h Cleanup headers in irr/include/ (#15181) 2024-10-18 10:58:32 +02:00
SOverrideMaterial.h Drop fixed pipeline lighting stuff (#15165) 2024-09-18 12:18:28 +02:00
SSkinMeshBuffer.h Replace _IRR_DEBUG_BREAK_IF with assertions 2025-04-20 20:49:10 +02:00
SVertexIndex.h Cleanup headers in irr/include/ (#15181) 2024-10-18 10:58:32 +02:00
SVertexManipulator.h Cleanup headers in irr/include/ (#15181) 2024-10-18 10:58:32 +02:00
SViewFrustum.h Fix situation around aabbox3d default constructor (#15586) 2024-12-29 14:36:30 +01:00
vector2d.h Replace _IRR_DEBUG_BREAK_IF with assertions 2025-04-20 20:49:10 +02:00
vector3d.h Replace _IRR_DEBUG_BREAK_IF with assertions 2025-04-20 20:49:10 +02:00