@rtzh/engine 0.0.5 → 0.0.6
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/Build/Workers/chunk-243UEBJF.js +1045 -0
- package/Build/Workers/chunk-3NSMZ3XW.js +1067 -0
- package/Build/Workers/chunk-4DIL24GG.js +1460 -0
- package/Build/Workers/chunk-4FEDW3WT.js +299 -0
- package/Build/Workers/chunk-4SC4KVID.js +692 -0
- package/Build/Workers/chunk-53AFSDGM.js +37 -0
- package/Build/Workers/chunk-54SSO7NS.js +352 -0
- package/Build/Workers/chunk-5SVTAJRH.js +837 -0
- package/Build/Workers/chunk-5W4ISZGQ.js +1483 -0
- package/Build/Workers/chunk-64VDO4BW.js +114 -0
- package/Build/Workers/chunk-6AUSOZOL.js +476 -0
- package/Build/Workers/chunk-7MMYV5PM.js +288 -0
- package/Build/Workers/chunk-7QPQGSS3.js +57 -0
- package/Build/Workers/chunk-AEURJQ3B.js +73 -0
- package/Build/Workers/chunk-AMJRLIO3.js +414 -0
- package/Build/Workers/chunk-BCYABDWF.js +3514 -0
- package/Build/Workers/chunk-CTARL7CY.js +511 -0
- package/Build/Workers/chunk-DIA4J2DB.js +497 -0
- package/Build/Workers/chunk-E5BSDIGY.js +139 -0
- package/Build/Workers/chunk-EJVGOIOW.js +1317 -0
- package/Build/Workers/chunk-ERYOZBVC.js +171 -0
- package/Build/Workers/chunk-ET7LWDHA.js +58 -0
- package/Build/Workers/chunk-FSYQE5XE.js +55 -0
- package/Build/Workers/chunk-G7PGTG3P.js +387 -0
- package/Build/Workers/chunk-GZMTBQM2.js +1443 -0
- package/Build/Workers/chunk-HAR6Y2HP.js +1800 -0
- package/Build/Workers/chunk-HM4MH5IG.js +138 -0
- package/Build/Workers/chunk-IB2XQV6U.js +101 -0
- package/Build/Workers/chunk-IXM65GBF.js +256 -0
- package/Build/Workers/chunk-IYAZCFAC.js +642 -0
- package/Build/Workers/chunk-JRPAFYGJ.js +1054 -0
- package/Build/Workers/chunk-LPJHTJDQ.js +305 -0
- package/Build/Workers/chunk-LRW2QXMW.js +352 -0
- package/Build/Workers/chunk-MWN26ZEM.js +280 -0
- package/Build/Workers/chunk-NIWB6UMY.js +198 -0
- package/Build/Workers/chunk-O5QH7XD5.js +629 -0
- package/Build/Workers/chunk-OBM2JYMG.js +75 -0
- package/Build/Workers/chunk-ODZZZGXK.js +219 -0
- package/Build/Workers/chunk-QY55DT53.js +97 -0
- package/Build/Workers/chunk-R3PTQZ6H.js +44 -0
- package/Build/Workers/chunk-RT7PY6BH.js +2719 -0
- package/Build/Workers/chunk-SAD42JSM.js +102 -0
- package/Build/Workers/chunk-SFM3GNS2.js +682 -0
- package/Build/Workers/chunk-SLYUIIFB.js +455 -0
- package/Build/Workers/chunk-SQSWONTJ.js +241 -0
- package/Build/Workers/chunk-SRLJWNU2.js +368 -0
- package/Build/Workers/chunk-SZELHE7Q.js +163 -0
- package/Build/Workers/chunk-TBASKFFL.js +124 -0
- package/Build/Workers/chunk-TDGGEIZE.js +398 -0
- package/Build/Workers/chunk-U3VI26GL.js +162 -0
- package/Build/Workers/chunk-VLB25GGE.js +439 -0
- package/Build/Workers/chunk-W4DV7TAL.js +8366 -0
- package/Build/Workers/chunk-WFTPZ3ZX.js +788 -0
- package/Build/Workers/chunk-WWLWTSMV.js +55 -0
- package/Build/Workers/chunk-WX2ZANQC.js +940 -0
- package/Build/Workers/chunk-XFKTM6GN.js +2058 -0
- package/Build/Workers/chunk-Z5MHVJGN.js +778 -0
- package/Build/Workers/combineGeometry.js +24 -24
- package/Build/Workers/createBoxGeometry.js +18 -18
- package/Build/Workers/createBoxOutlineGeometry.js +16 -16
- package/Build/Workers/createCircleGeometry.js +26 -26
- package/Build/Workers/createCircleOutlineGeometry.js +19 -19
- package/Build/Workers/createCoplanarPolygonGeometry.js +33 -33
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -31
- package/Build/Workers/createCorridorGeometry.js +29 -29
- package/Build/Workers/createCorridorOutlineGeometry.js +28 -28
- package/Build/Workers/createCylinderGeometry.js +20 -20
- package/Build/Workers/createCylinderOutlineGeometry.js +18 -18
- package/Build/Workers/createEllipseGeometry.js +26 -26
- package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
- package/Build/Workers/createEllipsoidGeometry.js +19 -19
- package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
- package/Build/Workers/createFrustumGeometry.js +18 -18
- package/Build/Workers/createFrustumOutlineGeometry.js +18 -18
- package/Build/Workers/createGeometry.js +24 -24
- package/Build/Workers/createGroundPolylineGeometry.js +22 -22
- package/Build/Workers/createPlaneGeometry.js +16 -16
- package/Build/Workers/createPlaneOutlineGeometry.js +15 -15
- package/Build/Workers/createPolygonGeometry.js +32 -32
- package/Build/Workers/createPolygonOutlineGeometry.js +30 -30
- package/Build/Workers/createPolylineGeometry.js +25 -25
- package/Build/Workers/createPolylineVolumeGeometry.js +31 -31
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -27
- package/Build/Workers/createRectangleGeometry.js +27 -27
- package/Build/Workers/createRectangleOutlineGeometry.js +20 -20
- package/Build/Workers/createSimplePolylineGeometry.js +23 -23
- package/Build/Workers/createSphereGeometry.js +19 -19
- package/Build/Workers/createSphereOutlineGeometry.js +18 -18
- package/Build/Workers/createTaskProcessorWorker.js +3 -3
- package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
- package/Build/Workers/createVectorTileGeometries.js +24 -24
- package/Build/Workers/createVectorTilePoints.js +13 -13
- package/Build/Workers/createVectorTilePolygons.js +22 -22
- package/Build/Workers/createVectorTilePolylines.js +14 -14
- package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +25 -25
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -22
- package/Build/Workers/createVerticesFromHeightmap.js +22 -22
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +20 -20
- package/Build/Workers/createWallGeometry.js +24 -24
- package/Build/Workers/createWallOutlineGeometry.js +23 -23
- package/Build/Workers/decodeDraco.js +10 -10
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
- package/Build/Workers/decodeI3S.js +10 -10
- package/Build/Workers/gaussianSplatSorter.js +4 -4
- package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
- package/Build/Workers/incrementallyBuildTerrainPicker.js +10 -10
- package/Build/Workers/transcodeKTX2.js +6 -6
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -22
- package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +25 -25
- package/Source/Scene/Cesium3DTileset.js +4121 -4105
- package/Source/Scene/Model/BarycentricWireframePipelineStage.js +258 -79
- package/Source/Scene/Model/Model.js +3584 -3512
- package/Source/Scene/Model/Model3DTileContent.js +568 -568
- package/Source/Scene/Model/ModelRuntimePrimitive.js +391 -391
- package/Source/Scene/Model/WireframePipelineStage.js +122 -122
- package/Source/Shaders/Model/ModelFS.glsl +3 -1
- package/Source/Shaders/Model/ModelFS.js +3 -1
- package/index.d.ts +801 -773
- package/index.js +65 -65
- package/package.json +1 -1
|
@@ -1,122 +1,122 @@
|
|
|
1
|
-
import Buffer from "../../Renderer/Buffer.js";
|
|
2
|
-
import BufferUsage from "../../Renderer/BufferUsage.js";
|
|
3
|
-
import defined from "../../Core/defined.js";
|
|
4
|
-
import IndexDatatype from "../../Core/IndexDatatype.js";
|
|
5
|
-
import ModelUtility from "./ModelUtility.js";
|
|
6
|
-
import PrimitiveType from "../../Core/PrimitiveType.js";
|
|
7
|
-
import ShaderDestination from "../../Renderer/ShaderDestination.js";
|
|
8
|
-
import VertexAttributeSemantic from "../VertexAttributeSemantic.js";
|
|
9
|
-
import WireframeIndexGenerator from "../../Core/WireframeIndexGenerator.js";
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* The wireframe pipeline stage generates a new index buffer for rendering the
|
|
13
|
-
* structure of the mesh with gl.LINES.
|
|
14
|
-
*
|
|
15
|
-
* @namespace WireframePipelineStage
|
|
16
|
-
* @private
|
|
17
|
-
*/
|
|
18
|
-
const WireframePipelineStage = {
|
|
19
|
-
name: "WireframePipelineStage", // Helps with debugging
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Process a primitive. This modifies the render resources as follows:
|
|
24
|
-
* <ul>
|
|
25
|
-
* <li>Adds a define to the fragment shader to prevent extra shading of the lines.</li>
|
|
26
|
-
* <li>Adds a separate index buffer for wireframe indices</li>
|
|
27
|
-
* <li>Updates the primitive type and count for rendering with gl.LINES</li>
|
|
28
|
-
* </ul>
|
|
29
|
-
*
|
|
30
|
-
* @param {PrimitiveRenderResources} renderResources The render resources for this node
|
|
31
|
-
* @param {ModelComponents.primitive} primitive The primitive
|
|
32
|
-
* @param {FrameState} frameState The frame state
|
|
33
|
-
*/
|
|
34
|
-
WireframePipelineStage.process = function (
|
|
35
|
-
renderResources,
|
|
36
|
-
primitive,
|
|
37
|
-
frameState,
|
|
38
|
-
) {
|
|
39
|
-
const model = renderResources.model;
|
|
40
|
-
|
|
41
|
-
if (model.debugWireframeMode === "barycentric") {
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
// Applying normal mapping to the lines will result in rendering
|
|
46
|
-
// errors on Linux. This define is added to disable normal
|
|
47
|
-
// mapping in the shader.
|
|
48
|
-
const shaderBuilder = renderResources.shaderBuilder;
|
|
49
|
-
shaderBuilder.addDefine(
|
|
50
|
-
"HAS_WIREFRAME",
|
|
51
|
-
undefined,
|
|
52
|
-
ShaderDestination.FRAGMENT,
|
|
53
|
-
);
|
|
54
|
-
const wireframeIndexBuffer = createWireframeIndexBuffer(
|
|
55
|
-
primitive,
|
|
56
|
-
renderResources.indices,
|
|
57
|
-
frameState,
|
|
58
|
-
);
|
|
59
|
-
model._pipelineResources.push(wireframeIndexBuffer);
|
|
60
|
-
renderResources.wireframeIndexBuffer = wireframeIndexBuffer;
|
|
61
|
-
|
|
62
|
-
// We only need to count memory for the generated buffer. In WebGL 1, the CPU
|
|
63
|
-
// copy of the original indices is already counted in the geometry stage,
|
|
64
|
-
// and in WebGL 2, the CPU copy of the original indices (generated from the
|
|
65
|
-
// data of the original buffer) is discarded after generating the wireframe
|
|
66
|
-
// indices.
|
|
67
|
-
const hasCpuCopy = false;
|
|
68
|
-
model.statistics.addBuffer(wireframeIndexBuffer, hasCpuCopy);
|
|
69
|
-
|
|
70
|
-
// Update render resources so we render LINES with the correct index count
|
|
71
|
-
const originalPrimitiveType = renderResources.primitiveType;
|
|
72
|
-
const originalCount = renderResources.count;
|
|
73
|
-
renderResources.primitiveType = PrimitiveType.LINES;
|
|
74
|
-
renderResources.count = WireframeIndexGenerator.getWireframeIndicesCount(
|
|
75
|
-
originalPrimitiveType,
|
|
76
|
-
originalCount,
|
|
77
|
-
);
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
function createWireframeIndexBuffer(primitive, indices, frameState) {
|
|
81
|
-
const positionAttribute = ModelUtility.getAttributeBySemantic(
|
|
82
|
-
primitive,
|
|
83
|
-
VertexAttributeSemantic.POSITION,
|
|
84
|
-
);
|
|
85
|
-
const vertexCount = positionAttribute.count;
|
|
86
|
-
const webgl2 = frameState.context.webgl2;
|
|
87
|
-
|
|
88
|
-
let originalIndices;
|
|
89
|
-
if (defined(indices)) {
|
|
90
|
-
const indicesBuffer = indices.buffer;
|
|
91
|
-
const indicesCount = indices.count;
|
|
92
|
-
if (defined(indicesBuffer) && webgl2) {
|
|
93
|
-
const useUint8Array = indicesBuffer.sizeInBytes === indicesCount;
|
|
94
|
-
originalIndices = useUint8Array
|
|
95
|
-
? new Uint8Array(indicesCount)
|
|
96
|
-
: IndexDatatype.createTypedArray(vertexCount, indicesCount);
|
|
97
|
-
|
|
98
|
-
indicesBuffer.getBufferData(originalIndices);
|
|
99
|
-
} else {
|
|
100
|
-
originalIndices = indices.typedArray;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
const primitiveType = primitive.primitiveType;
|
|
105
|
-
const wireframeIndices = WireframeIndexGenerator.createWireframeIndices(
|
|
106
|
-
primitiveType,
|
|
107
|
-
vertexCount,
|
|
108
|
-
originalIndices,
|
|
109
|
-
);
|
|
110
|
-
const indexDatatype = IndexDatatype.fromSizeInBytes(
|
|
111
|
-
wireframeIndices.BYTES_PER_ELEMENT,
|
|
112
|
-
);
|
|
113
|
-
|
|
114
|
-
return Buffer.createIndexBuffer({
|
|
115
|
-
context: frameState.context,
|
|
116
|
-
typedArray: wireframeIndices,
|
|
117
|
-
usage: BufferUsage.STATIC_DRAW,
|
|
118
|
-
indexDatatype: indexDatatype,
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
export default WireframePipelineStage;
|
|
1
|
+
import Buffer from "../../Renderer/Buffer.js";
|
|
2
|
+
import BufferUsage from "../../Renderer/BufferUsage.js";
|
|
3
|
+
import defined from "../../Core/defined.js";
|
|
4
|
+
import IndexDatatype from "../../Core/IndexDatatype.js";
|
|
5
|
+
import ModelUtility from "./ModelUtility.js";
|
|
6
|
+
import PrimitiveType from "../../Core/PrimitiveType.js";
|
|
7
|
+
import ShaderDestination from "../../Renderer/ShaderDestination.js";
|
|
8
|
+
import VertexAttributeSemantic from "../VertexAttributeSemantic.js";
|
|
9
|
+
import WireframeIndexGenerator from "../../Core/WireframeIndexGenerator.js";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* The wireframe pipeline stage generates a new index buffer for rendering the
|
|
13
|
+
* structure of the mesh with gl.LINES.
|
|
14
|
+
*
|
|
15
|
+
* @namespace WireframePipelineStage
|
|
16
|
+
* @private
|
|
17
|
+
*/
|
|
18
|
+
const WireframePipelineStage = {
|
|
19
|
+
name: "WireframePipelineStage", // Helps with debugging
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Process a primitive. This modifies the render resources as follows:
|
|
24
|
+
* <ul>
|
|
25
|
+
* <li>Adds a define to the fragment shader to prevent extra shading of the lines.</li>
|
|
26
|
+
* <li>Adds a separate index buffer for wireframe indices</li>
|
|
27
|
+
* <li>Updates the primitive type and count for rendering with gl.LINES</li>
|
|
28
|
+
* </ul>
|
|
29
|
+
*
|
|
30
|
+
* @param {PrimitiveRenderResources} renderResources The render resources for this node
|
|
31
|
+
* @param {ModelComponents.primitive} primitive The primitive
|
|
32
|
+
* @param {FrameState} frameState The frame state
|
|
33
|
+
*/
|
|
34
|
+
WireframePipelineStage.process = function (
|
|
35
|
+
renderResources,
|
|
36
|
+
primitive,
|
|
37
|
+
frameState,
|
|
38
|
+
) {
|
|
39
|
+
const model = renderResources.model;
|
|
40
|
+
|
|
41
|
+
if (model.debugWireframeMode === "barycentric") {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Applying normal mapping to the lines will result in rendering
|
|
46
|
+
// errors on Linux. This define is added to disable normal
|
|
47
|
+
// mapping in the shader.
|
|
48
|
+
const shaderBuilder = renderResources.shaderBuilder;
|
|
49
|
+
shaderBuilder.addDefine(
|
|
50
|
+
"HAS_WIREFRAME",
|
|
51
|
+
undefined,
|
|
52
|
+
ShaderDestination.FRAGMENT,
|
|
53
|
+
);
|
|
54
|
+
const wireframeIndexBuffer = createWireframeIndexBuffer(
|
|
55
|
+
primitive,
|
|
56
|
+
renderResources.indices,
|
|
57
|
+
frameState,
|
|
58
|
+
);
|
|
59
|
+
model._pipelineResources.push(wireframeIndexBuffer);
|
|
60
|
+
renderResources.wireframeIndexBuffer = wireframeIndexBuffer;
|
|
61
|
+
|
|
62
|
+
// We only need to count memory for the generated buffer. In WebGL 1, the CPU
|
|
63
|
+
// copy of the original indices is already counted in the geometry stage,
|
|
64
|
+
// and in WebGL 2, the CPU copy of the original indices (generated from the
|
|
65
|
+
// data of the original buffer) is discarded after generating the wireframe
|
|
66
|
+
// indices.
|
|
67
|
+
const hasCpuCopy = false;
|
|
68
|
+
model.statistics.addBuffer(wireframeIndexBuffer, hasCpuCopy);
|
|
69
|
+
|
|
70
|
+
// Update render resources so we render LINES with the correct index count
|
|
71
|
+
const originalPrimitiveType = renderResources.primitiveType;
|
|
72
|
+
const originalCount = renderResources.count;
|
|
73
|
+
renderResources.primitiveType = PrimitiveType.LINES;
|
|
74
|
+
renderResources.count = WireframeIndexGenerator.getWireframeIndicesCount(
|
|
75
|
+
originalPrimitiveType,
|
|
76
|
+
originalCount,
|
|
77
|
+
);
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
function createWireframeIndexBuffer(primitive, indices, frameState) {
|
|
81
|
+
const positionAttribute = ModelUtility.getAttributeBySemantic(
|
|
82
|
+
primitive,
|
|
83
|
+
VertexAttributeSemantic.POSITION,
|
|
84
|
+
);
|
|
85
|
+
const vertexCount = positionAttribute.count;
|
|
86
|
+
const webgl2 = frameState.context.webgl2;
|
|
87
|
+
|
|
88
|
+
let originalIndices;
|
|
89
|
+
if (defined(indices)) {
|
|
90
|
+
const indicesBuffer = indices.buffer;
|
|
91
|
+
const indicesCount = indices.count;
|
|
92
|
+
if (defined(indicesBuffer) && webgl2) {
|
|
93
|
+
const useUint8Array = indicesBuffer.sizeInBytes === indicesCount;
|
|
94
|
+
originalIndices = useUint8Array
|
|
95
|
+
? new Uint8Array(indicesCount)
|
|
96
|
+
: IndexDatatype.createTypedArray(vertexCount, indicesCount);
|
|
97
|
+
|
|
98
|
+
indicesBuffer.getBufferData(originalIndices);
|
|
99
|
+
} else {
|
|
100
|
+
originalIndices = indices.typedArray;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
const primitiveType = primitive.primitiveType;
|
|
105
|
+
const wireframeIndices = WireframeIndexGenerator.createWireframeIndices(
|
|
106
|
+
primitiveType,
|
|
107
|
+
vertexCount,
|
|
108
|
+
originalIndices,
|
|
109
|
+
);
|
|
110
|
+
const indexDatatype = IndexDatatype.fromSizeInBytes(
|
|
111
|
+
wireframeIndices.BYTES_PER_ELEMENT,
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
return Buffer.createIndexBuffer({
|
|
115
|
+
context: frameState.context,
|
|
116
|
+
typedArray: wireframeIndices,
|
|
117
|
+
usage: BufferUsage.STATIC_DRAW,
|
|
118
|
+
indexDatatype: indexDatatype,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export default WireframePipelineStage;
|
|
@@ -135,8 +135,10 @@ void main()
|
|
|
135
135
|
|
|
136
136
|
#ifdef WIREFRAME_OVERLAY
|
|
137
137
|
color.rgb = mix(u_wireframeColor.rgb, color.rgb, edge);
|
|
138
|
+
color.a *= u_wireframeFillAlpha;
|
|
138
139
|
#else
|
|
139
|
-
color = mix(u_wireframeColor, color, edge);
|
|
140
|
+
color.rgb = mix(u_wireframeColor.rgb, color.rgb, edge);
|
|
141
|
+
color.a = mix(u_wireframeColor.a, color.a * u_wireframeFillAlpha, edge);
|
|
140
142
|
#endif
|
|
141
143
|
#endif
|
|
142
144
|
|
|
@@ -136,8 +136,10 @@ void main()\n\
|
|
|
136
136
|
\n\
|
|
137
137
|
#ifdef WIREFRAME_OVERLAY\n\
|
|
138
138
|
color.rgb = mix(u_wireframeColor.rgb, color.rgb, edge);\n\
|
|
139
|
+
color.a *= u_wireframeFillAlpha;\n\
|
|
139
140
|
#else\n\
|
|
140
|
-
color = mix(u_wireframeColor, color, edge);\n\
|
|
141
|
+
color.rgb = mix(u_wireframeColor.rgb, color.rgb, edge);\n\
|
|
142
|
+
color.a = mix(u_wireframeColor.a, color.a * u_wireframeFillAlpha, edge);\n\
|
|
141
143
|
#endif\n\
|
|
142
144
|
#endif\n\
|
|
143
145
|
\n\
|