Просмотр исходного кода

WebGPURenderer: Honor layerUpdates for array textures (#33072)

Co-authored-by: user <merowinger>
Adrian Hänsler 1 месяц назад
Родитель
Сommit
7e290dd46e
1 измененных файлов с 16 добавлено и 2 удалено
  1. 16 2
      src/renderers/webgpu/utils/WebGPUTextureUtils.js

+ 16 - 2
src/renderers/webgpu/utils/WebGPUTextureUtils.js

@@ -538,9 +538,23 @@ class WebGPUTextureUtils {
 
 		} else if ( texture.isArrayTexture || texture.isDataArrayTexture || texture.isData3DTexture ) {
 
-			for ( let i = 0; i < options.image.depth; i ++ ) {
+			if ( texture.layerUpdates.size > 0 ) {
 
-				this._copyBufferToTexture( options.image, textureData.texture, textureDescriptorGPU, i, texture.flipY, i );
+				for ( const layerIndex of texture.layerUpdates ) {
+
+					this._copyBufferToTexture( options.image, textureData.texture, textureDescriptorGPU, layerIndex, texture.flipY, layerIndex );
+
+				}
+
+				texture.clearLayerUpdates();
+
+			} else {
+
+				for ( let i = 0; i < options.image.depth; i ++ ) {
+
+					this._copyBufferToTexture( options.image, textureData.texture, textureDescriptorGPU, i, texture.flipY, i );
+
+				}
 
 			}
 

粤ICP备19079148号