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
Stanlo Slasinski
a1a17c1dda
Read and write the KHR_materials_unlit glTF/2.0 extension.
2018-05-18 14:52:02 -07:00
Kim Kulling
b049933d2f
update license dates.
2018-01-28 19:42:05 +01:00
Axel Wefers
0e99f1f587
Build fix for 1684
...
Requires cast from size_t to uint64 like in other places, otherwise the call to the constructor for GenericValue() is ambiguous.
Fixes #1684
2018-01-11 10:15:05 -08:00
A. Breust
ca152f41e2
Merge branch 'master' into 1674-buffer-relative-uri
2018-01-06 09:19:48 +01:00
Alexis Breust
9b5df71150
Not using external bin file for glb2
2018-01-05 10:28:12 +01:00
Alexis Breust
988acd00f1
Using relative buffers URI
2018-01-05 10:08:17 +01:00
Alexis Breust
d29173aaa9
Following specification for padding
2017-12-14 17:32:18 +01:00
Alexis Breust
d09df8cc07
Fixed leftover log
2017-12-14 16:18:17 +01:00
Alexis Breust
31a4ccaebb
Added support for generating glb2 (binary glTF 2)
2017-12-14 16:11:12 +01:00
Patrick Dähne
a05d74a281
[glTF2] Moved byteStride from accessor to bufferView
2017-11-20 19:01:28 +01: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
28523232cf
Merge multiple meshes in a node into one mesh with many primtives; write out only one mesh per node
...
To do:
- clean up MergeMeshes
- see if there’s a way to do this earlier in the flow
2017-09-18 11:16:05 -04:00
Daniel Hritzkiv
5147acfe65
Revert "store node mesh vs. meshes"
...
This reverts commit a0d97505e5
.
2017-09-18 11:16:04 -04:00
John Senneker
eca008d5ec
Properly move string passed to JSON writer
2017-09-12 11:55:22 -04:00
Daniel Hritzkiv
b1a5ca4516
Use `forceNumber` argument of `WriteAttrs` to write correct attribute names, instead
2017-09-11 11:02:16 -04:00
Daniel Hritzkiv
990fe143a1
Fix mesh primitive’s attributes’ names
...
Per spec
TEXCOORD -> TEXCOORD_0
COLOR -> COLOR_0
JOINTS -> JOINTS_0
WEIGHTS -> WEIGHTS_0
Remove JOINTMATRIX since it’s not supported (and doesn’t seem to be output, anyway)
TANGENT should be added at a later date
2017-09-11 11:02:16 -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
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
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
37527849b7
Export material names properly
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
7f01e3f48f
Only export byteStride if not 0
2017-09-11 10:55:50 -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
f09892ab63
Write specularGlossiness textures on the specularGlossiness object
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
0cf69479c3
Use `!ObjectEmpty()` vs. `MemberCount() > 0`
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
5b3b80cbc2
Formatting
2017-08-09 11:41:12 -04:00
Daniel Hritzkiv
7a4a32625c
Ensure gltf asset version is printed as \d.0
2017-08-09 10:47:34 -04:00
jamesgk
c91e9a94da
glTF2: export materials' normal maps
2017-07-26 14:42:22 -07:00
jamesgk
b7b17b03ec
glTF2: use opacity for diffuse alpha + alphaMode
...
The "transparency" attribute is unused in glTF2.
2017-07-26 14:39:35 -07:00
jamesgk
acf8c54e55
glTF2: Fix animation export
2017-07-26 14:20:53 -07:00
jamesgk
bb55246c18
Export glTF 2
2017-07-25 18:05:18 -07:00
jamesgk
d7cbbaf23e
Compile with glTF2 export option (currently same as glTF1 output)
2017-07-25 17:34:03 -07:00
jamesgk
38626d4260
glTF: start fork of files used in export, for glTF2
2017-07-25 17:34:03 -07:00