ssaoRenderingPipelinePropertyGridComponent.tsx 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import * as React from "react";
  2. import { Observable } from "babylonjs/Misc/observable";
  3. import { PropertyChangedEvent } from "../../../../propertyChangedEvent";
  4. import { LockObject } from "../../../../../sharedUiComponents/tabs/propertyGrids/lockObject";
  5. import { CommonRenderingPipelinePropertyGridComponent } from './commonRenderingPipelinePropertyGridComponent';
  6. import { SliderLineComponent } from '../../../../../sharedUiComponents/lines/sliderLineComponent';
  7. import { LineContainerComponent } from '../../../lineContainerComponent';
  8. import { SSAORenderingPipeline } from 'babylonjs/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline';
  9. import { GlobalState } from '../../../../globalState';
  10. interface ISSAORenderingPipelinePropertyGridComponentProps {
  11. globalState: GlobalState;
  12. renderPipeline: SSAORenderingPipeline,
  13. lockObject: LockObject,
  14. onPropertyChangedObservable?: Observable<PropertyChangedEvent>
  15. }
  16. export class SSAORenderingPipelinePropertyGridComponent extends React.Component<ISSAORenderingPipelinePropertyGridComponentProps> {
  17. constructor(props: ISSAORenderingPipelinePropertyGridComponentProps) {
  18. super(props);
  19. }
  20. render() {
  21. const renderPipeline = this.props.renderPipeline;
  22. return (
  23. <div className="pane">
  24. <CommonRenderingPipelinePropertyGridComponent globalState={this.props.globalState} lockObject={this.props.lockObject} renderPipeline={renderPipeline} onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
  25. <LineContainerComponent globalState={this.props.globalState} title="SSAO">
  26. <SliderLineComponent label="Strength" minimum={0} maximum={2} step={0.05} target={renderPipeline} propertyName="totalStrength" onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
  27. <SliderLineComponent label="Base" minimum={0} maximum={1} step={0.05} target={renderPipeline} propertyName="base" onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
  28. <SliderLineComponent label="Radius" minimum={0.0001} maximum={0.001} step={0.0001} target={renderPipeline} propertyName="radius" onPropertyChangedObservable={this.props.onPropertyChangedObservable} decimalCount={4} />
  29. <SliderLineComponent label="Area" minimum={0.0001} maximum={0.01} step={0.0001} target={renderPipeline} propertyName="area" onPropertyChangedObservable={this.props.onPropertyChangedObservable} decimalCount={4} />
  30. <SliderLineComponent label="Falloff" minimum={0} maximum={0.00001} step={0.000001} target={renderPipeline} propertyName="fallOff" onPropertyChangedObservable={this.props.onPropertyChangedObservable} decimalCount={6} />
  31. </LineContainerComponent>
  32. </div>
  33. );
  34. }
  35. }