api icon indicating copy to clipboard operation
api copied to clipboard

Fundamentals to decide on for 1/31

Open azaroth42 opened this issue 1 year ago • 4 comments

Target: a static view of multiple models in a single scene

  • Scenes

    • Properties (including defaults)
    • Transform model
  • Camera [sensors] -- SHOULD define, ????? clients support?

    • Types / Properties (echo-locator sensor? infrared? stereoscopic?)
    • Transform model
    • default camera details -- which way is default "forwards"? positive z?
  • Lighting [emitters]

    • Types / Properties
    • Transform model
    • default lighting details
  • Models

    • Multi-file models (is this an issue?)
  • Precedence of cameras and lights from multiple models/scenes

    • ignore by models/manifest? behavior / annotation feature to specify? x3d default? gltf has no default?
    • scene in scene complications
    • options for ignore imported
  • DirectionTransform -- details

  • Produce a huge manifest that demonstrates all the possibilities

azaroth42 avatar Jan 30 '24 23:01 azaroth42

Properties of Scenes:

  • General: Turning on and off features of different entities; possibly via behaviors
  • Camera constraints sensible -- don't zoom into the middle of a model; don't look at the back/bottom of an incomplete model
  • What should be possible/impossible to describe/define?
  • navigationMode as a (synthetic?) property
  • collision detection? model to look at vs space to move through
  • Difference between publisher saying "don't show this scene other than from this point" vs "this camera can only do this"
  • "inheritance" on/off
  • Scene with duration can't go into non-duration scene
  • +Z is front

Transform model:

  • Transform model okay
  • No need to move pivot point
  • Can't have multiple pivots without multiple scenes/models

Cameras

  • Types: Perspective, Orthographic/Orthogonal
  • Camera is optional ; the first camera found in order in the manifest, then that is the default camera
  • Multiple cameras are choices
  • Cannot scale a camera
  • Initial state: at the origin, looking at -INF in Z
  • (Question: orbit of camera / interaction)
  • Properties: field of view - angle in degrees, bottom to top
  • Properties: near and far, each floating point value in units of scene's dimensional space, optional

General Notes: Orthographic camera isn't "in" the scene, like directional light.

azaroth42 avatar Jan 31 '24 16:01 azaroth42

  • +Y is up for scenes
  • follow and orbit are similar but distinct
  • Scale on cameras does make sense, as you're scaling the local coordinate space (an otherwise empty scene apart from the camera) to then map into the target scene's coordinate space
  • lookAt on camera object -- value is a reference to a point, either by a point selector or an annotation that has a target in the scene (not a model)
  • Question about multiple target painting annotations -- disallow or not?
  • Order of operations -- lookAt is the last thing, so cannot rotate/translate after looking at something
  • Origin or Centroid -- behavior on camera to swap between

azaroth42 avatar Jan 31 '24 17:01 azaroth42

Lights

  • Properties: color, RGB space
  • Properties: intensity, array of construct {"value": float, "unit": "relative"} (or "lumens" or "whatever"), multiple equivalents possible
  • Directional Light default is straight down. Then rotate from there with a RotateTransform. Don't use explicit vector, yes to lookAt with a pointSelector to calculate the vector from.
  • Position is ignored for Ambient or Directional, so annotate the scene.
  • Don't specify decay (at least for now)
  • Spotlights - no decay, no penumbra, angle property on the light with degrees. maximum of 180 degrees.
  • Lights are optional, viewer should make sure there's some way to see the scene.
  • behavior around objects casting shadows -- light has casting flag, annotation has a 'receives shadows' flag for whether it should show shadows from objects.
  • Note about hidden
  • default color is white and intensity is viewer dependent (reasonable)

azaroth42 avatar Jan 31 '24 19:01 azaroth42

Turning on/off:

  • Flag on annotation of whether to include the cameras or lights that are in the scene or model in the body, e.g. no-cameras, no-lights
  • Note that you can't selectively import lights or cameras from within a model/scene

azaroth42 avatar Jan 31 '24 19:01 azaroth42