@hypersoniclabs/helix-cli 0.1.27-helix3.539 → 0.1.27-helix3.540

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 (28) hide show
  1. package/dist/sceneHlod/allocateTileSizes.d.ts +16 -0
  2. package/dist/sceneHlod/allocateTileSizes.js +21 -0
  3. package/dist/sceneHlod/allocateTileSizes.js.map +1 -0
  4. package/dist/sceneHlod/commands.js +5 -1
  5. package/dist/sceneHlod/commands.js.map +1 -1
  6. package/dist/sceneHlod/complete.d.ts +22 -0
  7. package/dist/sceneHlod/complete.js +29 -5
  8. package/dist/sceneHlod/complete.js.map +1 -1
  9. package/dist/sceneHlod/completePrototype.d.ts +6 -0
  10. package/dist/sceneHlod/completePrototype.js +15 -2
  11. package/dist/sceneHlod/completePrototype.js.map +1 -1
  12. package/dist/tsconfig.build.tsbuildinfo +1 -1
  13. package/package.json +1 -1
  14. package/plugins/beamng-vehicle/bin/__pycache__/beamng_abs.cpython-312.pyc +0 -0
  15. package/plugins/beamng-vehicle/bin/__pycache__/beamng_audio.cpython-312.pyc +0 -0
  16. package/plugins/beamng-vehicle/bin/__pycache__/beamng_engine.cpython-312.pyc +0 -0
  17. package/plugins/beamng-vehicle/bin/__pycache__/beamng_expression.cpython-312.pyc +0 -0
  18. package/plugins/beamng-vehicle/bin/__pycache__/beamng_jbeam.cpython-312.pyc +0 -0
  19. package/plugins/beamng-vehicle/bin/__pycache__/beamng_materials.cpython-312.pyc +0 -0
  20. package/plugins/beamng-vehicle/bin/__pycache__/beamng_stock_events.cpython-312.pyc +0 -0
  21. package/plugins/beamng-vehicle/bin/__pycache__/fmod_studio.cpython-312.pyc +0 -0
  22. package/plugins/beamng-vehicle/bin/__pycache__/fsb5.cpython-312.pyc +0 -0
  23. package/plugins/beamng-vehicle/bin/__pycache__/sim_audio.cpython-312.pyc +0 -0
  24. package/plugins/beamng-vehicle/bin/__pycache__/sim_audio_ac.cpython-312.pyc +0 -0
  25. package/plugins/beamng-vehicle/bin/__pycache__/sim_audio_beamng.cpython-312.pyc +0 -0
  26. package/plugins/beamng-vehicle/bin/__pycache__/sim_audio_fixtures.cpython-312.pyc +0 -0
  27. package/plugins/beamng-vehicle/bin/__pycache__/test_beamng_engine.cpython-312.pyc +0 -0
  28. package/plugins/beamng-vehicle/bin/__pycache__/test_sim_audio.cpython-312.pyc +0 -0
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Tile sizes from surface area. One texel density tau (texels per metre of wall side) is solved by bisection so that the sum of tile^2 does not exceed
3
+ * `budgetTexels`: tile = clamp(2^ceil(log2(sqrt(areaM2) x tau)), minTile, maxTile). Pure; every prototype gets one of TILE_SIZES.
4
+ */
5
+ export declare function allocateTileSizes(items: readonly {
6
+ id: string;
7
+ areaM2: number;
8
+ }[], options: {
9
+ budgetTexels: number;
10
+ minTile: number;
11
+ maxTile: number;
12
+ }): {
13
+ sizes: Map<string, number>;
14
+ tau: number;
15
+ texels: number;
16
+ };
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.allocateTileSizes = allocateTileSizes;
4
+ /**
5
+ * Tile sizes from surface area. One texel density tau (texels per metre of wall side) is solved by bisection so that the sum of tile^2 does not exceed
6
+ * `budgetTexels`: tile = clamp(2^ceil(log2(sqrt(areaM2) x tau)), minTile, maxTile). Pure; every prototype gets one of TILE_SIZES.
7
+ */
8
+ function allocateTileSizes(items, options) {
9
+ const sizeAt = (area, tau) => Math.max(options.minTile, Math.min(options.maxTile, 2 ** Math.ceil(Math.log2(Math.max(1e-6, Math.sqrt(area) * tau)))));
10
+ const total = (tau) => items.reduce((sum, item) => sum + sizeAt(item.areaM2, tau) ** 2, 0);
11
+ let lo = 0, hi = 64;
12
+ for (let i = 0; i < 60; i++) {
13
+ const mid = (lo + hi) / 2;
14
+ if (total(mid) <= options.budgetTexels)
15
+ lo = mid;
16
+ else
17
+ hi = mid;
18
+ }
19
+ return { sizes: new Map(items.map(item => [item.id, sizeAt(item.areaM2, lo)])), tau: lo, texels: total(lo) };
20
+ }
21
+ //# sourceMappingURL=allocateTileSizes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"allocateTileSizes.js","sourceRoot":"","sources":["../../src/sceneHlod/allocateTileSizes.ts"],"names":[],"mappings":";;AAIA,8CAMC;AAVD;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,KAAgD,EAAE,OAAmE;IACrJ,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrK,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACnG,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAAC,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,YAAY;YAAE,EAAE,GAAG,GAAG,CAAC;;YAAM,EAAE,GAAG,GAAG,CAAC;IAAC,CAAC;IAC5H,OAAO,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/G,CAAC"}
@@ -92,15 +92,19 @@ function registerSceneHlodCommands(scene, fail) {
92
92
  .option('--texels-per-metre <density>', 'shared appearance density (default 1)', Number)
93
93
  .option('--min-tile <pixels>', 'minimum prototype tile: 32, 64, 128, 256, 512 or 1024 (default 64)', Number)
94
94
  .option('--max-tile <pixels>', 'maximum prototype tile: 32, 64, 128, 256, 512 or 1024 (default 256)', Number)
95
+ .option('--allocation <rule>', 'tile size rule: extent (default; largest dimension x density) or area (sqrt of exterior wall area, one density solved to a texel budget)', 'extent')
96
+ .option('--atlas-budget <texels>', 'area rule: total texels of all tiles (default: what the extent rule would spend on the same prototypes)', Number)
95
97
  .option('--compression <format>', 'ktx2 (GPU compressed) or png', 'ktx2').option('--force', 'ignore cached prototype bakes')
96
98
  .action(async (files, options) => {
99
+ if (options.allocation && !['extent', 'area'].includes(options.allocation))
100
+ return fail('--allocation is extent or area');
97
101
  const controller = new AbortController(), cancel = () => controller.abort();
98
102
  process.once('SIGINT', cancel);
99
103
  try {
100
104
  const settings = Object.fromEntries(Object.entries({ cellSizeM: options.cellSize, voxelSizeM: options.voxelSize,
101
105
  texelsPerM: options.texelsPerMetre, minTileSize: options.minTile, maxTileSize: options.maxTile }).filter(([, value]) => value !== undefined));
102
106
  const result = await (0, complete_1.bakeCompleteSceneHlod)(files, { ...settings, compression: options.compression,
103
- force: options.force, signal: controller.signal, onProgress: progress => console.error(`HLOD ${progress.phase} ${progress.completed}/${progress.total} ${progress.id}${progress.cached ? ' (cached)' : ''}`) });
107
+ allocation: options.allocation, atlasBudgetTexels: options.atlasBudget, force: options.force, signal: controller.signal, onProgress: progress => console.error(`HLOD ${progress.phase} ${progress.completed}/${progress.total} ${progress.id}${progress.cached ? ' (cached)' : ''}`) });
104
108
  console.log(JSON.stringify(result, null, 2));
105
109
  }
106
110
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/sceneHlod/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/sceneHlod/commands.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,15 @@ export interface CompleteSceneHlodOptions extends Partial<SceneHlodCompleteBakeS
6
6
  compression?: 'png' | 'ktx2';
7
7
  force?: boolean;
8
8
  signal?: AbortSignal;
9
+ /**
10
+ * How a prototype's atlas tile is sized. `extent` (default, the shipped rule): the next power of two of its largest dimension times texelsPerM, so a
11
+ * 100 m tower and a 100 m-long warehouse get the same tile however much wall they have. `area`: the tile follows the square root of the exterior surface
12
+ * area of the simplified mesh (the wall a viewer actually sees), with one texel density for the whole city solved so that the tiles together cost
13
+ * `atlasBudgetTexels` (default: what the `extent` rule would have spent on the same prototypes), so towers gain texels from the many small buildings
14
+ * that were floored at minTileSize. Prototypes are baked once at maxTileSize and resampled into their slot.
15
+ */
16
+ allocation?: 'extent' | 'area';
17
+ atlasBudgetTexels?: number;
9
18
  onProgress?: (progress: {
10
19
  phase: 'prototype' | 'material' | 'cell';
11
20
  completed: number;
@@ -15,6 +24,10 @@ export interface CompleteSceneHlodOptions extends Partial<SceneHlodCompleteBakeS
15
24
  }) => void;
16
25
  }
17
26
  export declare const DEFAULT_COMPLETE_HLOD_SETTINGS: SceneHlodCompleteBakeSettings;
27
+ export { allocateTileSizes } from './allocateTileSizes';
28
+ export declare const TILE_SIZES: readonly [32, 64, 128, 256, 512, 1024];
29
+ /** The shipped rule: next power of two of (largest extent x texels per metre), clamped. */
30
+ export declare function extentTileSize(extentM: number, settings: Pick<SceneHlodCompleteBakeSettings, 'texelsPerM' | 'minTileSize' | 'maxTileSize'>): number;
18
31
  export interface Instance {
19
32
  node: SceneNode;
20
33
  matrix: Matrix4;
@@ -67,6 +80,15 @@ export declare function bakeCompleteSceneHlod(files: string | readonly string[],
67
80
  uri: string;
68
81
  bytes: number;
69
82
  };
83
+ allocation: {
84
+ tau: number;
85
+ texels: number;
86
+ budgetTexels: number;
87
+ extentTexels: number;
88
+ } | undefined;
89
+ tileHistogram: {
90
+ [k: string]: number;
91
+ };
70
92
  totalMs: number;
71
93
  }>;
72
94
  export declare function mergeCompleteCell(instances: Instance[], slots: Map<string, HlodAtlasSlot>, get: (key: string) => Promise<CompletePrototype>, origin: [number, number, number], signal?: AbortSignal): Promise<{
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_COMPLETE_HLOD_SETTINGS = void 0;
3
+ exports.TILE_SIZES = exports.allocateTileSizes = exports.DEFAULT_COMPLETE_HLOD_SETTINGS = void 0;
4
+ exports.extentTileSize = extentTileSize;
4
5
  exports.sceneMatrices = sceneMatrices;
5
6
  exports.scaleBound = scaleBound;
6
7
  exports.durableArtifact = durableArtifact;
@@ -19,6 +20,14 @@ const cellArtifact_1 = require("./cellArtifact");
19
20
  exports.DEFAULT_COMPLETE_HLOD_SETTINGS = {
20
21
  cellSizeM: 512, voxelSizeM: 2, texelsPerM: 1, minTileSize: 64, maxTileSize: 256,
21
22
  };
23
+ var allocateTileSizes_1 = require("./allocateTileSizes");
24
+ Object.defineProperty(exports, "allocateTileSizes", { enumerable: true, get: function () { return allocateTileSizes_1.allocateTileSizes; } });
25
+ const allocateTileSizes_2 = require("./allocateTileSizes");
26
+ exports.TILE_SIZES = [32, 64, 128, 256, 512, 1024];
27
+ /** The shipped rule: next power of two of (largest extent x texels per metre), clamped. */
28
+ function extentTileSize(extentM, settings) {
29
+ return Math.max(settings.minTileSize, Math.min(settings.maxTileSize, 2 ** Math.ceil(Math.log2(Math.max(1e-6, extentM * settings.texelsPerM)))));
30
+ }
22
31
  function sceneMatrices(scene) {
23
32
  const nodes = new Map(scene.nodes.map(node => [node.id, node])), matrices = new Map(), pending = new Set();
24
33
  const get = (node) => {
@@ -114,12 +123,13 @@ async function bakeCompleteSceneHlod(files, options = {}) {
114
123
  throw new Error(`HLOD ${id}: bake authored material overrides into the immutable source first`);
115
124
  }
116
125
  const identity = (0, source_1.hlodDigest)(JSON.stringify({ source: source?.integrity.sha256, bytes: source?.bytes, primitive,
117
- error: layer.maxErrorM, ratio: layer.triangleRatio, settings, bakerVersion: completePrototype_1.COMPLETE_HLOD_BAKER_VERSION }));
126
+ error: layer.maxErrorM, ratio: layer.triangleRatio, settings, bakerVersion: completePrototype_1.COMPLETE_HLOD_BAKER_VERSION,
127
+ ...(options.allocation === 'area' ? { allocation: 'area' } : {}) }));
118
128
  const existing = prototypes.get(identity);
119
129
  if (existing)
120
130
  existing.scale = Math.max(existing.scale, scale);
121
131
  else
122
- prototypes.set(identity, { key: identity, scene, node, scale, layer, settings });
132
+ prototypes.set(identity, { key: identity, scene, node, scale, layer, settings, ...(options.allocation === 'area' ? { allocation: 'area' } : {}) });
123
133
  selected.push({ node, matrix, scale, key: identity, cell: cell.cell, layer: cell.layer });
124
134
  }
125
135
  instances.set(scene.id, selected);
@@ -137,16 +147,29 @@ async function bakeCompleteSceneHlod(files, options = {}) {
137
147
  const output = await (0, scene_1.bundleDirectory)(root, ['hlod-complete']), cache = await (0, scene_1.bundleDirectory)(root, ['.helix', 'hlod-complete-cache']);
138
148
  const records = new Map();
139
149
  let completed = 0, cachedPrototypes = 0;
150
+ const areas = new Map();
140
151
  for (const [identity, input] of [...prototypes].sort(([a], [b]) => a.localeCompare(b))) {
141
152
  input.key = (0, source_1.hlodDigest)(JSON.stringify({ identity, scale: input.scale }));
142
153
  const { prototype, cached } = await (0, completePrototype_1.bakeCompletePrototype)(input, root, cache, options);
143
154
  const extent = Math.max(...prototype.bounds.max.map((value, axis) => value - prototype.bounds.min[axis])) * input.scale;
144
- const size = Math.max(input.settings.minTileSize, Math.min(input.settings.maxTileSize, 2 ** Math.ceil(Math.log2(Math.max(1e-6, extent * input.settings.texelsPerM)))));
155
+ const size = extentTileSize(extent, input.settings);
156
+ areas.set(identity, (prototype.metrics.areaM2 ?? 0) * input.scale ** 2);
145
157
  records.set(identity, { key: input.key, bounds: prototype.bounds, metrics: prototype.metrics, size, emissive: !!prototype.emissive });
146
158
  if (cached)
147
159
  cachedPrototypes++;
148
160
  options.onProgress?.({ phase: 'prototype', completed: ++completed, total: prototypes.size, id: input.node.id, cached });
149
161
  }
162
+ let allocation;
163
+ if (options.allocation === 'area') {
164
+ const settings = [...prototypes.values()][0].settings, extentTexels = [...records.values()].reduce((sum, record) => sum + record.size ** 2, 0);
165
+ if ([...areas.values()].some(area => !(area > 0)))
166
+ throw new Error('Area allocation needs the surface area of every prototype; rebake with --force');
167
+ const budgetTexels = options.atlasBudgetTexels ?? extentTexels;
168
+ const solved = (0, allocateTileSizes_2.allocateTileSizes)([...areas].map(([id, areaM2]) => ({ id, areaM2 })), { budgetTexels, minTile: settings.minTileSize, maxTile: settings.maxTileSize });
169
+ for (const [id, size] of solved.sizes)
170
+ records.get(id).size = size;
171
+ allocation = { tau: solved.tau, texels: solved.texels, budgetTexels, extentTexels };
172
+ }
150
173
  const atlasPlan = (0, sharedAtlas_1.planSharedHlodAtlas)([...records].map(([id, value]) => ({ id, size: value.size })));
151
174
  const atlas = await (0, sharedAtlas_1.bakeSharedHlodAtlas)(atlasPlan, async (id) => {
152
175
  const prototype = await (0, completePrototype_1.readCompletePrototype)(cache, records.get(id).key);
@@ -231,7 +254,8 @@ async function bakeCompleteSceneHlod(files, options = {}) {
231
254
  integrity: input.scene.integrity })), prototypes: prototypes.size, cachedPrototypes, cells: receipts,
232
255
  sources: receipts.reduce((n, receipt) => n + receipt.sources, 0), triangles: receipts.reduce((n, receipt) => n + receipt.triangles, 0),
233
256
  geometryBytes: receipts.reduce((n, receipt) => n + receipt.bytes, 0), geometryEstimatedBytes: receipts.reduce((n, receipt) => n + receipt.estimatedBytes, 0),
234
- material: { ...materialArtifact, estimatedBytes: material.estimatedBytes, width: atlasPlan.width, height: atlasPlan.height }, totalMs: performance.now() - started };
257
+ material: { ...materialArtifact, estimatedBytes: material.estimatedBytes, width: atlasPlan.width, height: atlasPlan.height }, allocation,
258
+ tileHistogram: Object.fromEntries(exports.TILE_SIZES.map(size => [size, [...records.values()].filter(record => record.size === size).length])), totalMs: performance.now() - started };
235
259
  }
236
260
  async function mergeCompleteCell(instances, slots, get, origin, signal) {
237
261
  const positions = [], normals = [], uvs = [], indices = [], sources = [];
@@ -1 +1 @@
1
- {"version":3,"file":"complete.js","sourceRoot":"","sources":["../../src/sceneHlod/complete.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"complete.js","sourceRoot":"","sources":["../../src/sceneHlod/complete.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,8 @@ export interface CompletePrototype {
16
16
  method: string;
17
17
  sampled: number;
18
18
  projectionDistanceM: number;
19
+ /** Exterior surface area of the simplified mesh in the prototype's own units (m2 before the instance scale). Area allocation reads it. */
20
+ areaM2?: number;
19
21
  };
20
22
  }
21
23
  export interface PrototypeInput {
@@ -25,7 +27,11 @@ export interface PrototypeInput {
25
27
  layer: SceneHlodLayer;
26
28
  scale: number;
27
29
  settings: SceneHlodCompleteBakeSettings;
30
+ /** `area`: bake every prototype at the largest tile so the atlas slot (see allocateTileSizes) can be chosen afterwards from the cached bake. */
31
+ allocation?: 'extent' | 'area';
28
32
  }
33
+ /** Sum of triangle areas of an indexed mesh. */
34
+ export declare function surfaceAreaM2(geometry: Pick<HlodGeometry, 'positions' | 'indices'>): number;
29
35
  export declare function atomicHlodCache(file: string, text: string): Promise<void>;
30
36
  export declare function encodeCompletePrototype(prototype: CompletePrototype): string;
31
37
  export declare function readCompletePrototype(cache: string, key: string): Promise<CompletePrototype | null>;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.COMPLETE_HLOD_BAKER_VERSION = void 0;
4
+ exports.surfaceAreaM2 = surfaceAreaM2;
4
5
  exports.atomicHlodCache = atomicHlodCache;
5
6
  exports.encodeCompletePrototype = encodeCompletePrototype;
6
7
  exports.readCompletePrototype = readCompletePrototype;
@@ -13,6 +14,17 @@ const geometry_1 = require("./geometry");
13
14
  const transfer_1 = require("./transfer");
14
15
  const source_1 = require("./source");
15
16
  exports.COMPLETE_HLOD_BAKER_VERSION = 2;
17
+ /** Sum of triangle areas of an indexed mesh. */
18
+ function surfaceAreaM2(geometry) {
19
+ const p = geometry.positions, ix = geometry.indices;
20
+ let area = 0;
21
+ for (let i = 0; i < ix.length; i += 3) {
22
+ const a = ix[i] * 3, b = ix[i + 1] * 3, c = ix[i + 2] * 3;
23
+ const ux = p[b] - p[a], uy = p[b + 1] - p[a + 1], uz = p[b + 2] - p[a + 2], vx = p[c] - p[a], vy = p[c + 1] - p[a + 1], vz = p[c + 2] - p[a + 2];
24
+ area += .5 * Math.hypot(uy * vz - uz * vy, uz * vx - ux * vz, ux * vy - uy * vx);
25
+ }
26
+ return area;
27
+ }
16
28
  async function atomicHlodCache(file, text) {
17
29
  const temporary = file + '.' + (0, node_crypto_1.randomUUID)() + '.pending';
18
30
  try {
@@ -95,7 +107,8 @@ async function bakeCompletePrototype(input, root, cache, options) {
95
107
  throw simplifyFailure ?? new Error('HLOD source could not be approximated within the bounded grid');
96
108
  let method = chosen === approximation ? 'exterior' : 'simplify';
97
109
  const extent = Math.max(...source.bounds.max.map((value, axis) => value - source.bounds.min[axis])) * input.scale;
98
- const tile = Math.max(input.settings.minTileSize, Math.min(input.settings.maxTileSize, 2 ** Math.ceil(Math.log2(Math.max(1e-6, extent * input.settings.texelsPerM)))));
110
+ const tile = input.allocation === 'area' ? input.settings.maxTileSize
111
+ : Math.max(input.settings.minTileSize, Math.min(input.settings.maxTileSize, 2 ** Math.ceil(Math.log2(Math.max(1e-6, extent * input.settings.texelsPerM)))));
99
112
  const size = Math.max(128, tile);
100
113
  let geometry = await (0, geometry_1.unwrapHlodGeometry)(chosen.geometry, size, options.signal);
101
114
  let transferred = (0, transfer_1.transferHlodSurface)(source.surface, source.materials, geometry, size, Math.max(1e-4, maxErrorM * 2, voxelSizeM * 4), options.signal);
@@ -113,7 +126,7 @@ async function bakeCompletePrototype(input, root, cache, options) {
113
126
  const prototype = { key: input.key, bounds: source.bounds, geometry, baseColor: transferred.baseColor,
114
127
  normal: transferred.normal, orm: transferred.orm, ...(transferred.emissive ? { emissive: transferred.emissive } : {}),
115
128
  metrics: { sourceTriangles: source.surface.indices.length / 3, sourceDraws: source.drawCalls, triangles: geometry.indices.length / 3,
116
- method, sampled: transferred.sampled, projectionDistanceM: transferred.maxDistanceM } };
129
+ method, sampled: transferred.sampled, projectionDistanceM: transferred.maxDistanceM, areaM2: surfaceAreaM2(geometry) } };
117
130
  options.signal?.throwIfAborted();
118
131
  await atomicHlodCache((0, node_path_1.resolve)(cache, input.key + '.json'), encodeCompletePrototype(prototype));
119
132
  return { prototype, cached: false };
@@ -1 +1 @@
1
- {"version":3,"file":"completePrototype.js","sourceRoot":"","sources":["../../src/sceneHlod/completePrototype.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"completePrototype.js","sourceRoot":"","sources":["../../src/sceneHlod/completePrototype.ts"],"names":[],"mappings":"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"}