@needle-tools/engine 3.44.0-beta → 3.44.0-beta.1
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 +5 -1
- package/dist/needle-engine.js +1051 -1051
- package/dist/needle-engine.light.js +1029 -1029
- package/dist/needle-engine.light.min.js +160 -160
- package/dist/needle-engine.light.umd.cjs +90 -90
- package/dist/needle-engine.min.js +119 -119
- package/dist/needle-engine.umd.cjs +79 -79
- package/lib/engine/engine_element_attributes.d.ts +1 -0
- package/lib/engine/engine_utils_screenshot.js +2 -1
- package/lib/engine/engine_utils_screenshot.js.map +1 -1
- package/lib/engine-components/CameraUtils.js +4 -0
- package/lib/engine-components/CameraUtils.js.map +1 -1
- package/lib/engine-components/postprocessing/Effects/Sharpening.js +1 -1
- package/package.json +1 -1
- package/src/engine/engine_element_attributes.ts +1 -0
- package/src/engine/engine_utils_screenshot.ts +2 -1
- package/src/engine-components/CameraUtils.ts +6 -0
- package/src/engine-components/postprocessing/Effects/Sharpening.ts +1 -1
|
@@ -47,6 +47,7 @@ type SkyboxAttributes = {
|
|
|
47
47
|
};
|
|
48
48
|
export type TonemappingAttributeOptions = "none" | "linear" | "neutral" | "agx";
|
|
49
49
|
type RenderingAttributes = {
|
|
50
|
+
"transparent"?: boolean;
|
|
50
51
|
"contactshadows"?: boolean;
|
|
51
52
|
"tone-mapping"?: TonemappingAttributeOptions;
|
|
52
53
|
"tone-mapping-exposure"?: number;
|
|
@@ -72,6 +72,7 @@ export function screenshot2(opts = {
|
|
|
72
72
|
context.renderer.domElement.style.width = width + "px";
|
|
73
73
|
context.renderer.domElement.style.height = height + "px";
|
|
74
74
|
const previousClearColor = context.renderer.getClearColor(new Color());
|
|
75
|
+
const previousClearAlpha = context.renderer.getClearAlpha();
|
|
75
76
|
try {
|
|
76
77
|
if (opts?.transparent) {
|
|
77
78
|
context.renderer.setClearColor(0x000000, 0);
|
|
@@ -102,7 +103,7 @@ export function screenshot2(opts = {
|
|
|
102
103
|
finally {
|
|
103
104
|
context.renderer.setSize(prevWidth, prevHeight, false);
|
|
104
105
|
context.updateSize();
|
|
105
|
-
context.renderer.setClearColor(previousClearColor);
|
|
106
|
+
context.renderer.setClearColor(previousClearColor, previousClearAlpha);
|
|
106
107
|
}
|
|
107
108
|
return null;
|
|
108
109
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine_utils_screenshot.js","sourceRoot":"","sources":["../../src/engine/engine_utils_screenshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAK/D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,UAAU,CAAC,OAAiB,EAAE,KAAc,EAAE,MAAe,EAAE,WAAoC,YAAY,EAAE,MAAsB;IACnJ,OAAO,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;AACrE,CAAC;AA8CD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,WAAW,CAAC,OAA0B;IAClD,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACrB;IAEG,IAAI,CAAC,IAAI;QAAE,IAAI,GAAG,EAAE,CAAA;IAEpB,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC9C,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAE1B,IAAI,CAAC,OAAO,EAAE;QACV,OAAO,GAAG,eAAe,CAAC,OAAkB,CAAC;QAC7C,IAAI,CAAC,OAAO,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;YACtF,OAAO,IAAI,CAAC;SACf;KACJ;IAED,IAAI,CAAC,MAAM,EAAE;QACT,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;QAC5B,IAAI,CAAC,MAAM,EAAE;YACT,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACjC,OAAO,IAAI,CAAC;SACf;KACJ;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;IACpD,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;IAEtD,IAAI,CAAC,KAAK;QAAE,KAAK,GAAG,SAAS,CAAC;IAC9B,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,UAAU,CAAC;IAEjC,kBAAkB;IAClB,MAAM,SAAS,GAAG,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC;IAC/C,KAAK,IAAI,SAAS,CAAC;IACnB,MAAM,IAAI,SAAS,CAAC;IAEpB,gCAAgC;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAEzD,MAAM,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"engine_utils_screenshot.js","sourceRoot":"","sources":["../../src/engine/engine_utils_screenshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,10 @@ ContextRegistry.registerCallback(ContextEvent.MissingCamera, (evt) => {
|
|
|
24
24
|
camInstance.clearFlags = ClearFlags.SolidColor;
|
|
25
25
|
camInstance.backgroundColor = new RGBAColor(0.5, 0.5, 0.5, 1);
|
|
26
26
|
camInstance.fieldOfView = 35;
|
|
27
|
+
const transparentAttribute = evt.context.domElement.getAttribute("transparent");
|
|
28
|
+
if (transparentAttribute != undefined) {
|
|
29
|
+
camInstance.clearFlags = ClearFlags.Uninitialized;
|
|
30
|
+
}
|
|
27
31
|
// TODO: can we store the backgroundBlurriness in the gltf file somewhere except inside the camera?
|
|
28
32
|
// e.g. when we export a scene from blender without a camera in the scene
|
|
29
33
|
camInstance.backgroundBlurriness = .2; // same as in blender 0.5
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CameraUtils.js","sourceRoot":"","sources":["../../src/engine-components/CameraUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEpF,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAGrF,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,KAAK,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAAC;AAE7C,eAAe,CAAC,gBAAgB,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE;IACjE,IAAI,KAAK;QAAE,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;IAClD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;IAEhC,MAAM,YAAY,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAC7C,YAAY,CAAC,IAAI,GAAG,yBAAyB,CAAA;IAC7C,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAExB,MAAM,WAAW,GAAG,IAAI,MAAM,EAAE,CAAC;IACjC,WAAW,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,SAAS,CAAA;IAEvD,4FAA4F;IAC5F,IAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,IAAK,GAAG,CAAC,OAAmB,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC;QAC5I,WAAW,CAAC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;;QAE3C,qCAAqC;QACrC,WAAW,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;IACnD,WAAW,CAAC,eAAe,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAC9D,WAAW,CAAC,WAAW,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"CameraUtils.js","sourceRoot":"","sources":["../../src/engine-components/CameraUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -73,7 +73,7 @@ void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor)
|
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
// Calculate the sharpened color using inputColor
|
|
76
|
-
vec4 sharp = inputColor + (inputColor - blurred) * amount;
|
|
76
|
+
vec4 sharp = inputColor + clamp(inputColor - blurred, 0.0, 1.0) * amount;
|
|
77
77
|
|
|
78
78
|
// Ensure the sharp color does not go below 0 or above 1
|
|
79
79
|
sharp = clamp(sharp, 0.0, 1.0);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@needle-tools/engine",
|
|
3
|
-
"version": "3.44.0-beta",
|
|
3
|
+
"version": "3.44.0-beta.1",
|
|
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
|
"type": "module",
|
|
@@ -55,6 +55,7 @@ type SkyboxAttributes = {
|
|
|
55
55
|
|
|
56
56
|
export type TonemappingAttributeOptions = "none" | "linear" | "neutral" | "agx";
|
|
57
57
|
type RenderingAttributes = {
|
|
58
|
+
"transparent"?: boolean,
|
|
58
59
|
"contactshadows"?: boolean,
|
|
59
60
|
"tone-mapping"?: TonemappingAttributeOptions,
|
|
60
61
|
"tone-mapping-exposure"?: number,
|
|
@@ -127,6 +127,7 @@ export function screenshot2(opts: ScreenshotOptions = {
|
|
|
127
127
|
context.renderer.domElement.style.height = height + "px";
|
|
128
128
|
|
|
129
129
|
const previousClearColor = context.renderer.getClearColor(new Color());
|
|
130
|
+
const previousClearAlpha = context.renderer.getClearAlpha();
|
|
130
131
|
|
|
131
132
|
try {
|
|
132
133
|
if (opts?.transparent) {
|
|
@@ -168,7 +169,7 @@ export function screenshot2(opts: ScreenshotOptions = {
|
|
|
168
169
|
finally {
|
|
169
170
|
context.renderer.setSize(prevWidth, prevHeight, false);
|
|
170
171
|
context.updateSize();
|
|
171
|
-
context.renderer.setClearColor(previousClearColor);
|
|
172
|
+
context.renderer.setClearColor(previousClearColor, previousClearAlpha);
|
|
172
173
|
}
|
|
173
174
|
|
|
174
175
|
return null;
|
|
@@ -32,6 +32,12 @@ ContextRegistry.registerCallback(ContextEvent.MissingCamera, (evt) => {
|
|
|
32
32
|
camInstance.clearFlags = ClearFlags.SolidColor;
|
|
33
33
|
camInstance.backgroundColor = new RGBAColor(0.5, 0.5, 0.5, 1);
|
|
34
34
|
camInstance.fieldOfView = 35;
|
|
35
|
+
|
|
36
|
+
const transparentAttribute = evt.context.domElement.getAttribute("transparent");
|
|
37
|
+
if (transparentAttribute != undefined) {
|
|
38
|
+
camInstance.clearFlags = ClearFlags.Uninitialized;
|
|
39
|
+
}
|
|
40
|
+
|
|
35
41
|
// TODO: can we store the backgroundBlurriness in the gltf file somewhere except inside the camera?
|
|
36
42
|
// e.g. when we export a scene from blender without a camera in the scene
|
|
37
43
|
camInstance.backgroundBlurriness = .2; // same as in blender 0.5
|
|
@@ -83,7 +83,7 @@ void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor)
|
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
// Calculate the sharpened color using inputColor
|
|
86
|
-
vec4 sharp = inputColor + (inputColor - blurred) * amount;
|
|
86
|
+
vec4 sharp = inputColor + clamp(inputColor - blurred, 0.0, 1.0) * amount;
|
|
87
87
|
|
|
88
88
|
// Ensure the sharp color does not go below 0 or above 1
|
|
89
89
|
sharp = clamp(sharp, 0.0, 1.0);
|