Класс 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света:- Черный цвет света игнорируется, поскольку его вклад равен 0.
- Компонент прозрачности (альфа) света игнорируется.
- С:
- 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
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
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. |
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, 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 - См. также:
получитьОбласть
public ObservableList<Node> getScope()
Shape3D в этом списке или под Parent в этом списке затрагиваются этим светом, если нет более близкого родителя в списке exclusionScope. Если список пуст, все узлы под сценой/подсценой света затрагиваются им (если они не находятся в списке exclusionScope).- Возвращает:
- список узлов, определяющих иерархическую область действия этого света
- См. также:
получитьИсключениеОбласти
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.