@aura3d/rendering 4.0.0 → 4.0.2

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.
Files changed (90) hide show
  1. package/dist/Renderer.d.ts.map +1 -1
  2. package/dist/Renderer.js +15 -4
  3. package/dist/Renderer.js.map +1 -1
  4. package/dist/WebGL2Device.d.ts +1 -0
  5. package/dist/WebGL2Device.d.ts.map +1 -1
  6. package/dist/WebGL2Device.js +12 -0
  7. package/dist/WebGL2Device.js.map +1 -1
  8. package/dist/effects/ResidentGPUParticleRenderer.d.ts.map +1 -1
  9. package/dist/effects/ResidentGPUParticleRenderer.js +10 -5
  10. package/dist/effects/ResidentGPUParticleRenderer.js.map +1 -1
  11. package/dist/post/PostResources.d.ts.map +1 -1
  12. package/dist/post/PostResources.js +17 -12
  13. package/dist/post/PostResources.js.map +1 -1
  14. package/dist/post/v2Stages.js +2 -2
  15. package/dist/post/v2Stages.js.map +1 -1
  16. package/dist/production-runtime/passes/ContactShadowPass.d.ts.map +1 -1
  17. package/dist/production-runtime/passes/ContactShadowPass.js +14 -13
  18. package/dist/production-runtime/passes/ContactShadowPass.js.map +1 -1
  19. package/dist/reference/PostProcessPass.d.ts.map +1 -1
  20. package/dist/reference/PostProcessPass.js +4 -1
  21. package/dist/reference/PostProcessPass.js.map +1 -1
  22. package/dist/renderer/PostprocessExecution.d.ts.map +1 -1
  23. package/dist/renderer/PostprocessExecution.js +4 -0
  24. package/dist/renderer/PostprocessExecution.js.map +1 -1
  25. package/dist/resources/RenderTargetPool.d.ts.map +1 -1
  26. package/dist/resources/RenderTargetPool.js +13 -4
  27. package/dist/resources/RenderTargetPool.js.map +1 -1
  28. package/dist/webgl2/LegacyPost.d.ts.map +1 -1
  29. package/dist/webgl2/LegacyPost.js +5 -2
  30. package/dist/webgl2/LegacyPost.js.map +1 -1
  31. package/dist/webgl2/Probe.d.ts.map +1 -1
  32. package/dist/webgl2/Probe.js +27 -1
  33. package/dist/webgl2/Probe.js.map +1 -1
  34. package/package.json +3 -3
  35. package/dist/ArchitecturalMaterialCatalog.d.ts +0 -30
  36. package/dist/ArchitecturalMaterialCatalog.d.ts.map +0 -1
  37. package/dist/ArchitecturalMaterialCatalog.js +0 -90
  38. package/dist/ArchitecturalMaterialCatalog.js.map +0 -1
  39. package/dist/LeanWebGL2Device.d.ts +0 -265
  40. package/dist/LeanWebGL2Device.d.ts.map +0 -1
  41. package/dist/LeanWebGL2Device.js +0 -4001
  42. package/dist/LeanWebGL2Device.js.map +0 -1
  43. package/dist/advanced-runtime/AdvancedRenderer.d.ts +0 -23
  44. package/dist/advanced-runtime/AdvancedRenderer.d.ts.map +0 -1
  45. package/dist/advanced-runtime/AdvancedRenderer.js +0 -45
  46. package/dist/advanced-runtime/AdvancedRenderer.js.map +0 -1
  47. package/dist/animation/AnimationMaterialStyle.d.ts +0 -19
  48. package/dist/animation/AnimationMaterialStyle.d.ts.map +0 -1
  49. package/dist/animation/AnimationMaterialStyle.js +0 -13
  50. package/dist/animation/AnimationMaterialStyle.js.map +0 -1
  51. package/dist/cinematic/CinematicMaterialPresets.d.ts +0 -16
  52. package/dist/cinematic/CinematicMaterialPresets.d.ts.map +0 -1
  53. package/dist/cinematic/CinematicMaterialPresets.js +0 -114
  54. package/dist/cinematic/CinematicMaterialPresets.js.map +0 -1
  55. package/dist/lean/LeanProductRenderer.d.ts +0 -29
  56. package/dist/lean/LeanProductRenderer.d.ts.map +0 -1
  57. package/dist/lean/LeanProductRenderer.js +0 -38
  58. package/dist/lean/LeanProductRenderer.js.map +0 -1
  59. package/dist/lean/LeanProductionRenderer.d.ts +0 -38
  60. package/dist/lean/LeanProductionRenderer.d.ts.map +0 -1
  61. package/dist/lean/LeanProductionRenderer.js +0 -88
  62. package/dist/lean/LeanProductionRenderer.js.map +0 -1
  63. package/dist/lean-core-runtime.d.ts +0 -13
  64. package/dist/lean-core-runtime.d.ts.map +0 -1
  65. package/dist/lean-core-runtime.js +0 -10
  66. package/dist/lean-core-runtime.js.map +0 -1
  67. package/dist/lean-runtime.d.ts +0 -18
  68. package/dist/lean-runtime.d.ts.map +0 -1
  69. package/dist/lean-runtime.js +0 -13
  70. package/dist/lean-runtime.js.map +0 -1
  71. package/dist/materials/TransmissionPass.d.ts +0 -16
  72. package/dist/materials/TransmissionPass.d.ts.map +0 -1
  73. package/dist/materials/TransmissionPass.js +0 -30
  74. package/dist/materials/TransmissionPass.js.map +0 -1
  75. package/dist/production-runtime/ProductionEffectsPipeline.d.ts +0 -20
  76. package/dist/production-runtime/ProductionEffectsPipeline.d.ts.map +0 -1
  77. package/dist/production-runtime/ProductionEffectsPipeline.js +0 -65
  78. package/dist/production-runtime/ProductionEffectsPipeline.js.map +0 -1
  79. package/dist/production-runtime/ProductionRuntimeRenderer.d.ts +0 -44
  80. package/dist/production-runtime/ProductionRuntimeRenderer.d.ts.map +0 -1
  81. package/dist/production-runtime/ProductionRuntimeRenderer.js +0 -179
  82. package/dist/production-runtime/ProductionRuntimeRenderer.js.map +0 -1
  83. package/dist/production-runtime/ProductionWebGL2Renderer.d.ts +0 -65
  84. package/dist/production-runtime/ProductionWebGL2Renderer.d.ts.map +0 -1
  85. package/dist/production-runtime/ProductionWebGL2Renderer.js +0 -305
  86. package/dist/production-runtime/ProductionWebGL2Renderer.js.map +0 -1
  87. package/dist/threejs-example-parity/index.d.ts +0 -57
  88. package/dist/threejs-example-parity/index.d.ts.map +0 -1
  89. package/dist/threejs-example-parity/index.js +0 -139
  90. package/dist/threejs-example-parity/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/threejs-example-parity/index.ts"],"names":[],"mappings":"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"}
@@ -1,139 +0,0 @@
1
- import { ProductionRuntimeRenderer, resolveProductionRuntimeRendererBackend } from "../production-runtime/ProductionRuntimeRenderer.js";
2
- export class CurrentRoutesInteractiveRenderer {
3
- renderer;
4
- canvas;
5
- backend;
6
- backendSelection;
7
- metrics = createCurrentRoutesRuntimeMetrics();
8
- constructor(renderer, canvas) {
9
- this.renderer = renderer;
10
- this.canvas = canvas;
11
- this.backend = renderer.backend;
12
- this.backendSelection = renderer.backendSelection;
13
- }
14
- static async create(options) {
15
- const selection = resolveProductionRuntimeRendererBackend(options);
16
- const renderer = await ProductionRuntimeRenderer.create({
17
- ...options,
18
- backend: selection.requestedBackend
19
- });
20
- return new CurrentRoutesInteractiveRenderer(renderer, options.canvas);
21
- }
22
- async renderFrame(input) {
23
- const started = now();
24
- const result = await this.renderer.renderInteractiveFrameAsync(input);
25
- this.metrics.record({
26
- frameMs: now() - started,
27
- renderMs: result.timing?.renderMs ?? 0,
28
- diagnostics: result.diagnostics,
29
- backend: result.backend
30
- });
31
- return result;
32
- }
33
- resize(width, height) {
34
- this.renderer.resize(width, height);
35
- }
36
- getDiagnostics() {
37
- return this.renderer.getDiagnostics();
38
- }
39
- getMetrics() {
40
- return this.metrics.snapshot(this.backend);
41
- }
42
- screenshot() {
43
- return captureCurrentRoutesCanvasScreenshot(this.canvas);
44
- }
45
- dispose() {
46
- this.renderer.dispose();
47
- }
48
- }
49
- export function createCurrentRoutesInteractiveRenderer(options) {
50
- return CurrentRoutesInteractiveRenderer.create(options);
51
- }
52
- export function createCurrentRoutesPostprocess(exposure) {
53
- return {
54
- targetFormat: "rgba16f",
55
- toneMapping: {
56
- operator: "filmic",
57
- exposure: clamp(exposure, 0.1, 4),
58
- whitePoint: 1.25,
59
- inputColorSpace: "linear",
60
- outputColorSpace: "srgb"
61
- },
62
- colorGrade: {
63
- contrast: 1.08,
64
- saturation: 1.05,
65
- vibrance: 0.1,
66
- vignette: 0.12,
67
- sharpening: 0.22
68
- },
69
- bloom: {
70
- threshold: 0.92,
71
- intensity: 0.08,
72
- radius: 1
73
- },
74
- fxaa: {
75
- edgeThreshold: 0.08,
76
- subpixelBlend: 0.55
77
- }
78
- };
79
- }
80
- export function captureCurrentRoutesCanvasScreenshot(canvas) {
81
- if (!("toDataURL" in canvas) || typeof canvas.toDataURL !== "function") {
82
- throw new Error("CurrentRoutes screenshot capture requires an HTMLCanvasElement with preserveDrawingBuffer enabled.");
83
- }
84
- return {
85
- mimeType: "image/png",
86
- dataUrl: canvas.toDataURL("image/png"),
87
- width: canvas.width,
88
- height: canvas.height
89
- };
90
- }
91
- function createCurrentRoutesRuntimeMetrics() {
92
- let frameCount = 0;
93
- let lastFrameMs = 0;
94
- let averageFrameMs = 0;
95
- let lastRenderMs = 0;
96
- let averageRenderMs = 0;
97
- let diagnostics = { drawCalls: 0, buffers: 0, shaders: 0, lastError: null, contextLost: false };
98
- return {
99
- record(sample) {
100
- frameCount += 1;
101
- lastFrameMs = sample.frameMs;
102
- lastRenderMs = sample.renderMs;
103
- averageFrameMs += (sample.frameMs - averageFrameMs) / frameCount;
104
- averageRenderMs += (sample.renderMs - averageRenderMs) / frameCount;
105
- diagnostics = sample.diagnostics;
106
- },
107
- snapshot(backend) {
108
- return {
109
- frameCount,
110
- lastFrameMs: round(lastFrameMs),
111
- averageFrameMs: round(averageFrameMs),
112
- lastRenderMs: round(lastRenderMs),
113
- averageRenderMs: round(averageRenderMs),
114
- drawCalls: diagnostics.drawCalls,
115
- textures: diagnostics.textures ?? 0,
116
- buffers: diagnostics.buffers,
117
- shaders: diagnostics.shaders,
118
- backend,
119
- ...(diagnostics.stateCacheIssued !== undefined ? { stateCacheIssued: diagnostics.stateCacheIssued } : {}),
120
- ...(diagnostics.stateCacheSkipped !== undefined ? { stateCacheSkipped: diagnostics.stateCacheSkipped } : {}),
121
- ...(diagnostics.stateCacheProgramSwitches !== undefined ? { stateCacheProgramSwitches: diagnostics.stateCacheProgramSwitches } : {}),
122
- ...(diagnostics.stateCacheTextureBinds !== undefined ? { stateCacheTextureBinds: diagnostics.stateCacheTextureBinds } : {}),
123
- ...(diagnostics.stateCacheBufferBinds !== undefined ? { stateCacheBufferBinds: diagnostics.stateCacheBufferBinds } : {}),
124
- ...(diagnostics.stateCacheVertexArrayBinds !== undefined ? { stateCacheVertexArrayBinds: diagnostics.stateCacheVertexArrayBinds } : {}),
125
- ...(diagnostics.stateCacheSamplerBinds !== undefined ? { stateCacheSamplerBinds: diagnostics.stateCacheSamplerBinds } : {})
126
- };
127
- }
128
- };
129
- }
130
- function now() {
131
- return typeof performance !== "undefined" ? performance.now() : Date.now();
132
- }
133
- function round(value) {
134
- return Math.round(value * 100) / 100;
135
- }
136
- function clamp(value, min, max) {
137
- return Math.min(max, Math.max(min, value));
138
- }
139
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/threejs-example-parity/index.ts"],"names":[],"mappings":"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"}