上述结构图展示了texture层和images层、sampleres层之间的关系。下面将分别解释各个层之间的具体属性。
上面是一个简单的texture的例子,其中主要包括"name","sampler"和"source"三个属性,"name"表示该图片的名字,"sampler"表示该图片的采样器如过滤器的设置平铺方式等,"source"表示图片的路径或者图片资源的位置。
需要注意的是glTF2.0即当前版本仅支持2D的图片资源!images的表示分为两种,一种是以url的形式,直接指明指向的图片,一种是以base64的uri来储存数据图片。当以后者储存的时候,需要指明数据在哪(bufferView)及数据类型(mimeType)。
这么做的原因是因为,buffer存储的为base64编码的数据,没有前面的类型啥的,**data:image/jpeg;base64,iVBORw0KG.......**但是在实际项目中没这么用过。samplers中主要为过滤器和repeat属性。数字分别代表为:
magFilter||minFilter 9728: NearestFilter,9729: LinearFilter,9984: NearestNearestFilter,9985: LinearNearestFilter,9986: NearestLinearFilter,9987: LinearLinearFilter warpS||warpT 33071: ClampToEdgeWrapping,33648: MirroredRepeatWrapping,10497: RepeatWrapping上述具体的意思可能新开坑讲吧。 这里的数字是因为在OpenGL或者webgl内部是这么代表的,所以是这几个数字。
还有需要注意的是在webgl中需要图片的尺寸为2的n次幂,但是gltf是不限制尺寸的,如果自己写的话需要改变图片的尺寸。