@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.
@@ -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(1, 1, 1), g);
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 = ` return color;
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;AAIpC,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;KAExH;AACL,CAAC;AAGD,SAAS,QAAQ;IACb,uEAAuE;IACvE,yIAAyI;IACzI,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8GzB,CAAC;IAEC,MAAM,WAAW,GAAG,qCAAqC,CAAC;IAC1D,MAAM,SAAS,GAAG;EACpB,CAAC;IACC,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;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"}
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.8",
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(1, 1, 1), g);
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 = ` return color;
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