Spec-Zone.ru › OpenJavaFX 24

Класс LightBase

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

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

Цвет

Источник света испускает свет одного цвета. Внешний вид объекта, освещённого светом, является результатом цвета света и материала, из которого сделан объект. Например, для синего света белый объект будет казаться синим, чёрный — чёрным, а объект цвета (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, requestFocusTraversal, 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)

getScope

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

getExclusionScope

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

Отправить сообщение об ошибке или предложить улучшение
Авторские права © 2008, 2025, Oracle и/или его аффилированные лица. Все права защищены.

© 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