Virtual Tileset
Virtual Tileset คือ ชุดข้อมูลที่เกิดจากการรวมข้อมูล Asset หลายรายการเข้าด้วยกัน โดยมีโครงสร้างข้อมูลเป็นไปตามมาตรฐาน GeoVolumes
คุณสมบัติของ Virtual Tileset
- เป็นผลลัพธ์ที่ได้จากการรวมข้อมูล Asset หลายชุดเข้าด้วยกัน
- โครงสร้างข้อมูลที่ได้จาก API จะแตกต่างจากโครงสร้างของ Asset ต้นฉบับ
- ผลลัพธ์ที่ได้จะมีรายละเอียดของ Asset ที่ถูกนำมารวมไว้อยู่ภายใน
tileset.json
tileset.json คือ ไฟล์ที่ใช ้ในการจัดระเบียบและกำหนดโครงสร้างการจัดเก็บ 3D Asset โดยระบุว่าใน Tileset ประกอบด้วย Tile อะไรบ้าง แต่ละ Tile อยู่ในตำแหน่งใด และเชื่อมโยงสัมพันธ์กันอย่างไรภายในระบบ

การทำ Visual Tileset
โครงสร้างของไฟล์ tileset.json
asset
: ข้อมูลเมตาดาทาของ Tileset เช่น เวอร์ชันของมาตรฐานที่ใช้ เพื่อระบุว่า Tileset นี้พัฒนาตามมาตรฐานเวอร์ชันใดgeometricError
: ค่าความคลาดเคลื่อนเชิงเรขาคณิตที่อนุญาตในระดับ Tile ปัจจุบัน หากค่าความคลาดเคลื่อนยังสูงกว่ากำหนด ระบบจะทำการโหลด Tile ย่อยที่มีรายละเอียดสูงขึ้นแทนroot
: โหนด Tile หลัก (Root Tile) ของโครงสร้าง Tileset ซึ่งเป็นจุดเริ่มต้นในการจัดการและแสดงผล Tile อื่น ๆboundingVolume
: ข้อมูลขอบเขตพื้นที่ที่ Tile ครอบคลุม อาจกำหนดเป็นรูปทรงต่าง ๆ เช่น กล่อง (box), พื้นที่(region) หรือทรงกลม (sphere)content
: ระบุชื่อไฟล์ 3D Asset ที่ใช้ใน Tile นั้น ๆ เช่นtile0.b3dm
หรือไฟล์ประเภทอื่นตามมาตรฐาน 3D Tileschildren
: รายการ Tile ย่อยที่อยู่ภายใต้ Tile ปัจจุบัน ซึ่งจะถูกเรียกใช้งานเมื่อจำเป็น เช่น เมื่อผู้ใช้งานซูมเข้าใกล้พื้นที่ดังกล่าว
refine
: วิธีการแสดงผล Tile เมื่อโหลด Tile ย่อย มีค่าหลัก 2 แบบ ได้แก่ADD
: แสดง Tile ย่อยเพิ่มเข้าไปพร้อมกับ Tile ปัจจุบันREPLACE
: แทนที่ Tile ปัจจุบันด้วย Tile ย่อย
ตัวอย่างโครง tileset.json
{
"asset": {
"version": "1.0"
},
"geometricError": 500,
"root": {
"boundingVolume": {
"region": [100.4931, 13.7563, 100.4940, 13.7570, 0, 100]
},
"geometricError": 250,
"refine": "ADD",
"content": {
"uri": "tile0.b3dm"
},
"children": [
{
"boundingVolume": {
"region": [100.4931, 13.7563, 100.4935, 13.7567, 0, 50]
},
"geometricError": 100,
"content": {
"uri": "tile1.b3dm"
}
},
{
"boundingVolume": {
"region": [100.4935, 13.7567, 100.4940, 13.7570, 0, 50]
},
"geometricError": 100,
"content": {
"uri": "tile2.b3dm"
}
}
]
}
}