public class SoBillboard extends SoSeparator
SoBillboard
node is a grouping node which modifies its coordinate system so that the billboard node's local Z-axis turns to point at the viewer. The children of an SoBillboard
node may include other grouping nodes as well as shape nodes.
Performance:
SoBillboard
nodes recompute the screen alignment transformation on every render traversal. A large number of billboard nodes will reduce performance.
SoBillboard
depends on the current camera settings, so this node should not be render cached.
SoBillboard
nodes prohibit auto-caching, so no SoSeparator
(or other render caching node) above an SoBillboard
in the scene graph will automatically create a render cache. This can significantly reduce performance and applications should put nodes that
can be render cached (especially geometry nodes) under their own SoSeparator
below the SoBillboard
.
useSphereBBox
field set to true. Export limitations:
SoBillboard
can be exported to PDF3D/U3D (SoToPDFAction
) as a group node, but due to limitations of that file format, it will
not act as a billboard. In other words, the geometry will not be "screen locked".
The axisOfRotation
field specifies which axis to use to perform the rotation. This axis is defined in the local coordinates of the SoBillboard
node. The default (0,1,0) is useful for objects such as images of trees and lamps positioned on a ground plane. But when an object is oriented at an angle, for example, on the incline of a mountain, then the axisOfRotation
may also need to be oriented at a similar angle.
A special case of billboarding is
screen-alignment axisOfRotation
to (0, 0, 0).
To rotate the SoBillboard
to face the viewer, determine the line between the SoBillboard
's origin and the viewer's position; call this the billboard-to-viewer line. The axisOfRotation
and the billboard-to-viewer line define a plane. The local z-axis of the SoBillboard
is then rotated into that plane, pivoting around the axisOfRotation
.
If the axisOfRotation
and the billboard-to-viewer line are coincident (the same line), then the plane cannot be established, and the rotation results of the SoBillboard
are undefined. For example, if the axisOfRotation
is set to (0,1,0) (Y-axis) and the viewer flies over the SoBillboard
and peers directly down the Y-axis the results are undefined .
Multiple instances of SoBillboards (DEF/USE) operate as expected - each instance rotates in its unique coordinate system to face the viewer.
File format/default:
Billboard {
axisOfRotation | 0 1 0 |
useSphereBBox | true |
SoSeparator.Cachings, SoSeparator.FastEditings, SoSeparator.RenderUnitIds
SoNode.RenderModes
Inventor.ConstructorCommand
Modifier and Type | Field and Description |
---|---|
SoSFVec3f |
axisOfRotation
Specifies which axis to use to perform the rotation.
|
SoSFBool |
useSphereBBox
Specifies if the bounding box returned by SoBillboard.getBoundingBox() method should be extended to completely contain the bounding sphere of the children.
|
boundingBoxCaching, fastEditing, pickCulling, renderCaching, renderCulling, renderUnitId
boundingBoxIgnoring
VERBOSE_LEVEL, ZeroHandle
Constructor and Description |
---|
SoBillboard()
Constructor.
|
SoBillboard(int nChildren)
Constructor that takes approximate number of children.
|
addChild, findChild, getChild, getNumChildren, insertChild, removeAllChildren, removeChild, removeChild, replaceChild, replaceChild
affectsState, callback, copy, copy, distribute, doAction, getAlternateRep, getBoundingBox, getByName, getMatrix, getPrimitiveCount, getRenderEngineMode, getRenderUnitID, GLRender, GLRenderBelowPath, GLRenderInPath, GLRenderOffPath, grabEventsCleanup, grabEventsSetup, handleEvent, isBoundingBoxIgnoring, isOverride, pick, rayPick, search, setOverride, touch, write
copyFieldValues, copyFieldValues, enableNotify, fieldsAreEqual, get, getAllFields, getEventIn, getEventOut, getField, getFieldName, hasDefaultValues, isNotifyEnabled, set, setToDefaults
dispose, getName, isDisposable, isSynchronizable, setName, setSynchronizable
getNativeResourceHandle
public final SoSFVec3f axisOfRotation
public final SoSFBool useSphereBBox
SoBillboard
nodes are used.
Default is true
Generated on July 31, 2019, Copyright © Thermo Fisher Scientific. All rights reserved. http://www.openinventor.com