/
fadaliastro
/
MGFI
Обзор
Документация
Войти
/
fadaliastro
/
MGFI
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
node_modules/three/src/nodes/functions/ShadowMaskModel.js
58 строк
1 KB
Fa-Dali
Initial commit
28 янв 2026, 00:16
28 янв 2026, 00:16
d5a5086
Код
Авторство
О чём код?
import LightingModel from '../core/LightingModel.js'; import { diffuseColor } from '../core/PropertyNode.js'; import { float } from '../tsl/TSLBase.js'; /** * Represents lighting model for a shadow material. Used in {@link ShadowNodeMaterial}. * * @augments LightingModel */ class ShadowMaskModel extends LightingModel { /** * Constructs a new shadow mask model. */ constructor() { super(); /** * The shadow mask node. * * @type {Node} */ this.shadowNode = float( 1 ).toVar( 'shadowMask' ); } /** * Only used to save the shadow mask. * * @param {Object} input - The input data. */ direct( { lightNode } ) { if ( lightNode.shadowNode !== null ) { this.shadowNode.mulAssign( lightNode.shadowNode ); } } /** * Uses the shadow mask to produce the final color. * * @param {NodeBuilder} builder - The current node builder. */ finish( { context } ) { diffuseColor.a.mulAssign( this.shadowNode.oneMinus() ); context.outgoingLight.rgb.assign( diffuseColor.rgb ); // TODO: Optimize LightsNode to avoid this assignment } } export default ShadowMaskModel;