1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00
luanti/src
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
..
benchmark Add spatial index for objects (#14631) 2025-04-08 08:44:53 +02:00
client Fix handling of skinned meshes for nodes 2025-05-20 18:37:33 +02:00
content Add/remove/change some log messages for clarity 2025-04-10 14:39:21 +02:00
database Switch to smallint for position keys (x,y,z) in postgres backend 2025-04-23 09:30:36 +02:00
gui Mainmenu: Fix error after ESC in dialog windows (#16130) 2025-05-18 20:41:42 +02:00
irrlicht_changes Some minor code cleanups 2025-04-08 22:24:37 +02:00
mapgen Fix warning in mg_decoration.cpp 2025-04-17 12:35:14 +02:00
network Fix scrollbar on ContentDB grid by adding an area label (#16042) 2025-04-21 12:33:41 +02:00
script Migrate existing keycode-based keybindings (#16049) 2025-05-14 22:15:15 +02:00
server Make SDL2 default on macOS (#16039) 2025-05-02 21:28:13 +02:00
threading Const correct Thread class (#15741) 2025-02-09 12:20:47 +01:00
unittest MetaDataRef: Make set_float preserve numbers exactly (#16090) 2025-05-02 21:27:00 +02:00
util Fix uninitialized variable warning in generate_srp_verifier_and_salt 2025-05-18 21:59:57 +02:00
activeobject.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
activeobjectmgr.h Add spatial index for objects (#14631) 2025-04-08 08:44:53 +02:00
catch.cpp Corresponding code changes 2024-06-10 21:15:30 +02:00
catch.h Corresponding code changes 2024-06-10 21:15:30 +02:00
chat.cpp Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
chat.h Add chat console scrollbar (#15104) 2025-01-12 14:49:01 +01:00
chat_interface.h Reduce irrlicht_extrabloated.h includes in header files 2025-01-04 12:39:34 +01:00
chatmessage.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
clientdynamicinfo.cpp Code style fixes. 2025-01-21 16:29:12 +01:00
clientdynamicinfo.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
cmake_config.h.in Use openssl's sha1 and sha256, optionally (#15472) 2024-12-10 22:00:43 +01:00
cmake_config_githash.h.in C++ modernize: Pragma once (#6264) 2017-08-17 22:19:39 +02:00
CMakeLists.txt Prevent mixing in-tree and out-of-tree builds 2025-05-09 20:25:28 +02:00
collision.cpp Add spatial index for objects (#14631) 2025-04-08 08:44:53 +02:00
collision.h Remove unused pos_max_d 2024-11-12 10:52:46 +01:00
config.h Cleanup headers in irr/include/ (#15181) 2024-10-18 10:58:32 +02:00
constants.h Handle texture filtering sanely to avoid blurriness (#16034) 2025-04-21 12:31:44 +02:00
content_mapnode.cpp Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
content_mapnode.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
content_nodemeta.cpp Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
content_nodemeta.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
convert_json.cpp Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
convert_json.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
craftdef.cpp Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
craftdef.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
daynightratio.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
debug.cpp Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
debug.h Reduce irrlicht_extrabloated.h includes in header files 2025-01-04 12:39:34 +01:00
defaultsettings.cpp Client: Disable node specular shader effect (#16113) 2025-05-17 15:02:47 +02:00
defaultsettings.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
dummygamedef.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
dummymap.h Add basic unit tests for collisionMoveSimple 2024-11-12 10:52:46 +01:00
emerge.cpp Restore behavior of emergequeue_limit_total (#15947) 2025-03-27 18:59:38 -07:00
emerge.h Reduce irrlicht_extrabloated.h includes in header files 2025-01-04 12:39:34 +01:00
emerge_internal.h Fix meaning of VoxelArea::hasEmptyExtent() 2024-12-10 22:00:28 +01:00
environment.cpp Some more random code cleanups 2025-03-26 20:49:43 +01:00
environment.h Some more random code cleanups 2025-03-26 20:49:43 +01:00
exceptions.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
face_position_cache.cpp Various random code cleanups 2025-03-04 19:53:01 +01:00
face_position_cache.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
filesys.cpp Apply some refactoring/cleanup to mainly util functions 2025-03-30 18:17:19 +02:00
filesys.h Add nodiscard attribute to helper functions where it makes sense 2025-03-30 18:17:19 +02:00
gamedef.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
gameparams.h Add server/client annotations to settingtypes.txt and make use of them (#15756) 2025-04-01 07:55:47 -04:00
gettext.cpp Disable debug-breaking locale workaround when debugging (#15859) 2025-03-03 20:33:42 +01:00
gettext.h Add/remove/change some log messages for clarity 2025-04-10 14:39:21 +02:00
gettext_plural_form.cpp Fixup parsing for Plural-Forms (#15519) 2024-12-12 15:33:34 +01:00
gettext_plural_form.h Fixup parsing for Plural-Forms (#15519) 2024-12-12 15:33:34 +01:00
gettime.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
httpfetch.cpp Support HEAD and PATCH methods in http api 2025-05-01 10:46:24 +02:00
httpfetch.h Support HEAD and PATCH methods in http api 2025-05-01 10:46:24 +02:00
hud.cpp Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
hud.h Move EnumString to separate file and add enum_to_string (#15714) 2025-01-26 19:17:14 +01:00
inventory.cpp Implement metadata-aware version of InvRef:remove_item() (#15771) 2025-02-22 16:18:48 +01:00
inventory.h Fix overrideable hand ToolCapabilities and range (#15743) 2025-03-16 20:03:31 +01:00
inventorymanager.cpp Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
inventorymanager.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
irr_aabb3d.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
irr_gui_ptr.h Implement an editor to customize the touchscreen controls (#14933) 2024-11-24 11:33:39 +01:00
irr_v2d.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
irr_v3d.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
irrlichttypes.h Reduce transitive includes by moving a class 2025-03-30 18:17:19 +02:00
irrlichttypes_bloated.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
itemdef.cpp Move client code out of ItemDefManager (#15967) 2025-04-04 18:58:14 +02:00
itemdef.h Move client code out of ItemDefManager (#15967) 2025-04-04 18:58:14 +02:00
itemgroup.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
itemstackmetadata.cpp Avoid some inefficiencies when handling ItemStack(Metadata) 2024-12-31 14:47:46 +01:00
itemstackmetadata.h Avoid some inefficiencies when handling ItemStack(Metadata) 2024-12-31 14:47:46 +01:00
json-forwards.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
light.cpp Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
light.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
lighting.h Move AutoExposure constructor to header 2025-01-04 12:39:52 +01:00
log.cpp Fix some compiler warnings (#15596) 2024-12-26 11:29:00 +01:00
log.h Ensure that null C strings do not break logging (#15255) 2024-10-12 22:34:24 +02:00
log_internal.h Ensure that null C strings do not break logging (#15255) 2024-10-12 22:34:24 +02:00
main.cpp Migrate existing keycode-based keybindings (#16049) 2025-05-14 22:15:15 +02:00
map.cpp Various random code cleanups 2025-03-04 19:53:01 +01:00
map.h Mark liquid and light updates low priority 2025-04-22 20:36:45 -07:00
map_settings_manager.cpp Rename getMapSettingNoiseParams to getNoiseParams 2025-01-02 14:59:19 +01:00
map_settings_manager.h Rename getMapSettingNoiseParams to getNoiseParams 2025-01-02 14:59:19 +01:00
mapblock.cpp Optimize name-id-lookup for MapBlock serialization (#16000) 2025-04-14 17:18:21 +02:00
mapblock.h Some more random code cleanups 2025-03-26 20:49:43 +01:00
mapnode.cpp Clean up some packet-related code 2025-02-26 12:21:57 +01:00
mapnode.h Clean up some packet-related code 2025-02-26 12:21:57 +01:00
mapsector.cpp Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
mapsector.h Reduce transitive includes by moving a class 2025-03-30 18:17:19 +02:00
metadata.cpp Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
metadata.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
migratesettings.h TouchControls: Implement an option for dig/place buttons (#15845) 2025-03-21 12:06:44 +01:00
modchannels.cpp Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
modchannels.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
modifiedstate.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
nameidmapping.cpp Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
nameidmapping.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
nodedef.cpp Fix handling of skinned meshes for nodes 2025-05-20 18:37:33 +02:00
nodedef.h Fix handling of skinned meshes for nodes 2025-05-20 18:37:33 +02:00
nodemetadata.cpp Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
nodemetadata.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
nodetimer.cpp Various random code cleanups 2025-03-04 19:53:01 +01:00
nodetimer.h Various random code cleanups 2025-03-04 19:53:01 +01:00
noise.cpp Rename perlin noise to value noise (#15858) 2025-04-10 14:39:40 +02:00
noise.h Rename perlin noise to value noise (#15858) 2025-04-10 14:39:40 +02:00
objdef.cpp Reduce irrlicht_extrabloated.h includes in header files 2025-01-04 12:39:34 +01:00
objdef.h Reduce irrlicht_extrabloated.h includes in header files 2025-01-04 12:39:34 +01:00
object_properties.cpp Replace object visual by enum (#15681) 2025-03-06 21:02:11 +01:00
object_properties.h Replace object visual by enum (#15681) 2025-03-06 21:02:11 +01:00
particles.cpp Add particle blend mode "clip" (#15444) 2024-11-19 13:30:17 +01:00
particles.h Basic camera control API (#15796) 2025-02-19 18:45:45 +01:00
pathfinder.cpp Add/remove/change some log messages for clarity 2025-04-10 14:39:21 +02:00
pathfinder.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
player.cpp Basic camera control API (#15796) 2025-02-19 18:45:45 +01:00
player.h Basic camera control API (#15796) 2025-02-19 18:45:45 +01:00
porting.cpp Apply some refactoring/cleanup to mainly util functions 2025-03-30 18:17:19 +02:00
porting.h Add nodiscard attribute to helper functions where it makes sense 2025-03-30 18:17:19 +02:00
porting_android.cpp Android: Persistent notification while ingame (#13125) 2025-04-24 07:38:52 -04:00
porting_android.h Android: Persistent notification while ingame (#13125) 2025-04-24 07:38:52 -04:00
precompiled_headers.txt Add precompiled header support 2024-05-27 17:12:39 +02:00
profiler.cpp Group sparse mesh buffers over entire scene for rendering 2024-12-24 15:27:08 +01:00
profiler.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
raycast.cpp Use matrix4::getRotationRadians 2025-02-27 12:31:04 +01:00
raycast.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
reflowscan.cpp Break liquid reflow scan early for all-air blocks (#15975) 2025-04-05 11:01:39 -07:00
reflowscan.h Reduce irrlicht_extrabloated.h includes in header files 2025-01-04 12:39:34 +01:00
remoteplayer.cpp Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
remoteplayer.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
rollback_interface.cpp Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
rollback_interface.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
serialization.cpp Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
serialization.h Network: Fix serialization version checks (#15477) 2024-11-27 18:39:57 +01:00
server.cpp Improve usability of Prometheus metrics backend (#16060) 2025-04-23 09:30:04 +02:00
server.h Clean up and compress some pre-join packets (#15881) 2025-03-11 20:00:07 +01:00
serverenvironment.cpp Update src/serverenvironment.cpp 2025-05-05 07:50:45 -07:00
serverenvironment.h Add spatial index for objects (#14631) 2025-04-08 08:44:53 +02:00
servermap.cpp Mark liquid and light updates low priority 2025-04-22 20:36:45 -07:00
servermap.h Make sure generated blocks have their timestamp set 2025-03-26 20:49:43 +01:00
settings.cpp Migrate existing keycode-based keybindings (#16049) 2025-05-14 22:15:15 +02:00
settings.h Migrate existing keycode-based keybindings (#16049) 2025-05-14 22:15:15 +02:00
settings_translation_file.cpp Update minetest.conf.example and dummy file 2025-04-24 16:48:55 +02:00
skyparams.h Fix missing includes in skyparams.h 2025-03-03 20:33:19 +01:00
sound.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
staticobject.cpp Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
staticobject.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
terminal_chat_console.cpp Fix TerminalChatConsole crash 2025-03-04 19:53:01 +01:00
terminal_chat_console.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
texture_override.cpp Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
texture_override.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
tileanimation.cpp Various random code cleanups 2025-03-04 19:53:01 +01:00
tileanimation.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
tool.cpp Move EnumString to separate file and add enum_to_string (#15714) 2025-01-26 19:17:14 +01:00
tool.h Move EnumString to separate file and add enum_to_string (#15714) 2025-01-26 19:17:14 +01:00
translation.cpp Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
translation.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
unsupported_language_list.txt Move unsupported language list into a separate file (#13865) 2023-10-05 17:29:02 +02:00
version.cpp Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
version.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00
voxel.cpp Centralize arbitrary area volume limit and raise it (#15696) 2025-01-23 12:18:20 +01:00
voxel.h Resolve some quirks with (wield) item meshes for nodes (#15654) 2025-01-13 09:39:06 +01:00
voxelalgorithms.cpp Use appropriate sized type for VoxelArea extent 2024-12-10 22:00:28 +01:00
voxelalgorithms.h Replace licensing text in headers (LGPLv2.1) (#15321) 2024-10-28 15:57:39 +01:00