Spec-Zone.ru › OpenJavaFX 21

Класс LightBase

java.lang.Object
javafx.scene.Node
javafx.scene.LightBase
Все реализуемые интерфейсы:
Styleable, EventTarget
Прямые известные подклассы:
AmbientLight, DirectionalLight, PointLight
public abstract class LightBase extends Node
Класс LightBase является базовым классом для всех объектов, представляющих источник света. Все типы света обладают следующими общими свойствами, определёнными в этом классе:
  • color - цвет источника света
  • scope - список узлов, на которые влияет источник света
  • exlusionScope - список узлов, на которые источник света не влияет
Помимо этих свойств, каждый тип света поддерживает свой набор свойств, обобщённый в следующей таблице:
Сводка типов света по атрибутам
Тип света Вращение и направление Расположение и затухание
AmbientLight ✗ ✗
DirectionalLight ✓ ✗
PointLight ✗ ✓
SpotLight* ✓ ✓
* Поддерживает коэффициенты затухания прожектора, как описано в документации к классу.

Приложение не может добавлять собственные типы света. Прямое расширение класса LightBase может привести к возникновению исключения UnsupportedOperationException.

Все типы света не подвержены трансформации масштабирования и сдвига.

Цвет

Источник света испускает свет определенного цвета. Внешний вид объекта, освещённого этим светом, определяется цветом света и материалом объекта. Например, при синем свете белый объект будет казаться синим, чёрный — чёрным, а объект цвета (255, 0, 255) — синим, так как свет "выбирает" только синий компонент цвета материала. Математическое определение взаимодействия света и материала представлено в PhongMaterial.

См. также раздел примечаний к реализации.

Области

У света есть список scope и список exclusionScope, которые определяют, какие узлы освещаются, а какие нет. Узел может находиться только в одном из списков: если он добавлен в один, он молча удаляется из другого. Если узел не присутствует ни в одном списке, он наследует свойство видимости от своего родителя, рекурсивно. Исключением является свет с пустым списком scope, который неявно освещает все узлы в своей сцене/подсцене (за исключением тех, что находятся в его списке exlusionScope), как если бы корень сцены находился в списке scope.

Список exlusionScope полезен только для узлов, которые в противном случае находились бы в области действия света. Исключение узла — удобная альтернатива обходу иерархии сцены и добавлению всех остальных узлов в область действия света. Вместо этого, область действия может оставаться широкой, и отдельные узлы могут быть исключены с помощью области исключения.

Направление

Направление света определяется вектором свойства direction света. Направление света можно повернуть, задав трансформирование поворота для света. Например, если вектор направления равен (1, 1, 1), и свет не повернут, он будет направлен в (1, 1, 1) направлении, а если свет повернут на 90 градусов по оси y, он будет направлен в (1, 1, -1) направлении.

Для типов света, не имеющих направления, преобразования поворота не применяются.

Затухание по расстоянию

Любой пиксель в пределах действия света будет освещен им (если он не принадлежит элементу Shape3D за пределами его области видимости). Расстояние измеряется от позиции света до позиции пикселя и проверяется на соответствие максимальному радиусу действия света, как определено его свойством maxRange. Позицию света можно изменить, задав трансформацию смещения для света.

Интенсивность света может изменяться с расстоянием за счёт затухания. Формула затухания

attn = 1 / (ca + la * dist + qa * dist^2)

определяет 3 коэффициента: ca, la и qa, которые управляют соответственно постоянным, линейным и квадратичным поведением затухания интенсивности с расстоянием. Эффективный цвет света в данной точке пространства равен color * attn. Возможно, хотя и нереалистично, указать отрицательные значения коэффициентов затухания. Это позволяет получить отрицательное значение коэффициента затухания, что приводит к вычитанию цвета света из цвета материала вместо добавления к нему, создавая эффект "бросания тени".

Для реалистичного эффекта, maxRange следует установить на расстояние, при котором затухание близко к 0, так как это даст плавное затухание.

Для типов света, не подверженных затуханию по расстоянию, преобразования смещения не применяются. Для этих типов уменьшение интенсивности может быть достигнуто с помощью более тёмного цвета.

Примечание: это условная возможность. См. ConditionalFeature.SCENE3D для получения дополнительной информации.

Примечание по реализации:
Следующее относится к свойству color света:
  1. Черный цвет света игнорируется, поскольку его вклад равен 0.
  2. Компонент прозрачности (альфа) света игнорируется.
Это поведение не специфицировано и может измениться в будущем.
С:
JavaFX 8.0

Краткое описание свойств

Тип Свойство Описание
final ObjectProperty<Color> color
Определяет цвет источника света.
final BooleanProperty lightOn
Определяет включение/выключение света.

Свойства, объявленные в классе javafx.scene.Node

accessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, focusVisible, focusWithin, 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, viewOrder, visible

Краткое описание полей

Поля, объявленные в классе javafx.scene.Node

BASELINE_OFFSET_SAME_AS_HEIGHT

Краткое описание конструкторов

LightBase()
LightBase(Color color)
Модификатор Конструктор Описание
protected
Создает новый экземпляр класса LightBase со стандартным источником света Color.WHITE.
protected
Создает новый экземпляр класса LightBase с использованием указанного цвета.

Краткое описание методов

Модификатор и тип Метод Описание
final ObjectProperty<Color> colorProperty()
Определяет цвет источника света.
final Color getColor()
Возвращает значение свойства color.
ObservableList<Node> getExclusionScope()
Возвращает список узлов, определяющих иерархическую область исключения для этого света.
ObservableList<Node> getScope()
Возвращает список узлов, определяющих иерархическую область видимости этого света.
final boolean isLightOn()
Возвращает значение свойства lightOn.
final BooleanProperty lightOnProperty()
Определяет включение/выключение света.
final void setColor(Color value)
Устанавливает значение свойства color.
final void setLightOn(boolean value)
Устанавливает значение свойства lightOn.

Методы, объявленные в классе javafx.scene.Node

accessibleHelpProperty, accessibleRoleDescriptionProperty, accessibleRoleProperty, accessibleTextProperty, addEventFilter, addEventHandler, applyCss, autosize, blendModeProperty, boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, contains, contains, cursorProperty, depthTestProperty, disabledProperty, disableProperty, effectiveNodeOrientationProperty, effectProperty, eventDispatcherProperty, executeAccessibleAction, fireEvent, focusedProperty, focusTraversableProperty, focusVisibleProperty, focusWithinProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBaselineOffset, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClassCssMetaData, getClip, getContentBias, getCssMetaData, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInitialFocusTraversable, 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, getViewOrder, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, isFocusVisible, isFocusWithin, isHover, isManaged, isMouseTransparent, isPickOnBounds, isPressed, isResizable, isVisible, layoutBoundsProperty, layoutXProperty, layoutYProperty, localToParent, localToParent, localToParent, localToParent, localToParent, localToParentTransformProperty, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToSceneTransformProperty, localToScreen, localToScreen, localToScreen, localToScreen, localToScreen, lookup, lookupAll, managedProperty, maxHeight, maxWidth, minHeight, minWidth, mouseTransparentProperty, nodeOrientationProperty, notifyAccessibleAttributeChanged, onContextMenuRequestedProperty, onDragDetectedProperty, onDragDoneProperty, onDragDroppedProperty, onDragEnteredProperty, onDragExitedProperty, onDragOverProperty, onInputMethodTextChangedProperty, 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, queryAccessibleAttribute, relocate, removeEventFilter, removeEventHandler, requestFocus, resize, resizeRelocate, rotateProperty, rotationAxisProperty, scaleXProperty, scaleYProperty, scaleZProperty, sceneProperty, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, screenToLocal, screenToLocal, screenToLocal, setAccessibleHelp, setAccessibleRole, setAccessibleRoleDescription, setAccessibleText, 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, setViewOrder, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, viewOrderProperty, visibleProperty

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Методы, объявленные в интерфейсе javafx.css.Styleable

getStyleableNode

Подробное описание свойств

цвет

public final ObjectProperty<Color> colorProperty
Указывает цвет источника света.
Значение по умолчанию:
null
См. также:
  • getColor()
  • setColor(Color)
  • colorProperty()

включен

public final BooleanProperty lightOnProperty
Определяет включение или выключение света.
Значение по умолчанию:
true
См. также:
  • isLightOn()
  • setLightOn(boolean)
  • lightOnProperty()

Подробное описание конструкторов

LightBase

protected LightBase()
Создает новый экземпляр класса LightBase со стандартным источником света Color.WHITE.

LightBase

protected LightBase(Color color)
Создает новый экземпляр класса LightBase, используя указанный цвет.
Параметры:
color - цвет источника света

Подробное описание методов

установитьЦвет

public final void setColor(Color value)
Устанавливает значение свойства color.
Описание свойства:
Указывает цвет источника света.
Значение по умолчанию:
null
Параметры:
value - значение для свойства color
См. также:
  • getColor()
  • colorProperty()

получитьЦвет

public final Color getColor()
Получает значение свойства color.
Описание свойства:
Указывает цвет источника света.
Значение по умолчанию:
null
Возвращает:
значение свойства color
См. также:
  • setColor(Color)
  • colorProperty()

свойствоЦвет

public final ObjectProperty<Color> colorProperty()
Указывает цвет источника света.
Значение по умолчанию:
null
Возвращает:
свойство color
См. также:
  • getColor()
  • setColor(Color)

включитьСвет

public final void setLightOn(boolean value)
Устанавливает значение свойства lightOn.
Описание свойства:
Определяет включение или выключение света.
Значение по умолчанию:
true
Параметры:
value - значение для свойства lightOn
См. также:
  • isLightOn()
  • lightOnProperty()

светВключен

public final boolean isLightOn()
Получает значение свойства lightOn.
Описание свойства:
Определяет включение или выключение света.
Значение по умолчанию:
true
Возвращает:
значение свойства lightOn
См. также:
  • setLightOn(boolean)
  • lightOnProperty()

свойствоВключен

public final BooleanProperty lightOnProperty()
Определяет включение или выключение света.
Значение по умолчанию:
true
Возвращает:
свойство lightOn
См. также:
  • isLightOn()
  • setLightOn(boolean)

получитьОбласть

public ObservableList<Node> getScope()
Получает список узлов, определяющих иерархическую область действия этого света. Все Shape3D в этом списке или под Parent в этом списке затрагиваются этим светом, если нет более близкого родителя в списке exclusionScope. Если список пуст, все узлы под сценой/подсценой света затрагиваются им (если они не находятся в списке exclusionScope).
Возвращает:
список узлов, определяющих иерархическую область действия этого света
См. также:
  • getExclusionScope()

получитьИсключениеОбласти

public ObservableList<Node> getExclusionScope()
Получает список узлов, определяющих иерархическую область исключения для этого света. Все Shape3D в этом списке или под Parent в этом списке не затрагиваются этим светом, если нет более близкого родителя в списке scope.
Это удобный список для исключения узлов, которые в противном случае находились бы в области действия света.
Возвращает:
список узлов, определяющих иерархическую область исключения для этого света
С тех пор:
13
См. также:
  • getScope()

© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API