@zephyr3d/scene 0.9.26 → 0.9.27
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/animation/animationset.js +92 -30
- package/dist/animation/animationset.js.map +1 -1
- package/dist/animation/joint_dynamics/convex_collider.js +320 -0
- package/dist/animation/joint_dynamics/convex_collider.js.map +1 -0
- package/dist/animation/skeleton.js +21 -1
- package/dist/animation/skeleton.js.map +1 -1
- package/dist/asset/model.js +6 -2
- package/dist/asset/model.js.map +1 -1
- package/dist/camera/camera.js +75 -23
- package/dist/camera/camera.js.map +1 -1
- package/dist/index.d.ts +4764 -3600
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/material/hairstrand.js +235 -235
- package/dist/material/hairstrand.js.map +1 -1
- package/dist/material/material.js +296 -296
- package/dist/material/material.js.map +1 -1
- package/dist/material/mixins/lit.js +33 -1
- package/dist/material/mixins/lit.js.map +1 -1
- package/dist/material/shader/helper.js +404 -3
- package/dist/material/shader/helper.js.map +1 -1
- package/dist/material/water.js +2057 -72
- package/dist/material/water.js.map +1 -1
- package/dist/posteffect/motionblur.js +663 -58
- package/dist/posteffect/motionblur.js.map +1 -1
- package/dist/posteffect/posteffect.js +12 -1
- package/dist/posteffect/posteffect.js.map +1 -1
- package/dist/posteffect/sao.js +46 -44
- package/dist/posteffect/sao.js.map +1 -1
- package/dist/posteffect/sss.js +30 -2
- package/dist/posteffect/sss.js.map +1 -1
- package/dist/render/abuffer_oit.js +37 -37
- package/dist/render/abuffer_oit.js.map +1 -1
- package/dist/render/clipmap.js +156 -5
- package/dist/render/clipmap.js.map +1 -1
- package/dist/render/cull_visitor.js +1 -0
- package/dist/render/cull_visitor.js.map +1 -1
- package/dist/render/dualdepthpeeling_oit.js +49 -49
- package/dist/render/dualdepthpeeling_oit.js.map +1 -1
- package/dist/render/fbm_wavegenerator.js +3 -3
- package/dist/render/fbm_wavegenerator.js.map +1 -1
- package/dist/render/fft_wavegenerator.js +57 -15
- package/dist/render/fft_wavegenerator.js.map +1 -1
- package/dist/render/gerstner_wavegenerator.js +127 -20
- package/dist/render/gerstner_wavegenerator.js.map +1 -1
- package/dist/render/hzb.js +80 -22
- package/dist/render/hzb.js.map +1 -1
- package/dist/render/lightpass.js +6 -3
- package/dist/render/lightpass.js.map +1 -1
- package/dist/render/oit.js +11 -11
- package/dist/render/oit.js.map +1 -1
- package/dist/render/render_queue.js +36 -0
- package/dist/render/render_queue.js.map +1 -1
- package/dist/render/renderer.js +4 -0
- package/dist/render/renderer.js.map +1 -1
- package/dist/render/rendergraph/blackboard.js +1 -0
- package/dist/render/rendergraph/blackboard.js.map +1 -1
- package/dist/render/rendergraph/forward_plus_builder.js +318 -9
- package/dist/render/rendergraph/forward_plus_builder.js.map +1 -1
- package/dist/render/rendergraph/frame_resource_requirements.js +1 -0
- package/dist/render/rendergraph/frame_resource_requirements.js.map +1 -1
- package/dist/render/rendergraph/history_resources.js +8 -1
- package/dist/render/rendergraph/history_resources.js.map +1 -1
- package/dist/render/underwater.js +624 -0
- package/dist/render/underwater.js.map +1 -0
- package/dist/render/water_caustics.js +1380 -0
- package/dist/render/water_caustics.js.map +1 -0
- package/dist/render/weightedblended_oit.js +33 -33
- package/dist/render/weightedblended_oit.js.map +1 -1
- package/dist/scene/water.js +540 -4
- package/dist/scene/water.js.map +1 -1
- package/dist/shaders/water.js +22 -19
- package/dist/shaders/water.js.map +1 -1
- package/dist/shaders/water_medium.js +56 -0
- package/dist/shaders/water_medium.js.map +1 -0
- package/dist/shadow/shadow_region.js +49 -49
- package/dist/shadow/shadow_region.js.map +1 -1
- package/dist/utility/serialization/manager.js +3 -1
- package/dist/utility/serialization/manager.js.map +1 -1
- package/dist/utility/serialization/scene/animation.js +31 -2
- package/dist/utility/serialization/scene/animation.js.map +1 -1
- package/dist/utility/serialization/scene/camera.js +53 -25
- package/dist/utility/serialization/scene/camera.js.map +1 -1
- package/dist/utility/serialization/scene/light.js.map +1 -1
- package/dist/utility/serialization/scene/water.js +1101 -21
- package/dist/utility/serialization/scene/water.js.map +1 -1
- package/dist/utility/shprojector.js +87 -87
- package/dist/utility/shprojector.js.map +1 -1
- package/package.json +1 -1
- package/dist/render/rendergraph/frame_graph_context.js +0 -41
- package/dist/render/rendergraph/frame_graph_context.js.map +0 -1
- package/dist/shaders/ssgi.js +0 -63
- package/dist/shaders/ssgi.js.map +0 -1
- package/dist/shaders/ssgi_reprojection.js +0 -118
- package/dist/shaders/ssgi_reprojection.js.map +0 -1
|
@@ -89,6 +89,29 @@ function decodeSkeletonBindPose(encoded) {
|
|
|
89
89
|
scale: new Vector3(data[7], data[8], data[9])
|
|
90
90
|
};
|
|
91
91
|
}
|
|
92
|
+
function encodeSkeletonPose(pose) {
|
|
93
|
+
const values = pose.flatMap((transform)=>[
|
|
94
|
+
...transform.position,
|
|
95
|
+
...transform.rotation,
|
|
96
|
+
...transform.scale
|
|
97
|
+
]);
|
|
98
|
+
return uint8ArrayToBase64(new Uint8Array(new Float32Array(values).buffer));
|
|
99
|
+
}
|
|
100
|
+
function decodeSkeletonPose(encoded, jointCount) {
|
|
101
|
+
const data = new Float32Array(base64ToUint8Array(encoded).buffer);
|
|
102
|
+
if (data.length !== jointCount * 10) {
|
|
103
|
+
throw new Error('Invalid serialized skeleton pose');
|
|
104
|
+
}
|
|
105
|
+
const pose = [];
|
|
106
|
+
for(let i = 0; i < jointCount; i++){
|
|
107
|
+
pose.push({
|
|
108
|
+
position: new Vector3(data[i * 10 + 0], data[i * 10 + 1], data[i * 10 + 2]),
|
|
109
|
+
rotation: new Quaternion(data[i * 10 + 3], data[i * 10 + 4], data[i * 10 + 5], data[i * 10 + 6]),
|
|
110
|
+
scale: new Vector3(data[i * 10 + 7], data[i * 10 + 8], data[i * 10 + 9])
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
return pose;
|
|
114
|
+
}
|
|
92
115
|
function vectorToArray(value) {
|
|
93
116
|
return [
|
|
94
117
|
value.x,
|
|
@@ -1824,6 +1847,7 @@ function getPCAGeometryCacheTrackClass() {
|
|
|
1824
1847
|
const inverseBindMatricesArray = new Float32Array(base64ToUint8Array(init.inverseBindMatrices).buffer);
|
|
1825
1848
|
const bindPoseArray = new Float32Array(base64ToUint8Array(init.bindPose ?? init.bindPoseMatrices).buffer);
|
|
1826
1849
|
const rootBindPose = init.rootBindPose ? decodeSkeletonBindPose(init.rootBindPose) : undefined;
|
|
1850
|
+
const retargetPose = init.retargetPose ? decodeSkeletonPose(init.retargetPose, joints.length) : undefined;
|
|
1827
1851
|
const inverseBindMatrices = [];
|
|
1828
1852
|
const bindPose = [];
|
|
1829
1853
|
for(let i = 0; i < joints.length; i++){
|
|
@@ -1849,7 +1873,8 @@ function getPCAGeometryCacheTrackClass() {
|
|
|
1849
1873
|
if (!rig) {
|
|
1850
1874
|
rig = new SkeletonRig(joints, bindPose, {
|
|
1851
1875
|
rootJoint,
|
|
1852
|
-
rootBindPose
|
|
1876
|
+
rootBindPose,
|
|
1877
|
+
retargetPose
|
|
1853
1878
|
});
|
|
1854
1879
|
ctx.animationSet.rigs.push(new DRef(rig));
|
|
1855
1880
|
}
|
|
@@ -1881,6 +1906,7 @@ function getPCAGeometryCacheTrackClass() {
|
|
|
1881
1906
|
rootBindPose: encodeSkeletonBindPose(obj.rig.rootBindPose),
|
|
1882
1907
|
inverseBindMatrices: uint8ArrayToBase64(new Uint8Array(new Float32Array(inverseBindMatrices).buffer)),
|
|
1883
1908
|
bindPose: uint8ArrayToBase64(new Uint8Array(new Float32Array(bindPose).buffer)),
|
|
1909
|
+
retargetPose: obj.rig.hasRetargetPose ? encodeSkeletonPose(obj.rig.retargetPose) : undefined,
|
|
1884
1910
|
id: obj.persistentId
|
|
1885
1911
|
};
|
|
1886
1912
|
},
|
|
@@ -1923,9 +1949,11 @@ function getPCAGeometryCacheTrackClass() {
|
|
|
1923
1949
|
});
|
|
1924
1950
|
}
|
|
1925
1951
|
}
|
|
1952
|
+
const retargetPose = init.retargetPose ? decodeSkeletonPose(init.retargetPose, joints.length) : undefined;
|
|
1926
1953
|
const rig = new SkeletonRig(joints, bindPose, {
|
|
1927
1954
|
rootJoint,
|
|
1928
|
-
rootBindPose
|
|
1955
|
+
rootBindPose,
|
|
1956
|
+
retargetPose
|
|
1929
1957
|
});
|
|
1930
1958
|
rig.persistentId = init.id;
|
|
1931
1959
|
return {
|
|
@@ -1947,6 +1975,7 @@ function getPCAGeometryCacheTrackClass() {
|
|
|
1947
1975
|
rootJoint: obj.rootJoint?.persistentId ?? '',
|
|
1948
1976
|
rootBindPose: encodeSkeletonBindPose(obj.rootBindPose),
|
|
1949
1977
|
bindPose: uint8ArrayToBase64(new Uint8Array(new Float32Array(bindPose).buffer)),
|
|
1978
|
+
retargetPose: obj.hasRetargetPose ? encodeSkeletonPose(obj.retargetPose) : undefined,
|
|
1950
1979
|
id: obj.persistentId
|
|
1951
1980
|
};
|
|
1952
1981
|
},
|