Box Vertex Colors GLB
Box Vertex Colors GLB は のサンプル(Khronos glTF Sample Assets を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
01-box-vertex-colors.glb9c48227f33b0ba2fbcf23b98ebf60d1c8ae0c6e6c5281e0aa3cc58affee103823D
glTFのJSONとバイナリデータを1ファイルにまとめた形式。先頭4バイトはglTFです。
67 6C 54 46 glTFSIGNATURE = bytes.fromhex("676c5446")
OFFSET = 0
def is_glb(path: str) -> bool:
with open(path, "rb") as f:
f.seek(OFFSET)
head = f.read(len(SIGNATURE))
return head == SIGNATUREconst SIGNATURE = [0x67, 0x6c, 0x54, 0x46];
const OFFSET = 0;
// bytes: a Uint8Array / Buffer holding the start of the file
export function isGlb(bytes) {
return SIGNATURE.every((byte, i) => bytes[OFFSET + i] === byte);
}package fileid
import "bytes"
var isglbSignature = []byte{0x67, 0x6c, 0x54, 0x46}
const isglbOffset = 0
func IsGlb(b []byte) bool {
end := isglbOffset + len(isglbSignature)
if len(b) < end {
return false
}
return bytes.Equal(b[isglbOffset:end], isglbSignature)
}const SIGNATURE: &[u8] = &[0x67, 0x6c, 0x54, 0x46];
const OFFSET: usize = 0;
fn is_glb(bytes: &[u8]) -> bool {
bytes.get(OFFSET..OFFSET + SIGNATURE.len()) == Some(SIGNATURE)
}<?php
$signature = "\x67\x6c\x54\x46";
$offset = 0;
function is_glb(string $bytes): bool {
global $signature, $offset;
return substr($bytes, $offset, strlen($signature)) === $signature;
}Binary glTF は3Dビューア、アセットパイプライン、モデル変換、アバター読み込み、シーン検証などで使われます。コンテナ・拡張子・バイナリチャンク・テクスチャ参照が実装の挙動に影響します。
形式が判定できたからといって、信頼できない入力が安全とは限りません。パーサ例外・巨大ファイル・想定外のエンコーディング・外部参照を考慮してください。
11 個のサンプルで、ビューアの読み込み・拡張子判定・ファイルサイズごとの読み込み時間をテストできます。
Box Vertex Colors GLB は のサンプル(Khronos glTF Sample Assets を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
01-box-vertex-colors.glb9c48227f33b0ba2fbcf23b98ebf60d1c8ae0c6e6c5281e0aa3cc58affee10382Animated Colors Cube GLB は のサンプル(Khronos glTF Sample Assets を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
02-animated-colors-cube.glb995bb9db5bd011b64bc9fc2235c60e5455e2931e509db5e715b4d20afc5ba71eAnimated Morph Cube GLB は のサンプル(Khronos glTF Sample Assets を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
03-animated-morph-cube.glb214ee56160a50dbf22543a1d66dbf860986e87f0efac3d89feac1359d0e6aeabSimple Instancing GLB は のサンプル(Khronos glTF Sample Assets を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
04-simple-instancing.glb1c9425627481346a8c226118f7000db7cd7f80198e9f54331f8b664d16726f3fMetal Rough Spheres GLB は のサンプル(Khronos glTF Sample Assets を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
05-metal-rough-spheres.glb5e677f260ec0f366967a6e9545de2f3dab2a160e307b9bcb9d050cd2028f63f8Glass Vase Flowers GLB は のサンプル(Khronos glTF Sample Assets を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
06-glass-vase-flowers.glb430c9937664cfc74299205dcc388e4269bb688817f3d3866ef35aab71e93b852Clearcoat Wicker GLB は のサンプル(Khronos glTF Sample Assets を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
07-clearcoat-wicker.glbf162b0cd7f8e6b7cef211eec57762165a78039676b8592ce1f965e2ddb34e843Avocado GLB は のサンプル(Khronos glTF Sample Assets を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
08-avocado.glbccc9c3ce56423720b09399c2351537207cd5a65f859f9e6e2f30922762f3abd4Toy Car GLB は のサンプル(Khronos glTF Sample Assets を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
09-toy-car.glb01a60862de55cd4b9f3acfab0b0def86451800f9c42467fcd61052c16cb9838cWater Bottle GLB は のサンプル(Khronos glTF Sample Assets を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
10-water-bottle.glbb337e526fd6a162013c2984aeec163f5fbb4f717252724dfc3f3458bd51df94bBox GLB は のサンプル(Khronos glTF Sample Assets を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
box.glbed52f7192b8311d700ac0ce80644e3852cd01537e4d62241b9acba023da3d54eBinary glTF ファイルはバイトシグネチャ 67 6C 54 46 ("glTF") で始まります。拡張子に頼らず、この先頭バイトを読み取って形式を判定してください。
Binary glTF のMIMEタイプは model/gltf-binary, model/gltf+binary です。
Binary glTF ファイルは .glb 拡張子を使います。拡張子は慣習にすぎず中身を保証しないため、シグネチャや構造のチェックと組み合わせてください。