Commit Graph

60 Commits

Author SHA1 Message Date
Kim Kulling
ba6a7383b2 closes https://github.com/assimp/assimp/issues/1650: build irrXml as shared lib. 2019-03-16 09:45:21 +01:00
Mike Samsonov
971ba308b3 Merged PR 2811682: buffer grow changes and large files support
Buffer grow changes:
The exporting of relatevely large data could take a few days, because reallocation of a buffer every time for a few new bytes is overkill. I've introduced standard capacity member for the buffer and growth it by 1.5 times every time. That helps a lot, descrease exporting to a minute (from a few days).

Large file support:
glTF is a json file, all lengths and offsets don't have a type, just numbers, but code was always reading it as uint32, this doesn't work for files bigger than int32 (almost all files we have as an example). So, I've changed it to be reading as size_t. Specification doesn't specify the type for it, so it's not against spec.
2019-02-04 15:16:28 +00:00
kimkulling
a06133ab52 Update copyrights. 2019-01-30 09:41:39 +01:00
Kim Kulling
c1dc3901e7 fix more findings. 2018-12-28 11:17:27 +01:00
Haroon Qureshi
acad9a06e9 Add support for importing GLTF2 animations.
Refactors the glTF2 internal classes to more closely reflect the structure
of the actual GLTF2 file format. Adds implementations for reading skins
and animations from GLTF2 files into those structures.

Also provides implementations for converting skins and animations from GLTF
into assimp data structures.  Special handling is required for bone weights
since assimp stores vertex-weights-per-bone whereas GLTF2 stores
bone-weights-per-vertex.  Only supports keyframed LINEAR animation data;
STEP and CUBICSPLINE is not currently supported.
2018-10-29 14:44:29 -07:00
Matthias Moulin
47fcbfd369 Replaced "../Include/" include from glTF2Asset.h 2018-10-06 15:19:56 +02:00
Alexandre Avenel
504e5fd5c5 Use unique_ptr for gltf2 textures 2018-09-24 21:28:53 +02:00
Sebastian Matusik
3e3a785750 glTF v2 importer morph targets support 2018-07-05 14:28:29 +01:00
Stanlo Slasinski
a1a17c1dda Read and write the KHR_materials_unlit glTF/2.0 extension. 2018-05-18 14:52:02 -07:00
Alexandre Avenel
2879e0d6ef Fix typos on code using codespell 2018-05-13 16:35:03 +02:00
wuxiaoqian
f6af6ded1f fixed the bug of export gltf2, the JOINTS_0 componentType is Incorrect 2018-04-26 11:03:50 +08:00
wuxiaoqian
6b4caa0f12 fix export gltf2, The JOINTS_0 componentType is incorrect 2018-04-26 10:56:56 +08:00
Sergio Acereda
9a7611a93e AI_MATKEY_GLTF_... -> assimp/pbrmaterial.h 2018-02-12 22:33:51 +01:00
Kim Kulling
b049933d2f update license dates. 2018-01-28 19:42:05 +01:00
Christian Meurin
925be5e983 Merge branch 'master' into master 2018-01-11 13:13:46 -08:00
Axel Wefers
3e127bebff glTF 2.0: Import scale for normal textures and strength for occlusion textures
resolves #1693
2018-01-10 16:45:17 -08:00
BuildTools
66171de915 Successful lib build, unit testing still WIP 2018-01-05 16:18:33 -08:00
awefers
0031165789 Add support for tangents in glTF2.0 import
Closes #1562
2017-11-27 13:45:40 -05:00
Patrick Dähne
a05d74a281 [glTF2] Moved byteStride from accessor to bufferView 2017-11-20 19:01:28 +01:00
Patrick Dähne
6cbfd5b977 [glTF2] Implemented reading binary glTF2 (glb) files 2017-11-20 14:59:05 +01:00
Kim Kulling
7db10022e9 closes https://github.com/assimp/assimp/issues/1513: fix assimp for cross compile for android 2017-11-15 21:26:25 +01:00
Kim Kulling
de1ec4ee5d Merge branch 'master' into gltf2-mesh-export-fix 2017-11-10 19:07:46 +01:00
Daniel Hritzkiv
9ec117d0bc Fix export of deleted meshes; Add LazyDict::Remove method
When I was merging a node’s multiple meshes into that node’s first mesh’s primitives, I was deleting the merged meshes from the node.

However, I wasn’t deleting the merged meshes from the mAsset->meshes Dict, causing the gltf2 export to contain extra unreferenced meshes and duplicate primitives.

This new code adds a new method to LazyDict, which removes the object from it, taking care to update indexes of the subsequent objects. This change also requires that `Ref`s of `Mesh`es (stored in node->meshes) have their indexes updated.
2017-11-08 18:31:32 -05:00
Thomas Lemaire
5b76a31485 fix trivial warnings
mainly unused parameter and unused function
some parameters are indeed used in a debug built, I used the
(void)(param) trick
warnings reported by clang 4
2017-11-02 11:13:52 +01:00
Daniel Hritzkiv
a898c1f2d1 SpecularFactor import and export improvements
The changes here (which only apply to reading from or writing to pbrSpecularGlossiness) will:

- store and read specular color on `AI_MATKEY_COLOR_SPECULAR ` rather than `AI_MATKEY_GLTF_PBRSPECULARGLOSSINESS_SPECULAR_FACTOR`
- store and read specular texture from `aiTextureType_SPECULAR` rather than `AI_MATKEY_GLTF_PBRSPECULARGLOSSINESS_SPECULARGLOSSINESS_TEXTURE`. Even though pbrSG’s specularGlossiness texture uses the alpha channel for glossiness, it will still work well enough with just the RGB channels of the image
2017-10-19 16:21:29 -04:00
Daniel Hritzkiv
c71790c78d Diffuse color and diffuse texture import and export improvements
These changes do a better of importing and exporting baseColor colors and textures, as well as diffuse colors and textures (in the case of pbrSpecularGlossiness)

- baseColorFactor will be stored on both `$clr.diffuse` and `$mat.gltf.pbrMetallicRoughness.baseColorFactor`, and will be extracted from `$mat.gltf.pbrMetallicRoughness.baseColorFactor` first, and falling back to `$clr.diffuse`. The behaviour for baseColorTexture is similar
- pbrSG’s diffuseFactor will now only be store on `$clr.diffuse` (overwriting any previous assignments to `$clr.diffuse`, e.g. from metallicRoughness’ baseColorFactor, as diffuseFactor is more analogous to diffuse color than baseColor), and will only extract from `$clr.diffuse`
2017-10-19 16:21:16 -04:00
Jared Mulconry
5804667dbb Addressed some mismatched news/deletes caused by the new glTF2 sources. 2017-10-02 11:04:15 +03:00
Daniel Hritzkiv
5147acfe65 Revert "store node mesh vs. meshes"
This reverts commit a0d97505e5.
2017-09-18 11:16:04 -04:00
Daniel Hritzkiv
b0da0796c8 Fix Segfault caused by losing pointer to std::string
Keep std::string alive
2017-09-12 10:07:15 -04:00
Daniel Hritzkiv
816e6909ca Remove KHR_binary_glTF code
Binary glTF is now part of the glTF2 spec. However, it’s implemented incorrectly, so will be temporarily removed
2017-09-11 11:02:16 -04:00
Daniel Hritzkiv
a438ece655 Remove premultipliedAlpha from gltf2 2017-09-11 11:02:15 -04:00
John Senneker
140b903d7a Fix parsing of glTF version
Handle version as int in gltf
Fix format specifiers in glTF version parser
2017-09-11 11:02:15 -04:00
Daniel Hritzkiv
a5e8e0b2bd Remove commented out code 2017-09-11 11:02:14 -04:00
Daniel Hritzkiv
da6a252efb Fix METALLIC_FACTOR typo 2017-09-11 11:02:14 -04:00
Daniel Hritzkiv
3ba00ca421 Define gltf material property names as constants 2017-09-11 11:02:14 -04:00
Daniel Hritzkiv
44757af34a Implement pbrSpecularGlossiness property as Nullable 2017-09-11 11:02:13 -04:00
Daniel Hritzkiv
03cfa04ee4 Define default material values as static constants
for reuse
2017-09-11 11:02:13 -04:00
Daniel Hritzkiv
1a5823700f Remove need for Has by returning an empty Ref in Get 2017-09-11 11:02:13 -04:00
Daniel Hritzkiv
a9c4fa84b5 Sampler improvements; Add new LazyDict method
Samplers are now imported into assimp internal format from textures;
Samplers have defaults as per spec;
Sampler enums are strongly typed with UNSET values;
Samplers are exported properly;
Sampler filters are exported as well;
Samplers are re-used across textures on export
Default sampler values are not written
2017-09-11 11:02:12 -04:00
Daniel Hritzkiv
7245cceead Set default values on Sampler 2017-09-11 10:55:51 -04:00
Daniel Hritzkiv
d277995a97 Formatting 2017-09-11 10:55:51 -04:00
Daniel Hritzkiv
a0d97505e5 store node mesh vs. meshes
glTF nodes can only hold one mesh. this simply assigns to and check’s a Node’s Mesh
2017-09-11 10:55:50 -04:00
Daniel Hritzkiv
ab08a7c3cb reenable animation and skins exports
Currently incorrect, however. May need to be removed
2017-09-11 10:55:50 -04:00
Daniel Hritzkiv
8bef546b41 mention pbrSpecularGlossiness support 2017-09-11 10:50:39 -04:00
Daniel Hritzkiv
2d54019b8f Remove OPEN3DGC and compression references 2017-09-11 10:50:39 -04:00
Daniel Hritzkiv
562920fbb8 Changes to GLTF2 materials
pbrMetallicRoughness and pbrSpecularGlossiness as structs; persist textureinfo properties from start to finish; persist pbrSpecularGlossiness (via extensionsUsed) usage from start to finish
2017-09-11 10:50:39 -04:00
Daniel Hritzkiv
7532d6aac1 Remove Light, Technique references 2017-09-11 10:50:38 -04:00
Daniel Hritzkiv
863458cd4a Start removing materials common, and adding pbrSpecularGlossiness 2017-09-11 10:50:38 -04:00
Daniel Hritzkiv
11cb9ac139 Working read, import, export, and write of gltf2 (pbr) material 2017-09-11 10:50:38 -04:00
Daniel Hritzkiv
b42d785afe Start managing and importing gltf2 pbr materials 2017-09-11 10:50:38 -04:00