@babylonjs/core 6.34.3 → 6.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Compute/computeShader.d.ts +2 -2
- package/Compute/computeShader.js.map +1 -1
- package/Engines/Extensions/engine.cubeTexture.js +2 -2
- package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
- package/Engines/ICanvas.d.ts +4 -0
- package/Engines/ICanvas.js.map +1 -1
- package/Engines/WebGPU/Extensions/index.d.ts +0 -2
- package/Engines/WebGPU/Extensions/index.js +0 -2
- package/Engines/WebGPU/Extensions/index.js.map +1 -1
- package/Engines/engineCapabilities.d.ts +2 -0
- package/Engines/engineCapabilities.js.map +1 -1
- package/Engines/nativeEngine.js +2 -1
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/nullEngine.js +1 -0
- package/Engines/nullEngine.js.map +1 -1
- package/Engines/thinEngine.js +4 -2
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.d.ts +52 -1
- package/Engines/webgpuEngine.js +133 -0
- package/Engines/webgpuEngine.js.map +1 -1
- package/Gizmos/boundingBoxGizmo.d.ts +6 -0
- package/Gizmos/boundingBoxGizmo.js +28 -3
- package/Gizmos/boundingBoxGizmo.js.map +1 -1
- package/Gizmos/positionGizmo.js +1 -5
- package/Gizmos/positionGizmo.js.map +1 -1
- package/Gizmos/rotationGizmo.js +1 -5
- package/Gizmos/rotationGizmo.js.map +1 -1
- package/Gizmos/scaleGizmo.js +1 -5
- package/Gizmos/scaleGizmo.js.map +1 -1
- package/Materials/Node/nodeMaterial.d.ts +2 -2
- package/Materials/Node/nodeMaterial.js +2 -2
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/Textures/Procedurals/customProceduralTexture.d.ts +11 -1
- package/Materials/Textures/Procedurals/customProceduralTexture.js +3 -0
- package/Materials/Textures/Procedurals/customProceduralTexture.js.map +1 -1
- package/Materials/Textures/Procedurals/proceduralTexture.d.ts +13 -2
- package/Materials/Textures/Procedurals/proceduralTexture.js +12 -14
- package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
- package/Materials/Textures/dynamicTexture.d.ts +5 -0
- package/Materials/Textures/dynamicTexture.js +13 -0
- package/Materials/Textures/dynamicTexture.js.map +1 -1
- package/Materials/Textures/videoTexture.js +5 -2
- package/Materials/Textures/videoTexture.js.map +1 -1
- package/Meshes/abstractMesh.js +1 -1
- package/Meshes/abstractMesh.js.map +1 -1
- package/Misc/environmentTextureTools.js +1 -1
- package/Misc/environmentTextureTools.js.map +1 -1
- package/Misc/fileTools.js +4 -5
- package/Misc/fileTools.js.map +1 -1
- package/Physics/v2/ragdoll.d.ts +0 -1
- package/Physics/v2/ragdoll.js +9 -3
- package/Physics/v2/ragdoll.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.js +10 -11
- package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.js.map +1 -1
- package/Rendering/geometryBufferRenderer.d.ts +14 -2
- package/Rendering/geometryBufferRenderer.js +40 -6
- package/Rendering/geometryBufferRenderer.js.map +1 -1
- package/Rendering/geometryBufferRendererSceneComponent.d.ts +9 -3
- package/Rendering/geometryBufferRendererSceneComponent.js +2 -2
- package/Rendering/geometryBufferRendererSceneComponent.js.map +1 -1
- package/Shaders/geometry.fragment.js +3 -0
- package/Shaders/geometry.fragment.js.map +1 -1
- package/Shaders/screenSpaceReflection2.fragment.js +6 -0
- package/Shaders/screenSpaceReflection2.fragment.js.map +1 -1
- package/package.json +1 -1
- package/Engines/WebGPU/Extensions/engine.dynamicBuffer.d.ts +0 -1
- package/Engines/WebGPU/Extensions/engine.dynamicBuffer.js +0 -44
- package/Engines/WebGPU/Extensions/engine.dynamicBuffer.js.map +0 -1
- package/Engines/WebGPU/Extensions/engine.uniformBuffer.d.ts +0 -1
- package/Engines/WebGPU/Extensions/engine.uniformBuffer.js +0 -46
- package/Engines/WebGPU/Extensions/engine.uniformBuffer.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Nullable, DataArray, IndicesArray, Immutable } from "../types";
|
|
1
|
+
import type { Nullable, DataArray, IndicesArray, Immutable, FloatArray } from "../types";
|
|
2
2
|
import { Engine } from "../Engines/engine";
|
|
3
3
|
import { InternalTexture, InternalTextureSource } from "../Materials/Textures/internalTexture";
|
|
4
4
|
import type { IEffectCreationOptions } from "../Materials/effect";
|
|
@@ -446,6 +446,21 @@ export declare class WebGPUEngine extends Engine {
|
|
|
446
446
|
* @returns a new buffer
|
|
447
447
|
*/
|
|
448
448
|
createIndexBuffer(indices: IndicesArray, _updatable?: boolean, label?: string): DataBuffer;
|
|
449
|
+
/**
|
|
450
|
+
* Update a dynamic index buffer
|
|
451
|
+
* @param indexBuffer defines the target index buffer
|
|
452
|
+
* @param indices defines the data to update
|
|
453
|
+
* @param offset defines the offset in the target index buffer where update should start
|
|
454
|
+
*/
|
|
455
|
+
updateDynamicIndexBuffer(indexBuffer: DataBuffer, indices: IndicesArray, offset?: number): void;
|
|
456
|
+
/**
|
|
457
|
+
* Updates a dynamic vertex buffer.
|
|
458
|
+
* @param vertexBuffer the vertex buffer to update
|
|
459
|
+
* @param data the data used to update the vertex buffer
|
|
460
|
+
* @param byteOffset the byte offset of the data
|
|
461
|
+
* @param byteLength the byte length of the data
|
|
462
|
+
*/
|
|
463
|
+
updateDynamicVertexBuffer(vertexBuffer: DataBuffer, data: DataArray, byteOffset?: number, byteLength?: number): void;
|
|
449
464
|
/**
|
|
450
465
|
* @internal
|
|
451
466
|
*/
|
|
@@ -474,6 +489,42 @@ export declare class WebGPUEngine extends Engine {
|
|
|
474
489
|
* @internal
|
|
475
490
|
*/
|
|
476
491
|
_releaseBuffer(buffer: DataBuffer): boolean;
|
|
492
|
+
/**
|
|
493
|
+
* Create an uniform buffer
|
|
494
|
+
* @see https://doc.babylonjs.com/setup/support/webGL2#uniform-buffer-objets
|
|
495
|
+
* @param elements defines the content of the uniform buffer
|
|
496
|
+
* @param label defines a name for the buffer (for debugging purpose)
|
|
497
|
+
* @returns the webGL uniform buffer
|
|
498
|
+
*/
|
|
499
|
+
createUniformBuffer(elements: FloatArray, label?: string): DataBuffer;
|
|
500
|
+
/**
|
|
501
|
+
* Create a dynamic uniform buffer (no different from a non dynamic uniform buffer in WebGPU)
|
|
502
|
+
* @see https://doc.babylonjs.com/setup/support/webGL2#uniform-buffer-objets
|
|
503
|
+
* @param elements defines the content of the uniform buffer
|
|
504
|
+
* @param label defines a name for the buffer (for debugging purpose)
|
|
505
|
+
* @returns the webGL uniform buffer
|
|
506
|
+
*/
|
|
507
|
+
createDynamicUniformBuffer(elements: FloatArray, label?: string): DataBuffer;
|
|
508
|
+
/**
|
|
509
|
+
* Update an existing uniform buffer
|
|
510
|
+
* @see https://doc.babylonjs.com/setup/support/webGL2#uniform-buffer-objets
|
|
511
|
+
* @param uniformBuffer defines the target uniform buffer
|
|
512
|
+
* @param elements defines the content to update
|
|
513
|
+
* @param offset defines the offset in the uniform buffer where update should start
|
|
514
|
+
* @param count defines the size of the data to update
|
|
515
|
+
*/
|
|
516
|
+
updateUniformBuffer(uniformBuffer: DataBuffer, elements: FloatArray, offset?: number, count?: number): void;
|
|
517
|
+
/**
|
|
518
|
+
* Bind a buffer to the current draw context
|
|
519
|
+
* @param buffer defines the buffer to bind
|
|
520
|
+
* @param _location not used in WebGPU
|
|
521
|
+
* @param name Name of the uniform variable to bind
|
|
522
|
+
*/
|
|
523
|
+
bindUniformBufferBase(buffer: DataBuffer, _location: number, name: string): void;
|
|
524
|
+
/**
|
|
525
|
+
* Unused in WebGPU
|
|
526
|
+
*/
|
|
527
|
+
bindUniformBlock(): void;
|
|
477
528
|
/**
|
|
478
529
|
* Create a new effect (used to store vertex/fragment shaders)
|
|
479
530
|
* @param baseName defines the base name of the effect (The name of file without .fragment.fx or .vertex.fx)
|
package/Engines/webgpuEngine.js
CHANGED
|
@@ -527,6 +527,7 @@ export class WebGPUEngine extends Engine {
|
|
|
527
527
|
highPrecisionShaderSupported: true,
|
|
528
528
|
colorBufferFloat: true,
|
|
529
529
|
supportFloatTexturesResolve: false,
|
|
530
|
+
rg11b10ufColorRenderable: this._deviceEnabledExtensions.indexOf(WebGPUConstants.FeatureName.RG11B10UFloatRenderable) >= 0,
|
|
530
531
|
textureFloat: true,
|
|
531
532
|
textureFloatLinearFiltering: this._deviceEnabledExtensions.indexOf(WebGPUConstants.FeatureName.Float32Filterable) >= 0,
|
|
532
533
|
textureFloatRender: true,
|
|
@@ -1080,6 +1081,61 @@ export class WebGPUEngine extends Engine {
|
|
|
1080
1081
|
dataBuffer.is32Bits = is32Bits;
|
|
1081
1082
|
return dataBuffer;
|
|
1082
1083
|
}
|
|
1084
|
+
/**
|
|
1085
|
+
* Update a dynamic index buffer
|
|
1086
|
+
* @param indexBuffer defines the target index buffer
|
|
1087
|
+
* @param indices defines the data to update
|
|
1088
|
+
* @param offset defines the offset in the target index buffer where update should start
|
|
1089
|
+
*/
|
|
1090
|
+
updateDynamicIndexBuffer(indexBuffer, indices, offset = 0) {
|
|
1091
|
+
const gpuBuffer = indexBuffer;
|
|
1092
|
+
let view;
|
|
1093
|
+
if (indexBuffer.is32Bits) {
|
|
1094
|
+
view = indices instanceof Uint32Array ? indices : new Uint32Array(indices);
|
|
1095
|
+
}
|
|
1096
|
+
else {
|
|
1097
|
+
view = indices instanceof Uint16Array ? indices : new Uint16Array(indices);
|
|
1098
|
+
}
|
|
1099
|
+
this._bufferManager.setSubData(gpuBuffer, offset, view);
|
|
1100
|
+
}
|
|
1101
|
+
/**
|
|
1102
|
+
* Updates a dynamic vertex buffer.
|
|
1103
|
+
* @param vertexBuffer the vertex buffer to update
|
|
1104
|
+
* @param data the data used to update the vertex buffer
|
|
1105
|
+
* @param byteOffset the byte offset of the data
|
|
1106
|
+
* @param byteLength the byte length of the data
|
|
1107
|
+
*/
|
|
1108
|
+
updateDynamicVertexBuffer(vertexBuffer, data, byteOffset, byteLength) {
|
|
1109
|
+
const dataBuffer = vertexBuffer;
|
|
1110
|
+
if (byteOffset === undefined) {
|
|
1111
|
+
byteOffset = 0;
|
|
1112
|
+
}
|
|
1113
|
+
let view;
|
|
1114
|
+
if (byteLength === undefined) {
|
|
1115
|
+
if (data instanceof Array) {
|
|
1116
|
+
view = new Float32Array(data);
|
|
1117
|
+
}
|
|
1118
|
+
else if (data instanceof ArrayBuffer) {
|
|
1119
|
+
view = new Uint8Array(data);
|
|
1120
|
+
}
|
|
1121
|
+
else {
|
|
1122
|
+
view = data;
|
|
1123
|
+
}
|
|
1124
|
+
byteLength = view.byteLength;
|
|
1125
|
+
}
|
|
1126
|
+
else {
|
|
1127
|
+
if (data instanceof Array) {
|
|
1128
|
+
view = new Float32Array(data);
|
|
1129
|
+
}
|
|
1130
|
+
else if (data instanceof ArrayBuffer) {
|
|
1131
|
+
view = new Uint8Array(data);
|
|
1132
|
+
}
|
|
1133
|
+
else {
|
|
1134
|
+
view = data;
|
|
1135
|
+
}
|
|
1136
|
+
}
|
|
1137
|
+
this._bufferManager.setSubData(dataBuffer, byteOffset, view, 0, byteLength);
|
|
1138
|
+
}
|
|
1083
1139
|
/**
|
|
1084
1140
|
* @internal
|
|
1085
1141
|
*/
|
|
@@ -1146,6 +1202,83 @@ export class WebGPUEngine extends Engine {
|
|
|
1146
1202
|
return this._bufferManager.releaseBuffer(buffer);
|
|
1147
1203
|
}
|
|
1148
1204
|
//------------------------------------------------------------------------------
|
|
1205
|
+
// Uniform Buffers
|
|
1206
|
+
//------------------------------------------------------------------------------
|
|
1207
|
+
/**
|
|
1208
|
+
* Create an uniform buffer
|
|
1209
|
+
* @see https://doc.babylonjs.com/setup/support/webGL2#uniform-buffer-objets
|
|
1210
|
+
* @param elements defines the content of the uniform buffer
|
|
1211
|
+
* @param label defines a name for the buffer (for debugging purpose)
|
|
1212
|
+
* @returns the webGL uniform buffer
|
|
1213
|
+
*/
|
|
1214
|
+
createUniformBuffer(elements, label) {
|
|
1215
|
+
let view;
|
|
1216
|
+
if (elements instanceof Array) {
|
|
1217
|
+
view = new Float32Array(elements);
|
|
1218
|
+
}
|
|
1219
|
+
else {
|
|
1220
|
+
view = elements;
|
|
1221
|
+
}
|
|
1222
|
+
const dataBuffer = this._bufferManager.createBuffer(view, WebGPUConstants.BufferUsage.Uniform | WebGPUConstants.BufferUsage.CopyDst, label);
|
|
1223
|
+
return dataBuffer;
|
|
1224
|
+
}
|
|
1225
|
+
/**
|
|
1226
|
+
* Create a dynamic uniform buffer (no different from a non dynamic uniform buffer in WebGPU)
|
|
1227
|
+
* @see https://doc.babylonjs.com/setup/support/webGL2#uniform-buffer-objets
|
|
1228
|
+
* @param elements defines the content of the uniform buffer
|
|
1229
|
+
* @param label defines a name for the buffer (for debugging purpose)
|
|
1230
|
+
* @returns the webGL uniform buffer
|
|
1231
|
+
*/
|
|
1232
|
+
createDynamicUniformBuffer(elements, label) {
|
|
1233
|
+
return this.createUniformBuffer(elements, label);
|
|
1234
|
+
}
|
|
1235
|
+
/**
|
|
1236
|
+
* Update an existing uniform buffer
|
|
1237
|
+
* @see https://doc.babylonjs.com/setup/support/webGL2#uniform-buffer-objets
|
|
1238
|
+
* @param uniformBuffer defines the target uniform buffer
|
|
1239
|
+
* @param elements defines the content to update
|
|
1240
|
+
* @param offset defines the offset in the uniform buffer where update should start
|
|
1241
|
+
* @param count defines the size of the data to update
|
|
1242
|
+
*/
|
|
1243
|
+
updateUniformBuffer(uniformBuffer, elements, offset, count) {
|
|
1244
|
+
if (offset === undefined) {
|
|
1245
|
+
offset = 0;
|
|
1246
|
+
}
|
|
1247
|
+
const dataBuffer = uniformBuffer;
|
|
1248
|
+
let view;
|
|
1249
|
+
if (count === undefined) {
|
|
1250
|
+
if (elements instanceof Float32Array) {
|
|
1251
|
+
view = elements;
|
|
1252
|
+
}
|
|
1253
|
+
else {
|
|
1254
|
+
view = new Float32Array(elements);
|
|
1255
|
+
}
|
|
1256
|
+
count = view.byteLength;
|
|
1257
|
+
}
|
|
1258
|
+
else {
|
|
1259
|
+
if (elements instanceof Float32Array) {
|
|
1260
|
+
view = elements;
|
|
1261
|
+
}
|
|
1262
|
+
else {
|
|
1263
|
+
view = new Float32Array(elements);
|
|
1264
|
+
}
|
|
1265
|
+
}
|
|
1266
|
+
this._bufferManager.setSubData(dataBuffer, offset, view, 0, count);
|
|
1267
|
+
}
|
|
1268
|
+
/**
|
|
1269
|
+
* Bind a buffer to the current draw context
|
|
1270
|
+
* @param buffer defines the buffer to bind
|
|
1271
|
+
* @param _location not used in WebGPU
|
|
1272
|
+
* @param name Name of the uniform variable to bind
|
|
1273
|
+
*/
|
|
1274
|
+
bindUniformBufferBase(buffer, _location, name) {
|
|
1275
|
+
this._currentDrawContext.setBuffer(name, buffer);
|
|
1276
|
+
}
|
|
1277
|
+
/**
|
|
1278
|
+
* Unused in WebGPU
|
|
1279
|
+
*/
|
|
1280
|
+
bindUniformBlock() { }
|
|
1281
|
+
//------------------------------------------------------------------------------
|
|
1149
1282
|
// Effects
|
|
1150
1283
|
//------------------------------------------------------------------------------
|
|
1151
1284
|
/**
|