@hypersoniclabs/helix-cli 0.1.25-helix3.521 → 0.1.25-helix3.523
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/itemLod/gbuffer.js +39 -2
- package/dist/itemLod/gbuffer.js.map +1 -1
- package/dist/itemLod/index.d.ts +2 -2
- package/dist/itemLod/index.js +2 -2
- package/dist/itemLod/index.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/docs/item-lod.md +4 -4
- package/package.json +1 -1
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_abs.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_audio.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_engine.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_expression.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_jbeam.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_materials.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_stock_events.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/fmod_studio.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/fsb5.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/sim_audio.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/sim_audio_ac.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/sim_audio_beamng.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/sim_audio_fixtures.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/test_beamng_engine.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/test_sim_audio.cpython-312.pyc +0 -0
package/dist/itemLod/gbuffer.js
CHANGED
|
@@ -128,6 +128,8 @@ const hemiDirection = (x, y, views) => {
|
|
|
128
128
|
const u = 2 * x / (views - 1) - 1, v = 2 * y / (views - 1) - 1, hx = (u + v) / 2, hz = (u - v) / 2;
|
|
129
129
|
return new THREE.Vector3(hx, 1 - Math.abs(hx) - Math.abs(hz), hz).normalize();
|
|
130
130
|
};
|
|
131
|
+
const toLinear = e => { const c = e / 255; return c <= 0.04045 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4); };
|
|
132
|
+
const toEncoded = l => Math.round(255 * (l <= 0.0031308 ? 12.92 * l : 1.055 * Math.pow(l, 1 / 2.4) - 0.055));
|
|
131
133
|
window.captureGBuffer = async ({ model, size, center, radius, ssaa, views, emissiveScale }) => {
|
|
132
134
|
const gltf = await new GLTFLoader().loadAsync(model);
|
|
133
135
|
gltf.scene.updateMatrixWorld(true);
|
|
@@ -141,10 +143,39 @@ window.captureGBuffer = async ({ model, size, center, radius, ssaa, views, emiss
|
|
|
141
143
|
+ (source.roughnessMap || source.metalnessMap ? 'vec4 orm = texture2D(ormMap, vUv);' : 'vec4 orm = vec4(1.0);') + '\n'
|
|
142
144
|
+ 'if (' + kind + ' == 1) { gl_FragColor = vec4(rough * orm.g, metal * orm.b, coat, 1.0); return; }\n'
|
|
143
145
|
+ 'vec3 e = glow' + (source.emissiveMap ? ' * texture2D(glowMap, vUv).rgb' : '') + '; gl_FragColor = vec4(e * ' + emissiveScale.toFixed(4) + ', 1.0); }';
|
|
146
|
+
// BLEND glass (a transparent material without an alpha test) is captured as the runtime shows it: a translucent pane over what is behind it, not an opaque
|
|
147
|
+
// glossy surface. Every pass blends it with the glass's own alpha (opacity x base colour alpha x vertex alpha), single-pass like the runtime's
|
|
148
|
+
// normalizeItemMaterials, after the opaque meshes, so a pixel holds glass-over-cabin (albedo, normal, roughness, metalness, coat, glow all averaged with the same
|
|
149
|
+
// weights). Over empty background the pixel keeps the glass's alpha as coverage, so a pane with nothing behind it is a see-through hole, as it is in the model.
|
|
150
|
+
// The target holds premultiplied values (three's NormalBlending over a cleared (0, 0, 0, 0) target), which the resolve below un-weights.
|
|
151
|
+
const isGlass = source => Boolean(source.transparent) && !(source.alphaTest > 0);
|
|
152
|
+
const glassPass = (source, pass) => {
|
|
153
|
+
const glass = new THREE.MeshBasicMaterial({ color: pass === 'albedo' ? source.color : 0xffffff, map: source.map, vertexColors: source.vertexColors,
|
|
154
|
+
opacity: source.opacity, transparent: true, depthWrite: false, side: source.side, toneMapped: false });
|
|
155
|
+
glass.forceSinglePass = true;
|
|
156
|
+
if (pass === 'albedo') return glass;
|
|
157
|
+
const kind = pass === 'normal' ? 0 : pass === 'material' ? 1 : 2, hasOrm = Boolean(source.roughnessMap || source.metalnessMap), hasGlow = Boolean(source.emissiveMap);
|
|
158
|
+
const uniforms = { rough: { value: source.roughness ?? 1 }, metal: { value: source.metalness ?? 0 }, coat: { value: source.clearcoat ?? 0 },
|
|
159
|
+
glow: { value: (source.emissive ?? new THREE.Color(0)).clone().multiplyScalar(source.emissiveIntensity ?? 1) },
|
|
160
|
+
glowMap: { value: source.emissiveMap ?? null }, ormMap: { value: source.roughnessMap ?? source.metalnessMap ?? null } };
|
|
161
|
+
glass.onBeforeCompile = shader => {
|
|
162
|
+
Object.assign(shader.uniforms, uniforms);
|
|
163
|
+
shader.vertexShader = 'varying vec3 vGN; varying vec2 vGUv;\n' + shader.vertexShader.replace('#include <begin_vertex>',
|
|
164
|
+
'#include <begin_vertex>\n vGN = normalize(mat3(viewMatrix) * mat3(modelMatrix) * normal); vGUv = uv;');
|
|
165
|
+
const value = kind === 0 ? 'normalize(vGN) * (gl_FrontFacing ? 1.0 : -1.0) * 0.5 + 0.5'
|
|
166
|
+
: kind === 1 ? 'vec3(rough * ' + (hasOrm ? 'texture2D(ormMap, vGUv).g' : '1.0') + ', metal * ' + (hasOrm ? 'texture2D(ormMap, vGUv).b' : '1.0') + ', coat)'
|
|
167
|
+
: 'glow' + (hasGlow ? ' * texture2D(glowMap, vGUv).rgb' : '') + ' * ' + emissiveScale.toFixed(4);
|
|
168
|
+
shader.fragmentShader = 'uniform float rough; uniform float metal; uniform float coat; uniform vec3 glow; uniform sampler2D glowMap; uniform sampler2D ormMap; varying vec3 vGN; varying vec2 vGUv;\n'
|
|
169
|
+
+ shader.fragmentShader.replace('#include <opaque_fragment>', 'outgoingLight = ' + value + ';\n#include <opaque_fragment>');
|
|
170
|
+
};
|
|
171
|
+
glass.customProgramCacheKey = () => 'gbuffer-glass-' + kind + (hasOrm ? 'o' : '') + (hasGlow ? 'g' : '');
|
|
172
|
+
return glass;
|
|
173
|
+
};
|
|
144
174
|
const build = pass => {
|
|
145
175
|
const originals = meshes.map(mesh => mesh.material);
|
|
146
176
|
meshes.forEach((mesh, index) => {
|
|
147
177
|
const source = originals[index];
|
|
178
|
+
if (isGlass(source)) { const glass = glassPass(source, pass); owned.push(glass); mesh.material = glass; return; }
|
|
148
179
|
if (pass === 'albedo') {
|
|
149
180
|
const colour = new THREE.MeshBasicMaterial({ color: source.color, map: source.map, vertexColors: source.vertexColors, alphaTest: source.alphaTest, side: source.side, toneMapped: false });
|
|
150
181
|
owned.push(colour); mesh.material = colour; return;
|
|
@@ -184,12 +215,18 @@ window.captureGBuffer = async ({ model, size, center, radius, ssaa, views, emiss
|
|
|
184
215
|
}
|
|
185
216
|
const pixels = new Uint8Array(big * big * 4); renderer.readRenderTargetPixels(target, 0, 0, big, big, pixels);
|
|
186
217
|
meshes.forEach((mesh, index) => { mesh.material = originals[index]; });
|
|
187
|
-
const reduced = new Uint8Array(size * size * 4), count = ssaa * ssaa;
|
|
218
|
+
const reduced = new Uint8Array(size * size * 4), count = ssaa * ssaa, colour = pass === 'albedo' || pass === 'emissive';
|
|
219
|
+
// The target holds premultiplied values (see the glass note above): an opaque subsample is (value, 1), a glass-over-nothing one is (value x alpha, alpha). Each subsample
|
|
220
|
+
// is turned back into its straight value before the coverage-weighted mean, so a pane over nothing keeps its own colour (and a partial alpha as coverage); a colour
|
|
221
|
+
// pass is decoded to linear for the division and encoded again, because its target stores sRGB. For opaque and cut-out content alpha is 0 or 255 and nothing changes.
|
|
222
|
+
const straight = (value, alpha) => alpha >= 255 ? value
|
|
223
|
+
: colour ? toEncoded(Math.min(1, toLinear(value) * 255 / alpha)) : Math.min(255, Math.round(value * 255 / alpha));
|
|
188
224
|
for (let y = 0; y < size; y++) for (let x = 0; x < size; x++) {
|
|
189
225
|
let r = 0, g = 0, b = 0, a = 0;
|
|
190
226
|
for (let j = 0; j < ssaa; j++) for (let i = 0; i < ssaa; i++) {
|
|
191
227
|
const p = ((y * ssaa + j) * big + (x * ssaa + i)) * 4, alpha = pixels[p + 3];
|
|
192
|
-
|
|
228
|
+
if (alpha === 0) continue;
|
|
229
|
+
a += alpha; r += straight(pixels[p], alpha) * alpha; g += straight(pixels[p + 1], alpha) * alpha; b += straight(pixels[p + 2], alpha) * alpha;
|
|
193
230
|
}
|
|
194
231
|
const o = (y * size + x) * 4;
|
|
195
232
|
if (a > 0) { reduced[o] = Math.round(r / a); reduced[o + 1] = Math.round(g / a); reduced[o + 2] = Math.round(b / a); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gbuffer.js","sourceRoot":"","sources":["../../src/itemLod/gbuffer.ts"],"names":[],"mappings":";;;;;;AA6CA,4CAIC;AA6BD,wCAiBC;AAGD,kCA2BC;
|
|
1
|
+
{"version":3,"file":"gbuffer.js","sourceRoot":"","sources":["../../src/itemLod/gbuffer.ts"],"names":[],"mappings":"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"}
|
package/dist/itemLod/index.d.ts
CHANGED
|
@@ -13,8 +13,8 @@ export { ITEM_LOD_SCHEMA, ITEM_LOD_COMPILER, ITEM_LOD_CAPS, compileItemLods, val
|
|
|
13
13
|
export type { ItemLodArtifact, ItemLodBuild, ItemLodSource, ItemLodLevel, ItemLodImpostor, ItemLodObject, ItemLodReport, ItemLodReportLevel, ItemLodOmission, CapCheck, CompileItemLodOptions, } from './artifact';
|
|
14
14
|
export type { ItemLodProfile } from './simplify';
|
|
15
15
|
export type { ImpostorShading } from './impostor';
|
|
16
|
-
/** The impostor shadings `compileItemLods({ shading })` can bake. A backend worker checks this before it compiles an albedo twin, so an older CLI never writes
|
|
17
|
-
export declare const ITEM_LOD_SHADINGS: readonly ["lit/1", "albedo"];
|
|
16
|
+
/** The impostor shadings `compileItemLods({ shading })` can bake. A backend worker checks this before it compiles an albedo twin or a `gbuffer/1` (`item-lod/5`) impostor, so an older CLI never writes the wrong atlas under a contract that names another. */
|
|
17
|
+
export declare const ITEM_LOD_SHADINGS: readonly ["lit/1", "albedo", "gbuffer/1"];
|
|
18
18
|
export { SkinnedModelError } from './model';
|
|
19
19
|
export { chooseModelVariant, parsePackageRef, resolveItemPackage, resolvePackageModel } from './source';
|
|
20
20
|
export type { ItemLodApi, PackageModelRef, ResolvedPackageModel } from './source';
|
package/dist/itemLod/index.js
CHANGED
|
@@ -21,8 +21,8 @@ Object.defineProperty(exports, "validateItemLodArtifact", { enumerable: true, ge
|
|
|
21
21
|
Object.defineProperty(exports, "checkItemLodCaps", { enumerable: true, get: function () { return artifact_1.checkItemLodCaps; } });
|
|
22
22
|
Object.defineProperty(exports, "itemLodObjectPath", { enumerable: true, get: function () { return artifact_1.itemLodObjectPath; } });
|
|
23
23
|
Object.defineProperty(exports, "writeItemLodOutput", { enumerable: true, get: function () { return artifact_1.writeItemLodOutput; } });
|
|
24
|
-
/** The impostor shadings `compileItemLods({ shading })` can bake. A backend worker checks this before it compiles an albedo twin, so an older CLI never writes
|
|
25
|
-
exports.ITEM_LOD_SHADINGS = ['lit/1', 'albedo'];
|
|
24
|
+
/** The impostor shadings `compileItemLods({ shading })` can bake. A backend worker checks this before it compiles an albedo twin or a `gbuffer/1` (`item-lod/5`) impostor, so an older CLI never writes the wrong atlas under a contract that names another. */
|
|
25
|
+
exports.ITEM_LOD_SHADINGS = ['lit/1', 'albedo', 'gbuffer/1'];
|
|
26
26
|
var model_1 = require("./model");
|
|
27
27
|
Object.defineProperty(exports, "SkinnedModelError", { enumerable: true, get: function () { return model_1.SkinnedModelError; } });
|
|
28
28
|
var source_1 = require("./source");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/itemLod/index.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACH,uCAGoB;AAFlB,2GAAA,eAAe,OAAA;AAAE,6GAAA,iBAAiB,OAAA;AAAE,yGAAA,aAAa,OAAA;AACjD,2GAAA,eAAe,OAAA;AAAE,mHAAA,uBAAuB,OAAA;AAAE,4GAAA,gBAAgB,OAAA;AAAE,6GAAA,iBAAiB,OAAA;AAAE,8GAAA,kBAAkB,OAAA;AAQnG,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/itemLod/index.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACH,uCAGoB;AAFlB,2GAAA,eAAe,OAAA;AAAE,6GAAA,iBAAiB,OAAA;AAAE,yGAAA,aAAa,OAAA;AACjD,2GAAA,eAAe,OAAA;AAAE,mHAAA,uBAAuB,OAAA;AAAE,4GAAA,gBAAgB,OAAA;AAAE,6GAAA,iBAAiB,OAAA;AAAE,8GAAA,kBAAkB,OAAA;AAQnG,gQAAgQ;AACnP,QAAA,iBAAiB,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAU,CAAC;AAC3E,iCAA4C;AAAnC,0GAAA,iBAAiB,OAAA;AAC1B,mCAAwG;AAA/F,4GAAA,kBAAkB,OAAA;AAAE,yGAAA,eAAe,OAAA;AAAE,4GAAA,kBAAkB,OAAA;AAAE,6GAAA,mBAAmB,OAAA"}
|