@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,404 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.activeMaterialNodeHooks = activeMaterialNodeHooks;
4
+ exports.materialNodeHookValue = materialNodeHookValue;
5
+ exports.isThreeCsmPatchedMaterial = isThreeCsmPatchedMaterial;
6
+ exports.assertSupportedMaterialState = assertSupportedMaterialState;
7
+ exports.assertSupportedMaterialClass = assertSupportedMaterialClass;
8
+ exports.supportedMaterialClass = supportedMaterialClass;
9
+ exports.hasCustomOnBeforeCompile = hasCustomOnBeforeCompile;
10
+ exports.normalizeFunctionSource = normalizeFunctionSource;
11
+ exports.shaderMaterialKind = shaderMaterialKind;
12
+ exports.copyShaderMaterialInfo = copyShaderMaterialInfo;
13
+ exports.uniformValue = uniformValue;
14
+ exports.isCopyShaderFragment = isCopyShaderFragment;
15
+ exports.isOutputShaderFragment = isOutputShaderFragment;
16
+ exports.extractTextureData = extractTextureData;
17
+ exports.textureSamplerState = textureSamplerState;
18
+ exports.textureStateSignature = textureStateSignature;
19
+ exports.copyTextureSamplerState = copyTextureSamplerState;
20
+ exports.sameTextureStateSignature = sameTextureStateSignature;
21
+ exports.extractBackgroundTexture = extractBackgroundTexture;
22
+ exports.backgroundTextureMapping = backgroundTextureMapping;
23
+ exports.isCubeBackgroundTexture = isCubeBackgroundTexture;
24
+ exports.isCubeEnvironmentTexture = isCubeEnvironmentTexture;
25
+ exports.extractCubeBackgroundTexture = extractCubeBackgroundTexture;
26
+ exports.cubeTextureToEquirectangular = cubeTextureToEquirectangular;
27
+ exports.cubeFaceTexturesToEquirectangular = cubeFaceTexturesToEquirectangular;
28
+ exports.cubeFaceImages = cubeFaceImages;
29
+ const materials_part_001_1 = require("./materials.part-001");
30
+ const materials_part_002_1 = require("./materials.part-002");
31
+ const materials_part_005_1 = require("./materials.part-005");
32
+ const materials_part_009_1 = require("./materials.part-009");
33
+ const materials_part_010_1 = require("./materials.part-010");
34
+ const materials_part_011_1 = require("./materials.part-011");
35
+ function activeMaterialNodeHooks(material) {
36
+ const materialRecord = material;
37
+ const hookNames = new Set(materials_part_001_1.MaterialNodeHookProperties);
38
+ for (const name of Object.keys(materialRecord)) {
39
+ if (name.endsWith('Node'))
40
+ hookNames.add(name);
41
+ }
42
+ const active = [];
43
+ for (const name of hookNames) {
44
+ const value = materialRecord[name];
45
+ if (value == null)
46
+ continue;
47
+ if (materials_part_001_1.MaterialNodeHookProperties.has(name) || materialNodeHookValue(value))
48
+ active.push(name);
49
+ }
50
+ return active;
51
+ }
52
+ function materialNodeHookValue(value) {
53
+ if (typeof value === 'function')
54
+ return true;
55
+ if (typeof value !== 'object')
56
+ return false;
57
+ return value.isNode === true ||
58
+ value.isMRTNode === true;
59
+ }
60
+ function isThreeCsmPatchedMaterial(material) {
61
+ const defines = material.defines;
62
+ return defines != null &&
63
+ typeof defines === 'object' &&
64
+ !Array.isArray(defines) &&
65
+ defines.USE_CSM != null &&
66
+ defines.CSM_CASCADES != null;
67
+ }
68
+ function assertSupportedMaterialState(material, context) {
69
+ (0, materials_part_005_1.optionalBoolean)(material.wireframe, 'material.wireframe');
70
+ (0, materials_part_005_1.optionalPositiveFiniteNumber)(material.wireframeLinewidth, 'material.wireframeLinewidth');
71
+ (0, materials_part_005_1.optionalWireframeLinecap)(material.wireframeLinecap);
72
+ (0, materials_part_005_1.optionalWireframeLinejoin)(material.wireframeLinejoin);
73
+ if (material.envMap != null &&
74
+ (0, materials_part_002_1.supportsNativeMaterialEnvironmentMap)(material) &&
75
+ context.materialEnvironmentMaps?.has(material) !== true) {
76
+ throw new Error('material.envMap on MeshBasicMaterial, MeshStandardMaterial, MeshPhysicalMaterial, MeshPhongMaterial, and MeshLambertMaterial requires one shared material envMap represented by the native IBL path. Use scene.environment, remove material.envMap when a scene environment or reflection probe is active, or render separate passes.');
77
+ }
78
+ }
79
+ function assertSupportedMaterialClass(material, customFragmentShader) {
80
+ if (customFragmentShader || supportedMaterialClass(material) || copyShaderMaterialInfo(material))
81
+ return;
82
+ const type = typeof material.type === 'string' && material.type.trim()
83
+ ? material.type
84
+ : 'Material';
85
+ throw new Error(`${type} is not supported directly by @headless-three/renderer. Use a supported built-in Three.js material, or provide material.userData.headlessThreeRenderer.fragmentWgsl with a WGSL fragment body for the renderer's custom material path.`);
86
+ }
87
+ function supportedMaterialClass(material) {
88
+ return material.isMeshBasicMaterial === true
89
+ || material.isMeshDepthMaterial === true
90
+ || material.isMeshDistanceMaterial === true
91
+ || material.isMeshLambertMaterial === true
92
+ || material.isMeshMatcapMaterial === true
93
+ || material.isMeshNormalMaterial === true
94
+ || material.isMeshPhongMaterial === true
95
+ || material.isMeshStandardMaterial === true
96
+ || material.isMeshPhysicalMaterial === true
97
+ || material.isMeshToonMaterial === true
98
+ || material.isShadowMaterial === true
99
+ || material.isLineBasicMaterial === true
100
+ || material.isLineDashedMaterial === true
101
+ || material.isPointsMaterial === true
102
+ || material.isSpriteMaterial === true;
103
+ }
104
+ function hasCustomOnBeforeCompile(material) {
105
+ if (typeof material.onBeforeCompile !== 'function')
106
+ return false;
107
+ return normalizeFunctionSource(material.onBeforeCompile) !== materials_part_001_1.DefaultOnBeforeCompileSource;
108
+ }
109
+ function normalizeFunctionSource(fn) {
110
+ return Function.prototype.toString.call(fn).replace(/\s+/g, ' ').trim();
111
+ }
112
+ function shaderMaterialKind(material) {
113
+ if (material.isRawShaderMaterial === true || material.type === 'RawShaderMaterial') {
114
+ return 'RawShaderMaterial';
115
+ }
116
+ if (material.isNodeMaterial === true ||
117
+ (typeof material.type === 'string' && material.type.includes('NodeMaterial'))) {
118
+ return 'NodeMaterial';
119
+ }
120
+ if (material.isShaderMaterial === true || material.type === 'ShaderMaterial') {
121
+ return 'ShaderMaterial';
122
+ }
123
+ return undefined;
124
+ }
125
+ function copyShaderMaterialInfo(material) {
126
+ if (!material)
127
+ return null;
128
+ const kind = shaderMaterialKind(material);
129
+ if (kind !== 'ShaderMaterial' && kind !== 'RawShaderMaterial')
130
+ return null;
131
+ if (kind === 'ShaderMaterial' && !isCopyShaderFragment(material.fragmentShader))
132
+ return null;
133
+ if (kind === 'RawShaderMaterial' && !isOutputShaderFragment(material.fragmentShader))
134
+ return null;
135
+ const uniforms = material.uniforms;
136
+ if (!uniforms || typeof uniforms !== 'object' || Array.isArray(uniforms))
137
+ return null;
138
+ return {
139
+ texture: uniformValue(uniforms.tDiffuse),
140
+ opacity: kind === 'ShaderMaterial'
141
+ ? uniformValue(uniforms.opacity) ?? 1
142
+ : 1,
143
+ };
144
+ }
145
+ function uniformValue(uniform) {
146
+ if (!uniform || typeof uniform !== 'object' || Array.isArray(uniform))
147
+ return undefined;
148
+ return uniform.value;
149
+ }
150
+ function isCopyShaderFragment(fragmentShader) {
151
+ if (typeof fragmentShader !== 'string')
152
+ return false;
153
+ const compact = fragmentShader.replace(/\s+/g, '');
154
+ return compact.includes('uniformfloatopacity;') &&
155
+ compact.includes('uniformsampler2DtDiffuse;') &&
156
+ compact.includes('texture2D(tDiffuse,vUv)') &&
157
+ compact.includes('gl_FragColor=opacity*texel;');
158
+ }
159
+ function isOutputShaderFragment(fragmentShader) {
160
+ if (typeof fragmentShader !== 'string')
161
+ return false;
162
+ const compact = fragmentShader.replace(/\s+/g, '');
163
+ return compact.includes('uniformsampler2DtDiffuse;') &&
164
+ compact.includes('gl_FragColor=texture2D(tDiffuse,vUv);') &&
165
+ compact.includes('tonemapping_pars_fragment') &&
166
+ compact.includes('colorspace_pars_fragment');
167
+ }
168
+ function extractTextureData(material, context = {}) {
169
+ const copyShader = copyShaderMaterialInfo(material);
170
+ const slot = copyShader
171
+ ? copyShader.texture
172
+ : material?.isMeshMatcapMaterial
173
+ ? material.matcap
174
+ : material?.map;
175
+ const label = copyShader
176
+ ? 'material.uniforms.tDiffuse.value'
177
+ : material?.isMeshMatcapMaterial
178
+ ? 'material.matcap'
179
+ : 'material.map';
180
+ const base = (0, materials_part_009_1.extractTextureFromSlot)(slot, label, context.textureCache);
181
+ if (!base)
182
+ return null;
183
+ const map = slot;
184
+ const state = textureSamplerState(map, label, context, {
185
+ includeWrap: material?.isMeshMatcapMaterial !== true,
186
+ includeTransform: material?.isMeshMatcapMaterial !== true,
187
+ includeUvChannel: material?.isMeshMatcapMaterial !== true,
188
+ });
189
+ return { ...base, ...state };
190
+ }
191
+ function textureSamplerState(map, label, context, options = {}) {
192
+ const signature = map && context.textureStateCache
193
+ ? textureStateSignature(map, options)
194
+ : null;
195
+ if (map && signature) {
196
+ const cached = context.textureStateCache?.get(map);
197
+ if (cached && sameTextureStateSignature(cached.signature, signature)) {
198
+ return copyTextureSamplerState(cached.state);
199
+ }
200
+ }
201
+ const state = {
202
+ wrapS: options.includeWrap === false ? undefined : (0, materials_part_009_1.wrapModeToString)(map?.wrapS),
203
+ wrapT: options.includeWrap === false ? undefined : (0, materials_part_009_1.wrapModeToString)(map?.wrapT),
204
+ magFilter: (0, materials_part_009_1.filterModeToString)(map?.magFilter),
205
+ minFilter: (0, materials_part_009_1.minFilterModeToString)(map),
206
+ anisotropy: (0, materials_part_011_1.textureAnisotropy)(map, label),
207
+ transform: options.includeTransform === false ? undefined : (0, materials_part_011_1.textureTransform)(map, label),
208
+ colorSpace: (0, materials_part_011_1.textureColorSpace)(map),
209
+ usesUv2: options.includeUvChannel === false ? false : (0, materials_part_005_1.textureUvChannel)(map) > 0,
210
+ };
211
+ if (map && signature) {
212
+ context.textureStateCache?.set(map, { signature, state: copyTextureSamplerState(state) });
213
+ }
214
+ return state;
215
+ }
216
+ function textureStateSignature(texture, options) {
217
+ const mipmaps = texture.mipmaps;
218
+ const matrix = texture.matrix;
219
+ const matrixElements = matrix?.elements;
220
+ return {
221
+ includeWrap: options.includeWrap,
222
+ includeTransform: options.includeTransform,
223
+ includeUvChannel: options.includeUvChannel,
224
+ wrapS: texture.wrapS,
225
+ wrapT: texture.wrapT,
226
+ magFilter: texture.magFilter,
227
+ minFilter: texture.minFilter,
228
+ generateMipmaps: texture.generateMipmaps,
229
+ mipmaps,
230
+ mipmapCount: Array.isArray(mipmaps) ? mipmaps.length : undefined,
231
+ anisotropy: texture.anisotropy,
232
+ colorSpace: texture.colorSpace,
233
+ encoding: texture.encoding,
234
+ channel: texture.channel,
235
+ flipY: texture.flipY,
236
+ matrixAutoUpdate: texture.matrixAutoUpdate,
237
+ matrix,
238
+ matrixElements,
239
+ matrixValues: matrixElements ? Array.from(matrixElements) : undefined,
240
+ offset: texture.offset,
241
+ offsetX: texture.offset?.x,
242
+ offsetY: texture.offset?.y,
243
+ repeat: texture.repeat,
244
+ repeatX: texture.repeat?.x,
245
+ repeatY: texture.repeat?.y,
246
+ rotation: texture.rotation,
247
+ center: texture.center,
248
+ centerX: texture.center?.x,
249
+ centerY: texture.center?.y,
250
+ };
251
+ }
252
+ function copyTextureSamplerState(state) {
253
+ return {
254
+ ...state,
255
+ transform: state.transform ? state.transform.slice() : undefined,
256
+ };
257
+ }
258
+ function sameTextureStateSignature(a, b) {
259
+ return a.includeWrap === b.includeWrap
260
+ && a.includeTransform === b.includeTransform
261
+ && a.includeUvChannel === b.includeUvChannel
262
+ && a.wrapS === b.wrapS
263
+ && a.wrapT === b.wrapT
264
+ && a.magFilter === b.magFilter
265
+ && a.minFilter === b.minFilter
266
+ && a.generateMipmaps === b.generateMipmaps
267
+ && a.mipmaps === b.mipmaps
268
+ && a.mipmapCount === b.mipmapCount
269
+ && a.anisotropy === b.anisotropy
270
+ && a.colorSpace === b.colorSpace
271
+ && a.encoding === b.encoding
272
+ && a.channel === b.channel
273
+ && a.flipY === b.flipY
274
+ && a.matrixAutoUpdate === b.matrixAutoUpdate
275
+ && a.matrix === b.matrix
276
+ && a.matrixElements === b.matrixElements
277
+ && (0, materials_part_002_1.sameUnknownArray)(a.matrixValues, b.matrixValues)
278
+ && a.offset === b.offset
279
+ && a.offsetX === b.offsetX
280
+ && a.offsetY === b.offsetY
281
+ && a.repeat === b.repeat
282
+ && a.repeatX === b.repeatX
283
+ && a.repeatY === b.repeatY
284
+ && a.rotation === b.rotation
285
+ && a.center === b.center
286
+ && a.centerX === b.centerX
287
+ && a.centerY === b.centerY;
288
+ }
289
+ function extractBackgroundTexture(background, label = 'background') {
290
+ const map = (0, materials_part_009_1.textureLike)(background);
291
+ if (!map)
292
+ return null;
293
+ if (isCubeBackgroundTexture(map)) {
294
+ (0, materials_part_010_1.assertSupportedTextureInput)(map, label);
295
+ return extractCubeBackgroundTexture(map, label);
296
+ }
297
+ (0, materials_part_010_1.assertSupportedBackgroundTexture)(map, label);
298
+ const base = (0, materials_part_009_1.extractTextureFromSlot)(map, label);
299
+ if (!base)
300
+ return null;
301
+ return {
302
+ ...base,
303
+ wrapS: (0, materials_part_009_1.wrapModeToString)(map?.wrapS),
304
+ wrapT: (0, materials_part_009_1.wrapModeToString)(map?.wrapT),
305
+ magFilter: (0, materials_part_009_1.filterModeToString)(map?.magFilter),
306
+ minFilter: (0, materials_part_009_1.minFilterModeToString)(map),
307
+ anisotropy: (0, materials_part_011_1.textureAnisotropy)(map, label),
308
+ transform: (0, materials_part_011_1.textureTransform)(map, label),
309
+ colorSpace: (0, materials_part_011_1.textureColorSpace)(map),
310
+ mapping: backgroundTextureMapping(map),
311
+ };
312
+ }
313
+ function backgroundTextureMapping(map) {
314
+ return map.mapping === materials_part_001_1.EquirectangularReflectionMapping || map.mapping === materials_part_001_1.EquirectangularRefractionMapping
315
+ ? 'equirectangular'
316
+ : 'uv';
317
+ }
318
+ function isCubeBackgroundTexture(map) {
319
+ return map.isCubeTexture === true ||
320
+ map.mapping === materials_part_001_1.CubeReflectionMapping ||
321
+ map.mapping === materials_part_001_1.CubeRefractionMapping ||
322
+ map.mapping === materials_part_001_1.CubeUVReflectionMapping;
323
+ }
324
+ function isCubeEnvironmentTexture(map, label = 'texture') {
325
+ return map.isCubeTexture === true ||
326
+ map.mapping === materials_part_001_1.CubeReflectionMapping ||
327
+ map.mapping === materials_part_001_1.CubeRefractionMapping ||
328
+ (map.mapping === materials_part_001_1.CubeUVReflectionMapping &&
329
+ (cubeFaceImages(map, label) !== null || (0, materials_part_009_1.cubeUvPackedImage)(map, label) !== null));
330
+ }
331
+ function extractCubeBackgroundTexture(map, label) {
332
+ const cube = cubeTextureToEquirectangular(map, label);
333
+ return {
334
+ ...cube,
335
+ wrapS: 'repeat',
336
+ wrapT: 'clamp',
337
+ magFilter: (0, materials_part_009_1.filterModeToString)(map.magFilter),
338
+ minFilter: (0, materials_part_009_1.minFilterModeToString)(map),
339
+ anisotropy: (0, materials_part_011_1.textureAnisotropy)(map, label),
340
+ colorSpace: (0, materials_part_011_1.textureColorSpace)(map),
341
+ mapping: 'equirectangular',
342
+ };
343
+ }
344
+ function cubeTextureToEquirectangular(map, label) {
345
+ (0, materials_part_011_1.textureUnpackAlignment)(map, label);
346
+ const faces = cubeFaceImages(map, label);
347
+ if (!faces) {
348
+ if (map.mapping === materials_part_001_1.CubeUVReflectionMapping) {
349
+ const packedFaceTextures = (0, materials_part_009_1.packedCubeUvTextureToFaceTextures)(map, label);
350
+ if (packedFaceTextures)
351
+ return cubeFaceTexturesToEquirectangular(packedFaceTextures, label);
352
+ throw new Error(`${label} uses PMREM/CubeUV mapping without readable six-face cube images or a readable packed CubeUV image.`);
353
+ }
354
+ throw new Error(`${label} uses a cube texture without six raw or encoded face images. Provide a CubeTexture with six DataTexture-style or encoded PNG/JPEG/WebP face images, use a 2D/equirectangular texture, or pre-render the background to a 2D image before rendering.`);
355
+ }
356
+ const premultiplyAlpha = (0, materials_part_011_1.optionalTextureBoolean)(map.premultiplyAlpha, `${label}.premultiplyAlpha`) === true;
357
+ const faceTextures = faces.map((face, index) => (0, materials_part_009_1.imageToRgbaTexture)(face, `${label}.image[${index}]`, map.type, map.format, { premultiplyAlpha }));
358
+ return cubeFaceTexturesToEquirectangular(faceTextures, label);
359
+ }
360
+ function cubeFaceTexturesToEquirectangular(faceTextures, label) {
361
+ const faceWidth = faceTextures[0].width;
362
+ const faceHeight = faceTextures[0].height;
363
+ if (faceWidth !== faceHeight) {
364
+ throw new Error(`${label} cube background faces must be square raw RGBA images.`);
365
+ }
366
+ for (let i = 1; i < faceTextures.length; i += 1) {
367
+ if (faceTextures[i].width !== faceWidth || faceTextures[i].height !== faceHeight) {
368
+ throw new Error(`${label} cube background faces must all use the same dimensions.`);
369
+ }
370
+ }
371
+ const width = Math.max(64, faceWidth * 4);
372
+ const height = Math.max(32, faceHeight * 2);
373
+ const out = new Uint8Array(width * height * 4);
374
+ for (let y = 0; y < height; y += 1) {
375
+ const v = (y + 0.5) / height;
376
+ const pitch = (v - 0.5) * Math.PI;
377
+ const dirY = Math.sin(pitch);
378
+ const ring = Math.cos(pitch);
379
+ for (let x = 0; x < width; x += 1) {
380
+ const u = (x + 0.5) / width;
381
+ const yaw = (u - 0.5) * Math.PI * 2;
382
+ const dir = [
383
+ Math.cos(yaw) * ring,
384
+ dirY,
385
+ Math.sin(yaw) * ring,
386
+ ];
387
+ const sample = (0, materials_part_009_1.sampleCubeFace)(faceTextures, dir);
388
+ out.set(sample, (y * width + x) * 4);
389
+ }
390
+ }
391
+ return {
392
+ data: Buffer.from(out.buffer, out.byteOffset, out.byteLength),
393
+ width,
394
+ height,
395
+ };
396
+ }
397
+ function cubeFaceImages(map, label = 'texture') {
398
+ const sourceData = (0, materials_part_009_1.textureSourceData)(map, label);
399
+ const image = map.image ?? sourceData;
400
+ if (Array.isArray(image) && image.length >= 6)
401
+ return image.slice(0, 6);
402
+ return null;
403
+ }
404
+ //# sourceMappingURL=materials.part-008.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"materials.part-008.js","sourceRoot":"","sources":["../api/materials.part-008.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ import type { ThreeMaterialLike, TextureInfo, ThreeTextureLike } from './types';
2
+ import { TextureExtractionCache, TextureImageInput } from './materials.part-001';
3
+ export declare function cubeUvPackedImage(map: ThreeTextureLike, label?: string): TextureImageInput | null;
4
+ export declare function packedCubeUvTextureToFaceTextures(map: ThreeTextureLike, label: string): Array<{
5
+ rgba: Uint8Array;
6
+ width: number;
7
+ height: number;
8
+ }> | null;
9
+ export declare function extractRgbaTile(source: {
10
+ rgba: Uint8Array;
11
+ width: number;
12
+ height: number;
13
+ }, x: number, y: number, size: number): {
14
+ rgba: Uint8Array;
15
+ width: number;
16
+ height: number;
17
+ };
18
+ export declare function imageToRgbaTexture(image: TextureImageInput, label: string, textureType?: number, textureFormat?: unknown, options?: {
19
+ premultiplyAlpha?: boolean;
20
+ }): {
21
+ rgba: Uint8Array;
22
+ width: number;
23
+ height: number;
24
+ };
25
+ export declare function canvasLikeImageToRgba(image: unknown, label: string): {
26
+ rgba: Uint8Array;
27
+ width: number;
28
+ height: number;
29
+ } | null;
30
+ export declare function drawImageLikeToRgba(image: object, label: string): {
31
+ rgba: Uint8Array;
32
+ width: number;
33
+ height: number;
34
+ } | null;
35
+ export declare function canvasLike2dContext(canvas: {
36
+ getContext?: (contextId: string, options?: unknown) => unknown;
37
+ }, label: string): unknown;
38
+ export declare function canvasLikeContextToRgba(context: unknown, width: number, height: number, label: string): {
39
+ rgba: Uint8Array;
40
+ width: number;
41
+ height: number;
42
+ };
43
+ export declare function canvasLikeImageDimension(value: unknown, label: string): number;
44
+ export declare function premultiplyRgbaAlpha(data: Uint8Array | Uint8ClampedArray): Uint8Array;
45
+ export declare function premultiplyFloatRgba(data: Float32Array): Float32Array;
46
+ export declare function premultiplyHalfFloatRgba(data: Uint16Array): Uint16Array;
47
+ export declare function sampleCubeFace(faces: Array<{
48
+ rgba: Uint8Array;
49
+ width: number;
50
+ height: number;
51
+ }>, dir: readonly [number, number, number]): Uint8Array;
52
+ export declare function textureLike(value: unknown): ThreeTextureLike | null;
53
+ export declare function textureSourceData(texture: ThreeTextureLike, label: string): unknown;
54
+ export declare function requiredEnvironmentTexture(value: unknown, label: string): ThreeTextureLike;
55
+ export declare function wrapModeToString(mode: unknown): string | undefined;
56
+ export declare function filterModeToString(mode: unknown): string | undefined;
57
+ export declare function minFilterModeToString(texture: ThreeTextureLike | null | undefined): string | undefined;
58
+ export interface CachedTextureExtraction {
59
+ signature: TexturePayloadSignature;
60
+ info: TextureInfo;
61
+ }
62
+ export interface TexturePayloadSignature {
63
+ version: number;
64
+ image: unknown;
65
+ sourceData: unknown;
66
+ imageData?: TextureDataSignature;
67
+ imageWidth?: unknown;
68
+ imageHeight?: unknown;
69
+ type?: unknown;
70
+ format?: unknown;
71
+ premultiplyAlpha?: unknown;
72
+ generateMipmaps?: unknown;
73
+ mipmaps: TextureMipmapSignature[];
74
+ }
75
+ export interface TextureMipmapSignature {
76
+ image: unknown;
77
+ data?: TextureDataSignature;
78
+ width?: unknown;
79
+ height?: unknown;
80
+ }
81
+ export interface TextureDataSignature {
82
+ data: unknown;
83
+ length?: unknown;
84
+ buffer?: ArrayBufferLike;
85
+ byteOffset?: number;
86
+ byteLength?: number;
87
+ }
88
+ export declare function extractTextureFromSlot(map: ThreeMaterialLike['map'], label?: string, cache?: TextureExtractionCache): TextureInfo | null;
89
+ //# sourceMappingURL=materials.part-009.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"materials.part-009.d.ts","sourceRoot":"","sources":["../api/materials.part-009.ts"],"names":[],"mappings":"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"}