Add reference screenshots for complex bundled test 3D model files (#5822)
Feature: Add reference screenshots for complex bundled test 3D model files Co-authored-by: Steve M <praktique-tellypresence@yahoo.com> Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
10
test/models-nonbsd/AMF/ref/README.md
Normal file
@@ -0,0 +1,10 @@
|
||||
# AMF 3D model reference images
|
||||
|
||||
## 3_bananas.amf embedded texture
|
||||
3_bananas.amf embeds a strange-looking texture, but believe when applied to the model it ends up
|
||||
rendering correctly.
|
||||
|
||||
(Note that this is a relatively rare example of a 3D model with an "uncompressed" embedded texture,
|
||||
may be useful for developers looking to test their assimp embedded texture implementations)
|
||||
|
||||
<img alt="3bananas_embedded_texture.png" src="screenshots%2F3bananas_embedded_texture.png" width=320 />
|
||||
|
After Width: | Height: | Size: 5.1 MiB |
9
test/models-nonbsd/B3D/ref/README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# B3D 3D model reference images
|
||||
|
||||
## dwarf2.b3d
|
||||
Note: there's a weird artifact in the animation when the character starts running
|
||||
|
||||
<img alt="dwarf2.b3d" src="screenshots/dwarf2_b3d.gif" width=180 />
|
||||
|
||||
## turtle1.b3d
|
||||
<img alt="turtle1.b3d" src="screenshots/turtle1_b3d.gif" width=320 />
|
||||
BIN
test/models-nonbsd/B3D/ref/screenshots/dwarf2_b3d.gif
Normal file
|
After Width: | Height: | Size: 2.4 MiB |
BIN
test/models-nonbsd/B3D/ref/screenshots/turtle1_b3d.gif
Normal file
|
After Width: | Height: | Size: 4.0 MiB |
4
test/models-nonbsd/BLEND/ref/README.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# BLEND 3D model reference images
|
||||
|
||||
## fleurOptonl.blend
|
||||
<img alt="fleurOptonl.blend" src="screenshots/fleurOptonl_blend.png" width=180 />
|
||||
BIN
test/models-nonbsd/BLEND/ref/screenshots/fleurOptonl_blend.png
Normal file
|
After Width: | Height: | Size: 903 KiB |
4
test/models-nonbsd/HMP/ref/README.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# HMP 3D model reference images
|
||||
|
||||
## terrain_withtexture.hmp
|
||||
<img alt="terrain_withtexture.hmp" src="screenshots/terrain_withtexture_hmp.png" width=180 />
|
||||
|
After Width: | Height: | Size: 1.2 MiB |
4
test/models-nonbsd/LWS/ref/README.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# LWS 3D model reference images
|
||||
|
||||
## QuickDraw v.2.2.lws
|
||||
<img alt="QuickDraw v.2.2.lws" src="screenshots/quickdraw_v2_2_lws.gif" width=320 />
|
||||
BIN
test/models-nonbsd/LWS/ref/screenshots/quickdraw_v2_2_lws.gif
Normal file
|
After Width: | Height: | Size: 922 KiB |
12
test/models-nonbsd/MD5/ref/README.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# MD5 3D model reference images
|
||||
|
||||
## Bob.md5anim
|
||||
Bones/skeleton-only animation visualization
|
||||
|
||||
<img alt="Bob.md5anim" src="screenshots/Bob_md5anim.gif" width=180 />
|
||||
|
||||
|
||||
## Bob.md5mesh
|
||||
Skinned, textured animated model
|
||||
|
||||
<img alt="Bob.md5mesh" src="screenshots/Bob_md5mesh.gif" width=180 />
|
||||
BIN
test/models-nonbsd/MD5/ref/screenshots/Bob_md5anim.gif
Normal file
|
After Width: | Height: | Size: 1.0 MiB |
BIN
test/models-nonbsd/MD5/ref/screenshots/Bob_md5mesh.gif
Normal file
|
After Width: | Height: | Size: 5.8 MiB |
4
test/models-nonbsd/MDL/IDPO (Quake1)/ref/README.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# IDPO 3D model reference images
|
||||
|
||||
## gijoe.mdl
|
||||
<img alt="gijoe.mdl" src="screenshots/gijoe_mdl.png" width=180 />
|
||||
|
After Width: | Height: | Size: 571 KiB |
9
test/models-nonbsd/Ogre/OgreSDK/ref/README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# OgreSDK 3D model reference images
|
||||
|
||||
## fish.mesh
|
||||
<img alt="fish.mesh" src="screenshots/fish_mesh.gif" width=320 />
|
||||
|
||||
## ninja.mesh
|
||||
Simple rigged/skinned model with about 20 animations
|
||||
|
||||
<img alt="ninja.mesh" src="screenshots/ninja_mesh.gif" width=180 />
|
||||
BIN
test/models-nonbsd/Ogre/OgreSDK/ref/screenshots/fish_mesh.gif
Normal file
|
After Width: | Height: | Size: 7.9 MiB |
BIN
test/models-nonbsd/Ogre/OgreSDK/ref/screenshots/ninja_mesh.gif
Normal file
|
After Width: | Height: | Size: 6.5 MiB |
14
test/models-nonbsd/X3D/ref/README.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# X3D 3D model reference images
|
||||
|
||||
## ChevyTahoe.x3d
|
||||
|
||||
### Working (using IRR xml parser)
|
||||
ChevyTahoe as of 29 Sep 2020 git commit `6a4c338`, using IRR xml parsing, renders OK:
|
||||
|
||||
<img alt="ChevyTahoe.x3d (irr_xml)" src="screenshots%2FChevyTahoe_x3d_irr_xml.png" width=320 />
|
||||
|
||||
### Broken (using pugi xml parser)
|
||||
ChevyTahoe as of 1 Dec 2021 git commit `1614934`, using pugi xml parsing, renders with
|
||||
missing meshes and obvious artifacts:
|
||||
|
||||
<img alt="ChevyTahoe.x3d (pugi_xml)" src="screenshots%2FChevyTahoe_x3d_pugi_xml.png" width=320 />
|
||||
|
After Width: | Height: | Size: 862 KiB |
|
After Width: | Height: | Size: 534 KiB |
6
test/models/AC/ref/README.md
Normal file
@@ -0,0 +1,6 @@
|
||||
# AC 3D model reference images
|
||||
|
||||
## sample_subdiv.ac
|
||||
Note that there appear to be some small holes in the surface in a few places
|
||||
|
||||
<img alt="sample_subdiv.ac (as solid)" src="screenshots/sample_subdiv_ac_solid.png" width=180 />
|
||||
BIN
test/models/AC/ref/screenshots/sample_subdiv_ac_solid.png
Normal file
|
After Width: | Height: | Size: 262 KiB |
18
test/models/ASE/ref/README.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# ASE 3D model reference images
|
||||
|
||||
## MotionCaptureROM.ase
|
||||
|
||||
### Model is pure node animation of separate rigid meshes, no bones/mesh deformation
|
||||
Note: this model has no bones/skeleton; the body is formed of separate rigid meshes
|
||||
for each segment (e.g. upper arm, lower arm, upper leg, lower leg are all separate meshses)
|
||||
and animation is entirely driven by changing node transformations over the animation timeline,
|
||||
rather than deforming vertices via bones and associated weights.
|
||||
|
||||
### Artifacts
|
||||
Animation has known artifacts, as stated in [MotionCaptureROM.source.txt](../MotionCaptureROM.source.txt):
|
||||
```
|
||||
NOTE: The errors in the middle of the animation are caused by problems during recording,
|
||||
it's not an importer issue.
|
||||
```
|
||||
|
||||
<img alt="MotionCaptureROM.ase" src="screenshots/MotionCaptureROM_ase.gif" width=320 />
|
||||
BIN
test/models/ASE/ref/screenshots/MotionCaptureROM_ase.gif
Normal file
|
After Width: | Height: | Size: 6.7 MiB |
16
test/models/BVH/ref/README.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# BVH 3D model reference images
|
||||
|
||||
## 01_01.bvh
|
||||
Three hops forward, turn around, three hops back, turn around, three hops forward
|
||||
|
||||
<img alt="01_01.bvh" src="screenshots/01_01_bvh.gif" width=180 />
|
||||
|
||||
## 01_03.bvh
|
||||
Climb step ladder, hang on bar, climb step ladder, hang on bar
|
||||
|
||||
<img alt="01_03.bvh" src="screenshots/01_03_bvh.gif" width=320 />
|
||||
|
||||
## Boxing_Toes.bvh
|
||||
Boxer warming up, throwing punches, getting hit, going to canvas
|
||||
|
||||
<img alt="Boxing_Toes.bvh" src="screenshots/Boxing_Toes_bvh.gif" width=180 />
|
||||
BIN
test/models/BVH/ref/screenshots/01_01_bvh.gif
Normal file
|
After Width: | Height: | Size: 2.4 MiB |
BIN
test/models/BVH/ref/screenshots/01_03_bvh.gif
Normal file
|
After Width: | Height: | Size: 3.7 MiB |
BIN
test/models/BVH/ref/screenshots/Boxing_Toes_bvh.gif
Normal file
|
After Width: | Height: | Size: 4.3 MiB |
6
test/models/Collada/ref/README.md
Normal file
@@ -0,0 +1,6 @@
|
||||
# Collada 3D model reference images
|
||||
|
||||
## human.zae
|
||||
Compressed Collada file (.zae)
|
||||
|
||||
<img alt="human.zae" src="screenshots/human_zae.png" width=180 />
|
||||
BIN
test/models/Collada/ref/screenshots/human_zae.png
Normal file
|
After Width: | Height: | Size: 631 KiB |
4
test/models/HMP/ref/README.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# HMP 3D model reference images
|
||||
|
||||
## terrain.hmp
|
||||
<img alt="terrain.hmp" src="screenshots/terrain_hmp.png" width=180 />
|
||||
BIN
test/models/HMP/ref/screenshots/terrain_hmp.png
Normal file
|
After Width: | Height: | Size: 138 KiB |
4
test/models/IQM/ref/README.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# IQM 3D model reference images
|
||||
|
||||
## mrfixit.iqm
|
||||
<img alt="mrfixit.iqm" src="screenshots/mrfixit_iqm.png" width=180 />
|
||||
BIN
test/models/IQM/ref/screenshots/mrfixit_iqm.png
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
14
test/models/IRR/ref/README.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# IRR 3D model reference images
|
||||
|
||||
## scenegraphAnimMod_UTF16LE.irr
|
||||
|
||||
### Animation "AnimationSet0"
|
||||
Dwarf animated; primitive objects not animated
|
||||
|
||||
<img alt="scenegraphAnimMod_UTF16LE.irr" src="screenshots/scenegraphAnimMod_UTF16LE_irr.gif" width=320 />
|
||||
<img alt="scenegraphAnimMod_UTF16LE.irr" src="screenshots/scenegraphAnimMod_UTF16LE_irr_anim_AnimationSet0.gif" width=180 />
|
||||
|
||||
### Animation "Irr_GlobalAnimChannel"
|
||||
Primitive objects animate; dwarf not animated (Animation playback sped up significantly)
|
||||
|
||||
<img alt="scenegraphAnimMod_UTF16LE.irr" src="screenshots/scenegraphAnimMod_UTF16LE_irr_anim_Irr_GlobalAnimChannel.gif" width=180 />
|
||||
|
After Width: | Height: | Size: 1.3 MiB |
|
After Width: | Height: | Size: 4.2 MiB |
|
After Width: | Height: | Size: 1.1 MiB |
7
test/models/MD2/ref/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# MD2 3D model reference images
|
||||
|
||||
## faerie.md2
|
||||
<img alt="faerie.md2" src="screenshots/faerie_md2.png" width=180 />
|
||||
|
||||
## sydney.md2
|
||||
<img alt="sydney.md2" src="screenshots/sydney_md2.png" width=180 />
|
||||
BIN
test/models/MD2/ref/screenshots/faerie_md2.png
Normal file
|
After Width: | Height: | Size: 834 KiB |
BIN
test/models/MD2/ref/screenshots/sydney_md2.png
Normal file
|
After Width: | Height: | Size: 578 KiB |
BIN
test/models/OpenGEX/texture/Concrete.tga
Normal file
|
After Width: | Height: | Size: 512 KiB |
7
test/models/TER/ref/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# TER 3D model reference images
|
||||
|
||||
## RealisticTerrain.ter
|
||||
<img alt="RealisticTerrain.ter" src="screenshots/RealisticTerrain_ter.png" width=180 />
|
||||
|
||||
## RealisticTerrain_Large.ter
|
||||
<img alt="RealisticTerrain_Large.ter" src="screenshots/RealisticTerrain_Large_ter.png" width=180 />
|
||||
BIN
test/models/TER/ref/screenshots/RealisticTerrain_Large_ter.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
test/models/TER/ref/screenshots/RealisticTerrain_ter.png
Normal file
|
After Width: | Height: | Size: 911 KiB |
BIN
test/models/USD/MotionCaptureROM.usdc
Normal file
8
test/models/USD/README.md
Normal file
@@ -0,0 +1,8 @@
|
||||
# USD model files
|
||||
|
||||
## MotionCaptureROM.usdc
|
||||
Converted bundled .wrl test model:
|
||||
https://github.com/assimp/assimp/blob/master/test/models/WRL/MotionCaptureROM.WRL
|
||||
to .usdc format via website:
|
||||
https://imagetostl.com/convert/file/wrl/to/usd#convert
|
||||
(As of Oct 2024, animations have not been verified as present or correct)
|
||||
4
test/models/USD/ref/README.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# USD 3D model reference images
|
||||
|
||||
## MotionCaptureROM.usdc
|
||||
<img alt="MotionCaptureROM.usdc" src="screenshots/MotionCaptureROM_usdc.png" width=180 />
|
||||
BIN
test/models/USD/ref/screenshots/MotionCaptureROM_usdc.png
Normal file
|
After Width: | Height: | Size: 99 KiB |
7
test/models/X/ref/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# X 3D model reference images
|
||||
|
||||
## BCN_Epileptic.X
|
||||
<img alt="BCN_Epileptic.X" src="screenshots/BCN_Epileptic_X.gif" width=180 />
|
||||
|
||||
## Testwuson.X playing animation "Wuson_Run"
|
||||
<img alt="Testwuson.X" src="screenshots/Testwuson_X_anim_Wuson_Run.gif" width=180 />
|
||||
BIN
test/models/X/ref/screenshots/BCN_Epileptic_X.gif
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
test/models/X/ref/screenshots/Testwuson_X_anim_Wuson_Run.gif
Normal file
|
After Width: | Height: | Size: 2.5 MiB |
14
test/models/X3D/ref/README.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# X3D 3D model reference images
|
||||
|
||||
## ComputerKeyboard.x3d
|
||||
|
||||
### Working (using IRR xml parser)
|
||||
ComputerKeyboard as of 29 Sep 2020 git commit `6a4c338`, using IRR xml parsing, renders OK:
|
||||
|
||||
<img alt="ComputerKeyboard.x3d (IRR xml)" src="screenshots/ComputerKeyboard_x3d_irr_xml.png" width=320 />
|
||||
|
||||
### Broken (using pugi xml parser)
|
||||
ComputerKeyboard as of 1 Dec 2021 git commit `1614934`, using pugi xml parsing, renders with
|
||||
missing meshes and obvious artifacts:
|
||||
|
||||
<img alt="ComputerKeyboard.x3d (pugi xml)" src="screenshots/ComputerKeyboard_x3d_pugi_xml.png" width=320 />
|
||||
BIN
test/models/X3D/ref/screenshots/ComputerKeyboard_x3d_irr_xml.png
Normal file
|
After Width: | Height: | Size: 837 KiB |
|
After Width: | Height: | Size: 176 KiB |
15
test/models/glTF2/AnimatedMorphCube/LICENSE.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# LICENSE file for the model: Animated Morph Cube
|
||||
|
||||
All files in this directory tree are licensed as indicated below.
|
||||
|
||||
* All files directly associated with the model including all text, image and binary files:
|
||||
|
||||
* [CC0 1.0 Universal]("https://creativecommons.org/publicdomain/zero/1.0/legalcode") [SPDX license identifier: "CC0-1.0"]
|
||||
|
||||
* This file and all other metadocumentation files including "metadata.json":
|
||||
|
||||
* [Creative Commons Attribtution 4.0 International]("https://creativecommons.org/licenses/by/4.0/legalcode") [SPDX license identifier: "CC-BY-4.0"]
|
||||
|
||||
Full license text of these licenses are available at the links above
|
||||
|
||||
#### Generated by modelmetadata
|
||||
12
test/models/glTF2/AnimatedMorphCube/README.body.md
Normal file
@@ -0,0 +1,12 @@
|
||||
## Screenshot
|
||||
|
||||

|
||||
|
||||
## Description
|
||||
|
||||
The cube contains two morph targets in it:
|
||||
|
||||
* **`thin`** : moves the vertices so that it becomes super-thin
|
||||
* **`angle`** : moves the vertices so that it forms a ramp
|
||||
|
||||
The animation loops, morphing between these two states.
|
||||
36
test/models/glTF2/AnimatedMorphCube/README.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# Animated Morph Cube
|
||||
|
||||
## Tags
|
||||
|
||||
[core](../../Models-core.md), [testing](../../Models-testing.md)
|
||||
|
||||
## Summary
|
||||
|
||||
Demonstrates a simple cube with two simple morph targets and an animation that transitions between them both.
|
||||
|
||||
## Operations
|
||||
|
||||
* [Display](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnimatedMorphCube/glTF-Binary/AnimatedMorphCube.glb) in SampleViewer
|
||||
* [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnimatedMorphCube/glTF-Binary/AnimatedMorphCube.glb)
|
||||
* [Model Directory](./)
|
||||
|
||||
## Screenshot
|
||||
|
||||

|
||||
|
||||
## Description
|
||||
|
||||
The cube contains two morph targets in it:
|
||||
|
||||
* **`thin`** : moves the vertices so that it becomes super-thin
|
||||
* **`angle`** : moves the vertices so that it forms a ramp
|
||||
|
||||
The animation loops, morphing between these two states.
|
||||
|
||||
## Legal
|
||||
|
||||
© 2017, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
|
||||
|
||||
- Microsoft for Everything
|
||||
|
||||
#### Assembled by modelmetadata
|
||||
BIN
test/models/glTF2/AnimatedMorphCube/glTF/AnimatedMorphCube.bin
Normal file
282
test/models/glTF2/AnimatedMorphCube/glTF/AnimatedMorphCube.gltf
Normal file
@@ -0,0 +1,282 @@
|
||||
{
|
||||
"accessors": [
|
||||
{
|
||||
"bufferView": 0,
|
||||
"componentType": 5126,
|
||||
"count": 24,
|
||||
"type": "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView": 1,
|
||||
"componentType": 5126,
|
||||
"count": 24,
|
||||
"type": "VEC4"
|
||||
},
|
||||
{
|
||||
"bufferView": 2,
|
||||
"componentType": 5126,
|
||||
"count": 24,
|
||||
"type": "VEC3",
|
||||
"max": [
|
||||
0.0100000035,
|
||||
0.0100000035,
|
||||
0.01
|
||||
],
|
||||
"min": [
|
||||
-0.0100000044,
|
||||
-0.0100000054,
|
||||
-0.01
|
||||
]
|
||||
},
|
||||
{
|
||||
"bufferView": 3,
|
||||
"componentType": 5126,
|
||||
"count": 24,
|
||||
"type": "VEC3",
|
||||
"name": "thin"
|
||||
},
|
||||
{
|
||||
"bufferView": 4,
|
||||
"componentType": 5126,
|
||||
"count": 24,
|
||||
"type": "VEC3",
|
||||
"max": [
|
||||
0.0,
|
||||
0.01893253,
|
||||
0.0
|
||||
],
|
||||
"min": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"name": "thin"
|
||||
},
|
||||
{
|
||||
"bufferView": 5,
|
||||
"componentType": 5126,
|
||||
"count": 24,
|
||||
"type": "VEC3",
|
||||
"name": "thin"
|
||||
},
|
||||
{
|
||||
"bufferView": 6,
|
||||
"componentType": 5126,
|
||||
"count": 24,
|
||||
"type": "VEC3",
|
||||
"name": "angle"
|
||||
},
|
||||
{
|
||||
"bufferView": 7,
|
||||
"componentType": 5126,
|
||||
"count": 24,
|
||||
"type": "VEC3",
|
||||
"max": [
|
||||
0.0,
|
||||
0.0198908355,
|
||||
0.0
|
||||
],
|
||||
"min": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"name": "angle"
|
||||
},
|
||||
{
|
||||
"bufferView": 8,
|
||||
"componentType": 5126,
|
||||
"count": 24,
|
||||
"type": "VEC3",
|
||||
"name": "angle"
|
||||
},
|
||||
{
|
||||
"bufferView": 9,
|
||||
"componentType": 5123,
|
||||
"count": 36,
|
||||
"type": "SCALAR"
|
||||
},
|
||||
{
|
||||
"bufferView": 10,
|
||||
"componentType": 5126,
|
||||
"count": 127,
|
||||
"type": "SCALAR",
|
||||
"max": [
|
||||
4.19999743
|
||||
],
|
||||
"min": [
|
||||
0.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"bufferView": 11,
|
||||
"componentType": 5126,
|
||||
"count": 254,
|
||||
"type": "SCALAR"
|
||||
}
|
||||
],
|
||||
"animations": [
|
||||
{
|
||||
"channels": [
|
||||
{
|
||||
"sampler": 0,
|
||||
"target": {
|
||||
"node": 0,
|
||||
"path": "weights"
|
||||
}
|
||||
}
|
||||
],
|
||||
"samplers": [
|
||||
{
|
||||
"input": 10,
|
||||
"interpolation": "LINEAR",
|
||||
"output": 11
|
||||
}
|
||||
],
|
||||
"name": "Square"
|
||||
}
|
||||
],
|
||||
"asset": {
|
||||
"generator": "glTF Tools for Unity",
|
||||
"version": "2.0"
|
||||
},
|
||||
"bufferViews": [
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteLength": 288
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 288,
|
||||
"byteLength": 384
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 672,
|
||||
"byteLength": 288
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 960,
|
||||
"byteLength": 288
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 1248,
|
||||
"byteLength": 288
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 1536,
|
||||
"byteLength": 288
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 1824,
|
||||
"byteLength": 288
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 2112,
|
||||
"byteLength": 288
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 2400,
|
||||
"byteLength": 288
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 2688,
|
||||
"byteLength": 72
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 2760,
|
||||
"byteLength": 508
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 3268,
|
||||
"byteLength": 1016
|
||||
}
|
||||
],
|
||||
"buffers": [
|
||||
{
|
||||
"uri": "AnimatedMorphCube.bin",
|
||||
"byteLength": 4284
|
||||
}
|
||||
],
|
||||
"meshes": [
|
||||
{
|
||||
"primitives": [
|
||||
{
|
||||
"attributes": {
|
||||
"NORMAL": 0,
|
||||
"TANGENT": 1,
|
||||
"POSITION": 2
|
||||
},
|
||||
"indices": 9,
|
||||
"material": 0,
|
||||
"targets": [
|
||||
{
|
||||
"NORMAL": 3,
|
||||
"POSITION": 4,
|
||||
"TANGENT": 5
|
||||
},
|
||||
{
|
||||
"NORMAL": 6,
|
||||
"POSITION": 7,
|
||||
"TANGENT": 8
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"weights": [
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"name": "Cube"
|
||||
}
|
||||
],
|
||||
"materials": [
|
||||
{
|
||||
"pbrMetallicRoughness": {
|
||||
"baseColorFactor": [
|
||||
0.6038274,
|
||||
0.6038274,
|
||||
0.6038274,
|
||||
1.0
|
||||
],
|
||||
"metallicFactor": 0.0,
|
||||
"roughnessFactor": 0.5
|
||||
},
|
||||
"name": "Material"
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"mesh": 0,
|
||||
"rotation": [
|
||||
0.0,
|
||||
0.7071067,
|
||||
-0.7071068,
|
||||
0.0
|
||||
],
|
||||
"scale": [
|
||||
100.0,
|
||||
100.0,
|
||||
100.0
|
||||
],
|
||||
"name": "AnimatedMorphCube"
|
||||
}
|
||||
],
|
||||
"scene": 0,
|
||||
"scenes": [
|
||||
{
|
||||
"nodes": [
|
||||
0
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
20
test/models/glTF2/AnimatedMorphSphere/README.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# Animated Morph Sphere
|
||||
|
||||
## Screenshot
|
||||
|
||||

|
||||
|
||||
## Description
|
||||
|
||||
The sphere contains two morph targets in it:
|
||||
|
||||
* **`blob`** : moves the vertices so that it becomes a somewhat amorphous fat, blob shape.
|
||||
* **`ship`** : moves the vertices so that it looks a bit like a spaceship, the goal being
|
||||
to just make it a much more complicated morph example than the [cube](../AnimatedMorphCube/README.md).
|
||||
|
||||
The animation loops, morphing between these two states.
|
||||
|
||||
## License Information
|
||||
|
||||
[](http://creativecommons.org/publicdomain/zero/1.0/)
|
||||
To the extent possible under law, Microsoft has waived all copyright and related or neighboring rights to this asset.
|
||||
@@ -0,0 +1,276 @@
|
||||
{
|
||||
"accessors": [
|
||||
{
|
||||
"bufferView": 0,
|
||||
"componentType": 5126,
|
||||
"count": 1876,
|
||||
"type": "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView": 1,
|
||||
"componentType": 5126,
|
||||
"count": 1876,
|
||||
"type": "VEC4"
|
||||
},
|
||||
{
|
||||
"bufferView": 2,
|
||||
"componentType": 5126,
|
||||
"count": 1876,
|
||||
"type": "VEC3",
|
||||
"max": [
|
||||
0.009999998,
|
||||
0.009999991,
|
||||
0.01
|
||||
],
|
||||
"min": [
|
||||
-0.0100000026,
|
||||
-0.0100000035,
|
||||
-0.01
|
||||
]
|
||||
},
|
||||
{
|
||||
"bufferView": 3,
|
||||
"componentType": 5126,
|
||||
"count": 1876,
|
||||
"type": "VEC3",
|
||||
"name": "Ship"
|
||||
},
|
||||
{
|
||||
"bufferView": 4,
|
||||
"componentType": 5126,
|
||||
"count": 1876,
|
||||
"type": "VEC3",
|
||||
"max": [
|
||||
0.0313265175,
|
||||
0.0226246975,
|
||||
0.008465132
|
||||
],
|
||||
"min": [
|
||||
-0.0313265137,
|
||||
-0.022857653,
|
||||
0.0
|
||||
],
|
||||
"name": "Ship"
|
||||
},
|
||||
{
|
||||
"bufferView": 5,
|
||||
"componentType": 5126,
|
||||
"count": 1876,
|
||||
"type": "VEC3",
|
||||
"name": "Ship"
|
||||
},
|
||||
{
|
||||
"bufferView": 6,
|
||||
"componentType": 5126,
|
||||
"count": 1876,
|
||||
"type": "VEC3",
|
||||
"name": "Blob"
|
||||
},
|
||||
{
|
||||
"bufferView": 7,
|
||||
"componentType": 5126,
|
||||
"count": 1876,
|
||||
"type": "VEC3",
|
||||
"max": [
|
||||
0.008781092,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"min": [
|
||||
-0.008781091,
|
||||
-0.0007655843,
|
||||
0.0
|
||||
],
|
||||
"name": "Blob"
|
||||
},
|
||||
{
|
||||
"bufferView": 8,
|
||||
"componentType": 5126,
|
||||
"count": 1876,
|
||||
"type": "VEC3",
|
||||
"name": "Blob"
|
||||
},
|
||||
{
|
||||
"bufferView": 9,
|
||||
"componentType": 5123,
|
||||
"count": 2880,
|
||||
"type": "SCALAR"
|
||||
},
|
||||
{
|
||||
"bufferView": 10,
|
||||
"componentType": 5126,
|
||||
"count": 217,
|
||||
"type": "SCALAR",
|
||||
"max": [
|
||||
7.19999456
|
||||
],
|
||||
"min": [
|
||||
0.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"bufferView": 11,
|
||||
"componentType": 5126,
|
||||
"count": 434,
|
||||
"type": "SCALAR"
|
||||
}
|
||||
],
|
||||
"animations": [
|
||||
{
|
||||
"channels": [
|
||||
{
|
||||
"sampler": 0,
|
||||
"target": {
|
||||
"node": 0,
|
||||
"path": "weights"
|
||||
}
|
||||
}
|
||||
],
|
||||
"samplers": [
|
||||
{
|
||||
"input": 10,
|
||||
"interpolation": "LINEAR",
|
||||
"output": 11
|
||||
}
|
||||
],
|
||||
"name": "Globe"
|
||||
}
|
||||
],
|
||||
"asset": {
|
||||
"generator": "glTF Tools for Unity",
|
||||
"version": "2.0"
|
||||
},
|
||||
"bufferViews": [
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteLength": 22512
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 22512,
|
||||
"byteLength": 30016
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 52528,
|
||||
"byteLength": 22512
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 75040,
|
||||
"byteLength": 22512
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 97552,
|
||||
"byteLength": 22512
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 120064,
|
||||
"byteLength": 22512
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 142576,
|
||||
"byteLength": 22512
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 165088,
|
||||
"byteLength": 22512
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 187600,
|
||||
"byteLength": 22512
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 210112,
|
||||
"byteLength": 5760
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 215872,
|
||||
"byteLength": 868
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 216740,
|
||||
"byteLength": 1736
|
||||
}
|
||||
],
|
||||
"buffers": [
|
||||
{
|
||||
"uri": "AnimatedMorphSphere.bin",
|
||||
"byteLength": 218476
|
||||
}
|
||||
],
|
||||
"meshes": [
|
||||
{
|
||||
"primitives": [
|
||||
{
|
||||
"attributes": {
|
||||
"NORMAL": 0,
|
||||
"TANGENT": 1,
|
||||
"POSITION": 2
|
||||
},
|
||||
"indices": 9,
|
||||
"material": 0,
|
||||
"targets": [
|
||||
{
|
||||
"NORMAL": 3,
|
||||
"POSITION": 4,
|
||||
"TANGENT": 5
|
||||
},
|
||||
{
|
||||
"NORMAL": 6,
|
||||
"POSITION": 7,
|
||||
"TANGENT": 8
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"weights": [
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"name": "Sphere"
|
||||
}
|
||||
],
|
||||
"materials": [
|
||||
{
|
||||
"pbrMetallicRoughness": {
|
||||
"metallicFactor": 0.0,
|
||||
"roughnessFactor": 0.5
|
||||
},
|
||||
"name": "No Name"
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"mesh": 0,
|
||||
"rotation": [
|
||||
0.0,
|
||||
0.7071067,
|
||||
-0.7071068,
|
||||
0.0
|
||||
],
|
||||
"scale": [
|
||||
100.0,
|
||||
100.0,
|
||||
100.0
|
||||
],
|
||||
"name": "AnimatedMorphSphere"
|
||||
}
|
||||
],
|
||||
"scene": 0,
|
||||
"scenes": [
|
||||
{
|
||||
"nodes": [
|
||||
0
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
17
test/models/glTF2/MorphPrimitivesTest/LICENSE.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# LICENSE file for the model: Morph-Primitives Test
|
||||
|
||||
All files in this directory tree are licensed as indicated below.
|
||||
|
||||
* All files directly associated with the model including all text, image and binary files:
|
||||
|
||||
* [CC BY 4.0 International]("https://creativecommons.org/licenses/by/4.0/legalcode") [SPDX license identifier: "CC-BY-4.0"]
|
||||
|
||||
* [CC BY 4.0 International]("https://creativecommons.org/licenses/by/4.0/legalcode") [SPDX license identifier: "CC-BY-4.0"]
|
||||
|
||||
* This file and all other metadocumentation files including "metadata.json":
|
||||
|
||||
* [Creative Commons Attribtution 4.0 International]("https://creativecommons.org/licenses/by/4.0/legalcode") [SPDX license identifier: "CC-BY-4.0"]
|
||||
|
||||
Full license text of these licenses are available at the links above
|
||||
|
||||
#### Generated by modelmetadata
|
||||
21
test/models/glTF2/MorphPrimitivesTest/README.body.md
Normal file
@@ -0,0 +1,21 @@
|
||||
## Screenshot
|
||||
|
||||

|
||||
|
||||
## Description
|
||||
|
||||
This model contains a simple mesh with two primitives: A larger red primitive displays a grid covering 3 of the 4 quadrants of the model's area, followed by a smaller green primitive covering the last quadrant.
|
||||
|
||||
Each primitive has a morph target that creates an elevated area within these quadrants. The model's only mesh contains a `weights: [0.5]` instruction that should cause these morph targets to be applied at half strength, raising the center of the model as shown in the screenshot above.
|
||||
|
||||
## Common Problems
|
||||
|
||||
If the entire model appears perfectly flat, it is likely that the morph targets have not been applied as requested.
|
||||
|
||||
If the red area or green area is missing, particularly in the Draco-compressed version of this model, it could indicate a problem with decompression or with support of multiple primitives within a single mesh.
|
||||
|
||||
## Author
|
||||
|
||||
Model by [@ft-lab](https://github.com/ft-lab).
|
||||
|
||||
|
||||
50
test/models/glTF2/MorphPrimitivesTest/README.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# Morph-Primitives Test
|
||||
|
||||
## Tags
|
||||
|
||||
[core](../../Models-core.md), [testing](../../Models-testing.md)
|
||||
|
||||
## Summary
|
||||
|
||||
Tests a morph target on multiple primitives.
|
||||
|
||||
## Operations
|
||||
|
||||
* [Display](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/MorphPrimitivesTest/glTF-Binary/MorphPrimitivesTest.glb) in SampleViewer
|
||||
* [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/MorphPrimitivesTest/glTF-Binary/MorphPrimitivesTest.glb)
|
||||
* [Model Directory](./)
|
||||
|
||||
## Screenshot
|
||||
|
||||

|
||||
|
||||
## Description
|
||||
|
||||
This model contains a simple mesh with two primitives: A larger red primitive displays a grid covering 3 of the 4 quadrants of the model's area, followed by a smaller green primitive covering the last quadrant.
|
||||
|
||||
Each primitive has a morph target that creates an elevated area within these quadrants. The model's only mesh contains a `weights: [0.5]` instruction that should cause these morph targets to be applied at half strength, raising the center of the model as shown in the screenshot above.
|
||||
|
||||
## Common Problems
|
||||
|
||||
If the entire model appears perfectly flat, it is likely that the morph targets have not been applied as requested.
|
||||
|
||||
If the red area or green area is missing, particularly in the Draco-compressed version of this model, it could indicate a problem with decompression or with support of multiple primitives within a single mesh.
|
||||
|
||||
## Author
|
||||
|
||||
Model by [@ft-lab](https://github.com/ft-lab).
|
||||
|
||||
|
||||
|
||||
|
||||
## Legal
|
||||
|
||||
© 2018, ft-lab. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
|
||||
|
||||
- ft-lab for Everything
|
||||
|
||||
© 2020, Frank Galligan. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
|
||||
|
||||
- Frank Galligan for DRACO compression
|
||||
|
||||
#### Assembled by modelmetadata
|
||||
@@ -0,0 +1,331 @@
|
||||
{
|
||||
"asset": {
|
||||
"generator": "glTF Converter for Shade3D",
|
||||
"version": "2.0",
|
||||
"extras": {
|
||||
"title": "multiple_primitives",
|
||||
"author": "ft-lab",
|
||||
"license": "CC BY-4.0 (https://creativecommons.org/licenses/by/4.0/)"
|
||||
}
|
||||
},
|
||||
"accessors": [
|
||||
{
|
||||
"bufferView": 0,
|
||||
"componentType": 5123,
|
||||
"count": 72,
|
||||
"type": "SCALAR",
|
||||
"byteOffset": 0
|
||||
},
|
||||
{
|
||||
"bufferView": 1,
|
||||
"componentType": 5126,
|
||||
"count": 21,
|
||||
"type": "VEC3",
|
||||
"byteOffset": 0
|
||||
},
|
||||
{
|
||||
"bufferView": 2,
|
||||
"componentType": 5126,
|
||||
"count": 21,
|
||||
"type": "VEC3",
|
||||
"max": [
|
||||
0.5,
|
||||
0,
|
||||
0.5
|
||||
],
|
||||
"min": [
|
||||
-0.5,
|
||||
0,
|
||||
-0.5
|
||||
],
|
||||
"byteOffset": 0
|
||||
},
|
||||
{
|
||||
"bufferView": 3,
|
||||
"componentType": 5126,
|
||||
"count": 21,
|
||||
"type": "VEC2",
|
||||
"byteOffset": 0
|
||||
},
|
||||
{
|
||||
"bufferView": 4,
|
||||
"componentType": 5126,
|
||||
"count": 21,
|
||||
"type": "VEC3",
|
||||
"max": [
|
||||
0,
|
||||
0.20000000298023224,
|
||||
0
|
||||
],
|
||||
"min": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"byteOffset": 0
|
||||
},
|
||||
{
|
||||
"bufferView": 5,
|
||||
"componentType": 5123,
|
||||
"count": 24,
|
||||
"type": "SCALAR",
|
||||
"byteOffset": 0
|
||||
},
|
||||
{
|
||||
"bufferView": 6,
|
||||
"componentType": 5126,
|
||||
"count": 9,
|
||||
"type": "VEC3",
|
||||
"byteOffset": 0
|
||||
},
|
||||
{
|
||||
"bufferView": 7,
|
||||
"componentType": 5126,
|
||||
"count": 9,
|
||||
"type": "VEC3",
|
||||
"max": [
|
||||
0.5,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"min": [
|
||||
0,
|
||||
0,
|
||||
-0.5
|
||||
],
|
||||
"byteOffset": 0
|
||||
},
|
||||
{
|
||||
"bufferView": 8,
|
||||
"componentType": 5126,
|
||||
"count": 9,
|
||||
"type": "VEC2",
|
||||
"byteOffset": 0
|
||||
},
|
||||
{
|
||||
"bufferView": 9,
|
||||
"componentType": 5126,
|
||||
"count": 9,
|
||||
"type": "VEC3",
|
||||
"max": [
|
||||
0,
|
||||
0.20000000298023224,
|
||||
0
|
||||
],
|
||||
"min": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"byteOffset": 0
|
||||
}
|
||||
],
|
||||
"bufferViews": [
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 0,
|
||||
"byteLength": 144,
|
||||
"target": 34963
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 144,
|
||||
"byteLength": 252,
|
||||
"target": 34962,
|
||||
"byteStride": 12
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 396,
|
||||
"byteLength": 252,
|
||||
"target": 34962,
|
||||
"byteStride": 12
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 648,
|
||||
"byteLength": 168,
|
||||
"target": 34962,
|
||||
"byteStride": 8
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 816,
|
||||
"byteLength": 252,
|
||||
"target": 34962,
|
||||
"byteStride": 12
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 1068,
|
||||
"byteLength": 48,
|
||||
"target": 34963
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 1116,
|
||||
"byteLength": 108,
|
||||
"target": 34962,
|
||||
"byteStride": 12
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 1224,
|
||||
"byteLength": 108,
|
||||
"target": 34962,
|
||||
"byteStride": 12
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 1332,
|
||||
"byteLength": 72,
|
||||
"target": 34962,
|
||||
"byteStride": 8
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 1404,
|
||||
"byteLength": 108,
|
||||
"target": 34962,
|
||||
"byteStride": 12
|
||||
}
|
||||
],
|
||||
"buffers": [
|
||||
{
|
||||
"name": "MorphPrimitivesTest",
|
||||
"byteLength": 1512,
|
||||
"uri": "MorphPrimitivesTest.bin"
|
||||
}
|
||||
],
|
||||
"images": [
|
||||
{
|
||||
"name": "uv_texture.jpg",
|
||||
"mimeType": "image/jpeg",
|
||||
"uri": "uv_texture.jpg"
|
||||
}
|
||||
],
|
||||
"materials": [
|
||||
{
|
||||
"pbrMetallicRoughness": {
|
||||
"baseColorFactor": [
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"baseColorTexture": {
|
||||
"index": 0,
|
||||
"texCoord": 0
|
||||
},
|
||||
"metallicFactor": 0,
|
||||
"roughnessFactor": 1
|
||||
},
|
||||
"name": "red",
|
||||
"emissiveFactor": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"alphaMode": "OPAQUE",
|
||||
"doubleSided": false
|
||||
},
|
||||
{
|
||||
"pbrMetallicRoughness": {
|
||||
"baseColorFactor": [
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"baseColorTexture": {
|
||||
"index": 0,
|
||||
"texCoord": 0
|
||||
},
|
||||
"metallicFactor": 0,
|
||||
"roughnessFactor": 1
|
||||
},
|
||||
"name": "green",
|
||||
"emissiveFactor": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"alphaMode": "OPAQUE",
|
||||
"doubleSided": false
|
||||
}
|
||||
],
|
||||
"meshes": [
|
||||
{
|
||||
"weights": [
|
||||
0.5
|
||||
],
|
||||
"name": "mesh",
|
||||
"primitives": [
|
||||
{
|
||||
"attributes": {
|
||||
"NORMAL": 1,
|
||||
"POSITION": 2,
|
||||
"TEXCOORD_0": 3
|
||||
},
|
||||
"indices": 0,
|
||||
"material": 0,
|
||||
"targets": [
|
||||
{
|
||||
"POSITION": 4
|
||||
}
|
||||
],
|
||||
"mode": 4
|
||||
},
|
||||
{
|
||||
"attributes": {
|
||||
"POSITION": 7,
|
||||
"NORMAL": 6,
|
||||
"TEXCOORD_0": 8
|
||||
},
|
||||
"indices": 5,
|
||||
"material": 1,
|
||||
"targets": [
|
||||
{
|
||||
"POSITION": 9
|
||||
}
|
||||
],
|
||||
"mode": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"children": [
|
||||
1
|
||||
],
|
||||
"name": "ルートパート"
|
||||
},
|
||||
{
|
||||
"mesh": 0,
|
||||
"name": "mesh"
|
||||
}
|
||||
],
|
||||
"samplers": [
|
||||
{
|
||||
"minFilter": 9729,
|
||||
"wrapS": 10497,
|
||||
"wrapT": 10497
|
||||
}
|
||||
],
|
||||
"scenes": [
|
||||
{
|
||||
"nodes": [
|
||||
0
|
||||
],
|
||||
"name": "Scene"
|
||||
}
|
||||
],
|
||||
"textures": [
|
||||
{
|
||||
"sampler": 0,
|
||||
"source": 0
|
||||
}
|
||||
],
|
||||
"scene": 0
|
||||
}
|
||||
BIN
test/models/glTF2/MorphPrimitivesTest/glTF/uv_texture.jpg
Normal file
|
After Width: | Height: | Size: 48 KiB |
15
test/models/glTF2/MorphStressTest/LICENSE.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# LICENSE file for the model: Morph Stress Test
|
||||
|
||||
All files in this directory tree are licensed as indicated below.
|
||||
|
||||
* All files directly associated with the model including all text, image and binary files:
|
||||
|
||||
* [CC BY 4.0 International]("https://creativecommons.org/licenses/by/4.0/legalcode") [SPDX license identifier: "CC-BY-4.0"]
|
||||
|
||||
* This file and all other metadocumentation files including "metadata.json":
|
||||
|
||||
* [Creative Commons Attribtution 4.0 International]("https://creativecommons.org/licenses/by/4.0/legalcode") [SPDX license identifier: "CC-BY-4.0"]
|
||||
|
||||
Full license text of these licenses are available at the links above
|
||||
|
||||
#### Generated by modelmetadata
|
||||
62
test/models/glTF2/MorphStressTest/README.body.md
Normal file
@@ -0,0 +1,62 @@
|
||||
## Screenshot
|
||||
|
||||

|
||||
|
||||
## Description
|
||||
|
||||
This model has a base mesh, plus eight morph targets. The base and each of the morph targets has
|
||||
both a POSITION and a NORMAL accessor, resulting in no less than 18 vertex attributes being requested
|
||||
by a typical implementation. This number can be too high for many realtime graphics systems, and
|
||||
the client runtime may take steps to limit the overall number of morph targets and/or limit the
|
||||
number of active morph targets.
|
||||
|
||||
As such, this model is not expected to render correctly everywhere. Instead, it pushes the limits
|
||||
to see how many morph targets can move at once before problems become apparent.
|
||||
|
||||
## Animations
|
||||
|
||||
Three animations are included:
|
||||
|
||||
---
|
||||
### "Individuals"
|
||||
|
||||

|
||||
|
||||
Each morph target is exercised one at a time, and returns to zero strength before the next one
|
||||
starts to move. This offers runtimes the best chance of success, as vertex attributes need only
|
||||
be allocated for one morph target at a time. Even so, systems that pre-allocate morph target
|
||||
attributes may place an upper limit here, allowing only some of the test blocks to move.
|
||||
|
||||
---
|
||||
### "TheWave"
|
||||
|
||||

|
||||
|
||||
This animation tests a wave of morph targets being activated simultaneously. This does require
|
||||
a high number of vertex attributes to be available. If glitches in movement are observed,
|
||||
continue on to the "Pulse" animation for closer inspection.
|
||||
|
||||
---
|
||||
### "Pulse"
|
||||
|
||||

|
||||
|
||||
This is the most stressful test, with all 8 morph targets reaching full strength before any
|
||||
begin to subside. Some runtimes may place limits on how many morph targets can be active at
|
||||
once, resulting in a distinctive visual pattern here: Only the first N test blocks will
|
||||
appear to move, where N is the number of simultaneous active morph targets allowed. Test
|
||||
blocks on the right will remain frozen in the starting position until the first few blocks
|
||||
on the left have returned to rest. After the blocks on the left have returned to rest, they
|
||||
could relinquish their vertex attributes to blocks on the right, allowing those blocks to
|
||||
"catch up" to their assigned positions in the animation.
|
||||
|
||||
It is also possible that there could be a hard limit on the number of morph targets, regardless
|
||||
of whether they are active or not. In this case, only the first N blocks will move at all,
|
||||
and the remainder will be frozen the entire time.
|
||||
|
||||
---
|
||||
## Implementation Notes
|
||||
|
||||
BabylonJS has shared some technical details of their "Infinite Morph Targets" implementation
|
||||
in [this YouTube video](https://www.youtube.com/watch?v=LBPRmGgU0PE).
|
||||
|
||||
87
test/models/glTF2/MorphStressTest/README.md
Normal file
@@ -0,0 +1,87 @@
|
||||
# Morph Stress Test
|
||||
|
||||
## Tags
|
||||
|
||||
[core](../../Models-core.md), [testing](../../Models-testing.md)
|
||||
|
||||
## Summary
|
||||
|
||||
Tests up to 8 morph targets.
|
||||
|
||||
## Operations
|
||||
|
||||
* [Display](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/MorphStressTest/glTF-Binary/MorphStressTest.glb) in SampleViewer
|
||||
* [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/MorphStressTest/glTF-Binary/MorphStressTest.glb)
|
||||
* [Model Directory](./)
|
||||
|
||||
## Screenshot
|
||||
|
||||

|
||||
|
||||
## Description
|
||||
|
||||
This model has a base mesh, plus eight morph targets. The base and each of the morph targets has
|
||||
both a POSITION and a NORMAL accessor, resulting in no less than 18 vertex attributes being requested
|
||||
by a typical implementation. This number can be too high for many realtime graphics systems, and
|
||||
the client runtime may take steps to limit the overall number of morph targets and/or limit the
|
||||
number of active morph targets.
|
||||
|
||||
As such, this model is not expected to render correctly everywhere. Instead, it pushes the limits
|
||||
to see how many morph targets can move at once before problems become apparent.
|
||||
|
||||
## Animations
|
||||
|
||||
Three animations are included:
|
||||
|
||||
---
|
||||
### "Individuals"
|
||||
|
||||

|
||||
|
||||
Each morph target is exercised one at a time, and returns to zero strength before the next one
|
||||
starts to move. This offers runtimes the best chance of success, as vertex attributes need only
|
||||
be allocated for one morph target at a time. Even so, systems that pre-allocate morph target
|
||||
attributes may place an upper limit here, allowing only some of the test blocks to move.
|
||||
|
||||
---
|
||||
### "TheWave"
|
||||
|
||||

|
||||
|
||||
This animation tests a wave of morph targets being activated simultaneously. This does require
|
||||
a high number of vertex attributes to be available. If glitches in movement are observed,
|
||||
continue on to the "Pulse" animation for closer inspection.
|
||||
|
||||
---
|
||||
### "Pulse"
|
||||
|
||||

|
||||
|
||||
This is the most stressful test, with all 8 morph targets reaching full strength before any
|
||||
begin to subside. Some runtimes may place limits on how many morph targets can be active at
|
||||
once, resulting in a distinctive visual pattern here: Only the first N test blocks will
|
||||
appear to move, where N is the number of simultaneous active morph targets allowed. Test
|
||||
blocks on the right will remain frozen in the starting position until the first few blocks
|
||||
on the left have returned to rest. After the blocks on the left have returned to rest, they
|
||||
could relinquish their vertex attributes to blocks on the right, allowing those blocks to
|
||||
"catch up" to their assigned positions in the animation.
|
||||
|
||||
It is also possible that there could be a hard limit on the number of morph targets, regardless
|
||||
of whether they are active or not. In this case, only the first N blocks will move at all,
|
||||
and the remainder will be frozen the entire time.
|
||||
|
||||
---
|
||||
## Implementation Notes
|
||||
|
||||
BabylonJS has shared some technical details of their "Infinite Morph Targets" implementation
|
||||
in [this YouTube video](https://www.youtube.com/watch?v=LBPRmGgU0PE).
|
||||
|
||||
|
||||
|
||||
## Legal
|
||||
|
||||
© 2021, Analytical Graphics, Inc.. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
|
||||
|
||||
- Ed Mackey for Everything
|
||||
|
||||
#### Assembled by modelmetadata
|
||||
BIN
test/models/glTF2/MorphStressTest/glTF/Base_AO.png
Normal file
|
After Width: | Height: | Size: 174 KiB |
BIN
test/models/glTF2/MorphStressTest/glTF/ColorSwatches.png
Normal file
|
After Width: | Height: | Size: 208 B |
BIN
test/models/glTF2/MorphStressTest/glTF/MorphStressTest.bin
Normal file
999
test/models/glTF2/MorphStressTest/glTF/MorphStressTest.gltf
Normal file
@@ -0,0 +1,999 @@
|
||||
{
|
||||
"asset" : {
|
||||
"copyright" : "CC-BY 4.0 Copyright 2021 Analytical Graphics, Inc. Model and Textures by Ed Mackey.",
|
||||
"generator" : "Khronos glTF Blender I/O v1.5.13",
|
||||
"version" : "2.0"
|
||||
},
|
||||
"scene" : 0,
|
||||
"scenes" : [
|
||||
{
|
||||
"name" : "Scene",
|
||||
"nodes" : [
|
||||
0
|
||||
]
|
||||
}
|
||||
],
|
||||
"nodes" : [
|
||||
{
|
||||
"mesh" : 0,
|
||||
"name" : "Main"
|
||||
}
|
||||
],
|
||||
"animations" : [
|
||||
{
|
||||
"channels" : [
|
||||
{
|
||||
"sampler" : 0,
|
||||
"target" : {
|
||||
"node" : 0,
|
||||
"path" : "weights"
|
||||
}
|
||||
}
|
||||
],
|
||||
"name" : "Individuals",
|
||||
"samplers" : [
|
||||
{
|
||||
"input" : 42,
|
||||
"interpolation" : "LINEAR",
|
||||
"output" : 43
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"channels" : [
|
||||
{
|
||||
"sampler" : 0,
|
||||
"target" : {
|
||||
"node" : 0,
|
||||
"path" : "weights"
|
||||
}
|
||||
}
|
||||
],
|
||||
"name" : "TheWave",
|
||||
"samplers" : [
|
||||
{
|
||||
"input" : 44,
|
||||
"interpolation" : "LINEAR",
|
||||
"output" : 45
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"channels" : [
|
||||
{
|
||||
"sampler" : 0,
|
||||
"target" : {
|
||||
"node" : 0,
|
||||
"path" : "weights"
|
||||
}
|
||||
}
|
||||
],
|
||||
"name" : "Pulse",
|
||||
"samplers" : [
|
||||
{
|
||||
"input" : 46,
|
||||
"interpolation" : "LINEAR",
|
||||
"output" : 47
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"materials" : [
|
||||
{
|
||||
"doubleSided" : true,
|
||||
"name" : "Base",
|
||||
"occlusionTexture" : {
|
||||
"index" : 0,
|
||||
"texCoord" : 1
|
||||
},
|
||||
"pbrMetallicRoughness" : {
|
||||
"baseColorTexture" : {
|
||||
"index" : 1
|
||||
},
|
||||
"metallicFactor" : 0,
|
||||
"roughnessFactor" : 0.4000000059604645
|
||||
}
|
||||
},
|
||||
{
|
||||
"doubleSided" : true,
|
||||
"name" : "TestMaterial",
|
||||
"pbrMetallicRoughness" : {
|
||||
"baseColorTexture" : {
|
||||
"index" : 2
|
||||
},
|
||||
"metallicFactor" : 0,
|
||||
"roughnessFactor" : 0.5
|
||||
}
|
||||
}
|
||||
],
|
||||
"meshes" : [
|
||||
{
|
||||
"extras" : {
|
||||
"targetNames" : [
|
||||
"Key 1",
|
||||
"Key 2",
|
||||
"Key 3",
|
||||
"Key 4",
|
||||
"Key 5",
|
||||
"Key 6",
|
||||
"Key 7",
|
||||
"Key 8"
|
||||
]
|
||||
},
|
||||
"name" : "Cube",
|
||||
"primitives" : [
|
||||
{
|
||||
"attributes" : {
|
||||
"POSITION" : 0,
|
||||
"NORMAL" : 1,
|
||||
"TEXCOORD_0" : 2,
|
||||
"TEXCOORD_1" : 3
|
||||
},
|
||||
"indices" : 4,
|
||||
"material" : 0,
|
||||
"targets" : [
|
||||
{
|
||||
"POSITION" : 5,
|
||||
"NORMAL" : 6
|
||||
},
|
||||
{
|
||||
"POSITION" : 7,
|
||||
"NORMAL" : 8
|
||||
},
|
||||
{
|
||||
"POSITION" : 9,
|
||||
"NORMAL" : 10
|
||||
},
|
||||
{
|
||||
"POSITION" : 11,
|
||||
"NORMAL" : 12
|
||||
},
|
||||
{
|
||||
"POSITION" : 13,
|
||||
"NORMAL" : 14
|
||||
},
|
||||
{
|
||||
"POSITION" : 15,
|
||||
"NORMAL" : 16
|
||||
},
|
||||
{
|
||||
"POSITION" : 17,
|
||||
"NORMAL" : 18
|
||||
},
|
||||
{
|
||||
"POSITION" : 19,
|
||||
"NORMAL" : 20
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"attributes" : {
|
||||
"POSITION" : 21,
|
||||
"NORMAL" : 22,
|
||||
"TEXCOORD_0" : 23,
|
||||
"TEXCOORD_1" : 24
|
||||
},
|
||||
"indices" : 25,
|
||||
"material" : 1,
|
||||
"targets" : [
|
||||
{
|
||||
"POSITION" : 26,
|
||||
"NORMAL" : 27
|
||||
},
|
||||
{
|
||||
"POSITION" : 28,
|
||||
"NORMAL" : 29
|
||||
},
|
||||
{
|
||||
"POSITION" : 30,
|
||||
"NORMAL" : 31
|
||||
},
|
||||
{
|
||||
"POSITION" : 32,
|
||||
"NORMAL" : 33
|
||||
},
|
||||
{
|
||||
"POSITION" : 34,
|
||||
"NORMAL" : 35
|
||||
},
|
||||
{
|
||||
"POSITION" : 36,
|
||||
"NORMAL" : 37
|
||||
},
|
||||
{
|
||||
"POSITION" : 38,
|
||||
"NORMAL" : 39
|
||||
},
|
||||
{
|
||||
"POSITION" : 40,
|
||||
"NORMAL" : 41
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"weights" : [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
],
|
||||
"textures" : [
|
||||
{
|
||||
"sampler" : 0,
|
||||
"source" : 0
|
||||
},
|
||||
{
|
||||
"sampler" : 0,
|
||||
"source" : 1
|
||||
},
|
||||
{
|
||||
"sampler" : 0,
|
||||
"source" : 2
|
||||
}
|
||||
],
|
||||
"images" : [
|
||||
{
|
||||
"mimeType" : "image/png",
|
||||
"name" : "Base_AO",
|
||||
"uri" : "Base_AO.png"
|
||||
},
|
||||
{
|
||||
"mimeType" : "image/png",
|
||||
"name" : "TinyGrid",
|
||||
"uri" : "TinyGrid.png"
|
||||
},
|
||||
{
|
||||
"mimeType" : "image/png",
|
||||
"name" : "ColorSwatches",
|
||||
"uri" : "ColorSwatches.png"
|
||||
}
|
||||
],
|
||||
"accessors" : [
|
||||
{
|
||||
"bufferView" : 0,
|
||||
"componentType" : 5126,
|
||||
"count" : 24,
|
||||
"max" : [
|
||||
2,
|
||||
0,
|
||||
0.5
|
||||
],
|
||||
"min" : [
|
||||
-2,
|
||||
-0.10000002384185791,
|
||||
-0.5
|
||||
],
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 1,
|
||||
"componentType" : 5126,
|
||||
"count" : 24,
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 2,
|
||||
"componentType" : 5126,
|
||||
"count" : 24,
|
||||
"type" : "VEC2"
|
||||
},
|
||||
{
|
||||
"bufferView" : 3,
|
||||
"componentType" : 5126,
|
||||
"count" : 24,
|
||||
"type" : "VEC2"
|
||||
},
|
||||
{
|
||||
"bufferView" : 4,
|
||||
"componentType" : 5123,
|
||||
"count" : 36,
|
||||
"type" : "SCALAR"
|
||||
},
|
||||
{
|
||||
"bufferView" : 5,
|
||||
"componentType" : 5126,
|
||||
"count" : 24,
|
||||
"max" : [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"min" : [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 6,
|
||||
"componentType" : 5126,
|
||||
"count" : 24,
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 7,
|
||||
"componentType" : 5126,
|
||||
"count" : 24,
|
||||
"max" : [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"min" : [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 8,
|
||||
"componentType" : 5126,
|
||||
"count" : 24,
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 9,
|
||||
"componentType" : 5126,
|
||||
"count" : 24,
|
||||
"max" : [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"min" : [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 10,
|
||||
"componentType" : 5126,
|
||||
"count" : 24,
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 11,
|
||||
"componentType" : 5126,
|
||||
"count" : 24,
|
||||
"max" : [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"min" : [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 12,
|
||||
"componentType" : 5126,
|
||||
"count" : 24,
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 13,
|
||||
"componentType" : 5126,
|
||||
"count" : 24,
|
||||
"max" : [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"min" : [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 14,
|
||||
"componentType" : 5126,
|
||||
"count" : 24,
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 15,
|
||||
"componentType" : 5126,
|
||||
"count" : 24,
|
||||
"max" : [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"min" : [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 16,
|
||||
"componentType" : 5126,
|
||||
"count" : 24,
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 17,
|
||||
"componentType" : 5126,
|
||||
"count" : 24,
|
||||
"max" : [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"min" : [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 18,
|
||||
"componentType" : 5126,
|
||||
"count" : 24,
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 19,
|
||||
"componentType" : 5126,
|
||||
"count" : 24,
|
||||
"max" : [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"min" : [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 20,
|
||||
"componentType" : 5126,
|
||||
"count" : 24,
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 21,
|
||||
"componentType" : 5126,
|
||||
"count" : 1504,
|
||||
"max" : [
|
||||
1.875,
|
||||
0.5,
|
||||
0.25
|
||||
],
|
||||
"min" : [
|
||||
-1.875,
|
||||
0,
|
||||
-0.25
|
||||
],
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 22,
|
||||
"componentType" : 5126,
|
||||
"count" : 1504,
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 23,
|
||||
"componentType" : 5126,
|
||||
"count" : 1504,
|
||||
"type" : "VEC2"
|
||||
},
|
||||
{
|
||||
"bufferView" : 24,
|
||||
"componentType" : 5126,
|
||||
"count" : 1504,
|
||||
"type" : "VEC2"
|
||||
},
|
||||
{
|
||||
"bufferView" : 25,
|
||||
"componentType" : 5123,
|
||||
"count" : 7200,
|
||||
"type" : "SCALAR"
|
||||
},
|
||||
{
|
||||
"bufferView" : 26,
|
||||
"componentType" : 5126,
|
||||
"count" : 1504,
|
||||
"max" : [
|
||||
0.04999995231628418,
|
||||
1,
|
||||
0
|
||||
],
|
||||
"min" : [
|
||||
-0.04999995231628418,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 27,
|
||||
"componentType" : 5126,
|
||||
"count" : 1504,
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 28,
|
||||
"componentType" : 5126,
|
||||
"count" : 1504,
|
||||
"max" : [
|
||||
0.04999995231628418,
|
||||
1,
|
||||
0
|
||||
],
|
||||
"min" : [
|
||||
-0.04999995231628418,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 29,
|
||||
"componentType" : 5126,
|
||||
"count" : 1504,
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 30,
|
||||
"componentType" : 5126,
|
||||
"count" : 1504,
|
||||
"max" : [
|
||||
0.050000011920928955,
|
||||
1,
|
||||
0
|
||||
],
|
||||
"min" : [
|
||||
-0.050000011920928955,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 31,
|
||||
"componentType" : 5126,
|
||||
"count" : 1504,
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 32,
|
||||
"componentType" : 5126,
|
||||
"count" : 1504,
|
||||
"max" : [
|
||||
0.050000011920928955,
|
||||
1,
|
||||
0
|
||||
],
|
||||
"min" : [
|
||||
-0.04999999701976776,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 33,
|
||||
"componentType" : 5126,
|
||||
"count" : 1504,
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 34,
|
||||
"componentType" : 5126,
|
||||
"count" : 1504,
|
||||
"max" : [
|
||||
0.04999999701976776,
|
||||
1,
|
||||
0
|
||||
],
|
||||
"min" : [
|
||||
-0.050000011920928955,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 35,
|
||||
"componentType" : 5126,
|
||||
"count" : 1504,
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 36,
|
||||
"componentType" : 5126,
|
||||
"count" : 1504,
|
||||
"max" : [
|
||||
0.050000011920928955,
|
||||
1,
|
||||
0
|
||||
],
|
||||
"min" : [
|
||||
-0.050000011920928955,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 37,
|
||||
"componentType" : 5126,
|
||||
"count" : 1504,
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 38,
|
||||
"componentType" : 5126,
|
||||
"count" : 1504,
|
||||
"max" : [
|
||||
0.04999995231628418,
|
||||
1,
|
||||
0
|
||||
],
|
||||
"min" : [
|
||||
-0.04999995231628418,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 39,
|
||||
"componentType" : 5126,
|
||||
"count" : 1504,
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 40,
|
||||
"componentType" : 5126,
|
||||
"count" : 1504,
|
||||
"max" : [
|
||||
0.04999995231628418,
|
||||
1,
|
||||
0
|
||||
],
|
||||
"min" : [
|
||||
-0.04999995231628418,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 41,
|
||||
"componentType" : 5126,
|
||||
"count" : 1504,
|
||||
"type" : "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView" : 42,
|
||||
"componentType" : 5126,
|
||||
"count" : 281,
|
||||
"max" : [
|
||||
9.366666666666667
|
||||
],
|
||||
"min" : [
|
||||
0.03333333333333333
|
||||
],
|
||||
"type" : "SCALAR"
|
||||
},
|
||||
{
|
||||
"bufferView" : 43,
|
||||
"componentType" : 5126,
|
||||
"count" : 2248,
|
||||
"type" : "SCALAR"
|
||||
},
|
||||
{
|
||||
"bufferView" : 44,
|
||||
"componentType" : 5126,
|
||||
"count" : 59,
|
||||
"max" : [
|
||||
1.9666666666666666
|
||||
],
|
||||
"min" : [
|
||||
0.03333333333333333
|
||||
],
|
||||
"type" : "SCALAR"
|
||||
},
|
||||
{
|
||||
"bufferView" : 45,
|
||||
"componentType" : 5126,
|
||||
"count" : 472,
|
||||
"type" : "SCALAR"
|
||||
},
|
||||
{
|
||||
"bufferView" : 46,
|
||||
"componentType" : 5126,
|
||||
"count" : 191,
|
||||
"max" : [
|
||||
6.366666666666666
|
||||
],
|
||||
"min" : [
|
||||
0.03333333333333333
|
||||
],
|
||||
"type" : "SCALAR"
|
||||
},
|
||||
{
|
||||
"bufferView" : 47,
|
||||
"componentType" : 5126,
|
||||
"count" : 1528,
|
||||
"type" : "SCALAR"
|
||||
}
|
||||
],
|
||||
"bufferViews" : [
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 288,
|
||||
"byteOffset" : 0
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 288,
|
||||
"byteOffset" : 288
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 192,
|
||||
"byteOffset" : 576
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 192,
|
||||
"byteOffset" : 768
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 72,
|
||||
"byteOffset" : 960
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 288,
|
||||
"byteOffset" : 1032
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 288,
|
||||
"byteOffset" : 1320
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 288,
|
||||
"byteOffset" : 1608
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 288,
|
||||
"byteOffset" : 1896
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 288,
|
||||
"byteOffset" : 2184
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 288,
|
||||
"byteOffset" : 2472
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 288,
|
||||
"byteOffset" : 2760
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 288,
|
||||
"byteOffset" : 3048
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 288,
|
||||
"byteOffset" : 3336
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 288,
|
||||
"byteOffset" : 3624
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 288,
|
||||
"byteOffset" : 3912
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 288,
|
||||
"byteOffset" : 4200
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 288,
|
||||
"byteOffset" : 4488
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 288,
|
||||
"byteOffset" : 4776
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 288,
|
||||
"byteOffset" : 5064
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 288,
|
||||
"byteOffset" : 5352
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 18048,
|
||||
"byteOffset" : 5640
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 18048,
|
||||
"byteOffset" : 23688
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 12032,
|
||||
"byteOffset" : 41736
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 12032,
|
||||
"byteOffset" : 53768
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 14400,
|
||||
"byteOffset" : 65800
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 18048,
|
||||
"byteOffset" : 80200
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 18048,
|
||||
"byteOffset" : 98248
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 18048,
|
||||
"byteOffset" : 116296
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 18048,
|
||||
"byteOffset" : 134344
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 18048,
|
||||
"byteOffset" : 152392
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 18048,
|
||||
"byteOffset" : 170440
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 18048,
|
||||
"byteOffset" : 188488
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 18048,
|
||||
"byteOffset" : 206536
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 18048,
|
||||
"byteOffset" : 224584
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 18048,
|
||||
"byteOffset" : 242632
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 18048,
|
||||
"byteOffset" : 260680
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 18048,
|
||||
"byteOffset" : 278728
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 18048,
|
||||
"byteOffset" : 296776
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 18048,
|
||||
"byteOffset" : 314824
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 18048,
|
||||
"byteOffset" : 332872
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 18048,
|
||||
"byteOffset" : 350920
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 1124,
|
||||
"byteOffset" : 368968
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 8992,
|
||||
"byteOffset" : 370092
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 236,
|
||||
"byteOffset" : 379084
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 1888,
|
||||
"byteOffset" : 379320
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 764,
|
||||
"byteOffset" : 381208
|
||||
},
|
||||
{
|
||||
"buffer" : 0,
|
||||
"byteLength" : 6112,
|
||||
"byteOffset" : 381972
|
||||
}
|
||||
],
|
||||
"samplers" : [
|
||||
{
|
||||
"magFilter" : 9729,
|
||||
"minFilter" : 9987
|
||||
}
|
||||
],
|
||||
"buffers" : [
|
||||
{
|
||||
"byteLength" : 388084,
|
||||
"uri" : "MorphStressTest.bin"
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
test/models/glTF2/MorphStressTest/glTF/TinyGrid.png
Normal file
|
After Width: | Height: | Size: 186 B |
15
test/models/glTF2/SimpleMorph/LICENSE.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# LICENSE file for the model: Simple Morph
|
||||
|
||||
All files in this directory tree are licensed as indicated below.
|
||||
|
||||
* All files directly associated with the model including all text, image and binary files:
|
||||
|
||||
* [CC0 1.0 Universal]("https://creativecommons.org/publicdomain/zero/1.0/legalcode") [SPDX license identifier: "CC0-1.0"]
|
||||
|
||||
* This file and all other metadocumentation files including "metadata.json":
|
||||
|
||||
* [Creative Commons Attribtution 4.0 International]("https://creativecommons.org/licenses/by/4.0/legalcode") [SPDX license identifier: "CC-BY-4.0"]
|
||||
|
||||
Full license text of these licenses are available at the links above
|
||||
|
||||
#### Generated by modelmetadata
|
||||
17
test/models/glTF2/SimpleMorph/README.body.md
Normal file
@@ -0,0 +1,17 @@
|
||||
## Screenshot
|
||||
|
||||

|
||||
|
||||
## Notes
|
||||
|
||||
This is an example of a glTF asset that uses morph targets, as described in the
|
||||
[Simple Morph Target](https://github.com/KhronosGroup/glTF-Tutorials/blob/master/gltfTutorial/gltfTutorial_017_SimpleMorphTarget.md)
|
||||
section of the glTF tutorial.
|
||||
|
||||
## Data layout
|
||||
|
||||
The following image shows the data layout of this sample:
|
||||
|
||||

|
||||
|
||||
|
||||
41
test/models/glTF2/SimpleMorph/README.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# Simple Morph
|
||||
|
||||
## Tags
|
||||
|
||||
[core](../../Models-core.md), [testing](../../Models-testing.md)
|
||||
|
||||
## Summary
|
||||
|
||||
A triangle with a morph animation applied
|
||||
|
||||
## Operations
|
||||
|
||||
* [Display](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SimpleMorph/glTF/SimpleMorph.gltf) in SampleViewer
|
||||
* [Model Directory](./)
|
||||
|
||||
## Screenshot
|
||||
|
||||

|
||||
|
||||
## Notes
|
||||
|
||||
This is an example of a glTF asset that uses morph targets, as described in the
|
||||
[Simple Morph Target](https://github.com/KhronosGroup/glTF-Tutorials/blob/master/gltfTutorial/gltfTutorial_017_SimpleMorphTarget.md)
|
||||
section of the glTF tutorial.
|
||||
|
||||
## Data layout
|
||||
|
||||
The following image shows the data layout of this sample:
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
## Legal
|
||||
|
||||
© 2017, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
|
||||
|
||||
- javagl for Everything
|
||||
|
||||
#### Assembled by modelmetadata
|
||||
189
test/models/glTF2/SimpleMorph/glTF/SimpleMorph.gltf
Normal file
@@ -0,0 +1,189 @@
|
||||
{
|
||||
"scene" : 0,
|
||||
"scenes":[
|
||||
{
|
||||
"nodes":[
|
||||
0
|
||||
]
|
||||
}
|
||||
],
|
||||
"nodes":[
|
||||
{
|
||||
"mesh":0
|
||||
}
|
||||
],
|
||||
"meshes":[
|
||||
{
|
||||
"primitives":[
|
||||
{
|
||||
"attributes":{
|
||||
"POSITION":1
|
||||
},
|
||||
"targets":[
|
||||
{
|
||||
"POSITION":2
|
||||
},
|
||||
{
|
||||
"POSITION":3
|
||||
}
|
||||
],
|
||||
"indices":0
|
||||
}
|
||||
],
|
||||
"weights":[
|
||||
0.5,
|
||||
0.5
|
||||
]
|
||||
}
|
||||
],
|
||||
"animations":[
|
||||
{
|
||||
"samplers":[
|
||||
{
|
||||
"input":4,
|
||||
"interpolation":"LINEAR",
|
||||
"output":5
|
||||
}
|
||||
],
|
||||
"channels":[
|
||||
{
|
||||
"sampler":0,
|
||||
"target":{
|
||||
"node":0,
|
||||
"path":"weights"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"buffers":[
|
||||
{
|
||||
"uri" : "simpleMorphGeometry.bin",
|
||||
"byteLength":116
|
||||
},
|
||||
{
|
||||
"uri" : "simpleMorphAnimation.bin",
|
||||
"byteLength":60
|
||||
}
|
||||
],
|
||||
"bufferViews":[
|
||||
{
|
||||
"buffer":0,
|
||||
"byteOffset":0,
|
||||
"byteLength":6,
|
||||
"target":34963
|
||||
},
|
||||
{
|
||||
"buffer":0,
|
||||
"byteOffset":8,
|
||||
"byteLength":108,
|
||||
"byteStride":12,
|
||||
"target":34962
|
||||
},
|
||||
{
|
||||
"buffer":1,
|
||||
"byteOffset":0,
|
||||
"byteLength":20
|
||||
},
|
||||
{
|
||||
"buffer":1,
|
||||
"byteOffset":20,
|
||||
"byteLength":40
|
||||
}
|
||||
],
|
||||
"accessors":[
|
||||
{
|
||||
"bufferView":0,
|
||||
"byteOffset":0,
|
||||
"componentType":5123,
|
||||
"count":3,
|
||||
"type":"SCALAR",
|
||||
"max":[
|
||||
2
|
||||
],
|
||||
"min":[
|
||||
0
|
||||
]
|
||||
},
|
||||
{
|
||||
"bufferView":1,
|
||||
"byteOffset":0,
|
||||
"componentType":5126,
|
||||
"count":3,
|
||||
"type":"VEC3",
|
||||
"max":[
|
||||
1.0,
|
||||
0.5,
|
||||
0.0
|
||||
],
|
||||
"min":[
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"bufferView":1,
|
||||
"byteOffset":36,
|
||||
"componentType":5126,
|
||||
"count":3,
|
||||
"type":"VEC3",
|
||||
"max":[
|
||||
0.0,
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
"min":[
|
||||
-1.0,
|
||||
0.0,
|
||||
0.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"bufferView":1,
|
||||
"byteOffset":72,
|
||||
"componentType":5126,
|
||||
"count":3,
|
||||
"type":"VEC3",
|
||||
"max":[
|
||||
1.0,
|
||||
1.0,
|
||||
0.0
|
||||
],
|
||||
"min":[
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"bufferView":2,
|
||||
"byteOffset":0,
|
||||
"componentType":5126,
|
||||
"count":5,
|
||||
"type":"SCALAR",
|
||||
"max":[
|
||||
4.0
|
||||
],
|
||||
"min":[
|
||||
0.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"bufferView":3,
|
||||
"byteOffset":0,
|
||||
"componentType":5126,
|
||||
"count":10,
|
||||
"type":"SCALAR",
|
||||
"max":[
|
||||
1.0
|
||||
],
|
||||
"min":[
|
||||
0.0
|
||||
]
|
||||
}
|
||||
],
|
||||
"asset":{
|
||||
"version":"2.0"
|
||||
}
|
||||
}
|
||||
BIN
test/models/glTF2/SimpleMorph/glTF/simpleMorphAnimation.bin
Normal file
BIN
test/models/glTF2/SimpleMorph/glTF/simpleMorphGeometry.bin
Normal file
|
After Width: | Height: | Size: 116 B |
16
test/models/glTF2/ref/README.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# glTF 3D model reference images
|
||||
|
||||
## AnimatedMorphCube
|
||||
<img alt="AnimatedMorphCube" src="screenshots/AnimatedMorphCube.gif" width=180 />
|
||||
|
||||
## AnimatedMorphSphere
|
||||
<img alt="AnimatedMorphSphere" src="screenshots/AnimatedMorphSphere.gif" width=180 />
|
||||
|
||||
## MorphPrimitivesTest
|
||||
<img alt="MorphPrimitivesTest" src="screenshots/MorphPrimitivesTest.gif" width=180 />
|
||||
|
||||
## MorphStressTest
|
||||
<img alt="MorphStressTest" src="screenshots/MorphStressTest_cycle_animations.gif" width=180 />
|
||||
|
||||
## SimpleMorph
|
||||
<img alt="SimpleMorph" src="screenshots/SimpleMorph.gif" width=180 />
|
||||
BIN
test/models/glTF2/ref/screenshots/AnimatedMorphCube.gif
Normal file
|
After Width: | Height: | Size: 227 KiB |
BIN
test/models/glTF2/ref/screenshots/AnimatedMorphSphere.gif
Normal file
|
After Width: | Height: | Size: 658 KiB |
BIN
test/models/glTF2/ref/screenshots/MorphPrimitivesTest.gif
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
|
After Width: | Height: | Size: 2.4 MiB |
BIN
test/models/glTF2/ref/screenshots/SimpleMorph.gif
Normal file
|
After Width: | Height: | Size: 91 KiB |