@needle-tools/engine 4.1.0-alpha.8 → 4.1.0-alpha.9
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/CHANGELOG.md +3 -0
- package/dist/needle-engine.js +244 -243
- package/dist/needle-engine.light.js +244 -243
- package/dist/needle-engine.light.min.js +75 -76
- package/dist/needle-engine.light.umd.cjs +92 -93
- package/dist/needle-engine.min.js +75 -76
- package/dist/needle-engine.umd.cjs +76 -77
- package/lib/engine/engine_tonemapping.js +10 -4
- package/lib/engine/engine_tonemapping.js.map +1 -1
- package/package.json +1 -1
- package/src/engine/engine_tonemapping.ts +10 -5
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ShaderChunk } from "three";
|
|
2
|
+
import { isDevEnvironment } from "./debug/index.js";
|
|
2
3
|
let patchedTonemapping = false;
|
|
3
4
|
export function patchTonemapping(_ctx) {
|
|
4
5
|
if (patchedTonemapping)
|
|
@@ -33,7 +34,7 @@ vec3 NeutralToneMapping( vec3 color ) {
|
|
|
33
34
|
}
|
|
34
35
|
`;
|
|
35
36
|
const startStr = `vec3 NeutralToneMapping( vec3 color ) {`;
|
|
36
|
-
const endStr = `return mix(color, vec3(
|
|
37
|
+
const endStr = `return mix( color, vec3( newPeak ), g );
|
|
37
38
|
}`;
|
|
38
39
|
// Patch Neutral
|
|
39
40
|
const startIndex = ShaderChunk.tonemapping_pars_fragment.indexOf(startStr);
|
|
@@ -44,6 +45,9 @@ vec3 NeutralToneMapping( vec3 color ) {
|
|
|
44
45
|
// replace it with the new one
|
|
45
46
|
ShaderChunk.tonemapping_pars_fragment = ShaderChunk.tonemapping_pars_fragment.replace(existing, commerceToneMapping);
|
|
46
47
|
}
|
|
48
|
+
else if (isDevEnvironment()) {
|
|
49
|
+
console.error("Couldn't find NeutralToneMapping in ShaderChunk.tonemapping_pars_fragment");
|
|
50
|
+
}
|
|
47
51
|
}
|
|
48
52
|
function patchAGX() {
|
|
49
53
|
// From https://iolite-engine.com/blog_posts/minimal_agx_implementation
|
|
@@ -158,16 +162,18 @@ vec3 AgXToneMapping( vec3 color ) {
|
|
|
158
162
|
color = _agxLook(color); // Optional
|
|
159
163
|
color = _agxEotf(color);
|
|
160
164
|
return color;
|
|
161
|
-
|
|
165
|
+
`;
|
|
162
166
|
const startString = `vec3 AgXToneMapping( vec3 color ) {`;
|
|
163
|
-
const endString = `
|
|
164
|
-
}`;
|
|
167
|
+
const endString = `return color;`;
|
|
165
168
|
const startIndex = ShaderChunk.tonemapping_pars_fragment.indexOf(startString);
|
|
166
169
|
const endIndex = ShaderChunk.tonemapping_pars_fragment.indexOf(endString, startIndex);
|
|
167
170
|
if (startIndex >= 0 && endIndex >= 0) {
|
|
168
171
|
const existing = ShaderChunk.tonemapping_pars_fragment.substring(startIndex, endIndex + endString.length);
|
|
169
172
|
ShaderChunk.tonemapping_pars_fragment = ShaderChunk.tonemapping_pars_fragment.replace(existing, agxToneMapping);
|
|
170
173
|
}
|
|
174
|
+
else if (isDevEnvironment()) {
|
|
175
|
+
console.error("Couldn't find AgXToneMapping in ShaderChunk.tonemapping_pars_fragment");
|
|
176
|
+
}
|
|
171
177
|
}
|
|
172
178
|
// function resetShaders(ctx: Context) {
|
|
173
179
|
// const scene = ctx.scene;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine_tonemapping.js","sourceRoot":"","sources":["../../src/engine/engine_tonemapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"engine_tonemapping.js","sourceRoot":"","sources":["../../src/engine/engine_tonemapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGpD,IAAI,kBAAkB,GAAG,KAAK,CAAC;AAC/B,MAAM,UAAU,gBAAgB,CAAC,IAAc;IAC3C,IAAI,kBAAkB;QAAE,OAAO;IAC/B,kBAAkB,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,CAAC;IACf,QAAQ,EAAE,CAAC;AACf,CAAC;AACD,gBAAgB,EAAE,CAAC;AAEnB,SAAS,YAAY;IACjB,wDAAwD;IACxD,iDAAiD;IACjD,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;CAoB/B,CAAC;IACE,MAAM,QAAQ,GAAG,yCAAyC,CAAA;IAC1D,MAAM,MAAM,GAAG;EACjB,CAAC;IAEC,gBAAgB;IAChB,MAAM,UAAU,GAAG,WAAW,CAAC,yBAAyB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,WAAW,CAAC,yBAAyB,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnF,IAAI,UAAU,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE;QAClC,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,WAAW,CAAC,yBAAyB,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QACvG,8BAA8B;QAC9B,WAAW,CAAC,yBAAyB,GAAG,WAAW,CAAC,yBAAyB,CAAC,OAAO,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;KACxH;SACI,IAAI,gBAAgB,EAAE,EAAE;QACzB,OAAO,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC;KAC9F;AACL,CAAC;AAGD,SAAS,QAAQ;IACb,uEAAuE;IACvE,yIAAyI;IACzI,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8G1B,CAAC;IAEE,MAAM,WAAW,GAAG,qCAAqC,CAAC;IAC1D,MAAM,SAAS,GAAG,eAAe,CAAC;IAClC,MAAM,UAAU,GAAG,WAAW,CAAC,yBAAyB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,WAAW,CAAC,yBAAyB,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACtF,IAAI,UAAU,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE;QAClC,MAAM,QAAQ,GAAG,WAAW,CAAC,yBAAyB,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1G,WAAW,CAAC,yBAAyB,GAAG,WAAW,CAAC,yBAAyB,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;KACnH;SACI,IAAI,gBAAgB,EAAE,EAAE;QACzB,OAAO,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;KAC1F;AAEL,CAAC;AASD,wCAAwC;AACxC,+BAA+B;AAC/B,+BAA+B;AAC/B,iCAAiC;AACjC,yCAAyC;AACzC,2CAA2C;AAC3C,kDAAkD;AAClD,2EAA2E;AAC3E,gBAAgB;AAChB,qBAAqB;AACrB,uDAAuD;AACvD,gBAAgB;AAChB,YAAY;AACZ,SAAS;AACT,6BAA6B;AAC7B,uCAAuC;AACvC,IAAI"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@needle-tools/engine",
|
|
3
|
-
"version": "4.1.0-alpha.
|
|
3
|
+
"version": "4.1.0-alpha.9",
|
|
4
4
|
"description": "Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in",
|
|
5
5
|
"main": "dist/needle-engine.umd.cjs",
|
|
6
6
|
"exports": {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ShaderChunk } from "three";
|
|
2
2
|
|
|
3
|
+
import { isDevEnvironment } from "./debug/index.js";
|
|
3
4
|
import type { Context } from "./engine_setup";
|
|
4
5
|
|
|
5
6
|
let patchedTonemapping = false;
|
|
@@ -36,7 +37,7 @@ vec3 NeutralToneMapping( vec3 color ) {
|
|
|
36
37
|
}
|
|
37
38
|
`;
|
|
38
39
|
const startStr = `vec3 NeutralToneMapping( vec3 color ) {`
|
|
39
|
-
const endStr = `return mix(color, vec3(
|
|
40
|
+
const endStr = `return mix( color, vec3( newPeak ), g );
|
|
40
41
|
}`;
|
|
41
42
|
|
|
42
43
|
// Patch Neutral
|
|
@@ -47,7 +48,9 @@ vec3 NeutralToneMapping( vec3 color ) {
|
|
|
47
48
|
const existing = ShaderChunk.tonemapping_pars_fragment.substring(startIndex, endIndex + endStr.length);
|
|
48
49
|
// replace it with the new one
|
|
49
50
|
ShaderChunk.tonemapping_pars_fragment = ShaderChunk.tonemapping_pars_fragment.replace(existing, commerceToneMapping);
|
|
50
|
-
|
|
51
|
+
}
|
|
52
|
+
else if (isDevEnvironment()) {
|
|
53
|
+
console.error("Couldn't find NeutralToneMapping in ShaderChunk.tonemapping_pars_fragment");
|
|
51
54
|
}
|
|
52
55
|
}
|
|
53
56
|
|
|
@@ -165,17 +168,19 @@ vec3 AgXToneMapping( vec3 color ) {
|
|
|
165
168
|
color = _agxLook(color); // Optional
|
|
166
169
|
color = _agxEotf(color);
|
|
167
170
|
return color;
|
|
168
|
-
|
|
171
|
+
`;
|
|
169
172
|
|
|
170
173
|
const startString = `vec3 AgXToneMapping( vec3 color ) {`;
|
|
171
|
-
const endString = `
|
|
172
|
-
}`;
|
|
174
|
+
const endString = `return color;`;
|
|
173
175
|
const startIndex = ShaderChunk.tonemapping_pars_fragment.indexOf(startString);
|
|
174
176
|
const endIndex = ShaderChunk.tonemapping_pars_fragment.indexOf(endString, startIndex);
|
|
175
177
|
if (startIndex >= 0 && endIndex >= 0) {
|
|
176
178
|
const existing = ShaderChunk.tonemapping_pars_fragment.substring(startIndex, endIndex + endString.length);
|
|
177
179
|
ShaderChunk.tonemapping_pars_fragment = ShaderChunk.tonemapping_pars_fragment.replace(existing, agxToneMapping);
|
|
178
180
|
}
|
|
181
|
+
else if (isDevEnvironment()) {
|
|
182
|
+
console.error("Couldn't find AgXToneMapping in ShaderChunk.tonemapping_pars_fragment");
|
|
183
|
+
}
|
|
179
184
|
|
|
180
185
|
}
|
|
181
186
|
|