Prechádzať zdrojové kódy

updating metersPerUnit location

Benjamin Guignabert 5 rokov pred
rodič
commit
321e6717e9

+ 1 - 1
inspector/src/components/actionTabs/tabs/propertyGrids/materials/pbrMaterialPropertyGridComponent.tsx

@@ -247,7 +247,7 @@ export class PBRMaterialPropertyGridComponent extends React.Component<IPBRMateri
                         onValueChanged={() => this.forceUpdate()}
                         onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
                     { (material.subSurface as any).isScatteringEnabled && material.getScene().prePassRenderer &&
-                        <SliderLineComponent label="Meters per unit" target={ material.getScene().prePassRenderer } propertyName="metersPerUnit" minimum={0.01} maximum={2} step={0.01} onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
+                        <SliderLineComponent label="Meters per unit" target={ material.getScene().prePassRenderer.subSurfaceConfiguration } propertyName="metersPerUnit" minimum={0.01} maximum={2} step={0.01} onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
                     }
                     <CheckBoxLineComponent label="Refraction Enabled" target={material.subSurface} propertyName="isRefractionEnabled"
                         onValueChanged={() => this.forceUpdate()}

+ 1 - 1
src/Engines/Extensions/engine.multiRender.ts

@@ -84,7 +84,7 @@ ThinEngine.prototype.unBindMultiColorAttachmentFramebuffer = function(textures:
         gl.drawBuffers(attachments);
     }
 
-    for (var i = 0; i < textures[0]._attachments!.length; i++) {
+    for (var i = 0; i < count; i++) {
         var texture = textures[i];
         if (texture.generateMipMaps && !disableGenerateMipMaps && !texture.isCube) {
             this._bindTextureDirectly(gl.TEXTURE_2D, texture, true);

+ 1 - 1
src/PostProcesses/subSurfaceScatteringPostProcess.ts

@@ -33,7 +33,7 @@ export class SubSurfaceScatteringPostProcess extends PostProcess {
                 return;
             }
             var texelSize = this.texelSize;
-            effect.setFloat("metersPerUnit", scene.prePassRenderer.metersPerUnit);
+            effect.setFloat("metersPerUnit", scene.prePassRenderer.subSurfaceConfiguration.metersPerUnit);
             effect.setFloat2("texelSize", texelSize.x, texelSize.y);
             effect.setTexture("irradianceSampler", scene.prePassRenderer.prePassRT.textures[1]);
             effect.setTexture("depthSampler", scene.prePassRenderer.prePassRT.textures[2]);

+ 0 - 6
src/Rendering/prePassRenderer.ts

@@ -48,12 +48,6 @@ export class PrePassRenderer {
     private readonly _clearColor = new Color4(0, 0, 0, 0);
 
     /**
-     * Defines the ratio real world => scene units.
-     * Used for subsurface scattering
-     */
-    public metersPerUnit: number = 1;
-
-    /**
      * Image processing post process for composition
      */
     public imageProcessingPostProcess: ImageProcessingPostProcess;

+ 6 - 0
src/Rendering/subSurfaceConfiguration.ts

@@ -35,6 +35,12 @@ export class SubSurfaceConfiguration {
     }
 
     /**
+     * Defines the ratio real world => scene units.
+     * Used for subsurface scattering
+     */
+    public metersPerUnit: number = 1;
+
+    /**
      * Builds a subsurface configuration object
      * @param scene The scene
      */