Skip to content

Una scena può essere descritta in due modi:

  • attraverso il formato standard gltf

  • usando un insieme di oggetti standar che in 3DEera rientrano sotto il nome di di collectors

alt text

"header"

  • "name": nome della scena

  • "version": versione

"scene" : {
    "name" : "scene name",
    "version" : 1.0
}

"assets"

  • "images": contiene le descrizioni delle immagini usate all'interno della scena

  • "glb": indica il fil glb da caricare in fase di inizializzazione

  • "url": contiene i path o i link alla posizione di immagini e file glb. Più oggetti images o glb possono far riferimento allo stesso file. La stessa immagine può essere utilizzata da più oggetti image con attributi o finalità d'uso differenti

"assets" : 
{
    "images":[],
    "glb":[],
    "url":[]
}

"images"

  • "id": (required): none con cui identificare un'immagine

  • "type": (required): modalità con cui un'immagine viene caricata

  • "img": immagine da usare come texture

  • "panorama": immagine da usare come immagine d'ambiente o più in generale da proiettare in una visuale a 360°

  • "alpha": (required): indica il livello di trasparenza di un'immagine

  • "opaque": immagine senza trasparenza

  • "blend": immagine semi trasparente
  • "mask": immagine con porzioni completamente trasparenti

  • "ibl":: indica la qulità di campionamento se un'immagine viene usata per calcolare l'illuminazione d'ambiente (Imag Base Lighting)

  • "low": qualità bassa

  • "mid": qualità media
  • "high": qualità alta

  • "url": (required): riporta l'indice all'array "url"

{
    "id": "str",
    "type": "img" | "panorama",
    "alpha": "opaque | blend | mask",
    "ibl": "low" | "mid" | "hig",
    "url": 0
}

alt text

"glb"

  • "url": (required): riporta l'indice all'array "url"
{
    "url": 1
}

"url"

[
    "img1.png",
    "img2.jpg",
    "scene3d.glb"
]

"collectors"

  • "rooms": geometria su cui viene proiettata un'immagine 360° da usare come immagine d'ambiente

  • "widgets": oggetti da utilizzare per costruire User Interface 3D

  • "spritesheets": oggetti su cui poter proiettare animazioni 2D

 "collectors"{
     "rooms" : [],
     "widgets" : [],
     "spritesheets" : []
  }

"rooms"

  • "id":(required) nome con cui identificare il collector

  • "image_id": (required) id dell'immagine da usare come proiezione

  • "size": (required) dimensioni della geometria in scena

  • "rotation": (required) rotazione dell'immagine attorno al suo centro
  • "renderable": (required) indica se all'avvio l'immagine deve essere già renderizzata
{
    "id": "str",
    "image_id": "str",
    "size": 100,
    "rotation": [0, 90, 0],
    "renderable": false
}

alt text

Hedera mette a disposizione pannelli 3D da usare come "user interface" nella scena. I pannelli sono di due tipologie:

  • textured: pannello a cui è possibile applicare un'immagine ("image?id") da usare come "icona"

  • flat: un semplice piano che eventualmente può essere reso trasparente e utilizzato come "placeholder".

"widgets"

  • "id":(required) nome con cui identificare il collector

  • "image_id": id dell'immagine da usare icona

  • "size": (required) dimensioni (larghezza, altezza) relative alla scena

  • "off-scene": (required) indica se renderizzare i widget ignorando la posizione degli altri elementi della scena.

                 In questo modo i widget  apparirano sempre visibili a prescindere se nello spazio 3d si tovino altri oggetti interposti rispetto al punto di vista
    
  • "mask": (required) indica se il piano del widget deve essere "ritagliato" dall' alpha di un immagine

  • "renderable": (required) indica se all'avvio l'immagine deve essere già renderizzata

 {
    "id": "str",
    "image_id": "str",
    "size": [1, 1],
    "distance": 0 | 1,
    "position": [0, 0],
    "off-scene":0 | 1,
    "mask": 1,
    "renderable": true | false
}

"spritesheets"

{
    "id": "numbersSprite",
    "image_id": "numbers",
    "frames": 18,
    "sprite": [85.3, 85.3],
    "size": 4.0,
    "renderable": true
}