@headless-three/renderer 0.1.10 → 0.3.0

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.
Files changed (244) hide show
  1. package/README.md +32 -0
  2. package/dist/gpu-output.d.ts +190 -0
  3. package/dist/gpu-output.d.ts.map +1 -0
  4. package/dist/gpu-output.js +114 -0
  5. package/dist/gpu-output.js.map +1 -0
  6. package/dist/index.d.ts +26 -770
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +32 -6226
  9. package/dist/index.js.map +1 -1
  10. package/dist/index.part-001.d.ts +95 -0
  11. package/dist/index.part-001.d.ts.map +1 -0
  12. package/dist/index.part-001.js +273 -0
  13. package/dist/index.part-001.js.map +1 -0
  14. package/dist/index.part-002.d.ts +69 -0
  15. package/dist/index.part-002.d.ts.map +1 -0
  16. package/dist/index.part-002.js +211 -0
  17. package/dist/index.part-002.js.map +1 -0
  18. package/dist/index.part-003.d.ts +105 -0
  19. package/dist/index.part-003.d.ts.map +1 -0
  20. package/dist/index.part-003.js +270 -0
  21. package/dist/index.part-003.js.map +1 -0
  22. package/dist/index.part-004.d.ts +78 -0
  23. package/dist/index.part-004.d.ts.map +1 -0
  24. package/dist/index.part-004.js +390 -0
  25. package/dist/index.part-004.js.map +1 -0
  26. package/dist/index.part-005.d.ts +75 -0
  27. package/dist/index.part-005.d.ts.map +1 -0
  28. package/dist/index.part-005.js +236 -0
  29. package/dist/index.part-005.js.map +1 -0
  30. package/dist/index.part-006.d.ts +105 -0
  31. package/dist/index.part-006.d.ts.map +1 -0
  32. package/dist/index.part-006.js +262 -0
  33. package/dist/index.part-006.js.map +1 -0
  34. package/dist/index.part-007.d.ts +112 -0
  35. package/dist/index.part-007.d.ts.map +1 -0
  36. package/dist/index.part-007.js +358 -0
  37. package/dist/index.part-007.js.map +1 -0
  38. package/dist/index.part-008.d.ts +240 -0
  39. package/dist/index.part-008.d.ts.map +1 -0
  40. package/dist/index.part-008.js +458 -0
  41. package/dist/index.part-008.js.map +1 -0
  42. package/dist/index.part-009.d.ts +46 -0
  43. package/dist/index.part-009.d.ts.map +1 -0
  44. package/dist/index.part-009.js +379 -0
  45. package/dist/index.part-009.js.map +1 -0
  46. package/dist/index.part-010.d.ts +24 -0
  47. package/dist/index.part-010.d.ts.map +1 -0
  48. package/dist/index.part-010.js +277 -0
  49. package/dist/index.part-010.js.map +1 -0
  50. package/dist/index.part-011.d.ts +21 -0
  51. package/dist/index.part-011.d.ts.map +1 -0
  52. package/dist/index.part-011.js +361 -0
  53. package/dist/index.part-011.js.map +1 -0
  54. package/dist/index.part-012.d.ts +115 -0
  55. package/dist/index.part-012.d.ts.map +1 -0
  56. package/dist/index.part-012.js +298 -0
  57. package/dist/index.part-012.js.map +1 -0
  58. package/dist/index.part-013.d.ts +37 -0
  59. package/dist/index.part-013.d.ts.map +1 -0
  60. package/dist/index.part-013.js +341 -0
  61. package/dist/index.part-013.js.map +1 -0
  62. package/dist/index.part-014.d.ts +43 -0
  63. package/dist/index.part-014.d.ts.map +1 -0
  64. package/dist/index.part-014.js +441 -0
  65. package/dist/index.part-014.js.map +1 -0
  66. package/dist/index.part-015.d.ts +45 -0
  67. package/dist/index.part-015.d.ts.map +1 -0
  68. package/dist/index.part-015.js +432 -0
  69. package/dist/index.part-015.js.map +1 -0
  70. package/dist/index.part-016.d.ts +55 -0
  71. package/dist/index.part-016.d.ts.map +1 -0
  72. package/dist/index.part-016.js +382 -0
  73. package/dist/index.part-016.js.map +1 -0
  74. package/dist/index.part-017.d.ts +55 -0
  75. package/dist/index.part-017.d.ts.map +1 -0
  76. package/dist/index.part-017.js +436 -0
  77. package/dist/index.part-017.js.map +1 -0
  78. package/dist/index.part-018.d.ts +34 -0
  79. package/dist/index.part-018.d.ts.map +1 -0
  80. package/dist/index.part-018.js +365 -0
  81. package/dist/index.part-018.js.map +1 -0
  82. package/dist/index.part-019.d.ts +29 -0
  83. package/dist/index.part-019.d.ts.map +1 -0
  84. package/dist/index.part-019.js +261 -0
  85. package/dist/index.part-019.js.map +1 -0
  86. package/dist/index.part-020.d.ts +37 -0
  87. package/dist/index.part-020.d.ts.map +1 -0
  88. package/dist/index.part-020.js +388 -0
  89. package/dist/index.part-020.js.map +1 -0
  90. package/dist/index.part-021.d.ts +10 -0
  91. package/dist/index.part-021.d.ts.map +1 -0
  92. package/dist/index.part-021.js +142 -0
  93. package/dist/index.part-021.js.map +1 -0
  94. package/dist/loaders.d.ts +27 -91
  95. package/dist/loaders.d.ts.map +1 -1
  96. package/dist/loaders.js +22 -855
  97. package/dist/loaders.js.map +1 -1
  98. package/dist/loaders.part-001.d.ts +163 -0
  99. package/dist/loaders.part-001.d.ts.map +1 -0
  100. package/dist/loaders.part-001.js +277 -0
  101. package/dist/loaders.part-001.js.map +1 -0
  102. package/dist/loaders.part-002.d.ts +33 -0
  103. package/dist/loaders.part-002.d.ts.map +1 -0
  104. package/dist/loaders.part-002.js +511 -0
  105. package/dist/loaders.part-002.js.map +1 -0
  106. package/dist/loaders.part-003.d.ts +23 -0
  107. package/dist/loaders.part-003.d.ts.map +1 -0
  108. package/dist/loaders.part-003.js +138 -0
  109. package/dist/loaders.part-003.js.map +1 -0
  110. package/dist/materials.d.ts +33 -49
  111. package/dist/materials.d.ts.map +1 -1
  112. package/dist/materials.js +39 -4339
  113. package/dist/materials.js.map +1 -1
  114. package/dist/materials.part-001.d.ts +153 -0
  115. package/dist/materials.part-001.d.ts.map +1 -0
  116. package/dist/materials.part-001.js +347 -0
  117. package/dist/materials.part-001.js.map +1 -0
  118. package/dist/materials.part-002.d.ts +46 -0
  119. package/dist/materials.part-002.d.ts.map +1 -0
  120. package/dist/materials.part-002.js +299 -0
  121. package/dist/materials.part-002.js.map +1 -0
  122. package/dist/materials.part-003.d.ts +14 -0
  123. package/dist/materials.part-003.d.ts.map +1 -0
  124. package/dist/materials.part-003.js +438 -0
  125. package/dist/materials.part-003.js.map +1 -0
  126. package/dist/materials.part-004.d.ts +30 -0
  127. package/dist/materials.part-004.d.ts.map +1 -0
  128. package/dist/materials.part-004.js +464 -0
  129. package/dist/materials.part-004.js.map +1 -0
  130. package/dist/materials.part-005.d.ts +38 -0
  131. package/dist/materials.part-005.d.ts.map +1 -0
  132. package/dist/materials.part-005.js +366 -0
  133. package/dist/materials.part-005.js.map +1 -0
  134. package/dist/materials.part-006.d.ts +18 -0
  135. package/dist/materials.part-006.d.ts.map +1 -0
  136. package/dist/materials.part-006.js +391 -0
  137. package/dist/materials.part-006.js.map +1 -0
  138. package/dist/materials.part-007.d.ts +24 -0
  139. package/dist/materials.part-007.d.ts.map +1 -0
  140. package/dist/materials.part-007.js +467 -0
  141. package/dist/materials.part-007.js.map +1 -0
  142. package/dist/materials.part-008.d.ts +95 -0
  143. package/dist/materials.part-008.d.ts.map +1 -0
  144. package/dist/materials.part-008.js +404 -0
  145. package/dist/materials.part-008.js.map +1 -0
  146. package/dist/materials.part-009.d.ts +89 -0
  147. package/dist/materials.part-009.d.ts.map +1 -0
  148. package/dist/materials.part-009.js +412 -0
  149. package/dist/materials.part-009.js.map +1 -0
  150. package/dist/materials.part-010.d.ts +46 -0
  151. package/dist/materials.part-010.d.ts.map +1 -0
  152. package/dist/materials.part-010.js +375 -0
  153. package/dist/materials.part-010.js.map +1 -0
  154. package/dist/materials.part-011.d.ts +25 -0
  155. package/dist/materials.part-011.d.ts.map +1 -0
  156. package/dist/materials.part-011.js +435 -0
  157. package/dist/materials.part-011.js.map +1 -0
  158. package/dist/materials.part-012.d.ts +15 -0
  159. package/dist/materials.part-012.d.ts.map +1 -0
  160. package/dist/materials.part-012.js +229 -0
  161. package/dist/materials.part-012.js.map +1 -0
  162. package/dist/scene.d.ts +19 -279
  163. package/dist/scene.d.ts.map +1 -1
  164. package/dist/scene.js +21 -3931
  165. package/dist/scene.js.map +1 -1
  166. package/dist/scene.part-001.d.ts +375 -0
  167. package/dist/scene.part-001.d.ts.map +1 -0
  168. package/dist/scene.part-001.js +20 -0
  169. package/dist/scene.part-001.js.map +1 -0
  170. package/dist/scene.part-002.d.ts +28 -0
  171. package/dist/scene.part-002.d.ts.map +1 -0
  172. package/dist/scene.part-002.js +311 -0
  173. package/dist/scene.part-002.js.map +1 -0
  174. package/dist/scene.part-003.d.ts +26 -0
  175. package/dist/scene.part-003.d.ts.map +1 -0
  176. package/dist/scene.part-003.js +384 -0
  177. package/dist/scene.part-003.js.map +1 -0
  178. package/dist/scene.part-004.d.ts +24 -0
  179. package/dist/scene.part-004.d.ts.map +1 -0
  180. package/dist/scene.part-004.js +287 -0
  181. package/dist/scene.part-004.js.map +1 -0
  182. package/dist/scene.part-005.d.ts +37 -0
  183. package/dist/scene.part-005.d.ts.map +1 -0
  184. package/dist/scene.part-005.js +350 -0
  185. package/dist/scene.part-005.js.map +1 -0
  186. package/dist/scene.part-006.d.ts +25 -0
  187. package/dist/scene.part-006.d.ts.map +1 -0
  188. package/dist/scene.part-006.js +362 -0
  189. package/dist/scene.part-006.js.map +1 -0
  190. package/dist/scene.part-007.d.ts +36 -0
  191. package/dist/scene.part-007.d.ts.map +1 -0
  192. package/dist/scene.part-007.js +417 -0
  193. package/dist/scene.part-007.js.map +1 -0
  194. package/dist/scene.part-008.d.ts +78 -0
  195. package/dist/scene.part-008.d.ts.map +1 -0
  196. package/dist/scene.part-008.js +416 -0
  197. package/dist/scene.part-008.js.map +1 -0
  198. package/dist/scene.part-009.d.ts +25 -0
  199. package/dist/scene.part-009.d.ts.map +1 -0
  200. package/dist/scene.part-009.js +330 -0
  201. package/dist/scene.part-009.js.map +1 -0
  202. package/dist/scene.part-010.d.ts +32 -0
  203. package/dist/scene.part-010.d.ts.map +1 -0
  204. package/dist/scene.part-010.js +336 -0
  205. package/dist/scene.part-010.js.map +1 -0
  206. package/dist/scene.part-011.d.ts +100 -0
  207. package/dist/scene.part-011.d.ts.map +1 -0
  208. package/dist/scene.part-011.js +262 -0
  209. package/dist/scene.part-011.js.map +1 -0
  210. package/dist/scene.part-012.d.ts +48 -0
  211. package/dist/scene.part-012.d.ts.map +1 -0
  212. package/dist/scene.part-012.js +357 -0
  213. package/dist/scene.part-012.js.map +1 -0
  214. package/dist/scene.part-013.d.ts +51 -0
  215. package/dist/scene.part-013.d.ts.map +1 -0
  216. package/dist/scene.part-013.js +368 -0
  217. package/dist/scene.part-013.js.map +1 -0
  218. package/dist/scene.part-014.d.ts +16 -0
  219. package/dist/scene.part-014.d.ts.map +1 -0
  220. package/dist/scene.part-014.js +112 -0
  221. package/dist/scene.part-014.js.map +1 -0
  222. package/dist/types.d.ts +53 -1564
  223. package/dist/types.d.ts.map +1 -1
  224. package/dist/types.js +4 -1
  225. package/dist/types.js.map +1 -1
  226. package/dist/types.part-001.d.ts +386 -0
  227. package/dist/types.part-001.d.ts.map +1 -0
  228. package/dist/types.part-001.js +4 -0
  229. package/dist/types.part-001.js.map +1 -0
  230. package/dist/types.part-002.d.ts +407 -0
  231. package/dist/types.part-002.d.ts.map +1 -0
  232. package/dist/types.part-002.js +3 -0
  233. package/dist/types.part-002.js.map +1 -0
  234. package/dist/types.part-003.d.ts +427 -0
  235. package/dist/types.part-003.d.ts.map +1 -0
  236. package/dist/types.part-003.js +3 -0
  237. package/dist/types.part-003.js.map +1 -0
  238. package/dist/types.part-004.d.ts +351 -0
  239. package/dist/types.part-004.d.ts.map +1 -0
  240. package/dist/types.part-004.js +3 -0
  241. package/dist/types.part-004.js.map +1 -0
  242. package/native.d.ts +130 -0
  243. package/native.js +56 -52
  244. package/package.json +11 -8
@@ -0,0 +1,330 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.instancedBufferGeometryCount = instancedBufferGeometryCount;
4
+ exports.assertSupportedCustomFragmentInstancedAttributes = assertSupportedCustomFragmentInstancedAttributes;
5
+ exports.isInstancedAttribute = isInstancedAttribute;
6
+ exports.meshPerAttribute = meshPerAttribute;
7
+ exports.instancedAttributeIndex = instancedAttributeIndex;
8
+ exports.instancedOffsetAttribute = instancedOffsetAttribute;
9
+ exports.instancedScaleAttribute = instancedScaleAttribute;
10
+ exports.expandVec3ValuesForInstances = expandVec3ValuesForInstances;
11
+ exports.expandVec3ValuesForInstancesWithCache = expandVec3ValuesForInstancesWithCache;
12
+ exports.instancedPositionExpansionSignature = instancedPositionExpansionSignature;
13
+ exports.sameInstancedPositionExpansionSignature = sameInstancedPositionExpansionSignature;
14
+ exports.instanceScaleComponents = instanceScaleComponents;
15
+ exports.expandVec2ValuesForInstances = expandVec2ValuesForInstances;
16
+ exports.expandNormalValuesForInstances = expandNormalValuesForInstances;
17
+ exports.expandNormalValuesForInstancesWithCache = expandNormalValuesForInstancesWithCache;
18
+ exports.instancedNormalExpansionSignature = instancedNormalExpansionSignature;
19
+ exports.sameInstancedNormalExpansionSignature = sameInstancedNormalExpansionSignature;
20
+ exports.expandUvChannelForInstances = expandUvChannelForInstances;
21
+ exports.expandUvChannelForInstancesWithCache = expandUvChannelForInstancesWithCache;
22
+ exports.instancedUvExpansionSignature = instancedUvExpansionSignature;
23
+ exports.sameInstancedUvExpansionSignature = sameInstancedUvExpansionSignature;
24
+ exports.appendUvForVertex = appendUvForVertex;
25
+ const math_1 = require("./math");
26
+ const attributes_1 = require("./attributes");
27
+ const scene_part_001_1 = require("./scene.part-001");
28
+ const scene_part_003_1 = require("./scene.part-003");
29
+ const scene_part_005_1 = require("./scene.part-005");
30
+ const scene_part_008_1 = require("./scene.part-008");
31
+ const scene_part_010_1 = require("./scene.part-010");
32
+ function instancedBufferGeometryCount(geometry) {
33
+ const attributes = Object.entries((0, attributes_1.geometryAttributes)(geometry));
34
+ const instancedAttributes = attributes.filter((entry) => isInstancedAttribute(entry[1]));
35
+ if (geometry.isInstancedBufferGeometry !== true && instancedAttributes.length === 0)
36
+ return 1;
37
+ let maxCount = Infinity;
38
+ for (const [name, attribute] of instancedAttributes) {
39
+ const label = `geometry.attributes.${name}`;
40
+ maxCount = Math.min(maxCount, (0, attributes_1.attributeCount)(attribute, label) * meshPerAttribute(attribute, `${label}.meshPerAttribute`));
41
+ }
42
+ const requested = (0, scene_part_008_1.integerCountOrDefault)(geometry.instanceCount, 'geometry.instanceCount', Infinity, true);
43
+ const effectiveCount = Math.min(requested, maxCount);
44
+ if (effectiveCount === Infinity)
45
+ return 1;
46
+ return (0, math_1.clampInteger)(effectiveCount, 0, Math.max(0, Math.floor(maxCount)));
47
+ }
48
+ function assertSupportedCustomFragmentInstancedAttributes(geometry, pbrProps) {
49
+ if (!pbrProps.customFragmentShader)
50
+ return;
51
+ const unsupported = [];
52
+ for (const [name, attribute] of Object.entries((0, attributes_1.geometryAttributes)(geometry))) {
53
+ if (!isInstancedAttribute(attribute))
54
+ continue;
55
+ if (!scene_part_001_1.SupportedInstancedBufferGeometryAttributes.has(name))
56
+ unsupported.push(`geometry.attributes.${name}`);
57
+ }
58
+ if (unsupported.length === 0)
59
+ return;
60
+ throw new Error(`Custom WGSL fragment materials cannot bind arbitrary InstancedBufferGeometry vertex attributes (${unsupported.join(', ')}) in @headless-three/renderer yet. Use supported instanced offset, color, normal, or UV attributes, expand the geometry on the CPU, or render separate draws until custom vertex-attribute shader integration is implemented.`);
61
+ }
62
+ function isInstancedAttribute(attribute) {
63
+ return attribute?.isInstancedBufferAttribute === true;
64
+ }
65
+ function meshPerAttribute(attribute, label = 'InstancedBufferAttribute.meshPerAttribute') {
66
+ const value = attribute.meshPerAttribute;
67
+ if (value == null)
68
+ return 1;
69
+ if (typeof value === 'number' && Number.isFinite(value)) {
70
+ if (value <= 0) {
71
+ throw new TypeError(`${label} must be a positive finite number.`);
72
+ }
73
+ if (!Number.isInteger(value)) {
74
+ throw new TypeError(`${label} must be a positive integer.`);
75
+ }
76
+ return value;
77
+ }
78
+ throw new TypeError(`${label} must be a positive finite number.`);
79
+ }
80
+ function instancedAttributeIndex(attribute, instanceIndex, label = 'InstancedBufferAttribute') {
81
+ return Math.min((0, attributes_1.attributeCount)(attribute, label) - 1, Math.floor(instanceIndex / meshPerAttribute(attribute, `${label}.meshPerAttribute`)));
82
+ }
83
+ function instancedOffsetAttribute(geometry) {
84
+ const names = ['instanceOffset', 'instancePosition', 'offset', 'translate', 'translation'];
85
+ for (const name of names) {
86
+ const attribute = (0, attributes_1.getAttribute)(geometry, name);
87
+ if (isInstancedAttribute(attribute))
88
+ return { attribute, label: `geometry.attributes.${name}` };
89
+ }
90
+ return null;
91
+ }
92
+ function instancedScaleAttribute(geometry) {
93
+ const names = ['instanceScale', 'scale'];
94
+ for (const name of names) {
95
+ const attribute = (0, attributes_1.getAttribute)(geometry, name);
96
+ if (isInstancedAttribute(attribute))
97
+ return { attribute, label: `geometry.attributes.${name}` };
98
+ }
99
+ return null;
100
+ }
101
+ function expandVec3ValuesForInstances(values, start, count, instanceCount, offsetAttribute, scaleAttribute) {
102
+ if (instanceCount <= 1 && !offsetAttribute && !scaleAttribute) {
103
+ return values.slice(start * 3, (start + count) * 3);
104
+ }
105
+ const out = new Array(count * instanceCount * 3);
106
+ let dst = 0;
107
+ for (let instance = 0; instance < instanceCount; instance += 1) {
108
+ const offsetIndex = offsetAttribute
109
+ ? instancedAttributeIndex(offsetAttribute.attribute, instance, offsetAttribute.label)
110
+ : 0;
111
+ const ox = offsetAttribute ? (0, attributes_1.attributeComponent)(offsetAttribute.attribute, offsetIndex, 0, offsetAttribute.label) : 0;
112
+ const oy = offsetAttribute ? (0, attributes_1.attributeComponent)(offsetAttribute.attribute, offsetIndex, 1, offsetAttribute.label) : 0;
113
+ const oz = offsetAttribute ? (0, attributes_1.attributeComponent)(offsetAttribute.attribute, offsetIndex, 2, offsetAttribute.label) : 0;
114
+ const scale = instanceScaleComponents(scaleAttribute, instance);
115
+ for (let vertex = start; vertex < start + count; vertex += 1) {
116
+ out[dst++] = values[vertex * 3] * scale[0] + ox;
117
+ out[dst++] = values[vertex * 3 + 1] * scale[1] + oy;
118
+ out[dst++] = values[vertex * 3 + 2] * scale[2] + oz;
119
+ }
120
+ }
121
+ return out;
122
+ }
123
+ function expandVec3ValuesForInstancesWithCache(cache, geometry, position, values, start, count, instanceCount, offsetAttribute, scaleAttribute) {
124
+ if (!cache) {
125
+ return expandVec3ValuesForInstances(values, start, count, instanceCount, offsetAttribute, scaleAttribute);
126
+ }
127
+ const signature = instancedPositionExpansionSignature(geometry, position, values, start, count, instanceCount, offsetAttribute, scaleAttribute);
128
+ if (!signature.cacheable) {
129
+ return expandVec3ValuesForInstances(values, start, count, instanceCount, offsetAttribute, scaleAttribute);
130
+ }
131
+ const key = `${start}:${count}:${instanceCount}`;
132
+ let geometryCache = cache.instancedPositionExpansions.get(geometry);
133
+ const cached = geometryCache?.get(key);
134
+ if (cached && sameInstancedPositionExpansionSignature(cached.signature, signature)) {
135
+ return cached.positions;
136
+ }
137
+ const positions = expandVec3ValuesForInstances(values, start, count, instanceCount, offsetAttribute, scaleAttribute);
138
+ if (!geometryCache) {
139
+ geometryCache = new Map();
140
+ cache.instancedPositionExpansions.set(geometry, geometryCache);
141
+ }
142
+ geometryCache.set(key, { signature, positions });
143
+ return positions;
144
+ }
145
+ function instancedPositionExpansionSignature(geometry, position, values, start, count, instanceCount, offsetAttribute, scaleAttribute) {
146
+ const signature = {
147
+ cacheable: true,
148
+ geometryVersion: geometry.version,
149
+ sourcePositions: values,
150
+ start,
151
+ count,
152
+ instanceCount,
153
+ position: (0, scene_part_003_1.attributeSignature)(position),
154
+ instancedPositionOffset: (0, scene_part_003_1.attributeSignature)(offsetAttribute?.attribute),
155
+ instancedPositionScale: (0, scene_part_003_1.attributeSignature)(scaleAttribute?.attribute),
156
+ };
157
+ signature.cacheable = (0, scene_part_003_1.attributeSignatureCacheable)(signature.position)
158
+ && (0, scene_part_003_1.attributeSignatureCacheable)(signature.instancedPositionOffset)
159
+ && (0, scene_part_003_1.attributeSignatureCacheable)(signature.instancedPositionScale);
160
+ return signature;
161
+ }
162
+ function sameInstancedPositionExpansionSignature(a, b) {
163
+ return a.cacheable === b.cacheable
164
+ && a.geometryVersion === b.geometryVersion
165
+ && a.sourcePositions === b.sourcePositions
166
+ && a.start === b.start
167
+ && a.count === b.count
168
+ && a.instanceCount === b.instanceCount
169
+ && (0, scene_part_003_1.sameAttributeSignature)(a.position, b.position)
170
+ && (0, scene_part_003_1.sameAttributeSignature)(a.instancedPositionOffset, b.instancedPositionOffset)
171
+ && (0, scene_part_003_1.sameAttributeSignature)(a.instancedPositionScale, b.instancedPositionScale);
172
+ }
173
+ function instanceScaleComponents(scaleAttribute, instance) {
174
+ if (!scaleAttribute)
175
+ return [1, 1, 1];
176
+ const sourceIndex = instancedAttributeIndex(scaleAttribute.attribute, instance, scaleAttribute.label);
177
+ const itemSize = scaleAttribute.attribute.itemSize ?? 1;
178
+ const sx = (0, attributes_1.attributeComponent)(scaleAttribute.attribute, sourceIndex, 0, scaleAttribute.label);
179
+ const sy = itemSize >= 2
180
+ ? (0, attributes_1.attributeComponent)(scaleAttribute.attribute, sourceIndex, 1, scaleAttribute.label)
181
+ : sx;
182
+ const sz = itemSize >= 3
183
+ ? (0, attributes_1.attributeComponent)(scaleAttribute.attribute, sourceIndex, 2, scaleAttribute.label)
184
+ : sx;
185
+ return [sx, sy, sz];
186
+ }
187
+ function expandVec2ValuesForInstances(values, start, count, instanceCount) {
188
+ if (instanceCount <= 1)
189
+ return values.slice(start * 2, (start + count) * 2);
190
+ const out = new Array(count * instanceCount * 2);
191
+ let dst = 0;
192
+ for (let instance = 0; instance < instanceCount; instance += 1) {
193
+ for (let vertex = start; vertex < start + count; vertex += 1) {
194
+ out[dst++] = values[vertex * 2];
195
+ out[dst++] = values[vertex * 2 + 1];
196
+ }
197
+ }
198
+ return out;
199
+ }
200
+ function expandNormalValuesForInstances(attribute, values, start, count, instanceCount, label = 'geometry.attributes.normal') {
201
+ if (!isInstancedAttribute(attribute)) {
202
+ return expandVec3ValuesForInstances(values, start, count, instanceCount);
203
+ }
204
+ const out = new Array(count * instanceCount * 3);
205
+ let dst = 0;
206
+ for (let instance = 0; instance < instanceCount; instance += 1) {
207
+ const sourceIndex = instancedAttributeIndex(attribute, instance, label);
208
+ const nx = (0, attributes_1.attributeComponent)(attribute, sourceIndex, 0, label);
209
+ const ny = (0, attributes_1.attributeComponent)(attribute, sourceIndex, 1, label);
210
+ const nz = (0, attributes_1.attributeComponent)(attribute, sourceIndex, 2, label);
211
+ for (let vertex = 0; vertex < count; vertex += 1) {
212
+ out[dst++] = nx;
213
+ out[dst++] = ny;
214
+ out[dst++] = nz;
215
+ }
216
+ }
217
+ return out;
218
+ }
219
+ function expandNormalValuesForInstancesWithCache(cache, geometry, attribute, values, start, count, instanceCount, label = 'geometry.attributes.normal') {
220
+ if (!cache) {
221
+ return expandNormalValuesForInstances(attribute, values, start, count, instanceCount, label);
222
+ }
223
+ const signature = instancedNormalExpansionSignature(geometry, attribute, values, start, count, instanceCount, label);
224
+ if (!signature.cacheable) {
225
+ return expandNormalValuesForInstances(attribute, values, start, count, instanceCount, label);
226
+ }
227
+ const key = `${label}:${start}:${count}:${instanceCount}`;
228
+ let geometryCache = cache.instancedNormalExpansions.get(geometry);
229
+ const cached = geometryCache?.get(key);
230
+ if (cached && sameInstancedNormalExpansionSignature(cached.signature, signature)) {
231
+ return cached.normals;
232
+ }
233
+ const normals = expandNormalValuesForInstances(attribute, values, start, count, instanceCount, label);
234
+ if (!geometryCache) {
235
+ geometryCache = new Map();
236
+ cache.instancedNormalExpansions.set(geometry, geometryCache);
237
+ }
238
+ geometryCache.set(key, { signature, normals });
239
+ return normals;
240
+ }
241
+ function instancedNormalExpansionSignature(geometry, attribute, values, start, count, instanceCount, label) {
242
+ const signature = {
243
+ cacheable: true,
244
+ geometryVersion: geometry.version,
245
+ sourceNormals: values,
246
+ start,
247
+ count,
248
+ instanceCount,
249
+ normal: (0, scene_part_003_1.attributeSignature)(attribute),
250
+ label,
251
+ };
252
+ signature.cacheable = (0, scene_part_003_1.attributeSignatureCacheable)(signature.normal);
253
+ return signature;
254
+ }
255
+ function sameInstancedNormalExpansionSignature(a, b) {
256
+ return a.cacheable === b.cacheable
257
+ && a.geometryVersion === b.geometryVersion
258
+ && a.sourceNormals === b.sourceNormals
259
+ && a.start === b.start
260
+ && a.count === b.count
261
+ && a.instanceCount === b.instanceCount
262
+ && (0, scene_part_003_1.sameAttributeSignature)(a.normal, b.normal)
263
+ && a.label === b.label;
264
+ }
265
+ function expandUvChannelForInstances(channel, start, count, instanceCount) {
266
+ if (!isInstancedAttribute(channel.attribute)) {
267
+ return expandVec2ValuesForInstances(channel.values, start, count, instanceCount);
268
+ }
269
+ const out = new Array(count * instanceCount * 2);
270
+ let dst = 0;
271
+ for (let instance = 0; instance < instanceCount; instance += 1) {
272
+ const sourceIndex = instancedAttributeIndex(channel.attribute, instance, (0, scene_part_010_1.labelForMeshPerAttribute)(channel));
273
+ const u = (0, attributes_1.attributeComponent)(channel.attribute, sourceIndex, 0, channel.label);
274
+ const v = (0, attributes_1.attributeComponent)(channel.attribute, sourceIndex, 1, channel.label);
275
+ for (let vertex = 0; vertex < count; vertex += 1) {
276
+ out[dst++] = u;
277
+ out[dst++] = v;
278
+ }
279
+ }
280
+ return out;
281
+ }
282
+ function expandUvChannelForInstancesWithCache(cache, geometry, channel, start, count, instanceCount) {
283
+ if (!cache) {
284
+ return expandUvChannelForInstances(channel, start, count, instanceCount);
285
+ }
286
+ const signature = instancedUvExpansionSignature(geometry, channel, start, count, instanceCount);
287
+ if (!signature.cacheable) {
288
+ return expandUvChannelForInstances(channel, start, count, instanceCount);
289
+ }
290
+ const key = `${channel.label}:${start}:${count}:${instanceCount}`;
291
+ let geometryCache = cache.instancedUvExpansions.get(geometry);
292
+ const cached = geometryCache?.get(key);
293
+ if (cached && sameInstancedUvExpansionSignature(cached.signature, signature)) {
294
+ return cached.uvs;
295
+ }
296
+ const uvs = expandUvChannelForInstances(channel, start, count, instanceCount);
297
+ if (!geometryCache) {
298
+ geometryCache = new Map();
299
+ cache.instancedUvExpansions.set(geometry, geometryCache);
300
+ }
301
+ geometryCache.set(key, { signature, uvs });
302
+ return uvs;
303
+ }
304
+ function instancedUvExpansionSignature(geometry, channel, start, count, instanceCount) {
305
+ const signature = {
306
+ cacheable: true,
307
+ geometryVersion: geometry.version,
308
+ channel: (0, scene_part_005_1.uvChannelSignature)(channel),
309
+ start,
310
+ count,
311
+ instanceCount,
312
+ };
313
+ signature.cacheable = (0, scene_part_003_1.attributeSignatureCacheable)(signature.channel.attribute);
314
+ return signature;
315
+ }
316
+ function sameInstancedUvExpansionSignature(a, b) {
317
+ return a.cacheable === b.cacheable
318
+ && a.geometryVersion === b.geometryVersion
319
+ && (0, scene_part_005_1.sameUvChannelSignature)(a.channel, b.channel)
320
+ && a.start === b.start
321
+ && a.count === b.count
322
+ && a.instanceCount === b.instanceCount;
323
+ }
324
+ function appendUvForVertex(out, channel, vertexIndex, instanceIndex) {
325
+ const sourceIndex = isInstancedAttribute(channel.attribute)
326
+ ? instancedAttributeIndex(channel.attribute, instanceIndex, (0, scene_part_010_1.labelForMeshPerAttribute)(channel))
327
+ : vertexIndex;
328
+ out.push((0, attributes_1.attributeComponent)(channel.attribute, sourceIndex, 0, channel.label), (0, attributes_1.attributeComponent)(channel.attribute, sourceIndex, 1, channel.label));
329
+ }
330
+ //# sourceMappingURL=scene.part-009.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene.part-009.js","sourceRoot":"","sources":["../api/scene.part-009.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { ThreeBufferAttributeLike, ThreeBufferGeometryLike, ThreeMaterialLike, Color4, PbrProperties } from './types';
2
+ import { IndexRangeExpansionSignature, InstancedColorExpansionSignature, MaterialUvSlot, SceneExtractionCache, TextureUvStreams, UvChannel } from './scene.part-001';
3
+ export declare function uvValuesForInstance(channel: UvChannel | null, vertexCount: number, instanceIndex: number): number[] | null;
4
+ export declare function labelForMeshPerAttribute(channel: UvChannel): string;
5
+ export declare function expandColorAttributeForInstances(attribute: ThreeBufferAttributeLike, materialColor: Color4, start: number, count: number, instanceCount: number, label?: string): number[];
6
+ export declare function expandColorAttributeForInstancesWithCache(cache: SceneExtractionCache | undefined, geometry: ThreeBufferGeometryLike, attribute: ThreeBufferAttributeLike, materialColor: Color4, start: number, count: number, instanceCount: number, label?: string): number[];
7
+ export declare function instancedColorExpansionSignature(geometry: ThreeBufferGeometryLike, attribute: ThreeBufferAttributeLike, materialColor: Color4, start: number, count: number, instanceCount: number, label: string): InstancedColorExpansionSignature;
8
+ export declare function sameInstancedColorExpansionSignature(a: InstancedColorExpansionSignature, b: InstancedColorExpansionSignature): boolean;
9
+ export declare function indexRangeWithCache(cache: SceneExtractionCache | undefined, geometry: ThreeBufferGeometryLike, indices: number[], start: number, count: number): number[];
10
+ export declare function indexRangeExpansionSignature(geometry: ThreeBufferGeometryLike, indices: number[], start: number, count: number): IndexRangeExpansionSignature;
11
+ export declare function sameIndexRangeExpansionSignature(a: IndexRangeExpansionSignature, b: IndexRangeExpansionSignature): boolean;
12
+ export declare function expandIndicesForInstances(indices: number[], vertexCount: number, instanceCount: number): number[];
13
+ export declare function wireframeIndicesForTriangles(indices: number[]): number[];
14
+ export declare function wireframeIndicesForUnindexedTriangles(vertexCount: number): number[];
15
+ export declare function isDepthDistanceWireframeMaterial(material: ThreeMaterialLike | undefined): boolean;
16
+ export declare function isMeshWireframeMaterial(material: ThreeMaterialLike | undefined): boolean;
17
+ export declare function readUvChannels(geometry: ThreeBufferGeometryLike): Array<UvChannel | null>;
18
+ export declare function readOptionalUvAttribute(geometry: ThreeBufferGeometryLike, name: string): UvChannel | null;
19
+ export declare function textureUvStreamsForMapAlphaMaterial(channels: Array<UvChannel | null>, material: {
20
+ map?: {
21
+ channel?: number;
22
+ } | null;
23
+ alphaMap?: {
24
+ channel?: number;
25
+ } | null;
26
+ } | undefined): TextureUvStreams;
27
+ export declare function textureUvStreamsForMeshMaterial(channels: Array<UvChannel | null>, material: ThreeMaterialLike | undefined): TextureUvStreams;
28
+ export declare function meshTextureUvSlots(material: ThreeMaterialLike | undefined): MaterialUvSlot[];
29
+ export declare function textureUvStreamsForMaterialSlots(channels: Array<UvChannel | null>, slots: MaterialUvSlot[]): TextureUvStreams;
30
+ export declare function preferredPrimaryTextureChannel(slots: MaterialUvSlot[]): number | undefined;
31
+ export declare function applyPbrUvStreamFlags(props: PbrProperties, uvStreams: TextureUvStreams): void;
32
+ //# sourceMappingURL=scene.part-010.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene.part-010.d.ts","sourceRoot":"","sources":["../api/scene.part-010.ts"],"names":[],"mappings":"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"}