From 5370b40c1dddd384cdd9df49a4d1aec60a318336 Mon Sep 17 00:00:00 2001 From: sunag Date: Sat, 1 Apr 2023 21:59:44 -0300 Subject: [PATCH] Revert "fix possible overrideMaterial material with .wireframe and cleanup" This reverts commit 7dcd85e8a84eaf4c90ec7b7a9b3827c359addb1f. --- .../jsm/renderers/webgpu/WebGPURenderPipeline.js | 11 ++++++----- .../jsm/renderers/webgpu/WebGPURenderPipelines.js | 14 +++++++------- examples/jsm/renderers/webgpu/WebGPUUtils.js | 4 ++-- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/examples/jsm/renderers/webgpu/WebGPURenderPipeline.js b/examples/jsm/renderers/webgpu/WebGPURenderPipeline.js index 56ec0bf2863e25..cc6316dbe8ffb3 100644 --- a/examples/jsm/renderers/webgpu/WebGPURenderPipeline.js +++ b/examples/jsm/renderers/webgpu/WebGPURenderPipeline.js @@ -24,9 +24,9 @@ class WebGPURenderPipeline { } - init( cacheKey, stageVertex, stageFragment, renderObject, nodeBuilder ) { + init( cacheKey, stageVertex, stageFragment, object, nodeBuilder ) { - const { object, material, geometry } = renderObject; + const { material, geometry } = object; // determine shader attributes @@ -84,7 +84,7 @@ class WebGPURenderPipeline { // - const primitiveState = this._getPrimitiveState( object, geometry, material ); + const primitiveState = this._getPrimitiveState( object, material ); const colorWriteMask = this._getColorWriteMask( material ); const depthCompare = this._getDepthCompare( material ); const colorFormat = this._utils.getCurrentColorFormat(); @@ -425,14 +425,15 @@ class WebGPURenderPipeline { } - _getPrimitiveState( object, geometry, material ) { + _getPrimitiveState( object, material ) { const descriptor = {}; - descriptor.topology = this._utils.getPrimitiveTopology( object, material ); + descriptor.topology = this._utils.getPrimitiveTopology( object ); if ( object.isLine === true && object.isLineSegments !== true ) { + const geometry = object.geometry; const count = ( geometry.index ) ? geometry.index.count : geometry.attributes.position.count; descriptor.stripIndexFormat = ( count > 65535 ) ? GPUIndexFormat.Uint32 : GPUIndexFormat.Uint16; // define data type for primitive restart value diff --git a/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js b/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js index 96ff5d8c2dbe0d..28ee182d7dacce 100644 --- a/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +++ b/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js @@ -60,7 +60,7 @@ class WebGPURenderPipelines { // determine render pipeline - currentPipeline = this._acquirePipeline( stageVertex, stageFragment, renderObject ); + currentPipeline = this._acquirePipeline( stageVertex, stageFragment, renderObject.object, nodeBuilder ); cache.currentPipeline = currentPipeline; // keep track of all used times @@ -92,14 +92,14 @@ class WebGPURenderPipelines { } - _acquirePipeline( stageVertex, stageFragment, renderObject ) { + _acquirePipeline( stageVertex, stageFragment, object, nodeBuilder ) { let pipeline; const pipelines = this.pipelines; // check for existing pipeline - const cacheKey = this._computeCacheKey( stageVertex, stageFragment, renderObject ); + const cacheKey = this._computeCacheKey( stageVertex, stageFragment, object ); for ( let i = 0, il = pipelines.length; i < il; i ++ ) { @@ -117,7 +117,7 @@ class WebGPURenderPipelines { if ( pipeline === undefined ) { pipeline = new WebGPURenderPipeline( this.device, this.utils ); - pipeline.init( cacheKey, stageVertex, stageFragment, renderObject, this.nodes.get( renderObject ) ); + pipeline.init( cacheKey, stageVertex, stageFragment, object, nodeBuilder ); pipelines.push( pipeline ); @@ -127,9 +127,9 @@ class WebGPURenderPipelines { } - _computeCacheKey( stageVertex, stageFragment, renderObject ) { + _computeCacheKey( stageVertex, stageFragment, object ) { - const { object, material } = renderObject; + const material = object.material; const utils = this.utils; const parameters = [ @@ -145,7 +145,7 @@ class WebGPURenderPipelines { material.side, utils.getSampleCount(), utils.getCurrentEncoding(), utils.getCurrentColorFormat(), utils.getCurrentDepthStencilFormat(), - utils.getPrimitiveTopology( object, material ) + utils.getPrimitiveTopology( object ) ]; return parameters.join(); diff --git a/examples/jsm/renderers/webgpu/WebGPUUtils.js b/examples/jsm/renderers/webgpu/WebGPUUtils.js index d8d82ae6669437..87c63ec29b482a 100644 --- a/examples/jsm/renderers/webgpu/WebGPUUtils.js +++ b/examples/jsm/renderers/webgpu/WebGPUUtils.js @@ -61,10 +61,10 @@ class WebGPUUtils { } - getPrimitiveTopology( object, material ) { + getPrimitiveTopology( object ) { if ( object.isPoints ) return GPUPrimitiveTopology.PointList; - else if ( object.isLineSegments || ( object.isMesh && material.wireframe === true ) ) return GPUPrimitiveTopology.LineList; + else if ( object.isLineSegments || ( object.isMesh && object.material.wireframe === true ) ) return GPUPrimitiveTopology.LineList; else if ( object.isLine ) return GPUPrimitiveTopology.LineStrip; else if ( object.isMesh ) return GPUPrimitiveTopology.TriangleList;