import React from 'react' import { useTranslation } from 'react-i18next' import { ACESFilmicToneMapping, BasicShadowMap, CineonToneMapping, LinearToneMapping, NoToneMapping, PCFShadowMap, PCFSoftShadowMap, ReinhardToneMapping, ShadowMapType, ToneMapping, Vector3, VSMShadowMap } from 'three' import { Engine } from '@xrengine/engine/src/ecs/classes/Engine' import { getRendererSceneMetadataState } from '@xrengine/engine/src/renderer/WebGLRendererSystem' import { getState, useHookstate } from '@xrengine/hyperflux' import BooleanInput from '../inputs/BooleanInput' import CompoundNumericInput from '../inputs/CompoundNumericInput' import InputGroup from '../inputs/InputGroup' import SelectInput from '../inputs/SelectInput' import Vector3Input from '../inputs/Vector3Input' import PropertyGroup from './PropertyGroup' /** * ToneMappingOptions array containing tone mapping type options. * * @type {Array} */ const ToneMappingOptions = [ { label: 'No Tone Mapping', value: NoToneMapping }, { label: 'Linear Tone Mapping', value: LinearToneMapping }, { label: 'Reinhard Tone Mapping', value: ReinhardToneMapping }, { label: 'Cineon Tone Mapping', value: CineonToneMapping }, { label: 'ACES Filmic Tone Mapping', value: ACESFilmicToneMapping } ] /** * ShadowTypeOptions array containing shadow type options. * * @type {Array} */ const ShadowTypeOptions = [ { label: 'No Shadow Map', value: -1 }, { label: 'Basic Shadow Map', value: BasicShadowMap }, { label: 'PCF Shadow Map', value: PCFShadowMap }, { label: 'PCF Soft Shadow Map', value: PCFSoftShadowMap }, { label: 'VSM Shadow Map', value: VSMShadowMap } ] export const RenderSettingsEditor = () => { const { t } = useTranslation() const rendererState = useHookstate(getRendererSceneMetadataState(Engine.instance.currentWorld)) const renderer = rendererState.get({ noproxy: true }) return ( {/* rendererState.LODs.set({ '0': val.x, '1': val.y, '2': val.z })} /> */} rendererState.csm.set(val)} /> rendererState.toneMapping.set(val)} /> rendererState.toneMappingExposure.set(val)} /> rendererState.shadowMapType.set(val)} /> ) }