3D Element

Un element 3D repraesentat obiecta tridimensionala in tuo projecto, includente modelos 3D importatos, geometriae primitives basicas, formas extruditas ex formis 2D, textum 3D, et resultata operationum booleanarum.

Elementa 3D communia campa communia ex Elementum Basic et Elementum View communicant, dum etiam proprietates 3D-specificas addit.

Basic Fields

ProprietasTypusRequiriturExemplumAmbitus ValorisDescriptio
typestringtrue-3DGenus elementorum. Pro elementis 3D, hoc semper est "3D".
sourceIdstringfalse--Identificator internus pro modelo 3D vel fonte geometriae.
extstringfalse-glb | gltf | fbx | obj | geometry | primitive | text3d | parametric | curveExtensio file vel genus nodi elementorum 3D.
externalUrlstringfalse--URL optativus pro onere modelorum externorum glTF/glb. Machina modelum captabit et cachabit.
nodeTypestringfalse-primitive | geometry | text3d | import | model | parametric | curveGenus nodi 3D. Determinat structuram proprietatum additivarum.
categorystringfalse-For primitive/geometry: basic | polyhedron. For parametric: extrusion | lathe | sweep. For curve: helix | torusKnot | customSub-categoria nodi 3D. Valores praesto dependent a nodeType.
geometryTypestringfalse--Genus geometriae basicae. Vide sectionem "Geometry Types" infra.
originalWidthnumberfalse--Latitudo originalis modelis 3D in unitatibus mundi.
originalHeightnumberfalse--Altitudo originalis modelis 3D in unitatibus mundi.
originalDepthnumberfalse--Profunditas originalis modelis 3D in unitatibus mundi.
animationobjectfalse--Proprietates animationis pro modelis glTF cum animationibus. Continet currentIndex, speed, et loop proprietates.

3D Transform Fields

Praeter proprietates transform standardas 2D (x, y, rotatio, scalaX, scalaY), elementa 3D proprietates transform additivas pro positione et rotatione tridimensionali sustinent:

ProprietasTypusRequiriturExemplumAmbitus ValorisDescriptio
znumberfalse--Positio profunditatis elementorum in spatio 3D. Unitas sunt alignatae cum pixelibus, ubi z=0 respondet plano canvas.
rotationXnumberfalse--Rotatio circa axem X, in gradibus.
rotationYnumberfalse--Rotatio circa axem Y, in gradibus.
scaleZnumberfalse-> 0Factor scalae per axem Z. Valores > 1 augent, valores inter 0 et 1 contrahunt.

Geometry Types

Campum geometryType specificat genus geometriae 3D basicae. Genera praesto per categorias ordinantur (specificata per campum category cum nodeType est "geometry" vel "primitive"):

Nota: nodeType: "primitive" est alias pro "geometry". Ambo sustinentur et identice se gerunt.

Basic Shapes (category: "basic"):

  • cube - Cubus sex-facialis
  • sphere - Geometria spherica
  • cylinder - Geometria cylindrica
  • cone - Geometria conica
  • torus - Geometria donut-formis
  • capsule - Geometria pilulae-formis
  • disc - Discus circularis planus

Polyhedrons (category: "polyhedron"):

  • pyramid - Pyramidis quattuor-facialis
  • octahedron - Polyhedron octo-facial
  • icosahedron - Polyhedron viginti-facial
  • dodecahedron - Polyhedron duodecim-facial
  • hexPrism - Prismma sex-faciale
  • triangle - Prismma triangulare

Parametric Node Types

Nodi parametrici (nodeType: "parametric") geometriae procedurali generant:

Extrusion (category: "extrusion"):

  • Extrudit formas 2D per axem Z cum profunditate et beveling

Lathe (category: "lathe"):

  • Revolvit profilem 2D circa axem ad obiecta cylindrica creanda

Sweep (category: "sweep"):

  • Sweeps profilem 2D per viam 3D ad formas tubularis vel rail-based creandas

Curve Node Types

Nodi curvae (nodeType: "curve") creant curvas et vias 3D:

Helix (category: "helix"):

  • Curvas spirales helicas cum radius et pitch configurabilibus

Torus Knot (category: "torusKnot"):

  • Curvas nodorum mathematicorum in superficie torus

Custom (category: "custom"):

  • Vias curvarum definitas ab usore

Topology Node Types

Operationes topologicas (boolean, array, mirror, compound) in editori peraguntur et output geometriae standardis producunt. Hae operationes tempore edendi applicantur et non requirunt tractationem specialem in API render.

Shape Extrusion

Elementa 3D creari possunt per extrusionem formarum 2D. Cum convertis elementa formae 2D ad 3D in editori, generat novum type: "3D" elementum cum sequentibus campis additibus:

ProprietasTypusRequiriturExemplumAmbitus ValorisDescriptio
extrusionSourceobjectfalse--Data formae 2D originalis ad creandum extrusionem 3D. Continet completum ShapeNodeData.
shapeSizeXnumberfalse--Latitudo formae extruditae, in pixelibus.
shapeSizeYnumberfalse--Altitudo formae extruditae, in pixelibus.
shapeExtrusionnumberfalse--Profunditas extrusionis per axem Z, in pixelibus.
shapeCornerstringfalse-round | chamfer | straightGenus anguli pro formis extruditis.
shapeRoundnessSmoothnumberfalse-0 - 1Lenitudo angulorum rotundorum (0-1).
shapeRoundnessArcnumberfalse--Radius arcus pro angulis rotundis.
shapeBevelnumberfalse--Profunditas bevel pro angulis.
shapeBevelSidesnumberfalse--Numerus segmentorum pro angulis bevel.

3D Text

Elementa 3D etiam textum tridimensionalem cum profunditate et beveling repraesentare possunt:

ProprietasTypusRequiriturExemplumAmbitus ValorisDescriptio
textContentstringfalse--Contentum textus ad renderandum in 3D.
textStyle3Dobjectfalse--Proprietates stylorum textus (font, magnitudo, pondus, etc.). Reutlizes aliquas camporum stylorum textus 2D.
textDepthnumberfalse--Profunditas extrusionis textus 3D.
textBevelSizenumberfalse--Magnitudo bevel in angulis textus.
textBevelSegmentsnumberfalse--Numerus segmentorum pro beveling textus.
textCurveSegmentsnumberfalse--Numerus segmentorum pro curvis textus.

Materials and Textures

Elementa 3D systema materiae PBR (Physically Based Rendering) cum comprehensiva textura supporto utuntur:

ProprietasTypusRequiriturExemplumAmbitus ValorisDescriptio
materialobjectfalse--Configuratio completa materiae inclusa proprietatibus PBR et mapis texturae.

Objectum material continet:

physicalMaterialData - Proprietates materiae PBR:

  • color (string) - Color basis in formato hex, default: '#818cf8'
  • roughness (number) - Rugositas superficiei, 0-1, default: 0.4
  • metalness (number) - Proprietas metallicum, 0-1, default: 0.0
  • opacity (number) - Opacitas materiae, 0-1, default: 1.0
  • transmission (number) - Transmissio lucis pro materiis similes vitri, 0-1, default: 0.0
  • ior (number) - Index refractionis, typice 1.0-2.5, default: 1.5
  • clearcoat (number) - Intensitas strati clear coating, 0-1, default: 0.0
  • clearcoatRoughness (number) - Rugositas clear coat, 0-1, default: 0.0
  • sheen (number) - Effectus sheen similis textili, 0-1, default: 0.0
  • sheenRoughness (number) - Rugositas sheen, 0-1, default: 0.0
  • sheenColor (string) - Color tint sheen
  • thickness (number) - Crassitudo materiae pro transmissione

materialXPath (string) - Via praestituta MaterialX optativa:

  • Exempla: 'StandardSurface/standard_surface_gold.mtlx', 'StandardSurface/standard_surface_brass_tiled.mtlx'
  • Cum onus, substituit physicalMaterialData cum valoribus praestitutis

Texture Maps - Objectum materiae potest continere URLs maparum texturae:

  • colorMap - Color basis/textura diffusa
  • normalMap - Mappa normalis pro detail superficiei
  • roughnessMap - Textura rugositas
  • metalnessMap - Textura metalness
  • aoMap - Mappa occlusionis ambientis
  • emissiveMap - Textura emissiva/luce

Mappa texturae applicantur utens functionibus TSL (Three.js Shading Language) pro optima performance.

glTF Models and Animations

Elementa 3D cum nodeType: "model" vel nodeType: "import" repraesentant modelos 3D importatos:

Nota: nodeType: "import" est alias pro "model". Ambo sustinentur et identice se gerunt.

  • Utere source.url ad specificandum URL file remote glTF/glb/FBX
  • Machina modelum per sourceId captabit et cachabit
  • Si modelum animationes continet, utere animation.currentIndex ad seligendum quam animationem ludere
  • Proprietates animationis: currentIndex (number), speed (number, default 1.0), loop (boolean, default true)
  • Modela compressionem DRACO sustinent pro minoribus magnitudinibus file
  • sizeParams continet width, height, depth pro dimensionibus modelis

Examples

Basic Cube

cubeElement.json
 
{
  "id": "3d-cube-001",
  "type": "3D",
  "start": 0,
  "duration": 5,
  "trackIndex": 0,
  "x": 540,
  "y": 540,
  "z": 0,
  "width": 200,
  "height": 200,
  "anchorX": 100,
  "anchorY": 100,
  "rotation": 0,
  "rotationX": 30,
  "rotationY": 45,
  "scaleX": 1,
  "scaleY": 1,
  "scaleZ": 1,
  "alpha": 1,
  "ext": "geometry",
  "nodeType": "geometry",
  "category": "basic",
  "geometryType": "cube",
  "material": {
    "physicalMaterialData": {
      "color": "#4A90E2",
      "roughness": 0.4,
      "metalness": 0.0
    }
  }
}

Extruded Shape

extrudedShapeElement.json
 
{
  "id": "3d-extrusion-001",
  "type": "3D",
  "start": 0,
  "duration": 5,
  "trackIndex": 0,
  "x": 540,
  "y": 540,
  "z": 0,
  "width": 300,
  "height": 300,
  "anchorX": 150,
  "anchorY": 150,
  "rotation": 0,
  "rotationX": 0,
  "rotationY": 0,
  "scaleX": 1,
  "scaleY": 1,
  "scaleZ": 1,
  "alpha": 1,
  "ext": "parametric",
  "nodeType": "parametric",
  "category": "extrusion",
  "shapeSizeX": 300,
  "shapeSizeY": 300,
  "shapeExtrusion": 100,
  "material": {
    "physicalMaterialData": {
      "color": "#FF6B6B",
      "roughness": 0.3,
      "metalness": 0.1
    }
  },
  "extrusionSource": {
    "shapeType": "SHAPE_STAR",
    "starPoints": 5,
    "starInnerRadius": 0.4
  }
}

glTF Model with Animation

gltfModelElement.json
 
{
  "id": "3d-model-001",
  "type": "3D",
  "start": 0,
  "duration": 10,
  "trackIndex": 0,
  "x": 540,
  "y": 540,
  "z": -200,
  "width": 400,
  "height": 400,
  "anchorX": 200,
  "anchorY": 200,
  "rotation": 0,
  "rotationX": 0,
  "rotationY": 0,
  "scaleX": 1,
  "scaleY": 1,
  "scaleZ": 1,
  "alpha": 1,
  "ext": "glb",
  "nodeType": "model",
  "sourceId": "cached-model-123",
  "source": {
    "url": "https://example.com/models/animated_character.glb"
  },
  "animation": {
    "currentIndex": 0,
    "speed": 1.0,
    "loop": true
  },
  "sizeParams": {
    "width": 2,
    "height": 2,
    "depth": 2
  },
  "originalWidth": 2,
  "originalHeight": 2,
  "originalDepth": 2
}

Notes

  • Elementa 3D plene cum pipeline rendering 2D existentis integrantur. Potes elementa 2D et 3D in eodem projecto miscere.
  • Camera usum projectionis perspectivae pixel-perfectae, curans ut ad z=0, unus unitas mundi aequat unum pixel.
  • Pro transformationibus 3D, systema coordinatarum sequitur conventionem 3D standardam: X (dexter), Y (sursum), Z (ad spectatorem).
  • Proprietates materiae et texturae typice a editori constitutae sunt. Si JSON manu scribis, refer ad documenta praestitutorum MaterialX pro materiis praestitis.
  • Editor etiam elementa Light3D et Particle3D in scaenis 3D generare potest. Haec sunt generata ab editori et non opus est manualiter construere.