Jelajahi Sumber

WebGPURenderer: QuadMesh extended from Mesh (#27875)

* WebGPURenderer: QuadMesh extended from Mesh

* PostProcessing: Added renderAsync()
sunag 1 tahun lalu
induk
melakukan
a3bf3208df

+ 7 - 23
examples/jsm/objects/QuadMesh.js

@@ -23,41 +23,25 @@ class QuadGeometry extends BufferGeometry {
 
 const _geometry = new QuadGeometry();
 
-class QuadMesh {
+class QuadMesh extends Mesh {
 
 	constructor( material = null ) {
 
-		this._mesh = new Mesh( _geometry, material );
+		super( _geometry, material );
 
-	}
-
-	dispose() {
-
-		this._mesh.geometry.dispose();
-
-	}
-
-	async renderAsync( renderer ) {
-
-		await renderer.renderAsync( this._mesh, _camera );
-
-	}
-
-	get material() {
-
-		return this._mesh.material;
+		this.camera = _camera;
 
 	}
 
-	set material( value ) {
+	renderAsync( renderer ) {
 
-		this._mesh.material = value;
+		return renderer.renderAsync( this, _camera );
 
 	}
 
-	get render() {
+	render( renderer ) {
 
-		return this.renderAsync;
+		renderer.render( this, _camera );
 
 	}
 

+ 12 - 4
examples/jsm/renderers/common/PostProcessing.js

@@ -1,7 +1,7 @@
-import { vec4, MeshBasicNodeMaterial } from '../../nodes/Nodes.js';
+import { vec4, NodeMaterial } from '../../nodes/Nodes.js';
 import QuadMesh from '../../objects/QuadMesh.js';
 
-const quadMesh = new QuadMesh( new MeshBasicNodeMaterial() );
+const quadMesh = new QuadMesh( new NodeMaterial() );
 
 class PostProcessing {
 
@@ -12,11 +12,19 @@ class PostProcessing {
 
 	}
 
-	async render() {
+	render() {
 
 		quadMesh.material.fragmentNode = this.outputNode;
 
-		await quadMesh.render( this.renderer );
+		quadMesh.render( this.renderer );
+
+	}
+
+	renderAsync() {
+
+		quadMesh.material.fragmentNode = this.outputNode;
+
+		return quadMesh.renderAsync( this.renderer );
 
 	}