Commit Graph

43 Commits

Author SHA1 Message Date
Lassi Lääti
cc276c3180 cast size_t to unsigned int 2019-02-06 21:14:22 +02:00
kimkulling
a06133ab52 Update copyrights. 2019-01-30 09:41:39 +01:00
Kim Kulling
4c6db68d34 Coverity-findings 2018-12-27 22:28:23 +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
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