"What is the use case for rendering 2D pixel-coordinates-based shapes (or even controls) within a 3D scene consisting of meshes constructed on 3D coordinates of arbitrary unit?"
In my field of work (avionics displays),we might have a lot of use cases for that. However, you also have that in video games, where they like to render 2D interactive panels in a 3D perspective in the game world. Hervé 2013/7/21 August Lammersdorf, InteractiveMesh <s...@interactivemesh.com> > I. JavaFX 3D goals > > Whatever the use case will be JavaFX 3D will be measured against the > business needs and certainly against the capabilities of the latest > releases of the native 3D APIs Direct3D (11.1) and OpenGL (4.3). This might > be unfair or not helpful, but it is legitimate because they are the upper > limits. > > So, even an object-oriented scene-graph-based 3D implementation should in > principle be able to benefit from almost all native 3D features and should > provide access to them. If the JavaFX architecture enables this approach > then a currently minor implementation state will be rather accepted. > > Potential features are currently determined and limited by JavaFX' > underlying native APIs Direct3D 9 and OpenGL ES 2. Correct? > > Are there any perspectives available about future features? > > - core, e.g.: primitives (points, lines, line-strip, triangle-strip, > patches, corresponding adjacency types), vertex attributes, > double-precision, shaders (vertex, tessalation, geometry, fragment, > compute), 3D-/cubemap-texture, multitextures, compressed texture, texture > properties, multipass rendering, occlusion queries, stencil test, offscreen > rendering into image, multiple active cameras, stereo? > > - APIs, e.g.: user input for scene navigation and model interaction > (keyboard, mouse, touchpad/screen), geometry utilies, skinning, physics > engine interface (kinematics), shadows > > Will JavaOne 2013 highlight the JavaFX 3D strategy extensively? > > Another source: Exploring JavaFX 3D, Jim Weaver > https://oraclein.activeevents.**com/connect/fileDownload/**session/** > 4D7869532A53BCAC5A18FB5687C110**3C/CON1140_Weaver-exploring-** > javafx-3d.pdf<https://oraclein.activeevents.com/connect/fileDownload/session/4D7869532A53BCAC5A18FB5687C1103C/CON1140_Weaver-exploring-javafx-3d.pdf> > > II. Mixing 2D and 3D > > - "to tease apart the scene graph into Node, Node3D, and NodeBase ... > doesn't work" > > - "we keep the integrated scene graph as we have it", > > So, all current and future 3D leaf and branch nodes are/will be derived > from Node, which is primarily designed for use in a 2D/2.5D scene graph. > > Alea iacta est! > > Various Node's properties and methods seem not to be relevant or > applicable for 3D nodes (e.g. Shape3D). Are you going to communicate which > of these several hundreds (see below) should be used preferably, have a > different semantic, should not be used or aren't supported for 3D nodes? > > - "So the idea is that we can have different pipelines optimized for 2D > or 3D rendering" > > Would be great! > > - Scene - Scene2D/SubScene2D - Scene3D/SubScene3D > > - "if you put a 2D rectangle in a Scene3D/SubScene3D" > > What is the use case for rendering 2D pixel-coordinates-based shapes (or > even controls) within a 3D scene consisting of meshes constructed on 3D > coordinates of arbitrary unit? > > Couldn't the pipelines be even better optimized if neither 2D nodes are > rendered in SubScene3D nor 3D nodes are rendered in SubScene2D? > > August > > ------ > > javafx.scene.shape.Shape3D > > Properties inherited from class javafx.scene.Node > > blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, > depthTest, disabled, disable, effectiveNodeOrientation, effect, > eventDispatcher, focused, focusTraversable, hover, id, inputMethodRequests, > layoutBounds, layoutX, layoutY, localToParentTransform, > localToSceneTransform, managed, mouseTransparent, nodeOrientation, > onContextMenuRequested, onDragDetected, onDragDone, onDragDropped, > onDragEntered, onDragExited, onDragOver, onInputMethodTextChanged, > onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, > onMouseDragEntered, onMouseDragExited, onMouseDragged, onMouseDragOver, > onMouseDragReleased, onMouseEntered, onMouseExited, onMouseMoved, > onMousePressed, onMouseReleased, onRotate, onRotationFinished, > onRotationStarted, onScrollFinished, onScroll, onScrollStarted, > onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, onTouchMoved, > onTouchPressed, onTouchReleased, onTouchStationary, onZoomFinished, onZoom, > onZoomStarted, opacity, parent, pickOnBounds, pressed, rotate, > rotationAxis, scaleX, scaleY, scaleZ, scene, style, translateX, translateY, > translateZ, visible > > Methods inherited from class javafx.scene.Node > > addEventFilter, addEventHandler, autosize, blendModeProperty, > boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, > cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, > contains, contains, cursorProperty, depthTestProperty, disabledProperty, > disableProperty, effectiveNodeOrientationProper**ty, effectProperty, > eventDispatcherProperty, fireEvent, focusedProperty, > focusTraversableProperty, getBaselineOffset, getBlendMode, > getBoundsInLocal, getBoundsInParent, getCacheHint, getClassCssMetaData, > getClip, getContentBias, getCssMetaData, getCursor, getDepthTest, > getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, > getInputMethodRequests, getLayoutBounds, getLayoutX, getLayoutY, > getLocalToParentTransform, getLocalToSceneTransform, getNodeOrientation, > getOnContextMenuRequested, getOnDragDetected, getOnDragDone, > getOnDragDropped, getOnDragEntered, getOnDragExited, getOnDragOver, > getOnInputMethodTextChanged, getOnKeyPressed, getOnKeyReleased, > getOnKeyTyped, getOnMouseClicked, getOnMouseDragEntered, > getOnMouseDragExited, getOnMouseDragged, getOnMouseDragOver, > getOnMouseDragReleased, getOnMouseEntered, getOnMouseExited, > getOnMouseMoved, getOnMousePressed, getOnMouseReleased, getOnRotate, > getOnRotationFinished, getOnRotationStarted, getOnScroll, > getOnScrollFinished, getOnScrollStarted, getOnSwipeDown, getOnSwipeLeft, > getOnSwipeRight, getOnSwipeUp, getOnTouchMoved, getOnTouchPressed, > getOnTouchReleased, getOnTouchStationary, getOnZoom, getOnZoomFinished, > getOnZoomStarted, getOpacity, getParent, getProperties, > getPseudoClassStates, getRotate, getRotationAxis, getScaleX, getScaleY, > getScaleZ, getScene, getStyle, getStyleableParent, getStyleClass, > getTransforms, getTranslateX, getTranslateY, getTranslateZ, > getTypeSelector, getUserData, hasProperties, hoverProperty, idProperty, > inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, > isDisabled, isFocused, isFocusTraversable, isHover, isManaged, > isMouseTransparent, isPickOnBounds, isPressed, isResizable, isVisible, > layoutBoundsProperty, layoutXProperty, layoutYProperty, localToParent, > localToParent, localToParent, localToParent, localToParent, > localToParentTransformProperty**, localToScene, localToScene, > localToScene, localToScene, localToScene, localToSceneTransformProperty, > localToScreen, localToScreen, localToScreen, localToScreen, localToScreen, > lookup, lookupAll, managedProperty, maxHeight, maxWidth, minHeight, > minWidth, mouseTransparentProperty, nodeOrientationProperty, > onContextMenuRequestedProperty**, onDragDetectedProperty, > onDragDoneProperty, onDragDroppedProperty, onDragEnteredProperty, > onDragExitedProperty, onDragOverProperty, onInputMethodTextChangedProper**ty, > onKeyPressedProperty, onKeyReleasedProperty, onKeyTypedProperty, > onMouseClickedProperty, onMouseDragEnteredProperty, > onMouseDragExitedProperty, onMouseDraggedProperty, onMouseDragOverProperty, > onMouseDragReleasedProperty, onMouseEnteredProperty, onMouseExitedProperty, > onMouseMovedProperty, onMousePressedProperty, onMouseReleasedProperty, > onRotateProperty, onRotationFinishedProperty, onRotationStartedProperty, > onScrollFinishedProperty, onScrollProperty, onScrollStartedProperty, > onSwipeDownProperty, onSwipeLeftProperty, onSwipeRightProperty, > onSwipeUpProperty, onTouchMovedProperty, onTouchPressedProperty, > onTouchReleasedProperty, onTouchStationaryProperty, onZoomFinishedProperty, > onZoomProperty, onZoomStartedProperty, opacityProperty, parentProperty, > parentToLocal, parentToLocal, parentToLocal, parentToLocal, parentToLocal, > pickOnBoundsProperty, prefHeight, prefWidth, pressedProperty, > pseudoClassStateChanged, relocate, removeEventFilter, removeEventHandler, > requestFocus, resize, resizeRelocate, rotateProperty, rotationAxisProperty, > scaleXProperty, scaleYProperty, scaleZProperty, sceneProperty, > sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, > screenToLocal, screenToLocal, screenToLocal, setBlendMode, setCache, > setCacheHint, setClip, setCursor, setDepthTest, setDisable, setDisabled, > setEffect, setEventDispatcher, setEventHandler, setFocused, > setFocusTraversable, setHover, setId, setInputMethodRequests, setLayoutX, > setLayoutY, setManaged, setMouseTransparent, setNodeOrientation, > setOnContextMenuRequested, setOnDragDetected, setOnDragDone, > setOnDragDropped, setOnDragEntered, setOnDragExited, setOnDragOver, > setOnInputMethodTextChanged, setOnKeyPressed, setOnKeyReleased, > setOnKeyTyped, setOnMouseClicked, setOnMouseDragEntered, > setOnMouseDragExited, setOnMouseDragged, setOnMouseDragOver, > setOnMouseDragReleased, setOnMouseEntered, setOnMouseExited, > setOnMouseMoved, setOnMousePressed, setOnMouseReleased, setOnRotate, > setOnRotationFinished, setOnRotationStarted, setOnScroll, > setOnScrollFinished, setOnScrollStarted, setOnSwipeDown, setOnSwipeLeft, > setOnSwipeRight, setOnSwipeUp, setOnTouchMoved, setOnTouchPressed, > setOnTouchReleased, setOnTouchStationary, setOnZoom, setOnZoomFinished, > setOnZoomStarted, setOpacity, setPickOnBounds, setPressed, setRotate, > setRotationAxis, setScaleX, setScaleY, setScaleZ, setStyle, setTranslateX, > setTranslateY, setTranslateZ, setUserData, setVisible, snapshot, snapshot, > startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, > translateXProperty, translateYProperty, translateZProperty, usesMirroring, > visibleProperty > >