diff --git a/2.0/BoxTextured/glTF-Binary/BoxTextured.glb b/2.0/BoxTextured/glTF-Binary/BoxTextured.glb index 03cd2acf..5dae1587 100644 Binary files a/2.0/BoxTextured/glTF-Binary/BoxTextured.glb and b/2.0/BoxTextured/glTF-Binary/BoxTextured.glb differ diff --git a/2.0/BoxTextured/glTF-Embedded/BoxTextured.gltf b/2.0/BoxTextured/glTF-Embedded/BoxTextured.gltf index c9c46149..4a6ab9ca 100644 --- a/2.0/BoxTextured/glTF-Embedded/BoxTextured.gltf +++ b/2.0/BoxTextured/glTF-Embedded/BoxTextured.gltf @@ -139,7 +139,7 @@ ], "images": [ { - "uri": "data:image/png;base64,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" + "uri": "data:image/png;base64,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" } ], "samplers": [ diff --git a/2.0/BoxTextured/glTF-pbrSpecularGlossiness/CesiumLogoFlat.png b/2.0/BoxTextured/glTF-pbrSpecularGlossiness/CesiumLogoFlat.png index 45d502ed..8159c4c4 100644 Binary files a/2.0/BoxTextured/glTF-pbrSpecularGlossiness/CesiumLogoFlat.png and b/2.0/BoxTextured/glTF-pbrSpecularGlossiness/CesiumLogoFlat.png differ diff --git a/2.0/BoxTextured/glTF/CesiumLogoFlat.png b/2.0/BoxTextured/glTF/CesiumLogoFlat.png index 45d502ed..8159c4c4 100644 Binary files a/2.0/BoxTextured/glTF/CesiumLogoFlat.png and b/2.0/BoxTextured/glTF/CesiumLogoFlat.png differ diff --git a/2.0/BoxTexturedNonPowerOfTwo/README.md b/2.0/BoxTexturedNonPowerOfTwo/README.md new file mode 100644 index 00000000..f98f966e --- /dev/null +++ b/2.0/BoxTexturedNonPowerOfTwo/README.md @@ -0,0 +1,15 @@ +# Box Textured + +This model uses a Non Power-Of-Two texture with REPEAT mode wrapping. This is an edge case that is technically a valid gltf model, but needs some renderer work to resize the texture before uploading to the GPU. According to the spec: + +glTF does not guarantee that a texture's dimensions are a power-of-two. At runtime, if a texture's width or height is not a power-of-two, it may have problems with certain wrapping or filtering modes. + +See the Non-Power-Of-Two note at the bottom of the [Samplers section](https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#samplers) of the spec. + +## Screenshot + +![screenshot](screenshot/screenshot.png) + +## License Information + +Donated by Cesium for glTF testing. Please follow the [Cesium Trademark Terms and Conditions](https://github.com/AnalyticalGraphicsInc/cesium/wiki/CesiumTrademark.pdf). \ No newline at end of file diff --git a/2.0/BoxTexturedNonPowerOfTwo/glTF-Binary/BoxTextured.glb b/2.0/BoxTexturedNonPowerOfTwo/glTF-Binary/BoxTextured.glb new file mode 100644 index 00000000..03cd2acf Binary files /dev/null and b/2.0/BoxTexturedNonPowerOfTwo/glTF-Binary/BoxTextured.glb differ diff --git a/2.0/BoxTexturedNonPowerOfTwo/glTF-Embedded/BoxTexturedNonPowerOfTwo.gltf b/2.0/BoxTexturedNonPowerOfTwo/glTF-Embedded/BoxTexturedNonPowerOfTwo.gltf new file mode 100644 index 00000000..c9c46149 --- /dev/null +++ b/2.0/BoxTexturedNonPowerOfTwo/glTF-Embedded/BoxTexturedNonPowerOfTwo.gltf @@ -0,0 +1,181 @@ +{ + "asset": { + "generator": "COLLADA2GLTF", + "version": "2.0" + }, + "scene": 0, + "scenes": [ + { + "nodes": [ + 0 + ] + } + ], + "nodes": [ + { + "children": [ + 1 + ], + "matrix": [ + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -1.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0 + ] + }, + { + "mesh": 0 + } + ], + "meshes": [ + { + "primitives": [ + { + "attributes": { + "NORMAL": 1, + "POSITION": 2, + "TEXCOORD_0": 3 + }, + "indices": 0, + "mode": 4, + "material": 0 + } + ], + "name": "Mesh" + } + ], + "accessors": [ + { + "bufferView": 0, + "byteOffset": 0, + "componentType": 5123, + "count": 36, + "max": [ + 23 + ], + "min": [ + 0 + ], + "type": "SCALAR" + }, + { + "bufferView": 1, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [ + 1.0, + 1.0, + 1.0 + ], + "min": [ + -1.0, + -1.0, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 288, + "componentType": 5126, + "count": 24, + "max": [ + 0.5, + 0.5, + 0.5 + ], + "min": [ + -0.5, + -0.5, + -0.5 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [ + 6.0, + 1.0 + ], + "min": [ + 0.0, + 0.0 + ], + "type": "VEC2" + } + ], + "materials": [ + { + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 0 + }, + "metallicFactor": 0.0 + }, + "name": "Texture" + } + ], + "textures": [ + { + "sampler": 0, + "source": 0 + } + ], + "images": [ + { + "uri": "data:image/png;base64,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" + } + ], + "samplers": [ + { + "magFilter": 9729, + "minFilter": 9986, + "wrapS": 10497, + "wrapT": 10497 + } + ], + "bufferViews": [ + { + "buffer": 0, + "byteOffset": 768, + "byteLength": 72, + "target": 34963 + }, + { + "buffer": 0, + "byteOffset": 0, + "byteLength": 576, + "byteStride": 12, + "target": 34962 + }, + { + "buffer": 0, + "byteOffset": 576, + "byteLength": 192, + "byteStride": 8, + "target": 34962 + } + ], + "buffers": [ + { + "byteLength": 840, + "uri": "data:application/octet-stream;base64,AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAvwAAAL8AAAA/AAAAPwAAAL8AAAA/AAAAvwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAL8AAAA/AAAAPwAAAD8AAAC/AAAAPwAAAL8AAAC/AAAAvwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAvwAAAD8AAAC/AAAAPwAAAD8AAAC/AAAAPwAAAL8AAAA/AAAAvwAAAL8AAAA/AAAAPwAAAL8AAAC/AAAAvwAAAL8AAAC/AAAAvwAAAL8AAAA/AAAAvwAAAD8AAAA/AAAAvwAAAL8AAAC/AAAAvwAAAD8AAAC/AAAAvwAAAL8AAAC/AAAAvwAAAD8AAAC/AAAAPwAAAL8AAAC/AAAAPwAAAD8AAAC/AADAQAAAAAAAAKBAAAAAAAAAwED+/38/AACgQP7/fz8AAIBAAAAAAAAAoEAAAAAAAACAQAAAgD8AAKBAAACAPwAAAEAAAAAAAACAPwAAAAAAAABAAACAPwAAgD8AAIA/AABAQAAAAAAAAIBAAAAAAAAAQEAAAIA/AACAQAAAgD8AAEBAAAAAAAAAAEAAAAAAAABAQAAAgD8AAABAAACAPwAAAAAAAAAAAAAAAP7/fz8AAIA/AAAAAAAAgD/+/38/AAABAAIAAwACAAEABAAFAAYABwAGAAUACAAJAAoACwAKAAkADAANAA4ADwAOAA0AEAARABIAEwASABEAFAAVABYAFwAWABUA" + } + ] +} diff --git a/2.0/BoxTexturedNonPowerOfTwo/glTF-MaterialsCommon/BoxTextured0.bin b/2.0/BoxTexturedNonPowerOfTwo/glTF-MaterialsCommon/BoxTextured0.bin new file mode 100644 index 00000000..d2a73551 Binary files /dev/null and b/2.0/BoxTexturedNonPowerOfTwo/glTF-MaterialsCommon/BoxTextured0.bin differ diff --git a/2.0/BoxTexturedNonPowerOfTwo/glTF-MaterialsCommon/BoxTexturedNonPowerOfTwo.gltf b/2.0/BoxTexturedNonPowerOfTwo/glTF-MaterialsCommon/BoxTexturedNonPowerOfTwo.gltf new file mode 100644 index 00000000..45045385 --- /dev/null +++ b/2.0/BoxTexturedNonPowerOfTwo/glTF-MaterialsCommon/BoxTexturedNonPowerOfTwo.gltf @@ -0,0 +1,206 @@ +{ + "asset": { + "generator": "COLLADA2GLTF", + "version": "2.0" + }, + "scene": 0, + "scenes": [ + { + "nodes": [ + 0 + ] + } + ], + "nodes": [ + { + "children": [ + 1 + ], + "matrix": [ + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -1.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0 + ] + }, + { + "mesh": 0 + } + ], + "meshes": [ + { + "primitives": [ + { + "attributes": { + "NORMAL": 1, + "POSITION": 2, + "TEXCOORD_0": 3 + }, + "indices": 0, + "mode": 4, + "material": 0 + } + ], + "name": "Mesh" + } + ], + "accessors": [ + { + "bufferView": 0, + "byteOffset": 0, + "componentType": 5123, + "count": 36, + "max": [ + 23 + ], + "min": [ + 0 + ], + "type": "SCALAR" + }, + { + "bufferView": 1, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [ + 1.0, + 1.0, + 1.0 + ], + "min": [ + -1.0, + -1.0, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 288, + "componentType": 5126, + "count": 24, + "max": [ + 0.5, + 0.5, + 0.5 + ], + "min": [ + -0.5, + -0.5, + -0.5 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [ + 6.0, + 1.0 + ], + "min": [ + 0.0, + 0.0 + ], + "type": "VEC2" + } + ], + "materials": [ + { + "extensions": { + "KHR_materials_common": { + "doubleSided": false, + "technique": "PHONG", + "transparent": false, + "values": { + "diffuse": [ + 0 + ], + "specular": [ + 0.20000000298023225, + 0.20000000298023225, + 0.20000000298023225, + 1.0 + ], + "shininess": [ + 256.0 + ], + "transparency": [ + 1.0 + ] + }, + "name": "Texture" + } + }, + "name": "Texture" + } + ], + "textures": [ + { + "sampler": 0, + "source": 0 + } + ], + "images": [ + { + "uri": "CesiumLogoFlat.png" + } + ], + "samplers": [ + { + "magFilter": 9729, + "minFilter": 9986, + "wrapS": 10497, + "wrapT": 10497 + } + ], + "bufferViews": [ + { + "buffer": 0, + "byteOffset": 768, + "byteLength": 72, + "target": 34963 + }, + { + "buffer": 0, + "byteOffset": 0, + "byteLength": 576, + "byteStride": 12, + "target": 34962 + }, + { + "buffer": 0, + "byteOffset": 576, + "byteLength": 192, + "byteStride": 8, + "target": 34962 + } + ], + "buffers": [ + { + "byteLength": 840, + "uri": "BoxTextured0.bin" + } + ], + "extensionsRequired": [ + "KHR_materials_common" + ], + "extensionsUsed": [ + "KHR_materials_common" + ] +} diff --git a/2.0/BoxTextured/glTF-MaterialsCommon/CesiumLogoFlat.png b/2.0/BoxTexturedNonPowerOfTwo/glTF-MaterialsCommon/CesiumLogoFlat.png similarity index 100% rename from 2.0/BoxTextured/glTF-MaterialsCommon/CesiumLogoFlat.png rename to 2.0/BoxTexturedNonPowerOfTwo/glTF-MaterialsCommon/CesiumLogoFlat.png diff --git a/2.0/BoxTexturedNonPowerOfTwo/glTF-pbrSpecularGlossiness/BoxTextured0.bin b/2.0/BoxTexturedNonPowerOfTwo/glTF-pbrSpecularGlossiness/BoxTextured0.bin new file mode 100644 index 00000000..d2a73551 Binary files /dev/null and b/2.0/BoxTexturedNonPowerOfTwo/glTF-pbrSpecularGlossiness/BoxTextured0.bin differ diff --git a/2.0/BoxTexturedNonPowerOfTwo/glTF-pbrSpecularGlossiness/BoxTexturedNonPowerOfTwo.gltf b/2.0/BoxTexturedNonPowerOfTwo/glTF-pbrSpecularGlossiness/BoxTexturedNonPowerOfTwo.gltf new file mode 100644 index 00000000..b286239f --- /dev/null +++ b/2.0/BoxTexturedNonPowerOfTwo/glTF-pbrSpecularGlossiness/BoxTexturedNonPowerOfTwo.gltf @@ -0,0 +1,197 @@ +{ + "asset": { + "generator": "COLLADA2GLTF", + "version": "2.0" + }, + "scene": 0, + "scenes": [ + { + "nodes": [ + 0 + ] + } + ], + "nodes": [ + { + "children": [ + 1 + ], + "matrix": [ + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -1.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0 + ] + }, + { + "mesh": 0 + } + ], + "meshes": [ + { + "primitives": [ + { + "attributes": { + "NORMAL": 1, + "POSITION": 2, + "TEXCOORD_0": 3 + }, + "indices": 0, + "mode": 4, + "material": 0 + } + ], + "name": "Mesh" + } + ], + "accessors": [ + { + "bufferView": 0, + "byteOffset": 0, + "componentType": 5123, + "count": 36, + "max": [ + 23 + ], + "min": [ + 0 + ], + "type": "SCALAR" + }, + { + "bufferView": 1, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [ + 1.0, + 1.0, + 1.0 + ], + "min": [ + -1.0, + -1.0, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 288, + "componentType": 5126, + "count": 24, + "max": [ + 0.5, + 0.5, + 0.5 + ], + "min": [ + -0.5, + -0.5, + -0.5 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [ + 6.0, + 1.0 + ], + "min": [ + 0.0, + 0.0 + ], + "type": "VEC2" + } + ], + "materials": [ + { + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 0 + }, + "metallicFactor": 0.0 + }, + "extensions": { + "KHR_materials_pbrSpecularGlossiness": { + "diffuseTexture": { + "index": 0 + }, + "specularFactor": [ + 0.20000000298023225, + 0.20000000298023225, + 0.20000000298023225 + ], + "glossinessFactor": 1.0 + } + }, + "name": "Texture" + } + ], + "textures": [ + { + "sampler": 0, + "source": 0 + } + ], + "images": [ + { + "uri": "CesiumLogoFlat.png" + } + ], + "samplers": [ + { + "magFilter": 9729, + "minFilter": 9986, + "wrapS": 10497, + "wrapT": 10497 + } + ], + "bufferViews": [ + { + "buffer": 0, + "byteOffset": 768, + "byteLength": 72, + "target": 34963 + }, + { + "buffer": 0, + "byteOffset": 0, + "byteLength": 576, + "byteStride": 12, + "target": 34962 + }, + { + "buffer": 0, + "byteOffset": 576, + "byteLength": 192, + "byteStride": 8, + "target": 34962 + } + ], + "buffers": [ + { + "byteLength": 840, + "uri": "BoxTextured0.bin" + } + ], + "extensionsUsed": [ + "KHR_materials_pbrSpecularGlossiness" + ] +} diff --git a/2.0/BoxTextured/glTF-techniqueWebGL/CesiumLogoFlat.png b/2.0/BoxTexturedNonPowerOfTwo/glTF-pbrSpecularGlossiness/CesiumLogoFlat.png similarity index 100% rename from 2.0/BoxTextured/glTF-techniqueWebGL/CesiumLogoFlat.png rename to 2.0/BoxTexturedNonPowerOfTwo/glTF-pbrSpecularGlossiness/CesiumLogoFlat.png diff --git a/2.0/BoxTexturedNonPowerOfTwo/glTF-techniqueWebGL/BoxTextured0.bin b/2.0/BoxTexturedNonPowerOfTwo/glTF-techniqueWebGL/BoxTextured0.bin new file mode 100644 index 00000000..d2a73551 Binary files /dev/null and b/2.0/BoxTexturedNonPowerOfTwo/glTF-techniqueWebGL/BoxTextured0.bin differ diff --git a/2.0/BoxTexturedNonPowerOfTwo/glTF-techniqueWebGL/BoxTextured0.vert b/2.0/BoxTexturedNonPowerOfTwo/glTF-techniqueWebGL/BoxTextured0.vert new file mode 100644 index 00000000..05d5e82c --- /dev/null +++ b/2.0/BoxTexturedNonPowerOfTwo/glTF-techniqueWebGL/BoxTextured0.vert @@ -0,0 +1,17 @@ +precision highp float; +uniform mat4 u_modelViewMatrix; +uniform mat4 u_projectionMatrix; +uniform mat3 u_normalMatrix; +attribute vec3 a_position; +varying vec3 v_position; +attribute vec3 a_normal; +varying vec3 v_normal; +attribute vec2 a_texcoord0; +varying vec2 v_texcoord0; +void main(void) { + vec4 pos = u_modelViewMatrix * vec4(a_position,1.0); + v_position = pos.xyz; + gl_Position = u_projectionMatrix * pos; + v_normal = u_normalMatrix * a_normal; + v_texcoord0 = a_texcoord0; +} diff --git a/2.0/BoxTexturedNonPowerOfTwo/glTF-techniqueWebGL/BoxTextured1.frag b/2.0/BoxTexturedNonPowerOfTwo/glTF-techniqueWebGL/BoxTextured1.frag new file mode 100644 index 00000000..3850980a --- /dev/null +++ b/2.0/BoxTexturedNonPowerOfTwo/glTF-techniqueWebGL/BoxTextured1.frag @@ -0,0 +1,29 @@ +precision highp float; +uniform sampler2D u_diffuse; +uniform vec4 u_specular; +uniform float u_shininess; +uniform float u_transparency; +varying vec3 v_position; +varying vec3 v_normal; +varying vec2 v_texcoord0; +void main(void) { + vec3 normal = normalize(v_normal); + vec4 diffuse = texture2D(u_diffuse, v_texcoord0); + vec3 diffuseLight = vec3(0.0, 0.0, 0.0); + vec3 specular = u_specular.rgb; + vec3 specularLight = vec3(0.0, 0.0, 0.0); + vec3 ambient = diffuse.rgb; + vec3 viewDir = -normalize(v_position); + vec3 ambientLight = vec3(0.0, 0.0, 0.0); + ambientLight += vec3(0.2, 0.2, 0.2); + vec3 l = vec3(0.0, 0.0, 1.0); + diffuseLight += vec3(1.0, 1.0, 1.0) * max(dot(normal, l), 0.); + vec3 reflectDir = reflect(-l, normal); + float specularIntensity = max(0., pow(max(dot(reflectDir, viewDir), 0.), u_shininess)); + specularLight += vec3(1.0, 1.0, 1.0) * specularIntensity; + vec3 color = vec3(0.0, 0.0, 0.0); + color += diffuse.rgb * diffuseLight; + color += specular * specularLight; + color += ambient * ambientLight; + gl_FragColor = vec4(color * diffuse.a * u_transparency, diffuse.a * u_transparency); +} diff --git a/2.0/BoxTexturedNonPowerOfTwo/glTF-techniqueWebGL/BoxTexturedNonPowerOfTwo.gltf b/2.0/BoxTexturedNonPowerOfTwo/glTF-techniqueWebGL/BoxTexturedNonPowerOfTwo.gltf new file mode 100644 index 00000000..7401dced --- /dev/null +++ b/2.0/BoxTexturedNonPowerOfTwo/glTF-techniqueWebGL/BoxTexturedNonPowerOfTwo.gltf @@ -0,0 +1,282 @@ +{ + "asset": { + "generator": "COLLADA2GLTF", + "version": "2.0" + }, + "scene": 0, + "scenes": [ + { + "nodes": [ + 0 + ] + } + ], + "nodes": [ + { + "children": [ + 1 + ], + "matrix": [ + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -1.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0 + ] + }, + { + "mesh": 0 + } + ], + "meshes": [ + { + "primitives": [ + { + "attributes": { + "NORMAL": 1, + "POSITION": 2, + "TEXCOORD_0": 3 + }, + "indices": 0, + "mode": 4, + "material": 0 + } + ], + "name": "Mesh" + } + ], + "accessors": [ + { + "bufferView": 0, + "byteOffset": 0, + "componentType": 5123, + "count": 36, + "max": [ + 23 + ], + "min": [ + 0 + ], + "type": "SCALAR" + }, + { + "bufferView": 1, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [ + 1.0, + 1.0, + 1.0 + ], + "min": [ + -1.0, + -1.0, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 288, + "componentType": 5126, + "count": 24, + "max": [ + 0.5, + 0.5, + 0.5 + ], + "min": [ + -0.5, + -0.5, + -0.5 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [ + 6.0, + 1.0 + ], + "min": [ + 0.0, + 0.0 + ], + "type": "VEC2" + } + ], + "materials": [ + { + "values": { + "diffuse": [ + 0 + ], + "specular": [ + 0.20000000298023225, + 0.20000000298023225, + 0.20000000298023225, + 1.0 + ], + "shininess": [ + 256.0 + ], + "transparency": [ + 1.0 + ] + }, + "technique": 0 + } + ], + "textures": [ + { + "sampler": 0, + "source": 0 + } + ], + "images": [ + { + "uri": "CesiumLogoFlat.png" + } + ], + "samplers": [ + { + "magFilter": 9729, + "minFilter": 9986, + "wrapS": 10497, + "wrapT": 10497 + } + ], + "techniques": [ + { + "attributes": { + "a_normal": "normal", + "a_position": "position", + "a_texcoord0": "texcoord0" + }, + "parameters": { + "diffuse": { + "type": 35678 + }, + "modelViewMatrix": { + "semantic": "MODELVIEW", + "type": 35676 + }, + "normal": { + "semantic": "NORMAL", + "type": 35665 + }, + "normalMatrix": { + "semantic": "MODELVIEWINVERSETRANSPOSE", + "type": 35675 + }, + "position": { + "semantic": "POSITION", + "type": 35665 + }, + "projectionMatrix": { + "semantic": "PROJECTION", + "type": 35676 + }, + "shininess": { + "type": 5126 + }, + "specular": { + "type": 35666 + }, + "texcoord0": { + "semantic": "TEXCOORD_0", + "type": 35665 + }, + "transparency": { + "type": 5126 + } + }, + "program": 0, + "states": { + "enable": [ + 2884, + 2929 + ] + }, + "uniforms": { + "u_diffuse": "diffuse", + "u_modelViewMatrix": "modelViewMatrix", + "u_normalMatrix": "normalMatrix", + "u_projectionMatrix": "projectionMatrix", + "u_shininess": "shininess", + "u_specular": "specular", + "u_transparency": "transparency" + } + } + ], + "programs": [ + { + "attributes": [ + "a_normal", + "a_position", + "a_texcoord0" + ], + "fragmentShader": 1, + "vertexShader": 0 + } + ], + "shaders": [ + { + "type": 35633, + "uri": "BoxTextured0.vert" + }, + { + "type": 35632, + "uri": "BoxTextured1.frag" + } + ], + "bufferViews": [ + { + "buffer": 0, + "byteOffset": 768, + "byteLength": 72, + "target": 34963 + }, + { + "buffer": 0, + "byteOffset": 0, + "byteLength": 576, + "byteStride": 12, + "target": 34962 + }, + { + "buffer": 0, + "byteOffset": 576, + "byteLength": 192, + "byteStride": 8, + "target": 34962 + } + ], + "buffers": [ + { + "byteLength": 840, + "uri": "BoxTextured0.bin" + } + ], + "extensionsRequired": [ + "KHR_technique_webgl" + ], + "extensionsUsed": [ + "KHR_technique_webgl" + ] +} diff --git a/2.0/BoxTexturedNonPowerOfTwo/glTF-techniqueWebGL/CesiumLogoFlat.png b/2.0/BoxTexturedNonPowerOfTwo/glTF-techniqueWebGL/CesiumLogoFlat.png new file mode 100644 index 00000000..45d502ed Binary files /dev/null and b/2.0/BoxTexturedNonPowerOfTwo/glTF-techniqueWebGL/CesiumLogoFlat.png differ diff --git a/2.0/BoxTexturedNonPowerOfTwo/glTF/BoxTextured0.bin b/2.0/BoxTexturedNonPowerOfTwo/glTF/BoxTextured0.bin new file mode 100644 index 00000000..d2a73551 Binary files /dev/null and b/2.0/BoxTexturedNonPowerOfTwo/glTF/BoxTextured0.bin differ diff --git a/2.0/BoxTexturedNonPowerOfTwo/glTF/BoxTexturedNonPowerOfTwo.gltf b/2.0/BoxTexturedNonPowerOfTwo/glTF/BoxTexturedNonPowerOfTwo.gltf new file mode 100644 index 00000000..eff658f0 --- /dev/null +++ b/2.0/BoxTexturedNonPowerOfTwo/glTF/BoxTexturedNonPowerOfTwo.gltf @@ -0,0 +1,181 @@ +{ + "asset": { + "generator": "COLLADA2GLTF", + "version": "2.0" + }, + "scene": 0, + "scenes": [ + { + "nodes": [ + 0 + ] + } + ], + "nodes": [ + { + "children": [ + 1 + ], + "matrix": [ + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -1.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0 + ] + }, + { + "mesh": 0 + } + ], + "meshes": [ + { + "primitives": [ + { + "attributes": { + "NORMAL": 1, + "POSITION": 2, + "TEXCOORD_0": 3 + }, + "indices": 0, + "mode": 4, + "material": 0 + } + ], + "name": "Mesh" + } + ], + "accessors": [ + { + "bufferView": 0, + "byteOffset": 0, + "componentType": 5123, + "count": 36, + "max": [ + 23 + ], + "min": [ + 0 + ], + "type": "SCALAR" + }, + { + "bufferView": 1, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [ + 1.0, + 1.0, + 1.0 + ], + "min": [ + -1.0, + -1.0, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 288, + "componentType": 5126, + "count": 24, + "max": [ + 0.5, + 0.5, + 0.5 + ], + "min": [ + -0.5, + -0.5, + -0.5 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [ + 6.0, + 1.0 + ], + "min": [ + 0.0, + 0.0 + ], + "type": "VEC2" + } + ], + "materials": [ + { + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 0 + }, + "metallicFactor": 0.0 + }, + "name": "Texture" + } + ], + "textures": [ + { + "sampler": 0, + "source": 0 + } + ], + "images": [ + { + "uri": "CesiumLogoFlat.png" + } + ], + "samplers": [ + { + "magFilter": 9729, + "minFilter": 9986, + "wrapS": 10497, + "wrapT": 10497 + } + ], + "bufferViews": [ + { + "buffer": 0, + "byteOffset": 768, + "byteLength": 72, + "target": 34963 + }, + { + "buffer": 0, + "byteOffset": 0, + "byteLength": 576, + "byteStride": 12, + "target": 34962 + }, + { + "buffer": 0, + "byteOffset": 576, + "byteLength": 192, + "byteStride": 8, + "target": 34962 + } + ], + "buffers": [ + { + "byteLength": 840, + "uri": "BoxTextured0.bin" + } + ] +} diff --git a/2.0/BoxTexturedNonPowerOfTwo/glTF/CesiumLogoFlat.png b/2.0/BoxTexturedNonPowerOfTwo/glTF/CesiumLogoFlat.png new file mode 100644 index 00000000..45d502ed Binary files /dev/null and b/2.0/BoxTexturedNonPowerOfTwo/glTF/CesiumLogoFlat.png differ diff --git a/2.0/BoxTexturedNonPowerOfTwo/screenshot/screenshot.png b/2.0/BoxTexturedNonPowerOfTwo/screenshot/screenshot.png new file mode 100644 index 00000000..47c5d4ca Binary files /dev/null and b/2.0/BoxTexturedNonPowerOfTwo/screenshot/screenshot.png differ