@headless-three/renderer 0.1.10 → 0.2.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 +3 -0
  2. package/dist/gpu-output.d.ts +81 -0
  3. package/dist/gpu-output.d.ts.map +1 -0
  4. package/dist/gpu-output.js +53 -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 +30 -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 +238 -0
  39. package/dist/index.part-008.d.ts.map +1 -0
  40. package/dist/index.part-008.js +454 -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 +23 -0
  47. package/dist/index.part-010.d.ts.map +1 -0
  48. package/dist/index.part-010.js +245 -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 +40 -0
  243. package/native.js +53 -52
  244. package/package.json +10 -8
@@ -0,0 +1,412 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cubeUvPackedImage = cubeUvPackedImage;
4
+ exports.packedCubeUvTextureToFaceTextures = packedCubeUvTextureToFaceTextures;
5
+ exports.extractRgbaTile = extractRgbaTile;
6
+ exports.imageToRgbaTexture = imageToRgbaTexture;
7
+ exports.canvasLikeImageToRgba = canvasLikeImageToRgba;
8
+ exports.drawImageLikeToRgba = drawImageLikeToRgba;
9
+ exports.canvasLike2dContext = canvasLike2dContext;
10
+ exports.canvasLikeContextToRgba = canvasLikeContextToRgba;
11
+ exports.canvasLikeImageDimension = canvasLikeImageDimension;
12
+ exports.premultiplyRgbaAlpha = premultiplyRgbaAlpha;
13
+ exports.premultiplyFloatRgba = premultiplyFloatRgba;
14
+ exports.premultiplyHalfFloatRgba = premultiplyHalfFloatRgba;
15
+ exports.sampleCubeFace = sampleCubeFace;
16
+ exports.textureLike = textureLike;
17
+ exports.textureSourceData = textureSourceData;
18
+ exports.requiredEnvironmentTexture = requiredEnvironmentTexture;
19
+ exports.wrapModeToString = wrapModeToString;
20
+ exports.filterModeToString = filterModeToString;
21
+ exports.minFilterModeToString = minFilterModeToString;
22
+ exports.extractTextureFromSlot = extractTextureFromSlot;
23
+ const materials_part_001_1 = require("./materials.part-001");
24
+ const materials_part_010_1 = require("./materials.part-010");
25
+ const materials_part_011_1 = require("./materials.part-011");
26
+ const materials_part_012_1 = require("./materials.part-012");
27
+ function cubeUvPackedImage(map, label = 'texture') {
28
+ if (map.mapping !== materials_part_001_1.CubeUVReflectionMapping)
29
+ return null;
30
+ const sourceData = textureSourceData(map, label);
31
+ const image = map.image ?? sourceData;
32
+ if (!image || Array.isArray(image))
33
+ return null;
34
+ if (Buffer.isBuffer(image) || image instanceof Uint8Array)
35
+ return image;
36
+ if (typeof image === 'object')
37
+ return image;
38
+ return null;
39
+ }
40
+ function packedCubeUvTextureToFaceTextures(map, label) {
41
+ const packedImage = cubeUvPackedImage(map, label);
42
+ if (!packedImage)
43
+ return null;
44
+ const premultiplyAlpha = (0, materials_part_011_1.optionalTextureBoolean)(map.premultiplyAlpha, `${label}.premultiplyAlpha`) === true;
45
+ const atlas = imageToRgbaTexture(packedImage, `${label}.image`, map.type, map.format, { premultiplyAlpha });
46
+ if (atlas.height % 4 !== 0) {
47
+ throw new Error(`${label} packed PMREM/CubeUV image height must be divisible by 4.`);
48
+ }
49
+ const faceSize = atlas.height / 4;
50
+ if (!Number.isInteger(faceSize) || faceSize < 16 || atlas.width < faceSize * 3) {
51
+ throw new Error(`${label} packed PMREM/CubeUV image must use Three.js' 3-column by 4-row layout with at least 16x16 face tiles.`);
52
+ }
53
+ const atlasFaceToCubeFace = [0, 2, 4, 1, 3, 5];
54
+ const cubeFaces = [];
55
+ for (let atlasFace = 0; atlasFace < 6; atlasFace += 1) {
56
+ const col = atlasFace % 3;
57
+ const row = atlasFace > 2 ? 1 : 0;
58
+ cubeFaces[atlasFaceToCubeFace[atlasFace]] = extractRgbaTile(atlas, col * faceSize, row * faceSize, faceSize);
59
+ }
60
+ return cubeFaces;
61
+ }
62
+ function extractRgbaTile(source, x, y, size) {
63
+ const out = new Uint8Array(size * size * 4);
64
+ for (let row = 0; row < size; row += 1) {
65
+ const sourceStart = ((y + row) * source.width + x) * 4;
66
+ out.set(source.rgba.subarray(sourceStart, sourceStart + size * 4), row * size * 4);
67
+ }
68
+ return { rgba: out, width: size, height: size };
69
+ }
70
+ function imageToRgbaTexture(image, label, textureType, textureFormat, options = {}) {
71
+ if (Buffer.isBuffer(image) || image instanceof Uint8Array) {
72
+ const buffer = Buffer.isBuffer(image)
73
+ ? image
74
+ : Buffer.from(image.buffer, image.byteOffset, image.byteLength);
75
+ const decoded = materials_part_001_1.native.decodeImage?.(buffer);
76
+ if (!decoded?.data || !(decoded.width > 0) || !(decoded.height > 0)) {
77
+ throw new Error(`${label} encoded cube face image could not be decoded to RGBA pixels.`);
78
+ }
79
+ const rgba = decoded.data instanceof Uint8Array
80
+ ? decoded.data
81
+ : new Uint8Array(decoded.data);
82
+ if (rgba.byteLength !== decoded.width * decoded.height * 4) {
83
+ throw new Error(`${label} encoded cube face image decoded to an unexpected RGBA byte length.`);
84
+ }
85
+ return {
86
+ rgba: options.premultiplyAlpha === true ? premultiplyRgbaAlpha(rgba) : rgba,
87
+ width: decoded.width,
88
+ height: decoded.height,
89
+ };
90
+ }
91
+ if (!image || !image.data || !(image.width > 0) || !(image.height > 0)) {
92
+ const canvasImage = canvasLikeImageToRgba(image, label);
93
+ if (canvasImage) {
94
+ return {
95
+ rgba: options.premultiplyAlpha === true ? premultiplyRgbaAlpha(canvasImage.rgba) : canvasImage.rgba,
96
+ width: canvasImage.width,
97
+ height: canvasImage.height,
98
+ };
99
+ }
100
+ throw new Error(`${label} must provide raw face data, width, and height for cube background rendering.`);
101
+ }
102
+ const rgba = (0, materials_part_011_1.toRgba8)(image.data, image.width, image.height, { type: textureType, format: textureFormat });
103
+ if (!rgba) {
104
+ throw new Error(`${label} must contain RGB or RGBA numeric pixel data for cube background rendering.`);
105
+ }
106
+ return {
107
+ rgba: options.premultiplyAlpha === true ? premultiplyRgbaAlpha(rgba) : rgba,
108
+ width: image.width,
109
+ height: image.height,
110
+ };
111
+ }
112
+ function canvasLikeImageToRgba(image, label) {
113
+ if (!image || typeof image !== 'object') {
114
+ return null;
115
+ }
116
+ if (typeof image.getContext === 'function') {
117
+ const candidate = image;
118
+ const width = canvasLikeImageDimension(candidate.width, `${label}.width`);
119
+ const height = canvasLikeImageDimension(candidate.height, `${label}.height`);
120
+ const context = canvasLike2dContext(candidate, label);
121
+ return canvasLikeContextToRgba(context, width, height, label);
122
+ }
123
+ return drawImageLikeToRgba(image, label);
124
+ }
125
+ function drawImageLikeToRgba(image, label) {
126
+ const offscreenCanvas = globalThis.OffscreenCanvas;
127
+ if (typeof offscreenCanvas !== 'function')
128
+ return null;
129
+ const candidate = image;
130
+ const width = canvasLikeImageDimension(candidate.width ?? candidate.naturalWidth, `${label}.width`);
131
+ const height = canvasLikeImageDimension(candidate.height ?? candidate.naturalHeight, `${label}.height`);
132
+ const canvas = new offscreenCanvas(width, height);
133
+ const context = canvasLike2dContext(canvas, label);
134
+ if (typeof context.drawImage !== 'function') {
135
+ throw new Error(`${label} OffscreenCanvas 2D context must provide drawImage() to read image-like texture pixels.`);
136
+ }
137
+ try {
138
+ context
139
+ .drawImage(image, 0, 0, width, height);
140
+ }
141
+ catch {
142
+ throw new Error(`${label} OffscreenCanvas 2D context drawImage() failed while reading image-like texture pixels.`);
143
+ }
144
+ return canvasLikeContextToRgba(context, width, height, label);
145
+ }
146
+ function canvasLike2dContext(canvas, label) {
147
+ let context;
148
+ try {
149
+ context = canvas.getContext?.('2d', { willReadFrequently: true })
150
+ ?? canvas.getContext?.('2d');
151
+ }
152
+ catch {
153
+ throw new Error(`${label}.getContext("2d") failed while reading canvas texture pixels.`);
154
+ }
155
+ if (!context || typeof context !== 'object' || typeof context.getImageData !== 'function') {
156
+ throw new Error(`${label} canvas-like texture images must provide getContext("2d").getImageData().`);
157
+ }
158
+ return context;
159
+ }
160
+ function canvasLikeContextToRgba(context, width, height, label) {
161
+ let imageData;
162
+ try {
163
+ imageData = context
164
+ .getImageData(0, 0, width, height);
165
+ }
166
+ catch {
167
+ throw new Error(`${label}.getContext("2d").getImageData() failed while reading canvas texture pixels.`);
168
+ }
169
+ if (!imageData || typeof imageData !== 'object') {
170
+ throw new Error(`${label}.getContext("2d").getImageData() must return an ImageData-like object.`);
171
+ }
172
+ const data = imageData.data;
173
+ if (!(data instanceof Uint8Array) && !(data instanceof Uint8ClampedArray)) {
174
+ throw new Error(`${label}.getContext("2d").getImageData().data must be a Uint8Array or Uint8ClampedArray.`);
175
+ }
176
+ if (data.length !== width * height * 4) {
177
+ throw new Error(`${label}.getContext("2d").getImageData().data length must equal width * height * 4.`);
178
+ }
179
+ return {
180
+ rgba: new Uint8Array(data.buffer, data.byteOffset, data.byteLength),
181
+ width,
182
+ height,
183
+ };
184
+ }
185
+ function canvasLikeImageDimension(value, label) {
186
+ if (!Number.isInteger(value) || value <= 0) {
187
+ throw new TypeError(`${label} must be a positive integer for canvas-like texture image reads.`);
188
+ }
189
+ return value;
190
+ }
191
+ function premultiplyRgbaAlpha(data) {
192
+ const out = new Uint8Array(data.byteLength);
193
+ for (let i = 0; i < data.byteLength; i += 4) {
194
+ const alpha = data[i + 3];
195
+ out[i] = Math.round((data[i] * alpha) / 255);
196
+ out[i + 1] = Math.round((data[i + 1] * alpha) / 255);
197
+ out[i + 2] = Math.round((data[i + 2] * alpha) / 255);
198
+ out[i + 3] = alpha;
199
+ }
200
+ return out;
201
+ }
202
+ function premultiplyFloatRgba(data) {
203
+ const out = new Float32Array(data.length);
204
+ for (let i = 0; i < data.length; i += 4) {
205
+ const alpha = data[i + 3];
206
+ out[i] = data[i] * alpha;
207
+ out[i + 1] = data[i + 1] * alpha;
208
+ out[i + 2] = data[i + 2] * alpha;
209
+ out[i + 3] = alpha;
210
+ }
211
+ return out;
212
+ }
213
+ function premultiplyHalfFloatRgba(data) {
214
+ const out = new Uint16Array(data.length);
215
+ for (let i = 0; i < data.length; i += 4) {
216
+ const alpha = (0, materials_part_012_1.halfFloatToNumber)(data[i + 3]);
217
+ out[i] = (0, materials_part_012_1.numberToHalfFloat)((0, materials_part_012_1.halfFloatToNumber)(data[i]) * alpha);
218
+ out[i + 1] = (0, materials_part_012_1.numberToHalfFloat)((0, materials_part_012_1.halfFloatToNumber)(data[i + 1]) * alpha);
219
+ out[i + 2] = (0, materials_part_012_1.numberToHalfFloat)((0, materials_part_012_1.halfFloatToNumber)(data[i + 2]) * alpha);
220
+ out[i + 3] = data[i + 3];
221
+ }
222
+ return out;
223
+ }
224
+ function sampleCubeFace(faces, dir) {
225
+ const [x, y, z] = dir;
226
+ const ax = Math.abs(x);
227
+ const ay = Math.abs(y);
228
+ const az = Math.abs(z);
229
+ let faceIndex = 0;
230
+ let sc = 0;
231
+ let tc = 0;
232
+ if (ax >= ay && ax >= az) {
233
+ if (x >= 0) {
234
+ faceIndex = 0;
235
+ sc = -z / ax;
236
+ }
237
+ else {
238
+ faceIndex = 1;
239
+ sc = z / ax;
240
+ }
241
+ tc = -y / ax;
242
+ }
243
+ else if (ay >= ax && ay >= az) {
244
+ if (y >= 0) {
245
+ faceIndex = 2;
246
+ sc = x / ay;
247
+ tc = z / ay;
248
+ }
249
+ else {
250
+ faceIndex = 3;
251
+ sc = x / ay;
252
+ tc = -z / ay;
253
+ }
254
+ }
255
+ else {
256
+ if (z >= 0) {
257
+ faceIndex = 4;
258
+ sc = x / az;
259
+ }
260
+ else {
261
+ faceIndex = 5;
262
+ sc = -x / az;
263
+ }
264
+ tc = -y / az;
265
+ }
266
+ const face = faces[faceIndex];
267
+ const u = Math.max(0, Math.min(1, (sc + 1) * 0.5));
268
+ const v = Math.max(0, Math.min(1, (tc + 1) * 0.5));
269
+ const px = Math.min(face.width - 1, Math.floor(u * face.width));
270
+ const py = Math.min(face.height - 1, Math.floor(v * face.height));
271
+ const offset = (py * face.width + px) * 4;
272
+ return face.rgba.subarray(offset, offset + 4);
273
+ }
274
+ function textureLike(value) {
275
+ if (!value || Array.isArray(value))
276
+ return null;
277
+ const candidate = value;
278
+ if (candidate.isTexture === true || candidate.image || candidate.source?.data) {
279
+ return candidate;
280
+ }
281
+ return null;
282
+ }
283
+ function textureSourceData(texture, label) {
284
+ const source = texture.source;
285
+ if (source == null)
286
+ return undefined;
287
+ if (typeof source !== 'object' || Array.isArray(source)) {
288
+ throw new TypeError(`${label}.source must be a source-like object.`);
289
+ }
290
+ const data = source.data;
291
+ if (data == null)
292
+ return undefined;
293
+ if (typeof data !== 'object') {
294
+ throw new TypeError(`${label}.source.data must be an image-like object.`);
295
+ }
296
+ return data;
297
+ }
298
+ function requiredEnvironmentTexture(value, label) {
299
+ const texture = textureLike(value);
300
+ if (texture)
301
+ return texture;
302
+ throw new TypeError(`${label} must be a Three.js texture or null for environment map rendering.`);
303
+ }
304
+ function wrapModeToString(mode) {
305
+ if (mode == null || mode === materials_part_001_1.ClampToEdgeWrapping)
306
+ return undefined; // default = clamp
307
+ if (mode === materials_part_001_1.RepeatWrapping)
308
+ return 'repeat';
309
+ if (mode === materials_part_001_1.MirroredRepeatWrapping)
310
+ return 'mirror';
311
+ throw new Error(`texture wrap mode ${String(mode)} is not supported by @headless-three/renderer. Use ClampToEdgeWrapping, RepeatWrapping, or MirroredRepeatWrapping.`);
312
+ }
313
+ function filterModeToString(mode) {
314
+ if (mode == null)
315
+ return undefined; // default = linear
316
+ if (mode === materials_part_001_1.NearestFilter ||
317
+ mode === materials_part_001_1.NearestMipmapNearestFilter ||
318
+ mode === materials_part_001_1.NearestMipmapLinearFilter) {
319
+ return 'nearest';
320
+ }
321
+ if (mode === materials_part_001_1.LinearFilter ||
322
+ mode === materials_part_001_1.LinearMipmapNearestFilter ||
323
+ mode === materials_part_001_1.LinearMipmapLinearFilter) {
324
+ return 'linear';
325
+ }
326
+ throw new Error(`texture.magFilter ${String(mode)} is not supported by @headless-three/renderer. Use NearestFilter or LinearFilter.`);
327
+ }
328
+ function minFilterModeToString(texture) {
329
+ const mode = texture?.minFilter;
330
+ if (mode == null)
331
+ return undefined;
332
+ const generateMipmaps = (0, materials_part_011_1.optionalTextureBoolean)(texture?.generateMipmaps, 'texture.generateMipmaps');
333
+ const allowMipmaps = generateMipmaps !== false || (0, materials_part_010_1.hasExplicitMipmaps)(texture);
334
+ if (mode === materials_part_001_1.NearestFilter)
335
+ return 'nearest';
336
+ if (mode === materials_part_001_1.LinearFilter)
337
+ return 'linear';
338
+ if (mode === materials_part_001_1.NearestMipmapNearestFilter)
339
+ return allowMipmaps ? 'nearest-mipmap-nearest' : 'nearest';
340
+ if (mode === materials_part_001_1.NearestMipmapLinearFilter)
341
+ return allowMipmaps ? 'nearest-mipmap-linear' : 'nearest';
342
+ if (mode === materials_part_001_1.LinearMipmapNearestFilter)
343
+ return allowMipmaps ? 'linear-mipmap-nearest' : 'linear';
344
+ if (mode === materials_part_001_1.LinearMipmapLinearFilter)
345
+ return allowMipmaps ? 'linear-mipmap-linear' : 'linear';
346
+ throw new Error(`texture.minFilter ${String(mode)} is not supported by @headless-three/renderer. Use NearestFilter, LinearFilter, or a Three.js mipmap minFilter constant.`);
347
+ }
348
+ function extractTextureFromSlot(map, label = 'texture', cache) {
349
+ if (!map)
350
+ return null;
351
+ (0, materials_part_010_1.assertSupportedTextureInput)(map, label, { allowMipmaps: true });
352
+ (0, materials_part_010_1.assertSupportedTwoDimensionalTextureSlot)(map, label);
353
+ (0, materials_part_011_1.textureUnpackAlignment)(map, label);
354
+ const sourceData = textureSourceData(map, label);
355
+ const image = map.image ?? sourceData;
356
+ if (!image)
357
+ return null;
358
+ const signature = cache ? (0, materials_part_010_1.texturePayloadSignature)(map, image, sourceData, label) : null;
359
+ if (signature) {
360
+ const cached = cache?.get(map);
361
+ if (cached && (0, materials_part_010_1.texturePayloadSignaturesEqual)(cached.signature, signature)) {
362
+ return cached.info;
363
+ }
364
+ }
365
+ const cacheInfo = (info) => {
366
+ if (signature) {
367
+ cache?.set(map, { signature, info });
368
+ }
369
+ return info;
370
+ };
371
+ // DataTexture style: { data: TypedArray, width, height }
372
+ if (image.data && image.width > 0 && image.height > 0) {
373
+ (0, materials_part_010_1.assertSupportedRawTextureType)(map.type, label, 'texture rendering');
374
+ const rgba = (0, materials_part_011_1.toRgba8)(image.data, image.width, image.height, { type: map.type, format: map.format });
375
+ if (rgba) {
376
+ const data = (0, materials_part_010_1.textureBytesWithExplicitMipmaps)(map, label, rgba, image.width, image.height);
377
+ return cacheInfo({ data: Buffer.from(data.buffer, data.byteOffset, data.byteLength), width: image.width, height: image.height });
378
+ }
379
+ throw (0, materials_part_010_1.unsupportedRawTextureDataError)(label, 'texture rendering');
380
+ }
381
+ // Encoded image (PNG/JPEG/WebP Buffer from file loaders)
382
+ if (Buffer.isBuffer(image)) {
383
+ (0, materials_part_010_1.assertNoEncodedExplicitMipmaps)(map, label);
384
+ (0, materials_part_010_1.assertNoEncodedPremultiplyAlpha)(map, label);
385
+ return cacheInfo({ data: image, width: 0, height: 0 });
386
+ }
387
+ if (image instanceof Uint8Array && !(image.width > 0)) {
388
+ (0, materials_part_010_1.assertNoEncodedExplicitMipmaps)(map, label);
389
+ (0, materials_part_010_1.assertNoEncodedPremultiplyAlpha)(map, label);
390
+ return cacheInfo({ data: Buffer.from(image.buffer, image.byteOffset, image.byteLength), width: 0, height: 0 });
391
+ }
392
+ // ImageData (canvas-based polyfill): { data: Uint8ClampedArray, width, height }
393
+ if (image.data instanceof Uint8ClampedArray && image.width > 0 && image.height > 0) {
394
+ const data = (0, materials_part_010_1.textureBytesWithExplicitMipmaps)(map, label, image.data, image.width, image.height);
395
+ return cacheInfo({
396
+ data: Buffer.from(data.buffer, data.byteOffset, data.byteLength),
397
+ width: image.width,
398
+ height: image.height,
399
+ });
400
+ }
401
+ const canvasImage = canvasLikeImageToRgba(image, label);
402
+ if (canvasImage) {
403
+ const data = (0, materials_part_010_1.textureBytesWithExplicitMipmaps)(map, label, canvasImage.rgba, canvasImage.width, canvasImage.height);
404
+ return cacheInfo({
405
+ data: Buffer.from(data.buffer, data.byteOffset, data.byteLength),
406
+ width: canvasImage.width,
407
+ height: canvasImage.height,
408
+ });
409
+ }
410
+ throw (0, materials_part_010_1.unsupportedTextureImageError)(label, 'texture rendering');
411
+ }
412
+ //# sourceMappingURL=materials.part-009.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"materials.part-009.js","sourceRoot":"","sources":["../api/materials.part-009.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import type { ThreeTextureLike } from './types';
2
+ import { TextureDataSignature, TextureMipmapSignature, TexturePayloadSignature } from './materials.part-009';
3
+ export declare function texturePayloadSignature(map: ThreeTextureLike, image: unknown, sourceData: unknown, label: string): TexturePayloadSignature | null;
4
+ export declare function textureImageDataSignature(image: unknown): TextureDataSignature | undefined;
5
+ export declare function textureDataSignature(data: unknown): TextureDataSignature | undefined;
6
+ export declare function textureImageDimension(image: unknown, key: 'width' | 'height'): unknown;
7
+ export declare function textureMipmapSignatures(map: ThreeTextureLike, label: string): TextureMipmapSignature[];
8
+ export declare function texturePayloadSignaturesEqual(a: TexturePayloadSignature, b: TexturePayloadSignature): boolean;
9
+ export declare function textureMipmapSignaturesEqual(a: TextureMipmapSignature[], b: TextureMipmapSignature[]): boolean;
10
+ export declare function textureDataSignaturesEqual(a: TextureDataSignature | undefined, b: TextureDataSignature | undefined): boolean;
11
+ export declare function hasExplicitMipmaps(texture: ThreeTextureLike | null | undefined, label?: string): boolean;
12
+ export declare function assertNoEncodedExplicitMipmaps(map: ThreeTextureLike, label: string): void;
13
+ export declare function assertNoEncodedPremultiplyAlpha(map: ThreeTextureLike, label: string): void;
14
+ export declare function textureBytesWithExplicitMipmaps(map: ThreeTextureLike, label: string, baseRgba: Uint8Array | Uint8ClampedArray, width: number, height: number): Uint8Array | Uint8ClampedArray;
15
+ export declare function unsupportedRawTextureDataError(label: string, usage: string): Error;
16
+ export declare function unsupportedTextureImageError(label: string, usage: string): Error;
17
+ export declare function assertSupportedRawTextureType(type: unknown, label: string, usage: string): void;
18
+ export declare function textureTypeName(type: unknown): string;
19
+ export declare function rawTextureChannelCount(data: ArrayLike<number>, width: number, height: number, label: string, usage: string): 1 | 2 | 3 | 4;
20
+ export declare function rawHalfFloatTextureDataToRgba(rawData: Uint16Array, width: number, height: number, label: string, usage: string, options?: {
21
+ premultiplyAlpha?: boolean;
22
+ format?: unknown;
23
+ }): Buffer;
24
+ export declare function rawFloatTextureDataToRgba(rawData: Float32Array, width: number, height: number, label: string, usage: string, options?: {
25
+ premultiplyAlpha?: boolean;
26
+ format?: unknown;
27
+ }): Buffer;
28
+ export declare function writeOneChannelRawRgba(out: Uint16Array | Float32Array, pixelIndex: number, value: number, opaqueAlpha: number, format: unknown): void;
29
+ export declare function writeTwoChannelRawRgba(out: Uint16Array | Float32Array, pixelIndex: number, first: number, second: number, opaqueAlpha: number, format: unknown): void;
30
+ export declare function assertSupportedBackgroundTexture(map: ThreeTextureLike, label: string): void;
31
+ export declare function assertSupportedTwoDimensionalTextureSlot(map: ThreeTextureLike, label: string): void;
32
+ export declare function isRefractionEnvironmentMapping(mapping: number | undefined): boolean;
33
+ export declare function assertSupportedEnvironmentTexture(map: ThreeTextureLike, label: string, options?: {
34
+ allowRefraction?: boolean;
35
+ }): void;
36
+ export declare function assertSupportedTextureInput(map: ThreeTextureLike, label: string, options?: {
37
+ allowMipmaps?: boolean;
38
+ }): void;
39
+ export interface PhysicalMapFeatureGates {
40
+ clearcoat: boolean;
41
+ sheen: boolean;
42
+ anisotropy: boolean;
43
+ iridescence: boolean;
44
+ transmission: boolean;
45
+ }
46
+ //# sourceMappingURL=materials.part-010.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"materials.part-010.d.ts","sourceRoot":"","sources":["../api/materials.part-010.ts"],"names":[],"mappings":"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"}