@aura3d/rendering 1.3.3 → 1.4.1
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/ForwardPass.js +7 -1
- package/dist/ForwardPass.js.map +1 -1
- package/dist/MorphTarget.d.ts +1 -0
- package/dist/MorphTarget.d.ts.map +1 -1
- package/dist/MorphTarget.js.map +1 -1
- package/dist/Renderer.js +7 -1
- package/dist/Renderer.js.map +1 -1
- package/package.json +38 -4
- package/src/ArchitecturalLightingFixtures.ts +0 -241
- package/src/ArchitecturalMaterialCatalog.ts +0 -130
- package/src/ArchitecturalMeasurementFixtures.ts +0 -155
- package/src/BRDFLut.ts +0 -47
- package/src/CameraFraming.ts +0 -200
- package/src/CanonicalSceneFixtures.ts +0 -95
- package/src/CascadedShadowMaps.ts +0 -449
- package/src/ColorManagement.ts +0 -127
- package/src/CullingFixtures.ts +0 -280
- package/src/DecalGeometry.ts +0 -26
- package/src/DepthPass.ts +0 -110
- package/src/EnvironmentBackgroundPass.ts +0 -194
- package/src/EnvironmentBackgroundResources.ts +0 -309
- package/src/EnvironmentLighting.ts +0 -96
- package/src/EnvironmentMapResources.ts +0 -1026
- package/src/EnvironmentPipeline.ts +0 -69
- package/src/EnvironmentPlatform.ts +0 -1306
- package/src/EnvironmentPreset.ts +0 -155
- package/src/Exposure.ts +0 -66
- package/src/ExternalParityRenderPreset.ts +0 -725
- package/src/ForwardPass.ts +0 -1663
- package/src/FrameVisualMetrics.ts +0 -301
- package/src/Geometry.ts +0 -461
- package/src/GeometryPrimitives.ts +0 -2
- package/src/HDRRenderPipeline.ts +0 -94
- package/src/IBL.ts +0 -86
- package/src/IndexBuffer.ts +0 -57
- package/src/InstancedPBRMaterial.ts +0 -186
- package/src/InstancedUnlitMaterial.ts +0 -60
- package/src/Instancing.ts +0 -19
- package/src/LightCollector.ts +0 -82
- package/src/LightUniforms.ts +0 -47
- package/src/LightingDebug.ts +0 -80
- package/src/LightingDefaults.ts +0 -79
- package/src/LightingRig.ts +0 -301
- package/src/LineGeometry.ts +0 -2
- package/src/Material.ts +0 -209
- package/src/MaterialBinding.ts +0 -131
- package/src/MaterialInstance.ts +0 -59
- package/src/MaterialPresets.ts +0 -272
- package/src/MorphTarget.ts +0 -123
- package/src/MorphTargetPlan.ts +0 -178
- package/src/MorphUnlitMaterial.ts +0 -60
- package/src/NormalMappedPBRMaterial.ts +0 -188
- package/src/OceanFixtures.ts +0 -318
- package/src/PBRLightingDefaults.ts +0 -12
- package/src/PBRMaterial.ts +0 -442
- package/src/PMREM.ts +0 -53
- package/src/PbrReference.ts +0 -681
- package/src/PostProcessPass.ts +0 -2507
- package/src/ProceduralTextureFixtures.ts +0 -393
- package/src/ProductTurntableFixtures.ts +0 -815
- package/src/Raycaster.ts +0 -21
- package/src/ReflectionProbe.ts +0 -13
- package/src/ReflectionSurfaces.ts +0 -219
- package/src/RenderBackend.ts +0 -43
- package/src/RenderDebugViews.ts +0 -138
- package/src/RenderDevice.ts +0 -836
- package/src/RenderGraph.ts +0 -194
- package/src/RenderPass.ts +0 -27
- package/src/RenderPipeline.ts +0 -101
- package/src/RenderQueue.ts +0 -12
- package/src/RenderState.ts +0 -12
- package/src/Renderer.ts +0 -2626
- package/src/RendererDebugOverlay.ts +0 -80
- package/src/RendererFeatureGates.ts +0 -150
- package/src/RendererPostprocessPlan.ts +0 -279
- package/src/RendererTiming.ts +0 -251
- package/src/RendererVisualPipelineReport.ts +0 -836
- package/src/ResourceLifecycle.ts +0 -21
- package/src/Sampler.ts +0 -37
- package/src/SceneOptimization.ts +0 -518
- package/src/ShaderChunks.ts +0 -393
- package/src/ShaderLibrary.ts +0 -2766
- package/src/ShaderModule.ts +0 -36
- package/src/ShaderPreprocessor.ts +0 -260
- package/src/ShaderReflection.ts +0 -201
- package/src/ShadowMap.ts +0 -237
- package/src/ShadowPass.ts +0 -198
- package/src/ShadowProjection.ts +0 -115
- package/src/SkinnedLitMaterial.ts +0 -397
- package/src/SkinnedUnlitMaterial.ts +0 -63
- package/src/SkinningBounds.ts +0 -131
- package/src/SpaceEnvironmentFixtures.ts +0 -200
- package/src/SpriteGeometry.ts +0 -21
- package/src/StereoCameraRig.ts +0 -127
- package/src/StereoEffects.ts +0 -274
- package/src/TerrainFixtures.ts +0 -180
- package/src/Texture.ts +0 -307
- package/src/TextureBinding.ts +0 -91
- package/src/TexturedPBRMaterial.ts +0 -1112
- package/src/TexturedUnlitMaterial.ts +0 -67
- package/src/ToneMapping.ts +0 -105
- package/src/UniformBinder.ts +0 -16
- package/src/UniformLayout.ts +0 -129
- package/src/UnlitMaterial.ts +0 -75
- package/src/VegetationFixtures.ts +0 -314
- package/src/VertexBuffer.ts +0 -120
- package/src/VertexFormat.ts +0 -171
- package/src/VoxelWorldFixtures.ts +0 -280
- package/src/WeatherFixtures.ts +0 -223
- package/src/WebGL2Device.ts +0 -2280
- package/src/WebGL2StateCache.ts +0 -330
- package/src/WebGPUDevice.ts +0 -2877
- package/src/WebGPURenderToTextureProof.ts +0 -139
- package/src/advanced-runtime/AdvancedRenderer.ts +0 -73
- package/src/advanced-runtime/index.ts +0 -9
- package/src/animation/AnimationMaterialStyle.ts +0 -32
- package/src/animation/AnimationRenderPreset.ts +0 -45
- package/src/animation/AnimationToonMaterial.ts +0 -387
- package/src/animation/AnimationVisualQuality.ts +0 -71
- package/src/animation/applyAnimationRenderPreset.ts +0 -180
- package/src/animation/index.ts +0 -5
- package/src/cinematic/BloomPass.ts +0 -26
- package/src/cinematic/CinematicDepthComposition.ts +0 -30
- package/src/cinematic/CinematicEvidence.ts +0 -123
- package/src/cinematic/CinematicLightingRig.ts +0 -144
- package/src/cinematic/CinematicMaterialPresets.ts +0 -130
- package/src/cinematic/CinematicPostProcess.ts +0 -83
- package/src/cinematic/DepthHazePass.ts +0 -30
- package/src/cinematic/EmissivePracticalLightSystem.ts +0 -45
- package/src/cinematic/FilmGrainPass.ts +0 -24
- package/src/cinematic/FogVolumeSystem.ts +0 -30
- package/src/cinematic/GlowCardSystem.ts +0 -44
- package/src/cinematic/RainParticleSystem.ts +0 -151
- package/src/cinematic/VignettePass.ts +0 -25
- package/src/cinematic/WetReflectionApproximation.ts +0 -27
- package/src/cinematic/index.ts +0 -14
- package/src/effects/CollisionModule.ts +0 -64
- package/src/effects/ColorModule.ts +0 -60
- package/src/effects/ForceModule.ts +0 -25
- package/src/effects/GPUParticleBackend.ts +0 -569
- package/src/effects/Particle.ts +0 -108
- package/src/effects/ParticleDiagnostics.ts +0 -224
- package/src/effects/ParticleEffectPresets.ts +0 -147
- package/src/effects/ParticleEmitter.ts +0 -326
- package/src/effects/ParticleModule.ts +0 -26
- package/src/effects/ParticleRenderPass.ts +0 -117
- package/src/effects/ParticleRenderer.ts +0 -132
- package/src/effects/ParticleSystem.ts +0 -333
- package/src/effects/SizeModule.ts +0 -56
- package/src/effects/TrailModule.ts +0 -72
- package/src/effects/VelocityModule.ts +0 -75
- package/src/effects/index.ts +0 -15
- package/src/index.ts +0 -925
- package/src/materials/AlphaSorting.ts +0 -30
- package/src/materials/MaterialExtensions.ts +0 -42
- package/src/materials/PhysicalMaterial.ts +0 -133
- package/src/materials/TransmissionPass.ts +0 -51
- package/src/performance/BVH.ts +0 -18
- package/src/performance/Batcher.ts +0 -2
- package/src/performance/FrustumCuller.ts +0 -9
- package/src/performance/LOD.ts +0 -20
- package/src/performance/Octree.ts +0 -10
- package/src/performance/RenderItemSorting.ts +0 -170
- package/src/performance/RendererStats.ts +0 -43
- package/src/performance/ResourceBudget.ts +0 -44
- package/src/postprocess/BloomPass.ts +0 -28
- package/src/postprocess/CinematicDiagnostics.ts +0 -642
- package/src/postprocess/ColorGradingPass.ts +0 -24
- package/src/postprocess/DepthOfFieldPass.ts +0 -12
- package/src/postprocess/EffectComposer.ts +0 -349
- package/src/postprocess/SSAOPass.ts +0 -20
- package/src/postprocess/index.ts +0 -34
- package/src/production-runtime/AnimationControlsPipeline.ts +0 -77
- package/src/production-runtime/PBRHDRPipeline.ts +0 -381
- package/src/production-runtime/ProductionEffectsPipeline.ts +0 -85
- package/src/production-runtime/ProductionRendererTypes.ts +0 -136
- package/src/production-runtime/ProductionRuntimeRenderer.ts +0 -172
- package/src/production-runtime/ProductionWebGL2Renderer.ts +0 -313
- package/src/production-runtime/ProductionWebGPURenderer.ts +0 -396
- package/src/production-runtime/TransmissionBackdropCapture.ts +0 -130
- package/src/production-runtime/animation/MorphTargetRenderer.ts +0 -2
- package/src/production-runtime/animation/SkinningRenderer.ts +0 -2
- package/src/production-runtime/backends/RendererBackend.ts +0 -17
- package/src/production-runtime/backends/WebGL2RendererBackend.ts +0 -30
- package/src/production-runtime/backends/WebGPURendererBackend.ts +0 -24
- package/src/production-runtime/backends/webgl2/WebGL2Buffer.ts +0 -2
- package/src/production-runtime/backends/webgl2/WebGL2Capabilities.ts +0 -2
- package/src/production-runtime/backends/webgl2/WebGL2RenderTarget.ts +0 -2
- package/src/production-runtime/backends/webgl2/WebGL2Shader.ts +0 -2
- package/src/production-runtime/backends/webgl2/WebGL2StateCache.ts +0 -1
- package/src/production-runtime/backends/webgl2/WebGL2Texture.ts +0 -2
- package/src/production-runtime/backends/webgpu/WebGPUBuffer.ts +0 -2
- package/src/production-runtime/backends/webgpu/WebGPUCapabilities.ts +0 -2
- package/src/production-runtime/backends/webgpu/WebGPURenderTarget.ts +0 -2
- package/src/production-runtime/backends/webgpu/WebGPUShader.ts +0 -2
- package/src/production-runtime/backends/webgpu/WebGPUTexture.ts +0 -2
- package/src/production-runtime/color/ColorManagement.ts +0 -3
- package/src/production-runtime/color/ToneMapping.ts +0 -7
- package/src/production-runtime/diagnostics/FrameCapture.ts +0 -2
- package/src/production-runtime/diagnostics/GPUCapabilities.ts +0 -2
- package/src/production-runtime/diagnostics/RendererStats.ts +0 -2
- package/src/production-runtime/environment/EnvironmentMap.ts +0 -1
- package/src/production-runtime/environment/HDRLoader.ts +0 -57
- package/src/production-runtime/environment/PMREMGenerator.ts +0 -713
- package/src/production-runtime/framegraph/FrameGraph.ts +0 -18
- package/src/production-runtime/framegraph/RenderPass.ts +0 -15
- package/src/production-runtime/geometry/ProjectedDecalGeometry.ts +0 -439
- package/src/production-runtime/index.ts +0 -127
- package/src/production-runtime/lights/LightManager.ts +0 -7
- package/src/production-runtime/lights/ShadowMapRenderer.ts +0 -5
- package/src/production-runtime/materials/GLTFMaterialAdapter.ts +0 -6
- package/src/production-runtime/materials/GLTFPBRMaterialAdapter.ts +0 -2
- package/src/production-runtime/materials/MaterialCompiler.ts +0 -7
- package/src/production-runtime/materials/MaterialTextureBindings.ts +0 -5
- package/src/production-runtime/materials/PBRMaterial.ts +0 -2
- package/src/production-runtime/materials/PBRShaderFeatures.ts +0 -2
- package/src/production-runtime/passes/ContactShadowPass.ts +0 -184
- package/src/production-runtime/passes/DepthPrepass.ts +0 -7
- package/src/production-runtime/passes/OpaquePass.ts +0 -7
- package/src/production-runtime/passes/ShadowPass.ts +0 -7
- package/src/production-runtime/passes/SkyboxPass.ts +0 -7
- package/src/production-runtime/passes/ToneMappingPass.ts +0 -7
- package/src/production-runtime/passes/TransparentPass.ts +0 -7
- package/src/production-runtime/postprocess/BloomPass.ts +0 -51
- package/src/production-runtime/postprocess/ColorGradingPass.ts +0 -49
- package/src/production-runtime/postprocess/DOFPass.ts +0 -47
- package/src/production-runtime/postprocess/FXAAPass.ts +0 -53
- package/src/production-runtime/postprocess/ProductionEffectComposer.ts +0 -78
- package/src/production-runtime/postprocess/ProductionPostProcessTypes.ts +0 -174
- package/src/production-runtime/postprocess/SSAOPass.ts +0 -45
- package/src/production-runtime/resources/GPUBuffer.ts +0 -2
- package/src/production-runtime/resources/GPUTexture.ts +0 -2
- package/src/production-runtime/resources/RenderTarget.ts +0 -3
- package/src/production-runtime/resources/ResourceCache.ts +0 -7
- package/src/production-runtime/scene/Camera.ts +0 -1
- package/src/production-runtime/scene/Lights.ts +0 -2
- package/src/production-runtime/scene/RenderableMesh.ts +0 -2
- package/src/production-runtime/scene/RenderablePrimitive.ts +0 -1
- package/src/production-runtime/scene/RenderableScene.ts +0 -4
- package/src/production-runtime/shaders/ShaderProgramLibrary.ts +0 -7
- package/src/production-runtime/shaders/chunks/brdf.glsl +0 -2
- package/src/production-runtime/shaders/chunks/ibl.glsl +0 -3
- package/src/production-runtime/shaders/chunks/pbr.frag.glsl +0 -47
- package/src/production-runtime/shaders/chunks/pbr.vert.glsl +0 -8
- package/src/production-runtime/shaders/chunks/shadows.glsl +0 -2
- package/src/production-runtime/shaders/wgsl/pbr.wgsl +0 -3
- package/src/production-runtime/shaders/wgsl/postprocess.wgsl +0 -2
- package/src/production-runtime/shaders/wgsl/skybox.wgsl +0 -2
- package/src/shaders/depth.frag.glsl +0 -5
- package/src/shaders/depth.vert.glsl +0 -8
- package/src/shaders/pbr-direct.frag.glsl +0 -687
- package/src/shaders/pbr-direct.vert.glsl +0 -18
- package/src/shaders/unlit.frag.glsl +0 -18
- package/src/shaders/unlit.vert.glsl +0 -13
- package/src/shadows/CascadedShadowPipeline.ts +0 -53
- package/src/shadows/ContactShadows.ts +0 -106
- package/src/shadows/ShadowDebugViews.ts +0 -46
- package/src/threejs-compatibility/InstancingSystem.ts +0 -17
- package/src/threejs-compatibility/LightingSystem.ts +0 -22
- package/src/threejs-compatibility/MaterialSystem.ts +0 -9
- package/src/threejs-compatibility/RenderTargetSystem.ts +0 -35
- package/src/threejs-compatibility/RendererDiagnostics.ts +0 -61
- package/src/threejs-compatibility/SceneRenderer.ts +0 -34
- package/src/threejs-compatibility/ShadowSystem.ts +0 -19
- package/src/threejs-compatibility/TextureSystem.ts +0 -19
- package/src/threejs-compatibility/ThreeCompatRenderer.ts +0 -90
- package/src/threejs-compatibility/TransparencySystem.ts +0 -19
- package/src/threejs-compatibility/index.ts +0 -29
- package/src/threejs-compatibility/performance/BVH.ts +0 -14
- package/src/threejs-compatibility/performance/FrustumCulling.ts +0 -10
- package/src/threejs-compatibility/performance/Instancing.ts +0 -4
- package/src/threejs-compatibility/performance/LODSystem.ts +0 -16
- package/src/threejs-compatibility/performance/OcclusionCulling.ts +0 -6
- package/src/threejs-compatibility/performance/RaycastAcceleration.ts +0 -12
- package/src/threejs-compatibility/performance/RendererProfiler.ts +0 -19
- package/src/threejs-compatibility/performance/TextureStreaming.ts +0 -4
- package/src/threejs-compatibility/performance/index.ts +0 -12
- package/src/threejs-compatibility/postprocess/BloomPass.ts +0 -16
- package/src/threejs-compatibility/postprocess/ColorGradingPass.ts +0 -16
- package/src/threejs-compatibility/postprocess/DepthOfFieldPass.ts +0 -21
- package/src/threejs-compatibility/postprocess/EffectComposer.ts +0 -14
- package/src/threejs-compatibility/postprocess/FXAAPass.ts +0 -15
- package/src/threejs-compatibility/postprocess/MotionBlurPass.ts +0 -20
- package/src/threejs-compatibility/postprocess/OutlinePass.ts +0 -21
- package/src/threejs-compatibility/postprocess/PostProcessTypes.ts +0 -169
- package/src/threejs-compatibility/postprocess/RenderPass.ts +0 -9
- package/src/threejs-compatibility/postprocess/SMAAPass.ts +0 -15
- package/src/threejs-compatibility/postprocess/SSAOPass.ts +0 -21
- package/src/threejs-compatibility/postprocess/ShaderPass.ts +0 -7
- package/src/threejs-compatibility/postprocess/TAAPass.ts +0 -15
- package/src/threejs-compatibility/postprocess/VignettePass.ts +0 -16
- package/src/threejs-compatibility/postprocess/index.ts +0 -15
- package/src/threejs-compatibility/shaders/NodeMaterial.ts +0 -21
- package/src/threejs-compatibility/shaders/RawShaderMaterial.ts +0 -6
- package/src/threejs-compatibility/shaders/ShaderDiagnostics.ts +0 -17
- package/src/threejs-compatibility/shaders/ShaderMaterial.ts +0 -18
- package/src/threejs-compatibility/shaders/ThreeCompatShaderChunks.ts +0 -6
- package/src/threejs-compatibility/shaders/Uniforms.ts +0 -18
- package/src/threejs-compatibility/shaders/index.ts +0 -9
- package/src/threejs-compatibility/vfx/GPUPointCloud.ts +0 -7
- package/src/threejs-compatibility/vfx/LineRenderer.ts +0 -13
- package/src/threejs-compatibility/vfx/ParticleSystem.ts +0 -23
- package/src/threejs-compatibility/vfx/SpriteSystem.ts +0 -14
- package/src/threejs-compatibility/vfx/TrailRenderer.ts +0 -8
- package/src/threejs-compatibility/vfx/VFXDiagnostics.ts +0 -23
- package/src/threejs-compatibility/vfx/index.ts +0 -9
- package/src/threejs-example-parity/index.ts +0 -205
- package/src/webgpu/WebGPUBuffer.ts +0 -1
- package/src/webgpu/WebGPUCompute.ts +0 -2
- package/src/webgpu/WebGPUPipelineCache.ts +0 -15
- package/src/webgpu/WebGPUPostProcess.ts +0 -2
- package/src/webgpu/WebGPUTexture.ts +0 -2
- package/tsconfig.json +0 -26
- package/vitest.config.ts +0 -20
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
DepthTextureBinding,
|
|
3
|
-
PostProcessColorSpace,
|
|
4
|
-
ToneMappingOperator
|
|
5
|
-
} from "../../PostProcessPass";
|
|
6
|
-
|
|
7
|
-
export interface ProductionPostProcessInput {
|
|
8
|
-
readonly width: number;
|
|
9
|
-
readonly height: number;
|
|
10
|
-
readonly pixels: Uint8Array;
|
|
11
|
-
readonly depth?: DepthTextureBinding;
|
|
12
|
-
readonly history?: Uint8Array;
|
|
13
|
-
readonly velocity?: Float32Array;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export interface ProductionPostProcessOutput extends ProductionPostProcessInput {
|
|
17
|
-
readonly passName: string;
|
|
18
|
-
readonly changedPixels: number;
|
|
19
|
-
readonly metrics: Readonly<Record<string, number | string | boolean>>;
|
|
20
|
-
readonly diagnostics: readonly string[];
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export interface ProductionPostProcessPass {
|
|
24
|
-
readonly name: string;
|
|
25
|
-
readonly enabled: boolean;
|
|
26
|
-
apply(input: ProductionPostProcessInput): ProductionPostProcessOutput;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export interface ProductionToneMapOptions {
|
|
30
|
-
readonly exposure?: number;
|
|
31
|
-
readonly whitePoint?: number;
|
|
32
|
-
readonly gamma?: number;
|
|
33
|
-
readonly operator?: ToneMappingOperator;
|
|
34
|
-
readonly inputColorSpace?: PostProcessColorSpace;
|
|
35
|
-
readonly outputColorSpace?: PostProcessColorSpace;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export function createProductionPostProcessInput(
|
|
39
|
-
pixels: Uint8Array,
|
|
40
|
-
width: number,
|
|
41
|
-
height: number,
|
|
42
|
-
options: Omit<ProductionPostProcessInput, "pixels" | "width" | "height"> = {}
|
|
43
|
-
): ProductionPostProcessInput {
|
|
44
|
-
validateProductionPixels(pixels, width, height);
|
|
45
|
-
return {
|
|
46
|
-
width,
|
|
47
|
-
height,
|
|
48
|
-
pixels: new Uint8Array(pixels),
|
|
49
|
-
...options
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export function createProductionDemoPostProcessInput(width = 64, height = 48): ProductionPostProcessInput {
|
|
54
|
-
const pixels = new Uint8Array(width * height * 4);
|
|
55
|
-
for (let y = 0; y < height; y += 1) {
|
|
56
|
-
for (let x = 0; x < width; x += 1) {
|
|
57
|
-
const index = (y * width + x) * 4;
|
|
58
|
-
let red = 18 + Math.round(x * 1.9);
|
|
59
|
-
let green = 22 + Math.round(y * 2.2);
|
|
60
|
-
let blue = 36 + Math.round((x + y) * 0.72);
|
|
61
|
-
if (x >= width * 0.16 && x <= width * 0.36 && y >= height * 0.18 && y <= height * 0.52) {
|
|
62
|
-
red = 248;
|
|
63
|
-
green = 196;
|
|
64
|
-
blue = 72;
|
|
65
|
-
}
|
|
66
|
-
if (x >= width * 0.58 && x <= width * 0.82 && y >= height * 0.24 && y <= height * 0.62) {
|
|
67
|
-
red = 44;
|
|
68
|
-
green = 188;
|
|
69
|
-
blue = 248;
|
|
70
|
-
}
|
|
71
|
-
if ((Math.abs(x - width * 0.48) < 1.2 || Math.abs(y - height * 0.72) < 1.2) && x > width * 0.12 && x < width * 0.88) {
|
|
72
|
-
red = 246;
|
|
73
|
-
green = 246;
|
|
74
|
-
blue = 240;
|
|
75
|
-
}
|
|
76
|
-
pixels[index] = red;
|
|
77
|
-
pixels[index + 1] = green;
|
|
78
|
-
pixels[index + 2] = blue;
|
|
79
|
-
pixels[index + 3] = 255;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
return {
|
|
83
|
-
width,
|
|
84
|
-
height,
|
|
85
|
-
pixels,
|
|
86
|
-
depth: createProductionDepthProxy(width, height),
|
|
87
|
-
history: createProductionHistoryProxy(pixels, width, height),
|
|
88
|
-
velocity: createProductionVelocityProxy(width, height)
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
export function createProductionPostProcessOutput(
|
|
93
|
-
input: ProductionPostProcessInput,
|
|
94
|
-
passName: string,
|
|
95
|
-
pixels: Uint8Array,
|
|
96
|
-
metrics: Readonly<Record<string, number | string | boolean>>,
|
|
97
|
-
diagnostics: readonly string[]
|
|
98
|
-
): ProductionPostProcessOutput {
|
|
99
|
-
validateProductionPixels(pixels, input.width, input.height);
|
|
100
|
-
return {
|
|
101
|
-
...input,
|
|
102
|
-
pixels,
|
|
103
|
-
passName,
|
|
104
|
-
changedPixels: countChangedRgb(input.pixels, pixels),
|
|
105
|
-
metrics,
|
|
106
|
-
diagnostics
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
export function createProductionDepthProxy(width: number, height: number): DepthTextureBinding {
|
|
111
|
-
const data = new Float32Array(width * height);
|
|
112
|
-
for (let y = 0; y < height; y += 1) {
|
|
113
|
-
for (let x = 0; x < width; x += 1) {
|
|
114
|
-
const center = Math.hypot((x / Math.max(1, width - 1)) * 2 - 1, (y / Math.max(1, height - 1)) * 2 - 1);
|
|
115
|
-
let depth = 0.76 - Math.max(0, 0.34 - center * 0.16);
|
|
116
|
-
if (y > height * 0.68) depth = 0.56;
|
|
117
|
-
if (x >= width * 0.16 && x <= width * 0.36 && y >= height * 0.18 && y <= height * 0.52) depth = 0.28;
|
|
118
|
-
if (x >= width * 0.58 && x <= width * 0.82 && y >= height * 0.24 && y <= height * 0.62) depth = 0.42;
|
|
119
|
-
data[y * width + x] = depth;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
return { label: "production-postprocess-depth-proxy", width, height, format: "depth24", data };
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
export function createProductionHistoryProxy(pixels: Uint8Array, width: number, height: number): Uint8Array {
|
|
126
|
-
validateProductionPixels(pixels, width, height);
|
|
127
|
-
const history = new Uint8Array(pixels.length);
|
|
128
|
-
for (let y = 0; y < height; y += 1) {
|
|
129
|
-
for (let x = 0; x < width; x += 1) {
|
|
130
|
-
const sourceX = Math.max(0, x - 2);
|
|
131
|
-
const source = (y * width + sourceX) * 4;
|
|
132
|
-
const target = (y * width + x) * 4;
|
|
133
|
-
history[target] = Math.max(0, (pixels[source] ?? 0) - 14);
|
|
134
|
-
history[target + 1] = Math.max(0, (pixels[source + 1] ?? 0) - 10);
|
|
135
|
-
history[target + 2] = Math.max(0, (pixels[source + 2] ?? 0) - 8);
|
|
136
|
-
history[target + 3] = pixels[source + 3] ?? 255;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
return history;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
export function createProductionVelocityProxy(width: number, height: number): Float32Array {
|
|
143
|
-
const velocity = new Float32Array(width * height * 2);
|
|
144
|
-
for (let y = 0; y < height; y += 1) {
|
|
145
|
-
for (let x = 0; x < width; x += 1) {
|
|
146
|
-
if (x < width * 0.78 && y > height * 0.16 && y < height * 0.7) {
|
|
147
|
-
const index = (y * width + x) * 2;
|
|
148
|
-
velocity[index] = 1.5;
|
|
149
|
-
velocity[index + 1] = x > width * 0.48 ? -0.5 : 0.25;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
return velocity;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
export function countChangedRgb(a: Uint8Array, b: Uint8Array): number {
|
|
157
|
-
let changed = 0;
|
|
158
|
-
for (let index = 0; index < Math.min(a.length, b.length); index += 4) {
|
|
159
|
-
const delta = Math.abs((a[index] ?? 0) - (b[index] ?? 0))
|
|
160
|
-
+ Math.abs((a[index + 1] ?? 0) - (b[index + 1] ?? 0))
|
|
161
|
-
+ Math.abs((a[index + 2] ?? 0) - (b[index + 2] ?? 0));
|
|
162
|
-
if (delta > 0) changed += 1;
|
|
163
|
-
}
|
|
164
|
-
return changed;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
export function validateProductionPixels(pixels: Uint8Array, width: number, height: number): void {
|
|
168
|
-
if (!Number.isInteger(width) || width <= 0 || !Number.isInteger(height) || height <= 0) {
|
|
169
|
-
throw new Error("Production postprocess dimensions must be positive integers.");
|
|
170
|
-
}
|
|
171
|
-
if (pixels.byteLength !== width * height * 4) {
|
|
172
|
-
throw new Error("Production postprocess input must contain width * height * 4 RGBA bytes.");
|
|
173
|
-
}
|
|
174
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ssaoPixels,
|
|
3
|
-
type SSAOOptions,
|
|
4
|
-
type SSAOResult
|
|
5
|
-
} from "../../PostProcessPass";
|
|
6
|
-
import {
|
|
7
|
-
createProductionDepthProxy,
|
|
8
|
-
createProductionPostProcessOutput,
|
|
9
|
-
type ProductionPostProcessInput,
|
|
10
|
-
type ProductionPostProcessOutput,
|
|
11
|
-
type ProductionPostProcessPass
|
|
12
|
-
} from "./ProductionPostProcessTypes";
|
|
13
|
-
|
|
14
|
-
export interface SSAOPassOptions extends SSAOOptions {
|
|
15
|
-
readonly enabled?: boolean;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export class SSAOPass implements ProductionPostProcessPass {
|
|
19
|
-
readonly name = "production-ssao";
|
|
20
|
-
readonly enabled: boolean;
|
|
21
|
-
private lastResult: SSAOResult | null = null;
|
|
22
|
-
|
|
23
|
-
constructor(public readonly options: SSAOPassOptions = {}) {
|
|
24
|
-
this.enabled = options.enabled ?? true;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
apply(input: ProductionPostProcessInput): ProductionPostProcessOutput {
|
|
28
|
-
const result = ssaoPixels(input.pixels, input.width, input.height, {
|
|
29
|
-
depth: this.options.depth ?? input.depth ?? createProductionDepthProxy(input.width, input.height),
|
|
30
|
-
radius: this.options.radius ?? 2,
|
|
31
|
-
intensity: this.enabled ? this.options.intensity ?? 0.58 : 0,
|
|
32
|
-
bias: this.options.bias ?? 0.01
|
|
33
|
-
});
|
|
34
|
-
this.lastResult = result;
|
|
35
|
-
return createProductionPostProcessOutput(input, this.name, result.pixels, {
|
|
36
|
-
occludedPixels: result.occludedPixels,
|
|
37
|
-
averageOcclusion: result.averageOcclusion,
|
|
38
|
-
radius: result.radius
|
|
39
|
-
}, ["SSAOPass applies the renderer SSAO pixel kernel with supplied or generated depth evidence."]);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
getLastResult(): SSAOResult | null {
|
|
43
|
-
return this.lastResult ? { ...this.lastResult, pixels: new Uint8Array(this.lastResult.pixels) } : null;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export class ResourceCache<T> {
|
|
2
|
-
private readonly resources = new Map<string, T>();
|
|
3
|
-
get(key: string): T | undefined { return this.resources.get(key); }
|
|
4
|
-
set(key: string, value: T): T { this.resources.set(key, value); return value; }
|
|
5
|
-
clear(): void { this.resources.clear(); }
|
|
6
|
-
get size(): number { return this.resources.size; }
|
|
7
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export interface Camera { readonly projectionMatrix: readonly number[]; readonly viewMatrix: readonly number[]; readonly exposure?: number; readonly near?: number; readonly far?: number; }
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export interface RenderablePrimitive { readonly id: string; readonly vertexCount: number; readonly indexCount: number; readonly materialId: string; readonly attributes: readonly string[]; }
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { Camera } from './Camera';
|
|
2
|
-
import type { Light } from './Lights';
|
|
3
|
-
import type { RenderableMesh } from './RenderableMesh';
|
|
4
|
-
export interface RenderableScene { readonly id: string; readonly meshes: readonly RenderableMesh[]; readonly lights: readonly Light[]; readonly camera: Camera; readonly environmentId?: string; }
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export interface ShaderProgramSource { readonly vertex: string; readonly fragment: string; readonly defines?: readonly string[]; }
|
|
2
|
-
export class ShaderProgramLibrary {
|
|
3
|
-
private readonly programs = new Map<string, ShaderProgramSource>();
|
|
4
|
-
register(key: string, source: ShaderProgramSource): void { this.programs.set(key, source); }
|
|
5
|
-
get(key: string): ShaderProgramSource | undefined { return this.programs.get(key); }
|
|
6
|
-
keys(): readonly string[] { return [...this.programs.keys()]; }
|
|
7
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
#version 300 es
|
|
2
|
-
// @aura3d-shader:production-pbr-frag
|
|
3
|
-
precision highp float;
|
|
4
|
-
in vec3 vNormal;
|
|
5
|
-
out vec4 fragColor;
|
|
6
|
-
const float PI = 3.14159265359;
|
|
7
|
-
float saturate(float value) {
|
|
8
|
-
return clamp(value, 0.0, 1.0);
|
|
9
|
-
}
|
|
10
|
-
vec3 fresnelSchlick(vec3 f0, float vDotH) {
|
|
11
|
-
return f0 + (vec3(1.0) - f0) * pow(saturate(1.0 - vDotH), 5.0);
|
|
12
|
-
}
|
|
13
|
-
float distributionGGX(float nDotH, float roughness) {
|
|
14
|
-
float alpha = max(roughness, 0.045);
|
|
15
|
-
alpha *= alpha;
|
|
16
|
-
float alpha2 = alpha * alpha;
|
|
17
|
-
float denom = nDotH * nDotH * (alpha2 - 1.0) + 1.0;
|
|
18
|
-
return alpha2 / max(PI * denom * denom, 0.00001);
|
|
19
|
-
}
|
|
20
|
-
float geometrySmith(float nDotV, float nDotL, float roughness) {
|
|
21
|
-
float k = pow(roughness + 1.0, 2.0) / 8.0;
|
|
22
|
-
float gv = nDotV / max(nDotV * (1.0 - k) + k, 0.00001);
|
|
23
|
-
float gl = nDotL / max(nDotL * (1.0 - k) + k, 0.00001);
|
|
24
|
-
return gv * gl;
|
|
25
|
-
}
|
|
26
|
-
vec3 evaluatePBR(vec3 baseColor, float metallic, float roughness, vec3 normal) {
|
|
27
|
-
vec3 N = normalize(normal);
|
|
28
|
-
vec3 V = normalize(vec3(0.0, 0.18, 1.0));
|
|
29
|
-
vec3 L = normalize(vec3(0.34, 0.72, 0.6));
|
|
30
|
-
vec3 H = normalize(V + L);
|
|
31
|
-
float nDotL = saturate(dot(N, L));
|
|
32
|
-
float nDotV = max(saturate(dot(N, V)), 0.00001);
|
|
33
|
-
float nDotH = saturate(dot(N, H));
|
|
34
|
-
float vDotH = saturate(dot(V, H));
|
|
35
|
-
vec3 f0 = mix(vec3(0.04), baseColor, metallic);
|
|
36
|
-
vec3 F = fresnelSchlick(f0, vDotH);
|
|
37
|
-
float D = distributionGGX(nDotH, roughness);
|
|
38
|
-
float G = geometrySmith(nDotV, nDotL, roughness);
|
|
39
|
-
vec3 specular = D * G * F / max(4.0 * nDotV * nDotL, 0.00001);
|
|
40
|
-
vec3 diffuse = (vec3(1.0) - F) * (1.0 - metallic) * baseColor / PI;
|
|
41
|
-
vec3 ambient = baseColor * mix(vec3(0.04, 0.045, 0.055), vec3(0.18, 0.22, 0.3), saturate(N.y * 0.5 + 0.5));
|
|
42
|
-
return ambient + (diffuse + specular) * nDotL * 3.0;
|
|
43
|
-
}
|
|
44
|
-
void main() {
|
|
45
|
-
vec3 color = evaluatePBR(vec3(0.86, 0.88, 0.9), 0.0, 0.38, vNormal);
|
|
46
|
-
fragColor = vec4(pow(clamp(color, vec3(0.0), vec3(1.0)), vec3(1.0 / 2.2)), 1.0);
|
|
47
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
#version 300 es
|
|
2
|
-
// @aura3d-shader:production-pbr-vert
|
|
3
|
-
precision highp float;
|
|
4
|
-
layout(location=0) in vec3 position;
|
|
5
|
-
layout(location=1) in vec3 normal;
|
|
6
|
-
uniform mat4 uModelViewProjection;
|
|
7
|
-
out vec3 vNormal;
|
|
8
|
-
void main() { vNormal = normal; gl_Position = uModelViewProjection * vec4(position, 1.0); }
|