Класс 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света:- Чёрный цвет света игнорируется, поскольку его вклад равен 0.
- Компонент прозрачности (альфа) света игнорируется.
- С:
- JavaFX 8.0
Сводка свойств
| Тип | Свойство | Описание |
|---|---|---|
final ObjectProperty |
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
Сводка конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создаёт новый экземпляр класса LightBase с источником света по умолчанию Color.WHITE. |
|
protected |
Создаёт новый экземпляр класса LightBase, используя указанный цвет. |
Сводка методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final ObjectProperty |
colorProperty() |
Указывает цвет источника света. |
final Color |
getColor() |
Возвращает значение свойства color. |
ObservableList |
getExclusionScope() |
Возвращает список узлов, определяющих иерархическую область исключения для этого света. |
ObservableList |
getScope() |
Возвращает список узлов, определяющих иерархическую область действия этого света. |
final boolean |
isLightOn() |
Возвращает значение свойства lightOn. |
final BooleanProperty |
lightOnProperty() |
Определяет включение/выключение света. |
final void |
setColor |
Устанавливает значение свойства color. |
final void |
setLightOn |
Устанавливает значение свойства 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
- См. также:
включен
public final BooleanProperty lightOnProperty
- Значение по умолчанию:
- true
- См. также:
Подробности конструктора
LightBase
protected LightBase()
LightBase со светлым источником по умолчанию Color.WHITE.LightBase
protected LightBase(Color color)
LightBase, используя указанный цвет.- Параметры:
-
color- цвет источника света
Подробности метода
установитьЦвет
public final void setColor(Color value)
color.- Описание свойства:
- Указывает цвет источника света.
- Значение по умолчанию:
- null
- Параметры:
-
value- значение для свойстваcolor - См. также:
получитьЦвет
public final Color getColor()
color.- Описание свойства:
- Указывает цвет источника света.
- Значение по умолчанию:
- null
- Возвращает:
- значение свойства
color - См. также:
свойствоЦвет
public final ObjectProperty<Color> colorProperty()
- Значение по умолчанию:
- null
- Возвращает:
- свойство
color - См. также:
включитьСвет
public final void setLightOn(boolean value)
lightOn.- Описание свойства:
- Определяет включение/выключение света.
- Значение по умолчанию:
- true
- Параметры:
-
value- значение для свойстваlightOn - См. также:
светВключен
public final boolean isLightOn()
lightOn.- Описание свойства:
- Определяет включение/выключение света.
- Значение по умолчанию:
- true
- Возвращает:
- значение свойства
lightOn - См. также:
свойствоВключен
public final BooleanProperty lightOnProperty()
- Значение по умолчанию:
- true
- Возвращает:
- свойство
lightOn - См. также:
getScope
public ObservableList<Node> getScope()
Shape3D в этом списке или под Parent в этом списке затронуты этим светом, если более близкий родитель не существует в списке exclusionScope. Если список пуст, все узлы под сценой/подсценой света затрагиваются им (если они не находятся в exclusionScope).- Возвращает:
- список узлов, определяющих иерархическую область действия этого света
- См. также:
getExclusionScope
public ObservableList<Node> getExclusionScope()
Shape3D в этом списке или под Parent в этом списке не затрагиваются этим светом, если более близкий родитель не существует в списке scope. Это удобный список для исключения узлов, которые в противном случае находились бы в области действия света.
- Возвращает:
- список узлов, определяющих иерархическую область исключения действия этого света
- С:
- 13
- См. также:
© 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.