@babylonjs/core 8.43.0 → 8.44.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/Engines/WebGPU/Extensions/engine.multiRender.js +5 -10
- package/Engines/WebGPU/Extensions/engine.multiRender.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.renderTarget.js +4 -2
- package/Engines/WebGPU/Extensions/engine.renderTarget.js.map +1 -1
- package/Engines/WebGPU/webgpuDrawContext.d.ts +8 -0
- package/Engines/WebGPU/webgpuDrawContext.js +8 -0
- package/Engines/WebGPU/webgpuDrawContext.js.map +1 -1
- package/Engines/WebGPU/webgpuHardwareTexture.d.ts +4 -3
- package/Engines/WebGPU/webgpuHardwareTexture.js +27 -21
- package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureManager.d.ts +5 -4
- package/Engines/WebGPU/webgpuTextureManager.js +20 -30
- package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
- package/Engines/abstractEngine.js +2 -2
- package/Engines/abstractEngine.js.map +1 -1
- package/Engines/engine.d.ts +1 -0
- package/Engines/thinEngine.js +9 -1
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/thinWebGPUEngine.js +2 -3
- package/Engines/thinWebGPUEngine.js.map +1 -1
- package/Engines/webgpuEngine.js +28 -13
- package/Engines/webgpuEngine.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js +2 -2
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Textures/clearBlock.d.ts +1 -1
- package/FrameGraph/Node/Blocks/Textures/clearBlock.js +2 -2
- package/FrameGraph/Node/Blocks/Textures/clearBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/inputBlock.js +4 -0
- package/FrameGraph/Node/Blocks/inputBlock.js.map +1 -1
- package/FrameGraph/Node/nodeRenderGraphBlock.d.ts +1 -0
- package/FrameGraph/Node/nodeRenderGraphBlock.js +19 -0
- package/FrameGraph/Node/nodeRenderGraphBlock.js.map +1 -1
- package/FrameGraph/Passes/renderPass.d.ts +16 -0
- package/FrameGraph/Passes/renderPass.js +12 -0
- package/FrameGraph/Passes/renderPass.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/objectRendererTask.d.ts +3 -3
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js +3 -2
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Texture/clearTextureTask.d.ts +2 -2
- package/FrameGraph/Tasks/Texture/clearTextureTask.js +3 -2
- package/FrameGraph/Tasks/Texture/clearTextureTask.js.map +1 -1
- package/FrameGraph/frameGraphRenderContext.js +4 -15
- package/FrameGraph/frameGraphRenderContext.js.map +1 -1
- package/FrameGraph/frameGraphTask.d.ts +2 -2
- package/FrameGraph/frameGraphTask.js +6 -6
- package/FrameGraph/frameGraphTask.js.map +1 -1
- package/FrameGraph/frameGraphTaskMultiRenderTarget.d.ts +15 -0
- package/FrameGraph/frameGraphTaskMultiRenderTarget.js +25 -0
- package/FrameGraph/frameGraphTaskMultiRenderTarget.js.map +1 -0
- package/FrameGraph/frameGraphTextureManager.js +13 -2
- package/FrameGraph/frameGraphTextureManager.js.map +1 -1
- package/FrameGraph/frameGraphTypes.d.ts +9 -1
- package/FrameGraph/frameGraphTypes.js.map +1 -1
- package/Materials/Textures/textureCreationOptions.d.ts +2 -0
- package/Materials/Textures/textureCreationOptions.js +0 -1
- package/Materials/Textures/textureCreationOptions.js.map +1 -1
- package/Materials/index.d.ts +1 -0
- package/Materials/index.js +1 -0
- package/Materials/index.js.map +1 -1
- package/Materials/shaderMaterial.d.ts +1 -0
- package/Materials/shaderMaterial.js +22 -7
- package/Materials/shaderMaterial.js.map +1 -1
- package/Materials/vertexPullingHelper.functions.d.ts +32 -0
- package/Materials/vertexPullingHelper.functions.js +60 -0
- package/Materials/vertexPullingHelper.functions.js.map +1 -0
- package/Meshes/abstractMesh.js +1 -1
- package/Meshes/abstractMesh.js.map +1 -1
- package/Meshes/geometry.js +1 -0
- package/Meshes/geometry.js.map +1 -1
- package/Particles/solidParticleSystem.d.ts +2 -1
- package/Particles/solidParticleSystem.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js +4 -0
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js.map +1 -1
- package/Shaders/ShadersInclude/lightFragment.js +7 -5
- package/Shaders/ShadersInclude/lightFragment.js.map +1 -1
- package/Shaders/ShadersInclude/lightUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/lightUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/lightVxFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/lightVxFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/lightVxUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/lightVxUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/openpbrDirectLighting.js +4 -4
- package/Shaders/ShadersInclude/openpbrDirectLighting.js.map +1 -1
- package/Shaders/ShadersInclude/openpbrDirectLightingInit.js +4 -2
- package/Shaders/ShadersInclude/openpbrDirectLightingInit.js.map +1 -1
- package/Shaders/ShadersInclude/shadowsFragmentFunctions.js +4 -12
- package/Shaders/ShadersInclude/shadowsFragmentFunctions.js.map +1 -1
- package/Shaders/picking.vertex.js +2 -2
- package/Shaders/picking.vertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bonesDeclaration.js +2 -2
- package/ShadersWGSL/ShadersInclude/bonesDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/lightFragment.js +6 -4
- package/ShadersWGSL/ShadersInclude/lightFragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/lightUboDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/lightUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/lightVxFragmentDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/lightVxFragmentDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/lightVxUboDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/lightVxUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.js +4 -4
- package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrDirectLightingInit.js +4 -2
- package/ShadersWGSL/ShadersInclude/openpbrDirectLightingInit.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/shadowsFragmentFunctions.js +8 -14
- package/ShadersWGSL/ShadersInclude/shadowsFragmentFunctions.js.map +1 -1
- package/ShadersWGSL/iblVoxelGrid.vertex.d.ts +2 -0
- package/ShadersWGSL/iblVoxelGrid.vertex.js +78 -8
- package/ShadersWGSL/iblVoxelGrid.vertex.js.map +1 -1
- package/ShadersWGSL/picking.vertex.js +2 -2
- package/ShadersWGSL/picking.vertex.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Effect } from "./effect.js";
|
|
2
|
+
import type { Nullable } from "../types.js";
|
|
3
|
+
import type { Geometry } from "../Meshes/geometry.js";
|
|
4
|
+
/**
|
|
5
|
+
* Interface representing metadata for vertex pulling
|
|
6
|
+
*/
|
|
7
|
+
export interface IVertexPullingMetadata {
|
|
8
|
+
/**
|
|
9
|
+
* Offset in vertex buffer where data starts
|
|
10
|
+
*/
|
|
11
|
+
offset: number;
|
|
12
|
+
/**
|
|
13
|
+
* Stride between elements in the vertex buffer
|
|
14
|
+
*/
|
|
15
|
+
stride: number;
|
|
16
|
+
/**
|
|
17
|
+
* Type of the vertex buffer (e.g., float, int)
|
|
18
|
+
*/
|
|
19
|
+
type: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Prepares vertex pulling uniforms for the given attributes and mesh
|
|
23
|
+
* @param geometry The geometry containing the vertex buffers
|
|
24
|
+
* @returns A map of attribute names to their metadata, or null if unavailable
|
|
25
|
+
*/
|
|
26
|
+
export declare function PrepareVertexPullingUniforms(geometry: Geometry): Nullable<Map<string, IVertexPullingMetadata>>;
|
|
27
|
+
/**
|
|
28
|
+
* Bind vertex pulling uniforms to the effect
|
|
29
|
+
* @param effect The effect to bind the uniforms to
|
|
30
|
+
* @param metadata The vertex pulling metadata
|
|
31
|
+
*/
|
|
32
|
+
export declare function BindVertexPullingUniforms(effect: Effect, metadata: Map<string, IVertexPullingMetadata>): void;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// Store vertex pulling metadata per geometry
|
|
2
|
+
const _VertexPullingMetadataCache = new WeakMap();
|
|
3
|
+
/**
|
|
4
|
+
* Prepares vertex pulling uniforms for the given attributes and mesh
|
|
5
|
+
* @param geometry The geometry containing the vertex buffers
|
|
6
|
+
* @returns A map of attribute names to their metadata, or null if unavailable
|
|
7
|
+
*/
|
|
8
|
+
export function PrepareVertexPullingUniforms(geometry) {
|
|
9
|
+
const vertexBuffers = geometry.getVertexBuffers();
|
|
10
|
+
if (!vertexBuffers) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
// Check cache first
|
|
14
|
+
let metadata = _VertexPullingMetadataCache.get(geometry);
|
|
15
|
+
if (!metadata) {
|
|
16
|
+
metadata = new Map();
|
|
17
|
+
_VertexPullingMetadataCache.set(geometry, metadata);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
// Return cached metadata if it exists and hasn't changed
|
|
21
|
+
let needsUpdate = false;
|
|
22
|
+
for (const vb in vertexBuffers) {
|
|
23
|
+
if (!metadata.has(vb)) {
|
|
24
|
+
needsUpdate = true;
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
if (!needsUpdate) {
|
|
29
|
+
return metadata;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// Build or update metadata
|
|
33
|
+
for (const vb in vertexBuffers) {
|
|
34
|
+
const vertexBuffer = vertexBuffers[vb];
|
|
35
|
+
if (vertexBuffer) {
|
|
36
|
+
const offset = vertexBuffer.byteOffset;
|
|
37
|
+
const stride = vertexBuffer.byteStride;
|
|
38
|
+
const type = vertexBuffer.type;
|
|
39
|
+
metadata.set(vb, {
|
|
40
|
+
offset: offset,
|
|
41
|
+
stride: stride,
|
|
42
|
+
type: type,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return metadata;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Bind vertex pulling uniforms to the effect
|
|
50
|
+
* @param effect The effect to bind the uniforms to
|
|
51
|
+
* @param metadata The vertex pulling metadata
|
|
52
|
+
*/
|
|
53
|
+
export function BindVertexPullingUniforms(effect, metadata) {
|
|
54
|
+
metadata.forEach((data, attribute) => {
|
|
55
|
+
const uniformName = `vp_${attribute}_info`;
|
|
56
|
+
// Pack into vec3: (offset, stride, type)
|
|
57
|
+
effect.setFloat3(uniformName, data.offset, data.stride, data.type);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=vertexPullingHelper.functions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vertexPullingHelper.functions.js","sourceRoot":"","sources":["../../../../dev/core/src/Materials/vertexPullingHelper.functions.ts"],"names":[],"mappings":"AAwBA,6CAA6C;AAC7C,MAAM,2BAA2B,GAAG,IAAI,OAAO,EAAiD,CAAC;AAEjG;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAAC,QAAkB;IAC3D,MAAM,aAAa,GAAG,QAAQ,CAAC,gBAAgB,EAAE,CAAC;IAClD,IAAI,CAAC,aAAa,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oBAAoB;IACpB,IAAI,QAAQ,GAAG,2BAA2B,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,QAAQ,GAAG,IAAI,GAAG,EAAkC,CAAC;QACrD,2BAA2B,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACJ,yDAAyD;QACzD,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACpB,WAAW,GAAG,IAAI,CAAC;gBACnB,MAAM;YACV,CAAC;QACL,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,OAAO,QAAQ,CAAC;QACpB,CAAC;IACL,CAAC;IAED,2BAA2B;IAC3B,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,YAAY,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC;YACvC,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC;YACvC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;YAE/B,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE;gBACb,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI;aACb,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAc,EAAE,QAA6C;IACnG,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;QACjC,MAAM,WAAW,GAAG,MAAM,SAAS,OAAO,CAAC;QAC3C,yCAAyC;QACzC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACP,CAAC","sourcesContent":["import type { Effect } from \"./effect\";\r\nimport type { Nullable } from \"../types\";\r\nimport type { Geometry } from \"../Meshes/geometry\";\r\n\r\n/**\r\n * Interface representing metadata for vertex pulling\r\n */\r\nexport interface IVertexPullingMetadata {\r\n /**\r\n * Offset in vertex buffer where data starts\r\n */\r\n offset: number;\r\n\r\n /**\r\n * Stride between elements in the vertex buffer\r\n */\r\n stride: number;\r\n\r\n /**\r\n * Type of the vertex buffer (e.g., float, int)\r\n */\r\n type: number; // VertexBuffer type constant\r\n}\r\n\r\n// Store vertex pulling metadata per geometry\r\nconst _VertexPullingMetadataCache = new WeakMap<Geometry, Map<string, IVertexPullingMetadata>>();\r\n\r\n/**\r\n * Prepares vertex pulling uniforms for the given attributes and mesh\r\n * @param geometry The geometry containing the vertex buffers\r\n * @returns A map of attribute names to their metadata, or null if unavailable\r\n */\r\nexport function PrepareVertexPullingUniforms(geometry: Geometry): Nullable<Map<string, IVertexPullingMetadata>> {\r\n const vertexBuffers = geometry.getVertexBuffers();\r\n if (!vertexBuffers) {\r\n return null;\r\n }\r\n\r\n // Check cache first\r\n let metadata = _VertexPullingMetadataCache.get(geometry);\r\n if (!metadata) {\r\n metadata = new Map<string, IVertexPullingMetadata>();\r\n _VertexPullingMetadataCache.set(geometry, metadata);\r\n } else {\r\n // Return cached metadata if it exists and hasn't changed\r\n let needsUpdate = false;\r\n for (const vb in vertexBuffers) {\r\n if (!metadata.has(vb)) {\r\n needsUpdate = true;\r\n break;\r\n }\r\n }\r\n if (!needsUpdate) {\r\n return metadata;\r\n }\r\n }\r\n\r\n // Build or update metadata\r\n for (const vb in vertexBuffers) {\r\n const vertexBuffer = vertexBuffers[vb];\r\n if (vertexBuffer) {\r\n const offset = vertexBuffer.byteOffset;\r\n const stride = vertexBuffer.byteStride;\r\n const type = vertexBuffer.type;\r\n\r\n metadata.set(vb, {\r\n offset: offset,\r\n stride: stride,\r\n type: type,\r\n });\r\n }\r\n }\r\n\r\n return metadata;\r\n}\r\n\r\n/**\r\n * Bind vertex pulling uniforms to the effect\r\n * @param effect The effect to bind the uniforms to\r\n * @param metadata The vertex pulling metadata\r\n */\r\nexport function BindVertexPullingUniforms(effect: Effect, metadata: Map<string, IVertexPullingMetadata>): void {\r\n metadata.forEach((data, attribute) => {\r\n const uniformName = `vp_${attribute}_info`;\r\n // Pack into vec3: (offset, stride, type)\r\n effect.setFloat3(uniformName, data.offset, data.stride, data.type);\r\n });\r\n}\r\n"]}
|
package/Meshes/abstractMesh.js
CHANGED
|
@@ -1860,7 +1860,7 @@ export class AbstractMesh extends TransformNode {
|
|
|
1860
1860
|
}
|
|
1861
1861
|
const positions = this.getVerticesData(VertexBuffer.PositionKind);
|
|
1862
1862
|
const indices = this.getIndices();
|
|
1863
|
-
const normals = this.getVerticesData(VertexBuffer.NormalKind);
|
|
1863
|
+
const normals = this.getVerticesData(VertexBuffer.NormalKind)?.slice();
|
|
1864
1864
|
const bInfo = this.getBoundingInfo();
|
|
1865
1865
|
if (data.facetDepthSort && !data.facetDepthSortEnabled) {
|
|
1866
1866
|
// init arrays, matrix and sort function on first call
|