@aura3d/rendering 1.4.4 → 1.5.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/dist/CascadedShadowMaps.d.ts +9 -1
- package/dist/CascadedShadowMaps.d.ts.map +1 -1
- package/dist/CascadedShadowMaps.js +68 -0
- package/dist/CascadedShadowMaps.js.map +1 -1
- package/dist/ClusteredForwardLighting.d.ts +28 -0
- package/dist/ClusteredForwardLighting.d.ts.map +1 -0
- package/dist/ClusteredForwardLighting.js +156 -0
- package/dist/ClusteredForwardLighting.js.map +1 -0
- package/dist/DepthPass.d.ts +14 -1
- package/dist/DepthPass.d.ts.map +1 -1
- package/dist/DepthPass.js +19 -4
- package/dist/DepthPass.js.map +1 -1
- package/dist/EnvironmentMapResources.d.ts +59 -1
- package/dist/EnvironmentMapResources.d.ts.map +1 -1
- package/dist/EnvironmentMapResources.js +140 -100
- package/dist/EnvironmentMapResources.js.map +1 -1
- package/dist/EnvironmentPlatform.d.ts +3 -2
- package/dist/EnvironmentPlatform.d.ts.map +1 -1
- package/dist/EnvironmentPlatform.js +99 -44
- package/dist/EnvironmentPlatform.js.map +1 -1
- package/dist/ForwardPass.d.ts +37 -0
- package/dist/ForwardPass.d.ts.map +1 -1
- package/dist/ForwardPass.js +234 -7
- package/dist/ForwardPass.js.map +1 -1
- package/dist/Geometry.d.ts +19 -0
- package/dist/Geometry.d.ts.map +1 -1
- package/dist/Geometry.js +64 -0
- package/dist/Geometry.js.map +1 -1
- package/dist/IBL.d.ts.map +1 -1
- package/dist/IBL.js +0 -1
- package/dist/IBL.js.map +1 -1
- package/dist/LightCollector.d.ts +5 -1
- package/dist/LightCollector.d.ts.map +1 -1
- package/dist/LightCollector.js +16 -3
- package/dist/LightCollector.js.map +1 -1
- package/dist/LightUniforms.d.ts +26 -1
- package/dist/LightUniforms.d.ts.map +1 -1
- package/dist/LightUniforms.js +140 -8
- package/dist/LightUniforms.js.map +1 -1
- package/dist/LightingRig.d.ts +77 -0
- package/dist/LightingRig.d.ts.map +1 -1
- package/dist/LightingRig.js +100 -11
- package/dist/LightingRig.js.map +1 -1
- package/dist/MeshConsolidation.d.ts +63 -0
- package/dist/MeshConsolidation.d.ts.map +1 -0
- package/dist/MeshConsolidation.js +251 -0
- package/dist/MeshConsolidation.js.map +1 -0
- package/dist/PMREM.d.ts +13 -1
- package/dist/PMREM.d.ts.map +1 -1
- package/dist/PMREM.js +18 -4
- package/dist/PMREM.js.map +1 -1
- package/dist/PostProcessPass.d.ts +24 -2
- package/dist/PostProcessPass.d.ts.map +1 -1
- package/dist/PostProcessPass.js +136 -18
- package/dist/PostProcessPass.js.map +1 -1
- package/dist/PrimitiveSubmissionAudit.d.ts +195 -0
- package/dist/PrimitiveSubmissionAudit.d.ts.map +1 -0
- package/dist/PrimitiveSubmissionAudit.js +280 -0
- package/dist/PrimitiveSubmissionAudit.js.map +1 -0
- package/dist/ProductTurntableFixtures.d.ts.map +1 -1
- package/dist/ProductTurntableFixtures.js +93 -13
- package/dist/ProductTurntableFixtures.js.map +1 -1
- package/dist/ReflectionProbe.d.ts +59 -0
- package/dist/ReflectionProbe.d.ts.map +1 -1
- package/dist/ReflectionProbe.js +224 -0
- package/dist/ReflectionProbe.js.map +1 -1
- package/dist/ReflectionSurfaces.d.ts +4 -2
- package/dist/ReflectionSurfaces.d.ts.map +1 -1
- package/dist/ReflectionSurfaces.js +13 -8
- package/dist/ReflectionSurfaces.js.map +1 -1
- package/dist/RenderBackend.d.ts +1 -1
- package/dist/RenderBackend.d.ts.map +1 -1
- package/dist/RenderBackend.js +5 -1
- package/dist/RenderBackend.js.map +1 -1
- package/dist/RenderDevice.d.ts +13 -2
- package/dist/RenderDevice.d.ts.map +1 -1
- package/dist/RenderDevice.js +5 -2
- package/dist/RenderDevice.js.map +1 -1
- package/dist/Renderer.d.ts +41 -1
- package/dist/Renderer.d.ts.map +1 -1
- package/dist/Renderer.js +406 -61
- package/dist/Renderer.js.map +1 -1
- package/dist/RendererPostprocessPlan.d.ts +10 -3
- package/dist/RendererPostprocessPlan.d.ts.map +1 -1
- package/dist/RendererPostprocessPlan.js +25 -5
- package/dist/RendererPostprocessPlan.js.map +1 -1
- package/dist/RendererVisualPipelineReport.d.ts +3 -2
- package/dist/RendererVisualPipelineReport.d.ts.map +1 -1
- package/dist/RendererVisualPipelineReport.js +2 -0
- package/dist/RendererVisualPipelineReport.js.map +1 -1
- package/dist/ScreenSpaceLineMaterial.d.ts +34 -0
- package/dist/ScreenSpaceLineMaterial.d.ts.map +1 -0
- package/dist/ScreenSpaceLineMaterial.js +93 -0
- package/dist/ScreenSpaceLineMaterial.js.map +1 -0
- package/dist/ShaderChunks.d.ts +7 -0
- package/dist/ShaderChunks.d.ts.map +1 -1
- package/dist/ShaderChunks.js +137 -0
- package/dist/ShaderChunks.js.map +1 -1
- package/dist/ShaderLibrary.d.ts +17 -0
- package/dist/ShaderLibrary.d.ts.map +1 -1
- package/dist/ShaderLibrary.js +940 -98
- package/dist/ShaderLibrary.js.map +1 -1
- package/dist/ShadowPass.d.ts +10 -0
- package/dist/ShadowPass.d.ts.map +1 -1
- package/dist/ShadowPass.js +8 -1
- package/dist/ShadowPass.js.map +1 -1
- package/dist/SkinnedLitMaterial.d.ts +6 -0
- package/dist/SkinnedLitMaterial.d.ts.map +1 -1
- package/dist/SkinnedLitMaterial.js +22 -8
- package/dist/SkinnedLitMaterial.js.map +1 -1
- package/dist/SkinnedUnlitMaterial.d.ts +8 -0
- package/dist/SkinnedUnlitMaterial.d.ts.map +1 -1
- package/dist/SkinnedUnlitMaterial.js +26 -9
- package/dist/SkinnedUnlitMaterial.js.map +1 -1
- package/dist/SpecularPrefilter.d.ts +42 -0
- package/dist/SpecularPrefilter.d.ts.map +1 -0
- package/dist/SpecularPrefilter.js +480 -0
- package/dist/SpecularPrefilter.js.map +1 -0
- package/dist/TerrainFixtures.d.ts +24 -0
- package/dist/TerrainFixtures.d.ts.map +1 -1
- package/dist/TerrainFixtures.js +96 -0
- package/dist/TerrainFixtures.js.map +1 -1
- package/dist/Texture.d.ts +7 -0
- package/dist/Texture.d.ts.map +1 -1
- package/dist/Texture.js +9 -0
- package/dist/Texture.js.map +1 -1
- package/dist/VertexFormat.d.ts +34 -1
- package/dist/VertexFormat.d.ts.map +1 -1
- package/dist/VertexFormat.js +61 -0
- package/dist/VertexFormat.js.map +1 -1
- package/dist/WebGL2Device.d.ts +48 -0
- package/dist/WebGL2Device.d.ts.map +1 -1
- package/dist/WebGL2Device.js +1298 -44
- package/dist/WebGL2Device.js.map +1 -1
- package/dist/WebGPUDevice.d.ts +7 -2
- package/dist/WebGPUDevice.d.ts.map +1 -1
- package/dist/WebGPUDevice.js +111 -17
- package/dist/WebGPUDevice.js.map +1 -1
- package/dist/WebGPUSkinningLimits.d.ts +14 -0
- package/dist/WebGPUSkinningLimits.d.ts.map +1 -0
- package/dist/WebGPUSkinningLimits.js +14 -0
- package/dist/WebGPUSkinningLimits.js.map +1 -0
- package/dist/cartoon/CartoonMaterialStyle.d.ts +19 -0
- package/dist/cartoon/CartoonMaterialStyle.d.ts.map +1 -0
- package/dist/cartoon/CartoonMaterialStyle.js +13 -0
- package/dist/cartoon/CartoonMaterialStyle.js.map +1 -0
- package/dist/cartoon/CartoonRenderPreset.d.ts +36 -0
- package/dist/cartoon/CartoonRenderPreset.d.ts.map +1 -0
- package/dist/cartoon/CartoonRenderPreset.js +23 -0
- package/dist/cartoon/CartoonRenderPreset.js.map +1 -0
- package/dist/cartoon/CartoonToonMaterial.d.ts +130 -0
- package/dist/cartoon/CartoonToonMaterial.d.ts.map +1 -0
- package/dist/cartoon/CartoonToonMaterial.js +303 -0
- package/dist/cartoon/CartoonToonMaterial.js.map +1 -0
- package/dist/cartoon/CartoonVisualQuality.d.ts +28 -0
- package/dist/cartoon/CartoonVisualQuality.d.ts.map +1 -0
- package/dist/cartoon/CartoonVisualQuality.js +39 -0
- package/dist/cartoon/CartoonVisualQuality.js.map +1 -0
- package/dist/cartoon/applyCartoonRenderPreset.d.ts +79 -0
- package/dist/cartoon/applyCartoonRenderPreset.d.ts.map +1 -0
- package/dist/cartoon/applyCartoonRenderPreset.js +88 -0
- package/dist/cartoon/applyCartoonRenderPreset.js.map +1 -0
- package/dist/cartoon/index.d.ts +6 -0
- package/dist/cartoon/index.d.ts.map +1 -0
- package/dist/cartoon/index.js +6 -0
- package/dist/cartoon/index.js.map +1 -0
- package/dist/index.d.ts +26 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -9
- package/dist/index.js.map +1 -1
- package/dist/postprocess/NativeLdrEffectLuts.d.ts +93 -0
- package/dist/postprocess/NativeLdrEffectLuts.d.ts.map +1 -0
- package/dist/postprocess/NativeLdrEffectLuts.js +202 -0
- package/dist/postprocess/NativeLdrEffectLuts.js.map +1 -0
- package/dist/production-runtime/PBRHDRPipeline.d.ts.map +1 -1
- package/dist/production-runtime/PBRHDRPipeline.js +3 -0
- package/dist/production-runtime/PBRHDRPipeline.js.map +1 -1
- package/dist/production-runtime/ProductionRendererTypes.d.ts +1 -0
- package/dist/production-runtime/ProductionRendererTypes.d.ts.map +1 -1
- package/dist/production-runtime/ProductionRendererTypes.js.map +1 -1
- package/dist/production-runtime/ProductionWebGL2Renderer.d.ts.map +1 -1
- package/dist/production-runtime/ProductionWebGL2Renderer.js +5 -3
- package/dist/production-runtime/ProductionWebGL2Renderer.js.map +1 -1
- package/dist/production-runtime/ProductionWebGPURenderer.d.ts.map +1 -1
- package/dist/production-runtime/ProductionWebGPURenderer.js +9 -5
- package/dist/production-runtime/ProductionWebGPURenderer.js.map +1 -1
- package/dist/production-runtime/TransmissionBackdropCapture.d.ts +5 -0
- package/dist/production-runtime/TransmissionBackdropCapture.d.ts.map +1 -1
- package/dist/production-runtime/TransmissionBackdropCapture.js +40 -0
- package/dist/production-runtime/TransmissionBackdropCapture.js.map +1 -1
- package/dist/production-runtime/environment/HDRLoader.d.ts +6 -0
- package/dist/production-runtime/environment/HDRLoader.d.ts.map +1 -1
- package/dist/production-runtime/environment/HDRLoader.js +19 -0
- package/dist/production-runtime/environment/HDRLoader.js.map +1 -1
- package/dist/production-runtime/index.d.ts +3 -1
- package/dist/production-runtime/index.d.ts.map +1 -1
- package/dist/production-runtime/index.js +1 -0
- package/dist/production-runtime/index.js.map +1 -1
- package/package.json +3 -3
package/dist/PMREM.js
CHANGED
|
@@ -1,14 +1,26 @@
|
|
|
1
|
-
import { generateSpecularPrefilterMipLevels } from "./EnvironmentMapResources.js";
|
|
1
|
+
import { generateSpecularPrefilterMipLevels, specularPrefilterLevelRoughness } from "./EnvironmentMapResources.js";
|
|
2
|
+
/**
|
|
3
|
+
* Builds a PMREM-style specular chain using real GGX importance-sampled
|
|
4
|
+
* prefiltering. Each level's reported roughness is the roughness that level's
|
|
5
|
+
* texels were actually convolved for, taken from the same schedule the filter
|
|
6
|
+
* used — not derived post-hoc from a mip index.
|
|
7
|
+
*
|
|
8
|
+
* The previous implementation requested `blurRadius: 3` box-blurred mips and
|
|
9
|
+
* then labelled level `i` with roughness `i / (levels - 1)`, so the reported
|
|
10
|
+
* roughness had no relationship to the filter width actually applied.
|
|
11
|
+
*/
|
|
2
12
|
export function createExternalParityPmrem(source, options = {}) {
|
|
13
|
+
const sampleCount = options.sampleCount ?? 64;
|
|
3
14
|
const mipLevels = generateSpecularPrefilterMipLevels(source, {
|
|
4
15
|
levels: options.levels ?? 6,
|
|
5
|
-
|
|
16
|
+
sampleCount
|
|
6
17
|
});
|
|
18
|
+
const levelRoughness = specularPrefilterLevelRoughness(mipLevels.length);
|
|
7
19
|
const levels = mipLevels.map((level, index) => ({
|
|
8
20
|
level: index,
|
|
9
21
|
width: level.width,
|
|
10
22
|
height: level.height,
|
|
11
|
-
roughness:
|
|
23
|
+
roughness: levelRoughness[index],
|
|
12
24
|
byteLength: level.data.byteLength
|
|
13
25
|
}));
|
|
14
26
|
return {
|
|
@@ -19,7 +31,9 @@ export function createExternalParityPmrem(source, options = {}) {
|
|
|
19
31
|
mipCount: mipLevels.length,
|
|
20
32
|
maxRoughness: levels.at(-1)?.roughness ?? 0,
|
|
21
33
|
totalByteLength: levels.reduce((sum, level) => sum + level.byteLength, 0),
|
|
22
|
-
directionalReflectionReady: mipLevels.length >= 4 && mipLevels[0].width > mipLevels.at(-1).width
|
|
34
|
+
directionalReflectionReady: mipLevels.length >= 4 && mipLevels[0].width > mipLevels.at(-1).width,
|
|
35
|
+
filterModel: "ggx-importance-sampled-equirect-prefilter",
|
|
36
|
+
sampleCount
|
|
23
37
|
}
|
|
24
38
|
};
|
|
25
39
|
}
|
package/dist/PMREM.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PMREM.js","sourceRoot":"","sources":["../../../../packages/rendering/src/PMREM.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,
|
|
1
|
+
{"version":3,"file":"PMREM.js","sourceRoot":"","sources":["../../../../packages/rendering/src/PMREM.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAClC,+BAA+B,EAEhC,MAAM,2BAA2B,CAAC;AAyBnC;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAiC,EACjC,UAII,EAAE;IAEN,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;IAC9C,MAAM,SAAS,GAAG,kCAAkC,CAAC,MAAM,EAAE;QAC3D,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC;QAC3B,WAAW;KACZ,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,+BAA+B,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC9C,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS,EAAE,cAAc,CAAC,KAAK,CAAE;QACjC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU;KAClC,CAAC,CAAC,CAAC;IACJ,OAAO;QACL,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,gCAAgC;QACtE,SAAS;QACT,MAAM;QACN,WAAW,EAAE;YACX,QAAQ,EAAE,SAAS,CAAC,MAAM;YAC1B,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,CAAC;YAC3C,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;YACzE,0BAA0B,EAAE,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,CAAE,CAAC,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,KAAK;YAClG,WAAW,EAAE,2CAA2C;YACxD,WAAW;SACZ;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -145,6 +145,27 @@ export interface DepthOfFieldResult {
|
|
|
145
145
|
readonly focusDepth: number;
|
|
146
146
|
readonly focusRange: number;
|
|
147
147
|
}
|
|
148
|
+
export interface VolumetricLightOptions {
|
|
149
|
+
readonly depth?: DepthTextureBinding;
|
|
150
|
+
readonly lightPosition?: readonly [number, number];
|
|
151
|
+
readonly color?: readonly [number, number, number];
|
|
152
|
+
readonly density?: number;
|
|
153
|
+
readonly decay?: number;
|
|
154
|
+
readonly weight?: number;
|
|
155
|
+
readonly exposure?: number;
|
|
156
|
+
readonly samples?: number;
|
|
157
|
+
readonly occlusionThreshold?: number;
|
|
158
|
+
}
|
|
159
|
+
export interface VolumetricLightResult {
|
|
160
|
+
readonly width: number;
|
|
161
|
+
readonly height: number;
|
|
162
|
+
readonly pixels: Uint8Array;
|
|
163
|
+
readonly changedPixels: number;
|
|
164
|
+
readonly occludedSamples: number;
|
|
165
|
+
readonly maxScattering: number;
|
|
166
|
+
readonly sampleCount: number;
|
|
167
|
+
readonly method: "depth-aware-radial-participating-media";
|
|
168
|
+
}
|
|
148
169
|
export interface MotionBlurOptions {
|
|
149
170
|
readonly velocity: Float32Array;
|
|
150
171
|
readonly samples?: number;
|
|
@@ -262,10 +283,10 @@ export interface FXAAResult {
|
|
|
262
283
|
readonly pixels: Uint8Array;
|
|
263
284
|
readonly edgeMask: Uint8Array;
|
|
264
285
|
}
|
|
265
|
-
export type FusedLdrPostProcessPassName = "tone-mapping" | "color-grade" | "fxaa";
|
|
286
|
+
export type FusedLdrPostProcessPassName = "bloom" | "tone-mapping" | "color-grade" | "fxaa";
|
|
266
287
|
export interface FusedLdrPostProcessPass {
|
|
267
288
|
readonly name: FusedLdrPostProcessPassName;
|
|
268
|
-
readonly options: ToneMappingOptions | ColorGradeOptions | FXAAOptions;
|
|
289
|
+
readonly options: BloomOptions | ToneMappingOptions | ColorGradeOptions | FXAAOptions;
|
|
269
290
|
}
|
|
270
291
|
export interface FusedLdrPostProcessScratch {
|
|
271
292
|
bufferA?: Uint8Array;
|
|
@@ -402,6 +423,7 @@ export declare function chromaticAberrationPixels(pixels: Uint8Array, width: num
|
|
|
402
423
|
export declare function outlinePixels(pixels: Uint8Array, width: number, height: number, options?: OutlineOptions): OutlineResult;
|
|
403
424
|
export declare function filmGrainPixels(pixels: Uint8Array, width: number, height: number, options?: FilmGrainOptions): FilmGrainResult;
|
|
404
425
|
export declare function depthOfFieldPixels(pixels: Uint8Array, width: number, height: number, options: DepthOfFieldOptions): DepthOfFieldResult;
|
|
426
|
+
export declare function volumetricLightPixels(pixels: Uint8Array, width: number, height: number, options?: VolumetricLightOptions): VolumetricLightResult;
|
|
405
427
|
export declare function motionBlurPixels(pixels: Uint8Array, width: number, height: number, options: MotionBlurOptions): MotionBlurResult;
|
|
406
428
|
export declare function ssaoPixels(pixels: Uint8Array, width: number, height: number, options: SSAOOptions): SSAOResult;
|
|
407
429
|
export declare function contactShadowPixels(pixels: Uint8Array, width: number, height: number, options: ContactShadowPostProcessOptions): ContactShadowPostProcessResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostProcessPass.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/PostProcessPass.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PostProcessPass.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/PostProcessPass.ts"],"names":[],"mappings":"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"}
|
package/dist/PostProcessPass.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BaseRenderPass } from "./RenderPass.js";
|
|
2
2
|
import { RenderDeviceError } from "./RenderDevice.js";
|
|
3
|
+
import { OUTLINE_LUMA_SCALE, createOutlineGradientBound } from "./postprocess/NativeLdrEffectLuts.js";
|
|
3
4
|
export class ToneMappingPass extends BaseRenderPass {
|
|
4
5
|
options;
|
|
5
6
|
exposure;
|
|
@@ -511,16 +512,20 @@ export function outlinePixels(pixels, width, height, options = {}) {
|
|
|
511
512
|
validateRange(opacity, 0, 1, "Outline opacity");
|
|
512
513
|
validateOutlineColor(color);
|
|
513
514
|
const edgeMask = new Uint8Array(width * height);
|
|
514
|
-
|
|
515
|
+
const gradientBound = createOutlineGradientBound(threshold).numberValue;
|
|
516
|
+
let maxGradientNumerator = 0;
|
|
515
517
|
for (let y = 0; y < height; y += 1) {
|
|
516
518
|
for (let x = 0; x < width; x += 1) {
|
|
517
|
-
const
|
|
518
|
-
|
|
519
|
-
if (
|
|
519
|
+
const { gx, gy } = sobelLumaNumeratorGradient(pixels, width, height, x, y);
|
|
520
|
+
const squared = gx * gx + gy * gy;
|
|
521
|
+
if (squared > maxGradientNumerator)
|
|
522
|
+
maxGradientNumerator = squared;
|
|
523
|
+
if (outlineEdgeExceedsBound(gx, gy, gradientBound)) {
|
|
520
524
|
edgeMask[y * width + x] = 255;
|
|
521
525
|
}
|
|
522
526
|
}
|
|
523
527
|
}
|
|
528
|
+
const maxGradient = Math.sqrt(maxGradientNumerator) / OUTLINE_LUMA_SCALE;
|
|
524
529
|
const outlineMask = dilateMask(edgeMask, width, height, outlineWidth);
|
|
525
530
|
const output = new Uint8Array(pixels);
|
|
526
531
|
let outlinedPixels = 0;
|
|
@@ -636,6 +641,80 @@ export function depthOfFieldPixels(pixels, width, height, options) {
|
|
|
636
641
|
}
|
|
637
642
|
return { width, height, pixels: output, blurredPixels, maxBlurRadius: maxRadius, focusDepth, focusRange };
|
|
638
643
|
}
|
|
644
|
+
export function volumetricLightPixels(pixels, width, height, options = {}) {
|
|
645
|
+
validatePixelBuffer(pixels, width, height, "Volumetric light");
|
|
646
|
+
const depth = requireDepthTextureBinding(options.depth, "Volumetric light");
|
|
647
|
+
if (depth.width !== width || depth.height !== height) {
|
|
648
|
+
throw new Error("Volumetric light depth texture dimensions must match source pixels.");
|
|
649
|
+
}
|
|
650
|
+
const lightPosition = options.lightPosition ?? [0.5, 0.18];
|
|
651
|
+
if (lightPosition.length !== 2 || !lightPosition.every((value) => Number.isFinite(value) && value >= 0 && value <= 1)) {
|
|
652
|
+
throw new RangeError("Volumetric light position must contain two finite normalized coordinates.");
|
|
653
|
+
}
|
|
654
|
+
const color = options.color ?? [1, 0.88, 0.62];
|
|
655
|
+
if (color.length !== 3 || !color.every((value) => Number.isFinite(value) && value >= 0 && value <= 1)) {
|
|
656
|
+
throw new RangeError("Volumetric light color must contain three finite values within [0, 1].");
|
|
657
|
+
}
|
|
658
|
+
const density = numberInRange(options.density ?? 0.9, 0.01, 2, "Volumetric light density");
|
|
659
|
+
const decay = numberInRange(options.decay ?? 0.96, 0, 1, "Volumetric light decay");
|
|
660
|
+
const weight = numberInRange(options.weight ?? 0.18, 0, 2, "Volumetric light weight");
|
|
661
|
+
const exposure = numberInRange(options.exposure ?? 0.72, 0, 4, "Volumetric light exposure");
|
|
662
|
+
const samples = integerNumberInRange(options.samples ?? 32, 4, 128, "Volumetric light samples");
|
|
663
|
+
const occlusionThreshold = numberInRange(options.occlusionThreshold ?? 0.985, 0, 1, "Volumetric light occlusionThreshold");
|
|
664
|
+
const output = new Uint8Array(pixels);
|
|
665
|
+
const lightX = lightPosition[0] * (width - 1);
|
|
666
|
+
const lightY = lightPosition[1] * (height - 1);
|
|
667
|
+
let changedPixels = 0;
|
|
668
|
+
let occludedSamples = 0;
|
|
669
|
+
let maxScattering = 0;
|
|
670
|
+
for (let y = 0; y < height; y += 1) {
|
|
671
|
+
for (let x = 0; x < width; x += 1) {
|
|
672
|
+
const deltaX = ((lightX - x) / samples) * density;
|
|
673
|
+
const deltaY = ((lightY - y) / samples) * density;
|
|
674
|
+
let sampleX = x;
|
|
675
|
+
let sampleY = y;
|
|
676
|
+
let illuminationDecay = 1;
|
|
677
|
+
let scattering = 0;
|
|
678
|
+
for (let sample = 0; sample < samples; sample += 1) {
|
|
679
|
+
sampleX += deltaX;
|
|
680
|
+
sampleY += deltaY;
|
|
681
|
+
const sx = clampInt(Math.round(sampleX), 0, width - 1);
|
|
682
|
+
const sy = clampInt(Math.round(sampleY), 0, height - 1);
|
|
683
|
+
const offset = (sy * width + sx) * 4;
|
|
684
|
+
const luminance = ((pixels[offset] ?? 0) * 0.2126 + (pixels[offset + 1] ?? 0) * 0.7152 + (pixels[offset + 2] ?? 0) * 0.0722) / 255;
|
|
685
|
+
const source = Math.max(0, luminance - 0.42) / 0.58;
|
|
686
|
+
const sampleDepth = depthAt(depth, sx, sy);
|
|
687
|
+
const visible = sampleDepth >= occlusionThreshold || source > 0.05 ? 1 : 0;
|
|
688
|
+
if (visible === 0)
|
|
689
|
+
occludedSamples += 1;
|
|
690
|
+
scattering += source * visible * illuminationDecay * weight;
|
|
691
|
+
illuminationDecay *= decay;
|
|
692
|
+
}
|
|
693
|
+
const boost = scattering * exposure;
|
|
694
|
+
maxScattering = Math.max(maxScattering, boost);
|
|
695
|
+
const offset = (y * width + x) * 4;
|
|
696
|
+
const beforeR = pixels[offset] ?? 0;
|
|
697
|
+
const beforeG = pixels[offset + 1] ?? 0;
|
|
698
|
+
const beforeB = pixels[offset + 2] ?? 0;
|
|
699
|
+
output[offset] = clampByte(beforeR + color[0] * boost * 255);
|
|
700
|
+
output[offset + 1] = clampByte(beforeG + color[1] * boost * 255);
|
|
701
|
+
output[offset + 2] = clampByte(beforeB + color[2] * boost * 255);
|
|
702
|
+
if (output[offset] !== beforeR || output[offset + 1] !== beforeG || output[offset + 2] !== beforeB) {
|
|
703
|
+
changedPixels += 1;
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
return {
|
|
708
|
+
width,
|
|
709
|
+
height,
|
|
710
|
+
pixels: output,
|
|
711
|
+
changedPixels,
|
|
712
|
+
occludedSamples,
|
|
713
|
+
maxScattering: Number(maxScattering.toFixed(5)),
|
|
714
|
+
sampleCount: samples,
|
|
715
|
+
method: "depth-aware-radial-participating-media"
|
|
716
|
+
};
|
|
717
|
+
}
|
|
639
718
|
export function motionBlurPixels(pixels, width, height, options) {
|
|
640
719
|
validatePixelBuffer(pixels, width, height, "Motion blur");
|
|
641
720
|
const samples = options.samples ?? 5;
|
|
@@ -1253,6 +1332,7 @@ export function fxaaPixels(pixels, width, height, options = {}) {
|
|
|
1253
1332
|
}
|
|
1254
1333
|
export function fusedLdrPostprocessPixels(pixels, width, height, passes, options = {}) {
|
|
1255
1334
|
validatePixelBuffer(pixels, width, height, "Fused LDR postprocess");
|
|
1335
|
+
const bloom = passes.find((pass) => pass.name === "bloom");
|
|
1256
1336
|
const toneMapping = passes.find((pass) => pass.name === "tone-mapping");
|
|
1257
1337
|
const colorGrade = passes.find((pass) => pass.name === "color-grade");
|
|
1258
1338
|
const fxaa = passes.find((pass) => pass.name === "fxaa");
|
|
@@ -1264,7 +1344,9 @@ export function fusedLdrPostprocessPixels(pixels, width, height, passes, options
|
|
|
1264
1344
|
: undefined;
|
|
1265
1345
|
const colorGradeSettings = colorGrade ? normalizeColorGradeOptions(colorGrade.options) : undefined;
|
|
1266
1346
|
const byteLength = pixels.byteLength;
|
|
1267
|
-
let current =
|
|
1347
|
+
let current = bloom
|
|
1348
|
+
? bloomPixels(pixels, width, height, bloom.options).pixels
|
|
1349
|
+
: pixels;
|
|
1268
1350
|
if (toneMappingLookup || colorGradeSettings) {
|
|
1269
1351
|
const target = options.mutateInput
|
|
1270
1352
|
? pixels
|
|
@@ -1272,7 +1354,7 @@ export function fusedLdrPostprocessPixels(pixels, width, height, passes, options
|
|
|
1272
1354
|
const vignetteFactors = colorGradeSettings && colorGradeSettings.vignette > 0
|
|
1273
1355
|
? getVignetteFactors(width, height, colorGradeSettings.vignette, options.scratch)
|
|
1274
1356
|
: undefined;
|
|
1275
|
-
applyToneMappingAndColorGrade(
|
|
1357
|
+
applyToneMappingAndColorGrade(current, target, width, height, toneMappingLookup, colorGradeSettings, vignetteFactors);
|
|
1276
1358
|
current = target;
|
|
1277
1359
|
}
|
|
1278
1360
|
if (colorGradeSettings && colorGradeSettings.sharpening > 0) {
|
|
@@ -1536,18 +1618,37 @@ function validateOutlineColor(color) {
|
|
|
1536
1618
|
}
|
|
1537
1619
|
}
|
|
1538
1620
|
}
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
const
|
|
1549
|
-
const
|
|
1550
|
-
|
|
1621
|
+
/**
|
|
1622
|
+
* Sobel response of the integer luma numerator `2126 * r + 7152 * g + 722 * b`.
|
|
1623
|
+
*
|
|
1624
|
+
* This is the same operator as {@link sobelLumaGradient} scaled by `OUTLINE_LUMA_SCALE`, but every
|
|
1625
|
+
* intermediate is an exact integer: each numerator is at most `2550000`, so a response is at most
|
|
1626
|
+
* `4 * 2550000` and the squared magnitude used by {@link outlineEdgeExceedsBound} stays below 2^48,
|
|
1627
|
+
* well inside the range where float64 represents integers exactly.
|
|
1628
|
+
*/
|
|
1629
|
+
function sobelLumaNumeratorGradient(pixels, width, height, x, y) {
|
|
1630
|
+
const nw = lumaNumeratorAt(pixels, width, height, x - 1, y - 1);
|
|
1631
|
+
const n = lumaNumeratorAt(pixels, width, height, x, y - 1);
|
|
1632
|
+
const ne = lumaNumeratorAt(pixels, width, height, x + 1, y - 1);
|
|
1633
|
+
const w = lumaNumeratorAt(pixels, width, height, x - 1, y);
|
|
1634
|
+
const e = lumaNumeratorAt(pixels, width, height, x + 1, y);
|
|
1635
|
+
const sw = lumaNumeratorAt(pixels, width, height, x - 1, y + 1);
|
|
1636
|
+
const s = lumaNumeratorAt(pixels, width, height, x, y + 1);
|
|
1637
|
+
const se = lumaNumeratorAt(pixels, width, height, x + 1, y + 1);
|
|
1638
|
+
return {
|
|
1639
|
+
gx: -nw - 2 * w - sw + ne + 2 * e + se,
|
|
1640
|
+
gy: -nw - 2 * n - ne + sw + 2 * s + se
|
|
1641
|
+
};
|
|
1642
|
+
}
|
|
1643
|
+
/**
|
|
1644
|
+
* Exact outline edge predicate shared by the CPU kernel and the WebGL2 shader.
|
|
1645
|
+
*
|
|
1646
|
+
* Equivalent to `hypot(gx, gy) >= threshold` on the real numbers, but decided with integers so
|
|
1647
|
+
* that it never depends on float rounding. `bound` comes from {@link createOutlineGradientBound},
|
|
1648
|
+
* which pre-squares the threshold as an exact rational and rounds up.
|
|
1649
|
+
*/
|
|
1650
|
+
function outlineEdgeExceedsBound(gx, gy, bound) {
|
|
1651
|
+
return gx * gx + gy * gy >= bound;
|
|
1551
1652
|
}
|
|
1552
1653
|
function dilateMask(mask, width, height, radius) {
|
|
1553
1654
|
const output = new Uint8Array(mask.length);
|
|
@@ -1793,6 +1894,16 @@ function validateRange(value, min, max, label) {
|
|
|
1793
1894
|
throw new Error(`${label} must be finite and within [${min}, ${max}].`);
|
|
1794
1895
|
}
|
|
1795
1896
|
}
|
|
1897
|
+
function numberInRange(value, min, max, label) {
|
|
1898
|
+
validateRange(value, min, max, label);
|
|
1899
|
+
return value;
|
|
1900
|
+
}
|
|
1901
|
+
function integerNumberInRange(value, min, max, label) {
|
|
1902
|
+
validateRange(value, min, max, label);
|
|
1903
|
+
if (!Number.isInteger(value))
|
|
1904
|
+
throw new Error(`${label} must be an integer.`);
|
|
1905
|
+
return value;
|
|
1906
|
+
}
|
|
1796
1907
|
function clampByte(value) {
|
|
1797
1908
|
return Math.round(Math.max(0, Math.min(255, value)));
|
|
1798
1909
|
}
|
|
@@ -1805,6 +1916,13 @@ function lumaAt(pixels, width, height, x, y) {
|
|
|
1805
1916
|
const index = (sampleY * width + sampleX) * 4;
|
|
1806
1917
|
return (0.2126 * pixels[index] + 0.7152 * pixels[index + 1] + 0.0722 * pixels[index + 2]) / 255;
|
|
1807
1918
|
}
|
|
1919
|
+
/** Integer luma numerator at a clamped coordinate, matching the outline shader exactly. */
|
|
1920
|
+
function lumaNumeratorAt(pixels, width, height, x, y) {
|
|
1921
|
+
const sampleX = clampInt(x, 0, width - 1);
|
|
1922
|
+
const sampleY = clampInt(y, 0, height - 1);
|
|
1923
|
+
const index = (sampleY * width + sampleX) * 4;
|
|
1924
|
+
return 2126 * pixels[index] + 7152 * pixels[index + 1] + 722 * pixels[index + 2];
|
|
1925
|
+
}
|
|
1808
1926
|
function channelAt(pixels, width, height, x, y, channel) {
|
|
1809
1927
|
const sampleX = clampInt(x, 0, width - 1);
|
|
1810
1928
|
const sampleY = clampInt(y, 0, height - 1);
|