Commit Graph

1484 Commits (7fe7d4a779764fa4a7e52d77160fb8988471729d)

Author SHA1 Message Date
Julian Knodt c877a15140
`Blendshape`->`Geometry` in FBX Export (#5419)
When loading a mesh exported from assimp into Blender, it warns that it has an incorrect class.
While debugging, I traced it back to this being `Blendshape` where `Geometry` was expected. This
is likely because this node describes a `Geometry`, which is used as a blendshape. I'm not sure
if any other DCC tools or places to import it expect `Blendshape` instead (i.e. was this code
ever tested?), but it fixes its use in Blender.

Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2024-02-05 16:55:00 +01:00
Florian Born f59a5fab1a
More GLTF loading hardening (#5415)
Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2024-02-04 21:23:31 +01:00
Galen Xiao b7b6601a75
feat:1.add 3mf vertex color read 2.fix 3mf read texture bug (#5361)
* feat:1.add 3mf vertex color read 2.fix 3mf read texture bug

* fix checks failed

* Trigger CI

---------

Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2024-02-04 20:23:07 +01:00
Steve M 005399a671
Fix X importer breakage introduced in commit f844c33 (#5372)
* Update XFileImporter.cpp

Comment out boneIdx conditional which caused massive breakage

* Update XFileImporter.cpp

Fix typo

* Update XFileImporter.cpp

Dummy whitespace change to attempt to re-trigger failing CI tests

---------

Co-authored-by: Steve M <praktique-tellypresence@yahoo.com>
Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
2024-02-04 10:38:07 +01:00
Kim Kulling 3476c79801
Static code analysis fixes (#5447)
* Static code analysis fixes

- Fix warning in LOW

* Fix possible out of bound access.

* Add default to class declaration
2024-01-31 09:30:54 +01:00
Kim Kulling c08e3b4abb
Add bounds checks to the parsing utilities. (#5421)
* Add bounds checks to the parsing utilities.

* Fix merge conflicts in ACLoader.

* Fix loaders

* Fix unittest of AC-Loader.

* Remove dead code.

* Md5Parser fixes

* Fix md5-parsing

* Fix Merge conflict

* Fix merge conflicts.

* Md5: Fix warning: missing return statement.
2024-01-30 14:32:41 +01:00
Kim Kulling a8d30f7e91 Update DXFLoader.cpp
revert it
2024-01-27 12:14:35 +01:00
Kim Kulling c6fe03f7a5 Update DXFLoader.cpp
- Use constexpr instead of const.
2024-01-27 12:14:35 +01:00
seanth 8cde65bfe8 Updated AIC table
The previous table was in an incorrect order, leading to index references in DXF producing the wrong colours when converted.

Also added other entries to bring the total number of ACI colours up  to the number that can be used in DXF files
2024-01-27 12:14:35 +01:00
seanth 240fa97fed Update DXFLoader.cpp
Changed order of operations for insert positioning and scaling. Need to position the inserts before scaling it, otherwise the position ends up up being position*scale
2024-01-27 12:14:35 +01:00
seanth 727001b0ca Update DXFLoader.cpp
Edited out line suspected to be causing changes in position when changes in scale are made to inserted BLOCKS
2024-01-27 12:14:35 +01:00
julianknodt bdc08dd4a9 Encode full weight as double 2024-01-27 10:10:28 +01:00
Robert Reif 81c20a5c61 Improve acc file loading
Add warning and support for tolerating a common problem where objects have wrong kid count.
Add support for empty texture layers.
2024-01-09 21:13:13 +01:00
Andre Schulz 9d71a275c3 X3D: Don't convert IndexedLineSet polylines with > 2 indices to triangles/polygons
Currently, when the coordIndex attribute of an IndexedLineSet contains a
polyline with > 2 indices, X3DGeoHelper::coordIdx_str2faces_arr() will
incorrectly determine the primitive type to be aiPrimitiveType_TRIANGLE or
aiPrimitiveType_POLYGON instead of aiPrimitiveType_LINE.

To fix this, this commit adds functions to explicitly handle an IndexedLineSet.

Fixes #3101
2024-01-09 20:55:51 +01:00
copycd b571501559 @ error
Cause a TypeError when arg is UNSET
2024-01-06 20:57:41 +01:00
tangxin 9776d47cca fix: KHR_materials_pbrSpecularGlossiness/diffuseFactor convert to pbrMetallicRoughness/baseColorFactor 2024-01-05 21:49:21 +01:00
Kim Kulling 5d5496f1ad Update MDLMaterialLoader.cpp 2023-12-22 13:23:08 +01:00
Kim Kulling 69dae9599a Fix integer overflow
- closes https://github.com/assimp/assimp/issues/4930
2023-12-22 13:23:08 +01:00
Kim Kulling 9dddef9b9d Update D3MFImporter.cpp 2023-12-22 10:49:54 +01:00
Kim Kulling b9576e6992 Update D3MFImporter.cpp 2023-12-22 10:49:54 +01:00
Kim Kulling 274f64cbf1 Check validity of archive without parsing
- closes https://github.com/assimp/assimp/issues/5392
2023-12-22 10:49:54 +01:00
Kim Kulling 7b54b0f406 Fix leak
- closes https://github.com/assimp/assimp/issues/5390
2023-12-21 21:18:38 +01:00
Alexander Wagner e86f1acb9b - fixed q3bsp issue 2023-12-20 20:55:04 +01:00
Alexey Medvedev 762ad8e9b7 glTF KHR_materials_specular fixes 2023-12-11 11:09:18 +01:00
Alexey Medvedev dc399f7343 glTF KHR_materials_specular fixes 2023-12-11 11:09:18 +01:00
Alexey Medvedev a72289b327 glTF KHR_materials_specular fixes 2023-12-11 11:09:18 +01:00
Stephen Gold 213d73ebc6 correct grammar/typographic errors in comments (8 files) 2023-12-04 23:58:54 +01:00
Futuremappermydud a0b3df6dbd Fix target names not being imported on some gLTF2 models 2023-12-04 21:11:55 +01:00
Stephen Gold 769e82ce5e FBXMeshGeometry: solve issue #5116 using patch provided by darktjm 2023-12-04 20:57:10 +01:00
Maksim Kostin d311fa95c6 Fix double free in Video::~Video() 2023-12-01 11:14:22 +01:00
Maksim Kostin f701d702e4 Fix buffer overflow in FBX::Util::DecodeBase64() 2023-11-29 11:12:39 +01:00
IOhannes m zmölnig 6f715edfa0 Drop disabled zlib.h inclusion stubs 2023-11-29 09:53:03 +01:00
IOhannes m zmölnig bfdd154d14 Always include "zlib.h" (rather than .../contrib/zlib/zlib.h)
The path to the vendored zlib is set by the build-system,
so there's no need to add additional preprocessor magic
2023-11-29 09:53:03 +01:00
IOhannes m zmölnig 6f70e220e4 always include "utf8.h" (instead of contrib/.../utf8.h) 2023-11-29 09:53:03 +01:00
Kim Kulling 85f64c9131 Use correct time scaling 2023-11-28 21:10:18 +01:00
Kim Kulling 01f2549abe Fix the build 2023-11-28 20:49:10 +01:00
Kim Kulling 384db8686e Update FBXConverter.cpp
- Temporary fix bind pose storage in offset matrix
- Will close https://github.com/assimp/assimp/issues/5132
2023-11-28 20:49:10 +01:00
Kim Kulling 77a8f019e3 Fix: Check if index for mesh access is out of range 2023-11-22 10:14:26 +01:00
Alexandre Avenel e4e2c63e0c Fix heap-buffer overflow in PLY parser 2023-11-20 08:43:17 +01:00
Alexandre Avenel aae93691b9 Fix container overflow in MMD parser
Using reserve, buffer size is not updated. Since data is directly inserted and not using push_pack,
this can lead to a container overflow.
2023-11-17 14:33:17 +01:00
Florian Born 6004290dde Use the correct allocator for deleting objects in case of duplicate animation Ids 2023-11-16 10:02:16 +01:00
Wojciech Matyjewicz 069e19487c Fix parsing <init_from> in <image>.
The regression was introduced in 21678df.
2023-11-16 08:50:10 +01:00
Wojciech Matyjewicz 2235518b3c Fix parsing <instance_image> in <sampler2D>.
The regression was introduced in 904f17f.

Since all the cases are now fully handled at the child level,
visiting the whole subtree is changed into iteration over the children.
2023-11-16 08:50:10 +01:00
copycd 8648c2af45 fix mesh-name error. 2023-11-15 13:04:10 +01:00
Kim Kulling f0e7448fdc Remove double delete 2023-11-14 22:09:56 +01:00
julianknodt 9efbbe0a69 Read int from uvwsrc
Previously was reading a uint, which always failed. Since the output was never checked, this
seemed to work, and works fine for most models since they only use UV channel 0.
2023-11-14 16:31:56 +01:00
Kim Kulling 4535e37fc6 Fix namespaces. 2023-11-12 21:09:33 +01:00
Kim Kulling 8cf2d6e588 Refactoring: Some cleanups 2023-11-12 21:09:33 +01:00
Kim Kulling aa3abb3c06 Fix warning: remove printf 2023-11-10 15:36:40 +01:00
Kim Kulling 0b0ec713f6 Fix empty mesh handling 2023-11-10 15:36:40 +01:00
julianknodt 28ab0a094a Fix incorrect deg->radian conversion
It seems that rotation matrices later expect radians.
This conversion breaks it, and was validated on the conversion of
`cesium_man.glb` --> `cesium_man.fbx`
2023-11-07 20:06:16 +01:00
Kim Kulling 108e3192a2 Update FBXBinaryTokenizer.cpp
- closes https://github.com/assimp/assimp/issues/5072
2023-11-05 17:57:29 +01:00
Kim Kulling f844c3397d Fix add checks for indices 2023-11-03 12:40:08 +01:00
Pavel Lukandiy a7cfa3264a Fix: Implicit Conversion Error 2023-11-02 16:19:42 +01:00
Sébastien Loriot c44e3427aa use size in order to be compatible with float and double 2023-10-24 14:02:38 +01:00
julianknodt 1169d3bc8c Fix spelling error 2023-10-24 09:34:36 +01:00
Kim Kulling fdfb6e0660
Merge branch 'master' into jakras-progress 2023-10-10 06:20:01 +00:00
Kawashima Satoshi 666ecd3f1f Bug Fix:
Failed to get floating values (e.g. opacity) from scene material when ASSIMP_DOUBLE_PRECISION is defined, so they are not reflected to output fbx file.
2023-10-08 15:21:26 +00:00
fvbj 8fcc65a8af Extension of data export to GLB/GLTF format
Allows to export unlimited (more than 4) bones per vertex
Use JOINTS_1,2,.. and WEIGHTS_1,2,...
Added AI_CONFIG_EXPORT_GLTF_UNLIMITED_SKINNING_BONES_PER_VERTEX flag
2023-10-08 14:43:53 +00:00
Kim Kulling d7cde43367 Fix: Add check for invalid input argument 2023-10-02 10:41:50 +02:00
Kim Kulling aa1996e143
Mosfet80 clipper update (#5220)
* remove deprecated sprinf

* Update clipper
Updated Clipper to V6.4.2

* Fix the build

* Fix the build

* Disable hunter build

* Fix: Fix hided var.

* Fix invalid use of hunter enabled macro.

* Fix misconfig for hunter

* Disable removing contrib folder

* Update BlenderTessellator.h

* Remove Hunter-based includes

* Refactorings

* Remove final

* Update IFCCurve.cpp

* Update IFCCurve.cpp

---------

Co-authored-by: andrea <realeandrea@yahoo.it>
Co-authored-by: Kim Kulling <kim.kullingk@draeger.com>
2023-09-09 19:29:15 +02:00
OGAWA KenIchi 8d8a0a5af7 DXF: Support negative index in VERTEX 2023-09-01 18:26:53 +09:00
Kim Kulling bfc1207e78
Merge branch 'master' into jakras-progress 2023-08-30 20:51:23 +02:00
Kim Kulling e79d105957
Merge branch 'master' into vulcano/export_gltf2_with_roughness_texture 2023-08-29 15:13:43 +02:00
Kim Kulling cc2c5d3ae3
Merge branch 'master' into collada-ignore-unit-size-property 2023-08-29 14:01:40 +02:00
tangxin 4389c3d80c The texture strength attribute in aiMaterial set when importing and exporting gltf files is inconsistent 2023-08-23 14:54:40 +08:00
zhucan d07934bf25 adjust comment 2023-08-18 01:03:49 +08:00
zhucan 554fa8f5e2 code format 2023-08-18 01:03:49 +08:00
zhucan 2b4606c082 add fallback strategy for metallicRoughnessTexture 2023-08-18 01:03:49 +08:00
朱灿 3a03fe31b1 gltf2 export diffuse roughness 2023-08-18 01:03:49 +08:00
zhucan 32716002ac Add DIFFUSE_ROUGHNESS_TEXTURE for gltf2 exporter 2023-08-18 01:03:49 +08:00
Alex 5c45cdc0ad Fix Invalid-free in Assimp::FBX::Scope::Scope 2023-08-16 07:45:23 +00:00
Kim Kulling d77903423f
Merge branch 'master' into floatwarn 2023-08-15 12:55:37 +02:00
Kim Kulling e5d9339c21
Merge branch 'master' into 5513536726761472 2023-08-12 08:05:27 +02:00
Martin Weber d8a7399a04
Merge branch 'assimp:master' into collada-ignore-unit-size-property 2023-08-10 08:10:18 +02:00
Alex b9460dd959 Fix UNKNOWN READ in std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<ch 2023-08-08 16:01:00 +00:00
Gargaj 49ed0711d1
Fix another warning 2023-08-05 15:43:31 +02:00
Gargaj 8312b31d27
fix warning-as-error 2023-08-05 15:39:47 +02:00
Martin Weber bb1873dd22 Collada: added import property to disable unit size scaling 2023-08-04 09:54:55 +02:00
Alex f7e7f82b9d Add const 2023-08-03 17:10:17 +00:00
Alex d7dc88e0d0 Fix UNKNOWN READ in Assimp::MDLImporter::InternReadFile_Quake1 2023-08-01 13:04:16 +00:00
Jan Krassnigg 1e93280f47 Infrastructure for reporting progress
This commit adds two classes:
* ProgressTracker
* ProgressScope

The first is for users to implement, and to instantiate when they desire
to get informed about the overall progress.

The second is to be added to all functions that may take a considerable
amount of time, such that they can report back how far along they are.

These are much more convenient to use than the existing ProgressHandler.
ProgressScope is designed such that it only requires "local knowledge"
about upcoming and finished work. Scopes are nested and combined to
form the final global progress.

The active ProgressTracker is stored in a thread_local pointer.
This is a consicius decision since in assimp there is often no 'context'
passed through. The ProgressTracker may be needed anywhere, and it would
be tedious and a huge change to pass it through to every function.
Therefore, using a thread_local variable makes it accessible everywhere,
without a major interface change. Since assimmp is single-threaded,
but may be run in parallel on multiple threads, a thread_local is a
good trade-off, in my opinion.

This change only adds few uses of ProgressScope, to generally show how
it would be used. Also for our use cases these where the most pressing
places to add progress reporting, so this already covers loading from FBX
files pretty well.
2023-08-01 14:06:12 +02:00
sfjohnston dd40b0ccee Changed #define FBX_FOV_UNKNOWN to const float kFovUnknown 2023-07-23 12:05:01 -07:00
sfjohnston 3ec8a36764
Merge branch 'assimp:master' into sfjohnston_mods 2023-07-23 08:37:47 -07:00
Marco Feuerstein 37a1366fb7 Add missing rapidjson headers. 2023-07-21 11:33:06 +02:00
Kim Kulling 64e0ba2625
Merge branch 'master' into sfjohnston_mods 2023-07-20 09:21:13 +00:00
Marco Feuerstein bf38d67935 Fix detection of KHR_materials_specular. 2023-07-13 11:51:56 +02:00
sfjohnston c7afea3cd7
Merge branch 'assimp:master' into sfjohnston_mods 2023-07-10 07:58:21 -07:00
Kim Kulling 90ff723b6c
Merge branch 'master' into gltf_binary 2023-07-03 21:31:28 +02:00
Kim Kulling ed903543a7
Merge branch 'master' into 4879958521806848 2023-07-03 19:50:38 +02:00
Alex 093e35dd54 Fix eternal loop 2023-07-03 09:12:00 +00:00
Alex edb8375702 Fix integer overflow 2023-07-03 09:11:38 +00:00
PencilAmazing f1561f03ce
Merge branch 'master' into irrfix 2023-07-02 15:10:04 -04:00
PencilAmazing 0bacc7134d Remove debugging code, clean up some notes 2023-07-02 14:32:17 -04:00
PencilAmazing 19da9cc84d Port mesh loading to pugixml. Untested. 2023-07-02 14:32:12 -04:00
dog 3e1fd74940 Fix up scene loading. pugixml is a breadth-first parser while irrxml is
a depth first. This only parses scene structure, no mesh loading yet.
2023-07-02 14:30:54 -04:00
PencilAmazing 537b445a59 Apply clang-format to files 2023-07-02 14:17:52 -04:00
Alex 6f3bfb5b60 Fix memory leak 2023-07-02 14:12:49 -04:00
Alex 3838a8aaf8 Fix unknown write in Assimp::ObjFileMtlImporter::getFloatValue 2023-07-02 14:12:49 -04:00
Marco Feuerstein 82d3f47432 Unify way to check readable blender files. 2023-06-29 15:10:28 +02:00