소스 검색

WebGPUTextures: Prepare 2DArray and 3D texture support.

Mugen87 4 년 전
부모
커밋
66b9fa344c
2개의 변경된 파일30개의 추가작업 그리고 2개의 파일을 삭제
  1. 29 1
      examples/jsm/renderers/webgpu/WebGPUSampledTexture.js
  2. 1 1
      examples/jsm/renderers/webgpu/WebGPUTextures.js

+ 29 - 1
examples/jsm/renderers/webgpu/WebGPUSampledTexture.js

@@ -21,6 +21,34 @@ class WebGPUSampledTexture extends WebGPUBinding {
 
 
 }
 }
 
 
+class WebGPUSampledArrayTexture extends WebGPUSampledTexture {
+
+	constructor( name ) {
+
+		super( name );
+
+		this.dimension = GPUTextureViewDimension.TwoDArray;
+
+		Object.defineProperty( this, 'isSampledArrayTexture', { value: true } );
+
+	}
+
+}
+
+class WebGPUSampled3DTexture extends WebGPUSampledTexture {
+
+	constructor( name ) {
+
+		super( name );
+
+		this.dimension = GPUTextureViewDimension.ThreeD;
+
+		Object.defineProperty( this, 'isSampled3DTexture', { value: true } );
+
+	}
+
+}
+
 class WebGPUSampledCubeTexture extends WebGPUSampledTexture {
 class WebGPUSampledCubeTexture extends WebGPUSampledTexture {
 
 
 	constructor( name ) {
 	constructor( name ) {
@@ -35,4 +63,4 @@ class WebGPUSampledCubeTexture extends WebGPUSampledTexture {
 
 
 }
 }
 
 
-export { WebGPUSampledTexture, WebGPUSampledCubeTexture };
+export { WebGPUSampledTexture, WebGPUSampledArrayTexture, WebGPUSampled3DTexture, WebGPUSampledCubeTexture };

+ 1 - 1
examples/jsm/renderers/webgpu/WebGPUTextures.js

@@ -344,7 +344,7 @@ class WebGPUTextures {
 
 
 		// transfer texture data
 		// transfer texture data
 
 
-		if ( texture.isDataTexture ) {
+		if ( texture.isDataTexture || texture.isDataTexture2DArray || texture.isDataTexture3D ) {
 
 
 			this._copyBufferToTexture( image, format, textureGPU );
 			this._copyBufferToTexture( image, format, textureGPU );