@zephyr3d/scene 0.9.27 → 0.10.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 (502) hide show
  1. package/README.md +60 -27
  2. package/dist/animation/animation_bank.js +634 -0
  3. package/dist/animation/animation_bank.js.map +1 -0
  4. package/dist/animation/animation_bank_gpu.js +256 -0
  5. package/dist/animation/animation_bank_gpu.js.map +1 -0
  6. package/dist/animation/animationset.js +54 -0
  7. package/dist/animation/animationset.js.map +1 -1
  8. package/dist/animation/cloth/gpu_cloth_component.js +406 -0
  9. package/dist/animation/cloth/gpu_cloth_component.js.map +1 -0
  10. package/dist/animation/cloth/gpu_cloth_system.js +332 -202
  11. package/dist/animation/cloth/gpu_cloth_system.js.map +1 -1
  12. package/dist/animation/gpu_animation_driver.js +289 -0
  13. package/dist/animation/gpu_animation_driver.js.map +1 -0
  14. package/dist/animation/joint_dynamics/collision.js +112 -1
  15. package/dist/animation/joint_dynamics/collision.js.map +1 -1
  16. package/dist/animation/joint_dynamics/controller.js +6 -0
  17. package/dist/animation/joint_dynamics/controller.js.map +1 -1
  18. package/dist/animation/joint_dynamics/joint_dynamics_system.js +11 -0
  19. package/dist/animation/joint_dynamics/joint_dynamics_system.js.map +1 -1
  20. package/dist/animation/joint_dynamics/solver.js +50 -12
  21. package/dist/animation/joint_dynamics/solver.js.map +1 -1
  22. package/dist/animation/joint_dynamics/types.js.map +1 -1
  23. package/dist/animation/skeleton.js +279 -55
  24. package/dist/animation/skeleton.js.map +1 -1
  25. package/dist/animation/skin_palette_atlas.js +252 -0
  26. package/dist/animation/skin_palette_atlas.js.map +1 -0
  27. package/dist/animation/spring/multi_chain_spring_system.js +298 -38
  28. package/dist/animation/spring/multi_chain_spring_system.js.map +1 -1
  29. package/dist/animation/spring/spring_chain.js +2 -0
  30. package/dist/animation/spring/spring_chain.js.map +1 -1
  31. package/dist/animation/spring/spring_collider.js +159 -21
  32. package/dist/animation/spring/spring_collider.js.map +1 -1
  33. package/dist/animation/spring/spring_particle.js +1 -0
  34. package/dist/animation/spring/spring_particle.js.map +1 -1
  35. package/dist/animation/spring/spring_solver.js +173 -0
  36. package/dist/animation/spring/spring_solver.js.map +1 -0
  37. package/dist/animation/spring/spring_system.js +249 -24
  38. package/dist/animation/spring/spring_system.js.map +1 -1
  39. package/dist/animation/spring_modifier.js +32 -1
  40. package/dist/animation/spring_modifier.js.map +1 -1
  41. package/dist/app/app.js +26 -0
  42. package/dist/app/app.js.map +1 -1
  43. package/dist/app/engine.js +86 -15
  44. package/dist/app/engine.js.map +1 -1
  45. package/dist/app/gamepad.js +191 -0
  46. package/dist/app/gamepad.js.map +1 -0
  47. package/dist/app/inputactions.js +271 -0
  48. package/dist/app/inputactions.js.map +1 -0
  49. package/dist/app/inputmgr.js +331 -22
  50. package/dist/app/inputmgr.js.map +1 -1
  51. package/dist/app/loading.js +138 -0
  52. package/dist/app/loading.js.map +1 -0
  53. package/dist/app/pipelinecache.js +209 -0
  54. package/dist/app/pipelinecache.js.map +1 -0
  55. package/dist/app/runtimescript.js +25 -0
  56. package/dist/app/runtimescript.js.map +1 -1
  57. package/dist/app/scriptingsystem.js +54 -0
  58. package/dist/app/scriptingsystem.js.map +1 -1
  59. package/dist/app/scriptregistry.js +7 -2
  60. package/dist/app/scriptregistry.js.map +1 -1
  61. package/dist/asset/asset_manifest.js +59 -0
  62. package/dist/asset/asset_manifest.js.map +1 -0
  63. package/dist/asset/asset_preload.js +258 -0
  64. package/dist/asset/asset_preload.js.map +1 -0
  65. package/dist/asset/assetmanager.js +117 -65
  66. package/dist/asset/assetmanager.js.map +1 -1
  67. package/dist/asset/loaders/ktx2/basis/LICENSE +201 -0
  68. package/dist/asset/loaders/ktx2/basis/basis_transcoder.js +2 -0
  69. package/dist/asset/loaders/ktx2/basis/basis_transcoder.wasm +0 -0
  70. package/dist/asset/loaders/ktx2/basis_location.js +17 -0
  71. package/dist/asset/loaders/ktx2/basis_location.js.map +1 -0
  72. package/dist/asset/loaders/ktx2/ktx2_loader.js +88 -0
  73. package/dist/asset/loaders/ktx2/ktx2_loader.js.map +1 -0
  74. package/dist/asset/loaders/ktx2/ktx2_targets.js +118 -0
  75. package/dist/asset/loaders/ktx2/ktx2_targets.js.map +1 -0
  76. package/dist/asset/loaders/ktx2/transcoder_pool.js +259 -0
  77. package/dist/asset/loaders/ktx2/transcoder_pool.js.map +1 -0
  78. package/dist/asset/mesh_lod_builder.js +104 -0
  79. package/dist/asset/mesh_lod_builder.js.map +1 -0
  80. package/dist/asset/mesh_settings.js +111 -0
  81. package/dist/asset/mesh_settings.js.map +1 -0
  82. package/dist/asset/meshopt_decoder.js +18 -0
  83. package/dist/asset/meshopt_decoder.js.map +1 -0
  84. package/dist/asset/meshopt_simplifier.js +26 -0
  85. package/dist/asset/meshopt_simplifier.js.map +1 -0
  86. package/dist/asset/model.js +171 -1
  87. package/dist/asset/model.js.map +1 -1
  88. package/dist/asset/texture_settings.js +231 -0
  89. package/dist/asset/texture_settings.js.map +1 -0
  90. package/dist/asset/zmsh_binary.js +131 -0
  91. package/dist/asset/zmsh_binary.js.map +1 -0
  92. package/dist/asset/zsdf_binary.js +111 -0
  93. package/dist/asset/zsdf_binary.js.map +1 -0
  94. package/dist/blitter/bilateralblur.js +1 -2
  95. package/dist/blitter/bilateralblur.js.map +1 -1
  96. package/dist/blitter/gaussianblur.js +1 -6
  97. package/dist/blitter/gaussianblur.js.map +1 -1
  98. package/dist/camera/base.js +31 -10
  99. package/dist/camera/base.js.map +1 -1
  100. package/dist/camera/camera.js +104 -178
  101. package/dist/camera/camera.js.map +1 -1
  102. package/dist/camera/follow.js +342 -0
  103. package/dist/camera/follow.js.map +1 -0
  104. package/dist/camera/fps.js +9 -7
  105. package/dist/camera/fps.js.map +1 -1
  106. package/dist/camera/orbit.js +46 -19
  107. package/dist/camera/orbit.js.map +1 -1
  108. package/dist/index.d.ts +25436 -15990
  109. package/dist/index.js +65 -11
  110. package/dist/index.js.map +1 -1
  111. package/dist/material/blinn.js +3 -0
  112. package/dist/material/blinn.js.map +1 -1
  113. package/dist/material/eye.js +1 -1
  114. package/dist/material/eye.js.map +1 -1
  115. package/dist/material/hair.js +2 -3
  116. package/dist/material/hair.js.map +1 -1
  117. package/dist/material/lambert.js +4 -1
  118. package/dist/material/lambert.js.map +1 -1
  119. package/dist/material/material.js +66 -4
  120. package/dist/material/material.js.map +1 -1
  121. package/dist/material/meshmaterial.js +118 -45
  122. package/dist/material/meshmaterial.js.map +1 -1
  123. package/dist/material/mixins/lightmodel/blinnphong.js +1 -1
  124. package/dist/material/mixins/lightmodel/blinnphong.js.map +1 -1
  125. package/dist/material/mixins/lightmodel/lambert.js +1 -1
  126. package/dist/material/mixins/lightmodel/lambert.js.map +1 -1
  127. package/dist/material/mixins/lightmodel/pbrblueprintmixin.js +34 -61
  128. package/dist/material/mixins/lightmodel/pbrblueprintmixin.js.map +1 -1
  129. package/dist/material/mixins/lightmodel/pbrmetallicroughness.js +16 -2
  130. package/dist/material/mixins/lightmodel/pbrmetallicroughness.js.map +1 -1
  131. package/dist/material/mixins/lightmodel/pbrspecularglossness.js +2 -1
  132. package/dist/material/mixins/lightmodel/pbrspecularglossness.js.map +1 -1
  133. package/dist/material/mixins/lit.js +191 -83
  134. package/dist/material/mixins/lit.js.map +1 -1
  135. package/dist/material/mixins/pbr/common.js +31 -206
  136. package/dist/material/mixins/pbr/common.js.map +1 -1
  137. package/dist/material/mtoon.js +1 -1
  138. package/dist/material/mtoon.js.map +1 -1
  139. package/dist/material/pbrmr.js +3 -0
  140. package/dist/material/pbrmr.js.map +1 -1
  141. package/dist/material/pbrsg.js +3 -0
  142. package/dist/material/pbrsg.js.map +1 -1
  143. package/dist/material/sdf_debug.js +78 -0
  144. package/dist/material/sdf_debug.js.map +1 -0
  145. package/dist/material/shader/helper.js +333 -191
  146. package/dist/material/shader/helper.js.map +1 -1
  147. package/dist/material/shader/terrain_blend.js +204 -43
  148. package/dist/material/shader/terrain_blend.js.map +1 -1
  149. package/dist/material/skin.js +331 -297
  150. package/dist/material/skin.js.map +1 -1
  151. package/dist/material/skinprofile.js +1058 -0
  152. package/dist/material/skinprofile.js.map +1 -0
  153. package/dist/material/sss.js +353 -0
  154. package/dist/material/sss.js.map +1 -0
  155. package/dist/material/sss_kernel.js +265 -0
  156. package/dist/material/sss_kernel.js.map +1 -0
  157. package/dist/material/sssprofile.js +879 -0
  158. package/dist/material/sssprofile.js.map +1 -0
  159. package/dist/material/subsurfaceprofile.js +4 -8
  160. package/dist/material/subsurfaceprofile.js.map +1 -1
  161. package/dist/material/terrain-cm.js +464 -188
  162. package/dist/material/terrain-cm.js.map +1 -1
  163. package/dist/material/unlit.js +3 -0
  164. package/dist/material/unlit.js.map +1 -1
  165. package/dist/material/water.js +1261 -1438
  166. package/dist/material/water.js.map +1 -1
  167. package/dist/node_modules/meshoptimizer/LICENSE +21 -0
  168. package/dist/node_modules/meshoptimizer/meshopt_decoder.js +197 -0
  169. package/dist/node_modules/meshoptimizer/meshopt_decoder.js.map +1 -0
  170. package/dist/node_modules/meshoptimizer/meshopt_simplifier.js +677 -0
  171. package/dist/node_modules/meshoptimizer/meshopt_simplifier.js.map +1 -0
  172. package/dist/physics/character.js +226 -0
  173. package/dist/physics/character.js.map +1 -0
  174. package/dist/physics/collider.js +209 -0
  175. package/dist/physics/collider.js.map +1 -0
  176. package/dist/physics/events.js +79 -0
  177. package/dist/physics/events.js.map +1 -0
  178. package/dist/physics/joint.js +272 -0
  179. package/dist/physics/joint.js.map +1 -0
  180. package/dist/physics/node_physics.js +234 -0
  181. package/dist/physics/node_physics.js.map +1 -0
  182. package/dist/physics/part.js +91 -0
  183. package/dist/physics/part.js.map +1 -0
  184. package/dist/physics/rigid_body.js +379 -0
  185. package/dist/physics/rigid_body.js.map +1 -0
  186. package/dist/physics/vehicle.js +335 -0
  187. package/dist/physics/vehicle.js.map +1 -0
  188. package/dist/physics/world.js +25 -0
  189. package/dist/physics/world.js.map +1 -0
  190. package/dist/posteffect/bloom.js +49 -14
  191. package/dist/posteffect/bloom.js.map +1 -1
  192. package/dist/posteffect/motionblur.js +106 -106
  193. package/dist/posteffect/motionblur.js.map +1 -1
  194. package/dist/posteffect/postsss.js +572 -0
  195. package/dist/posteffect/postsss.js.map +1 -0
  196. package/dist/posteffect/sao.js +2 -6
  197. package/dist/posteffect/sao.js.map +1 -1
  198. package/dist/posteffect/skinsss.js +605 -355
  199. package/dist/posteffect/skinsss.js.map +1 -1
  200. package/dist/posteffect/ssgi.js +91 -162
  201. package/dist/posteffect/ssgi.js.map +1 -1
  202. package/dist/posteffect/ssr.js +3 -11
  203. package/dist/posteffect/ssr.js.map +1 -1
  204. package/dist/posteffect/sss.js +4 -13
  205. package/dist/posteffect/sss.js.map +1 -1
  206. package/dist/posteffect/taa.js +1 -0
  207. package/dist/posteffect/taa.js.map +1 -1
  208. package/dist/render/abuffer_oit.js +3 -2
  209. package/dist/render/abuffer_oit.js.map +1 -1
  210. package/dist/render/clipmap.js +179 -64
  211. package/dist/render/clipmap.js.map +1 -1
  212. package/dist/render/cluster_light.js +958 -224
  213. package/dist/render/cluster_light.js.map +1 -1
  214. package/dist/render/cull_visitor.js +25 -5
  215. package/dist/render/cull_visitor.js.map +1 -1
  216. package/dist/render/debug_views.js +37 -0
  217. package/dist/render/debug_views.js.map +1 -0
  218. package/dist/render/depthpass.js +5 -1
  219. package/dist/render/depthpass.js.map +1 -1
  220. package/dist/render/drawable_mixin.js +53 -6
  221. package/dist/render/drawable_mixin.js.map +1 -1
  222. package/dist/render/dualdepthpeeling_oit.js +5 -5
  223. package/dist/render/dualdepthpeeling_oit.js.map +1 -1
  224. package/dist/render/envlight.js +196 -113
  225. package/dist/render/envlight.js.map +1 -1
  226. package/dist/render/fbm_wavegenerator.js +5 -10
  227. package/dist/render/fbm_wavegenerator.js.map +1 -1
  228. package/dist/render/fft_wavegenerator.js +247 -157
  229. package/dist/render/fft_wavegenerator.js.map +1 -1
  230. package/dist/render/gerstner_wavegenerator.js +16 -38
  231. package/dist/render/gerstner_wavegenerator.js.map +1 -1
  232. package/dist/render/gi/probe_volume.js +1334 -0
  233. package/dist/render/gi/probe_volume.js.map +1 -0
  234. package/dist/render/gi/scene_gi.js +282 -0
  235. package/dist/render/gi/scene_gi.js.map +1 -0
  236. package/dist/render/gi/voxel_atlas.js +198 -0
  237. package/dist/render/gi/voxel_atlas.js.map +1 -0
  238. package/dist/render/gi/voxel_lighting.js +652 -0
  239. package/dist/render/gi/voxel_lighting.js.map +1 -0
  240. package/dist/render/gi/voxel_scene.js +642 -0
  241. package/dist/render/gi/voxel_scene.js.map +1 -0
  242. package/dist/render/gi/voxelize_pass.js +223 -0
  243. package/dist/render/gi/voxelize_pass.js.map +1 -0
  244. package/dist/render/globalbindgroup_allocator.js +3 -2
  245. package/dist/render/globalbindgroup_allocator.js.map +1 -1
  246. package/dist/render/gpu_picking.js +9 -36
  247. package/dist/render/gpu_picking.js.map +1 -1
  248. package/dist/render/instance_culling.js +499 -0
  249. package/dist/render/instance_culling.js.map +1 -0
  250. package/dist/render/lightpass.js +19 -8
  251. package/dist/render/lightpass.js.map +1 -1
  252. package/dist/render/lod.js +46 -0
  253. package/dist/render/lod.js.map +1 -0
  254. package/dist/render/primitive.js +301 -9
  255. package/dist/render/primitive.js.map +1 -1
  256. package/dist/render/primitive_readback.js +209 -0
  257. package/dist/render/primitive_readback.js.map +1 -0
  258. package/dist/render/render_queue.js +162 -11
  259. package/dist/render/render_queue.js.map +1 -1
  260. package/dist/render/renderer.js +10 -7
  261. package/dist/render/renderer.js.map +1 -1
  262. package/dist/render/rendergraph/blackboard.js +14 -1
  263. package/dist/render/rendergraph/blackboard.js.map +1 -1
  264. package/dist/render/rendergraph/executor.js +136 -0
  265. package/dist/render/rendergraph/executor.js.map +1 -1
  266. package/dist/render/rendergraph/forward_plus_builder.js +272 -55
  267. package/dist/render/rendergraph/forward_plus_builder.js.map +1 -1
  268. package/dist/render/rendergraph/frame_graph_context.js +41 -0
  269. package/dist/render/rendergraph/frame_graph_context.js.map +1 -0
  270. package/dist/render/rendergraph/scene_render_context.js +31 -2
  271. package/dist/render/rendergraph/scene_render_context.js.map +1 -1
  272. package/dist/render/rendergraph/types.js.map +1 -1
  273. package/dist/render/renderpass.js +28 -5
  274. package/dist/render/renderpass.js.map +1 -1
  275. package/dist/render/sdf/box_allocator.js +98 -0
  276. package/dist/render/sdf/box_allocator.js.map +1 -0
  277. package/dist/render/sdf/global_sdf.js +865 -0
  278. package/dist/render/sdf/global_sdf.js.map +1 -0
  279. package/dist/render/sdf/scene_sdf.js +562 -0
  280. package/dist/render/sdf/scene_sdf.js.map +1 -0
  281. package/dist/render/sdf/sdf_atlas.js +227 -0
  282. package/dist/render/sdf/sdf_atlas.js.map +1 -0
  283. package/dist/render/sdf/sdf_programs.js +42 -0
  284. package/dist/render/sdf/sdf_programs.js.map +1 -0
  285. package/dist/render/sdf/sdf_view.js +199 -0
  286. package/dist/render/sdf/sdf_view.js.map +1 -0
  287. package/dist/render/sdf/waterline.js +610 -0
  288. package/dist/render/sdf/waterline.js.map +1 -0
  289. package/dist/render/shadow_mask_pass.js +142 -25
  290. package/dist/render/shadow_mask_pass.js.map +1 -1
  291. package/dist/render/shore_wave_generator.js +1193 -0
  292. package/dist/render/shore_wave_generator.js.map +1 -0
  293. package/dist/render/sky.js +516 -86
  294. package/dist/render/sky.js.map +1 -1
  295. package/dist/render/transmission_thickness_pass.js +477 -0
  296. package/dist/render/transmission_thickness_pass.js.map +1 -0
  297. package/dist/render/underwater.js +58 -158
  298. package/dist/render/underwater.js.map +1 -1
  299. package/dist/render/virtualtexture/virtual_texture.js +1214 -0
  300. package/dist/render/virtualtexture/virtual_texture.js.map +1 -0
  301. package/dist/render/volumetric_cloud/cloud_common.js +472 -0
  302. package/dist/render/volumetric_cloud/cloud_common.js.map +1 -0
  303. package/dist/render/volumetric_cloud/cloud_noise.js +189 -0
  304. package/dist/render/volumetric_cloud/cloud_noise.js.map +1 -0
  305. package/dist/render/volumetric_cloud/debug_view.js +131 -0
  306. package/dist/render/volumetric_cloud/debug_view.js.map +1 -0
  307. package/dist/render/volumetric_cloud/resources.js +380 -0
  308. package/dist/render/volumetric_cloud/resources.js.map +1 -0
  309. package/dist/render/volumetric_cloud/sky_cache.js +380 -0
  310. package/dist/render/volumetric_cloud/sky_cache.js.map +1 -0
  311. package/dist/render/volumetric_cloud/volumetric_cloud.js +318 -0
  312. package/dist/render/volumetric_cloud/volumetric_cloud.js.map +1 -0
  313. package/dist/render/water_caustics.js +134 -319
  314. package/dist/render/water_caustics.js.map +1 -1
  315. package/dist/render/water_foam.js +627 -0
  316. package/dist/render/water_foam.js.map +1 -0
  317. package/dist/render/water_interaction.js +1795 -0
  318. package/dist/render/water_interaction.js.map +1 -0
  319. package/dist/render/weightedblended_oit.js +3 -3
  320. package/dist/render/weightedblended_oit.js.map +1 -1
  321. package/dist/scene/basesprite.js +9 -4
  322. package/dist/scene/basesprite.js.map +1 -1
  323. package/dist/scene/batchgroup.js +108 -12
  324. package/dist/scene/batchgroup.js.map +1 -1
  325. package/dist/scene/environment.js +28 -7
  326. package/dist/scene/environment.js.map +1 -1
  327. package/dist/scene/foliage.js +1020 -0
  328. package/dist/scene/foliage.js.map +1 -0
  329. package/dist/scene/foliage_buckets.js +147 -0
  330. package/dist/scene/foliage_buckets.js.map +1 -0
  331. package/dist/scene/foliage_mask.js +358 -0
  332. package/dist/scene/foliage_mask.js.map +1 -0
  333. package/dist/scene/hair.js +15 -4
  334. package/dist/scene/hair.js.map +1 -1
  335. package/dist/scene/light.js +179 -13
  336. package/dist/scene/light.js.map +1 -1
  337. package/dist/scene/mesh.js +327 -45
  338. package/dist/scene/mesh.js.map +1 -1
  339. package/dist/scene/meshdrawable.js +6 -0
  340. package/dist/scene/meshdrawable.js.map +1 -1
  341. package/dist/scene/msdftext.js +9 -3
  342. package/dist/scene/msdftext.js.map +1 -1
  343. package/dist/scene/msdftextsprite.js +9 -3
  344. package/dist/scene/msdftextsprite.js.map +1 -1
  345. package/dist/scene/particlesys.js +8 -2
  346. package/dist/scene/particlesys.js.map +1 -1
  347. package/dist/scene/physics_settings.js +157 -0
  348. package/dist/scene/physics_settings.js.map +1 -0
  349. package/dist/scene/scene.js +190 -44
  350. package/dist/scene/scene.js.map +1 -1
  351. package/dist/scene/scene_node.js +147 -6
  352. package/dist/scene/scene_node.js.map +1 -1
  353. package/dist/scene/terrain-cm/bladegrassmaterial.js +735 -0
  354. package/dist/scene/terrain-cm/bladegrassmaterial.js.map +1 -0
  355. package/dist/scene/terrain-cm/grass.js +881 -42
  356. package/dist/scene/terrain-cm/grass.js.map +1 -1
  357. package/dist/scene/terrain-cm/grass_gpu.js +929 -0
  358. package/dist/scene/terrain-cm/grass_gpu.js.map +1 -0
  359. package/dist/scene/terrain-cm/grassmaterial.js +180 -9
  360. package/dist/scene/terrain-cm/grassmaterial.js.map +1 -1
  361. package/dist/scene/terrain-cm/terrain-cm.js +465 -36
  362. package/dist/scene/terrain-cm/terrain-cm.js.map +1 -1
  363. package/dist/scene/terrain-cm/terrain_gi_albedo.js +257 -0
  364. package/dist/scene/terrain-cm/terrain_gi_albedo.js.map +1 -0
  365. package/dist/scene/terrain-cm/terrain_rvt.js +395 -0
  366. package/dist/scene/terrain-cm/terrain_rvt.js.map +1 -0
  367. package/dist/scene/update_queue.js +54 -0
  368. package/dist/scene/update_queue.js.map +1 -0
  369. package/dist/scene/water.js +633 -268
  370. package/dist/scene/water.js.map +1 -1
  371. package/dist/scene/water_surface_sampler.js +324 -0
  372. package/dist/scene/water_surface_sampler.js.map +1 -0
  373. package/dist/scene/wind.js +317 -0
  374. package/dist/scene/wind.js.map +1 -0
  375. package/dist/shaders/atmosphere.js +388 -166
  376. package/dist/shaders/atmosphere.js.map +1 -1
  377. package/dist/shaders/fog.js +100 -32
  378. package/dist/shaders/fog.js.map +1 -1
  379. package/dist/shaders/gi.js +365 -0
  380. package/dist/shaders/gi.js.map +1 -0
  381. package/dist/shaders/ltc_rect.js +202 -0
  382. package/dist/shaders/ltc_rect.js.map +1 -0
  383. package/dist/shaders/misc.js +1 -10
  384. package/dist/shaders/misc.js.map +1 -1
  385. package/dist/shaders/noise.js +5 -1
  386. package/dist/shaders/noise.js.map +1 -1
  387. package/dist/shaders/probes.js +309 -0
  388. package/dist/shaders/probes.js.map +1 -0
  389. package/dist/shaders/sdf.js +537 -0
  390. package/dist/shaders/sdf.js.map +1 -0
  391. package/dist/shaders/shadow.js +104 -70
  392. package/dist/shaders/shadow.js.map +1 -1
  393. package/dist/shaders/skin_brdf.js +243 -0
  394. package/dist/shaders/skin_brdf.js.map +1 -0
  395. package/dist/shaders/ssgi.js +63 -0
  396. package/dist/shaders/ssgi.js.map +1 -0
  397. package/dist/shaders/ssgi_reprojection.js +118 -0
  398. package/dist/shaders/ssgi_reprojection.js.map +1 -0
  399. package/dist/shaders/ssr.js +6 -159
  400. package/dist/shaders/ssr.js.map +1 -1
  401. package/dist/shaders/temporal.js +38 -27
  402. package/dist/shaders/temporal.js.map +1 -1
  403. package/dist/shaders/water.js +32 -82
  404. package/dist/shaders/water.js.map +1 -1
  405. package/dist/shaders/water_medium.js +7 -21
  406. package/dist/shaders/water_medium.js.map +1 -1
  407. package/dist/shadow/dom.js +110 -19
  408. package/dist/shadow/dom.js.map +1 -1
  409. package/dist/shadow/esm.js +3 -3
  410. package/dist/shadow/esm.js.map +1 -1
  411. package/dist/shadow/pcf_opt.js +15 -48
  412. package/dist/shadow/pcf_opt.js.map +1 -1
  413. package/dist/shadow/pcf_pd.js +15 -53
  414. package/dist/shadow/pcf_pd.js.map +1 -1
  415. package/dist/shadow/pcss.js +34 -9
  416. package/dist/shadow/pcss.js.map +1 -1
  417. package/dist/shadow/shadow_impl.js +3 -8
  418. package/dist/shadow/shadow_impl.js.map +1 -1
  419. package/dist/shadow/shadow_region.js +40 -2
  420. package/dist/shadow/shadow_region.js.map +1 -1
  421. package/dist/shadow/shadowmapper.js +93 -53
  422. package/dist/shadow/shadowmapper.js.map +1 -1
  423. package/dist/shadow/ssm.js +18 -72
  424. package/dist/shadow/ssm.js.map +1 -1
  425. package/dist/shadow/vsm.js +3 -3
  426. package/dist/shadow/vsm.js.map +1 -1
  427. package/dist/shapes/shape.js +44 -1
  428. package/dist/shapes/shape.js.map +1 -1
  429. package/dist/utility/buoyancy.js +287 -0
  430. package/dist/utility/buoyancy.js.map +1 -0
  431. package/dist/utility/physical.js +10 -1
  432. package/dist/utility/physical.js.map +1 -1
  433. package/dist/utility/pmrem.js +17 -43
  434. package/dist/utility/pmrem.js.map +1 -1
  435. package/dist/utility/sdf/bake.js +435 -0
  436. package/dist/utility/sdf/bake.js.map +1 -0
  437. package/dist/utility/sdf/bvh.js +576 -0
  438. package/dist/utility/sdf/bvh.js.map +1 -0
  439. package/dist/utility/serialization/manager.js +34 -6
  440. package/dist/utility/serialization/manager.js.map +1 -1
  441. package/dist/utility/serialization/scene/animation.js +46 -5
  442. package/dist/utility/serialization/scene/animation.js.map +1 -1
  443. package/dist/utility/serialization/scene/batch.js +11 -4
  444. package/dist/utility/serialization/scene/batch.js.map +1 -1
  445. package/dist/utility/serialization/scene/camera.js +87 -254
  446. package/dist/utility/serialization/scene/camera.js.map +1 -1
  447. package/dist/utility/serialization/scene/cloth.js +25 -0
  448. package/dist/utility/serialization/scene/cloth.js.map +1 -0
  449. package/dist/utility/serialization/scene/common.js +14 -6
  450. package/dist/utility/serialization/scene/common.js.map +1 -1
  451. package/dist/utility/serialization/scene/foliage.js +821 -0
  452. package/dist/utility/serialization/scene/foliage.js.map +1 -0
  453. package/dist/utility/serialization/scene/hair.js +11 -4
  454. package/dist/utility/serialization/scene/hair.js.map +1 -1
  455. package/dist/utility/serialization/scene/light.js +115 -7
  456. package/dist/utility/serialization/scene/light.js.map +1 -1
  457. package/dist/utility/serialization/scene/material.js +388 -220
  458. package/dist/utility/serialization/scene/material.js.map +1 -1
  459. package/dist/utility/serialization/scene/mesh.js +69 -4
  460. package/dist/utility/serialization/scene/mesh.js.map +1 -1
  461. package/dist/utility/serialization/scene/node.js +140 -5
  462. package/dist/utility/serialization/scene/node.js.map +1 -1
  463. package/dist/utility/serialization/scene/node_physics.js +1318 -0
  464. package/dist/utility/serialization/scene/node_physics.js.map +1 -0
  465. package/dist/utility/serialization/scene/particle.js +11 -4
  466. package/dist/utility/serialization/scene/particle.js.map +1 -1
  467. package/dist/utility/serialization/scene/physics.js +120 -0
  468. package/dist/utility/serialization/scene/physics.js.map +1 -0
  469. package/dist/utility/serialization/scene/primitive.js +124 -10
  470. package/dist/utility/serialization/scene/primitive.js.map +1 -1
  471. package/dist/utility/serialization/scene/scene.js +1687 -51
  472. package/dist/utility/serialization/scene/scene.js.map +1 -1
  473. package/dist/utility/serialization/scene/sprite.js +11 -4
  474. package/dist/utility/serialization/scene/sprite.js.map +1 -1
  475. package/dist/utility/serialization/scene/terrain.js +163 -33
  476. package/dist/utility/serialization/scene/terrain.js.map +1 -1
  477. package/dist/utility/serialization/scene/text.js +11 -4
  478. package/dist/utility/serialization/scene/text.js.map +1 -1
  479. package/dist/utility/serialization/scene/water.js +1543 -264
  480. package/dist/utility/serialization/scene/water.js.map +1 -1
  481. package/dist/utility/serialization/types.js.map +1 -1
  482. package/dist/utility/shprojector.js +10 -22
  483. package/dist/utility/shprojector.js.map +1 -1
  484. package/dist/utility/textures/foam.js +170 -0
  485. package/dist/utility/textures/foam.js.map +1 -0
  486. package/dist/utility/textures/ggxlut.js +17 -43
  487. package/dist/utility/textures/ggxlut.js.map +1 -1
  488. package/dist/utility/textures/ltcdata.js +4 -4
  489. package/dist/utility/textures/ltcdata.js.map +1 -1
  490. package/dist/utility/textures/ltclut.js +16 -6
  491. package/dist/utility/textures/ltclut.js.map +1 -1
  492. package/dist/utility/unsupported.js +24 -0
  493. package/dist/utility/unsupported.js.map +1 -0
  494. package/dist/values.js +13 -1
  495. package/dist/values.js.map +1 -1
  496. package/package.json +25 -12
  497. package/src/asset/loaders/ktx2/basis/LICENSE +201 -0
  498. package/src/asset/loaders/ktx2/basis/basis_transcoder.js +2 -0
  499. package/src/asset/loaders/ktx2/basis/basis_transcoder.wasm +0 -0
  500. package/src/asset/meshoptimizer/LICENSE +21 -0
  501. package/dist/animation/joint_dynamics/convex_collider.js +0 -320
  502. package/dist/animation/joint_dynamics/convex_collider.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"material.js","sources":["../../../../src/utility/serialization/scene/material.ts"],"sourcesContent":["import type { FaceMode, Texture2D } from '@zephyr3d/device';\r\nimport type { BlendMode } from '../../../material';\r\nimport {\r\n BlinnMaterial,\r\n HairMaterial,\r\n HairStrandMaterial,\r\n LambertMaterial,\r\n MeshMaterial,\r\n MToonMaterial,\r\n ParticleMaterial,\r\n PBRBluePrintMaterial,\r\n PBRBluePrintMaterialInstance,\r\n PBRMetallicRoughnessMaterial,\r\n PBRSpecularGlossinessMaterial,\r\n EyeMaterial,\r\n SkinMaterial,\r\n SubsurfaceProfile,\r\n type MToonOutlineWidthMode,\r\n type SubsurfaceProfilePreset,\r\n SpriteBlueprintMaterial,\r\n UnlitMaterial,\r\n type HairStrandDirection,\r\n type HairShadingModel\r\n} from '../../../material';\r\nimport type { PBRBlueprintOutputName } from '../../../material/pbrblueprint';\r\nimport { defineProps, type PropertyAccessor, type SerializableClass } from '../types';\r\nimport type { Nullable } from '@zephyr3d/base';\r\nimport { Vector2, Vector3, Vector4 } from '@zephyr3d/base';\r\nimport { getTextureProps } from './common';\r\nimport type { ResourceManager } from '../manager';\r\nimport { getMeshMaterialInstanceUniformsClass } from './common';\r\nimport { SpriteMaterial } from '../../../material/sprite';\r\nimport { StandardSpriteMaterial } from '../../../material/sprite_std';\r\nimport type { PBRReflectionMode } from '../../../material/mixins/lightmodel/pbrmetallicroughness';\r\n\r\ntype PBRMaterial = PBRMetallicRoughnessMaterial | PBRSpecularGlossinessMaterial;\r\ntype LitPropTypes = LambertMaterial | BlinnMaterial | SkinMaterial | HairMaterial | PBRMaterial;\r\ntype UnlitPropTypes = UnlitMaterial | LitPropTypes;\r\n\r\nfunction createBlueprintOutputHiddenPredicate(_outputs: readonly PBRBlueprintOutputName[]) {\r\n return function (this: any) {\r\n return this instanceof PBRBluePrintMaterial;\r\n };\r\n}\r\n\r\nfunction canEditParentMaterialProperty(material: MeshMaterial) {\r\n return (\r\n !material.$isInstance &&\r\n !(material as MeshMaterial & { isBlueprintMaterialInstance?: boolean }).isBlueprintMaterialInstance\r\n );\r\n}\r\n\r\nfunction isBlueprintMaterialAssetInstanceWithInheritedParentProps(material: MeshMaterial) {\r\n return !!(material as MeshMaterial & { isBlueprintMaterialInstance?: boolean }).isBlueprintMaterialInstance;\r\n}\r\n\r\nfunction isBlueprintMaterialAssetInstance(material: MeshMaterial): material is MeshMaterial & {\r\n isBlueprintMaterialInstance: true;\r\n markMaterialPropertyOverridden?: (propName: string) => void;\r\n} {\r\n return !!(material as MeshMaterial & { isBlueprintMaterialInstance?: boolean }).isBlueprintMaterialInstance;\r\n}\r\n\r\nfunction allowBlueprintInstanceOverride(material: MeshMaterial, propName: string, setter: () => void) {\r\n setter();\r\n if (isBlueprintMaterialAssetInstance(material)) {\r\n material.markMaterialPropertyOverridden?.(propName);\r\n }\r\n}\r\n\r\ntype BlueprintInstanceSubsurfaceMaterial = PBRMetallicRoughnessMaterial & {\r\n isBlueprintMaterialInstance?: boolean;\r\n setBlueprintInstanceSubsurfacePreset?: (val: SubsurfaceProfilePreset) => void;\r\n setBlueprintInstanceSubsurfaceStrength?: (val: number) => void;\r\n setBlueprintInstanceSubsurfaceScale?: (val: number) => void;\r\n setBlueprintInstanceSubsurfaceProfileValue?: <K extends keyof SubsurfaceProfile>(\r\n propName: string,\r\n key: K,\r\n value: SubsurfaceProfile[K]\r\n ) => void;\r\n};\r\n\r\nfunction canEditBlueprintInstanceSubsurfaceProfile(material: PBRMetallicRoughnessMaterial) {\r\n return (\r\n !!material.subsurfaceProfile &&\r\n !!(material as BlueprintInstanceSubsurfaceMaterial).isBlueprintMaterialInstance\r\n );\r\n}\r\n\r\nfunction getBlueprintInstanceSubsurfaceMaterial(\r\n material: PBRMetallicRoughnessMaterial\r\n): BlueprintInstanceSubsurfaceMaterial {\r\n return material as BlueprintInstanceSubsurfaceMaterial;\r\n}\r\n\r\nexport function getSubsurfaceProfileClass(): SerializableClass {\r\n return {\r\n ctor: SubsurfaceProfile,\r\n name: 'SubsurfaceProfile',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Preset',\r\n type: 'string',\r\n default: 'skin_default',\r\n options: {\r\n label: 'LookPreset',\r\n enum: {\r\n labels: [\r\n 'Skin Thin',\r\n 'Skin Default',\r\n 'Skin HeavyMakeup',\r\n 'Wax Backlit',\r\n 'Wax Soft',\r\n 'Jade Backlit',\r\n 'Jade Soft'\r\n ],\r\n values: [\r\n 'skin_thin',\r\n 'skin_default',\r\n 'skin_heavy_makeup',\r\n 'wax_backlit',\r\n 'wax_soft',\r\n 'jade_backlit',\r\n 'jade_soft'\r\n ]\r\n }\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.str[0] = this.preset;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.preset = value.str[0] as SubsurfaceProfilePreset;\r\n }\r\n },\r\n {\r\n name: 'ScatterColor',\r\n type: 'rgb',\r\n default: [1, 0.45, 0.17],\r\n options: {\r\n label: 'MeanFreePathColor',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.meanFreePathColor.x;\r\n value.num[1] = this.meanFreePathColor.y;\r\n value.num[2] = this.meanFreePathColor.z;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.meanFreePathColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'ScatterDistance',\r\n type: 'float',\r\n default: 0.92,\r\n options: {\r\n label: 'MeanFreePathDistance',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 8\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.meanFreePathDistance;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.meanFreePathDistance = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ScatterWeight',\r\n type: 'float',\r\n default: 0.82,\r\n options: {\r\n label: 'ScatterWeight',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 8\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.strength;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.strength = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ScatterScale',\r\n type: 'float',\r\n default: 0.96,\r\n options: {\r\n label: 'ScatterScale',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 8\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.scale;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.scale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'WorldUnitScale',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n label: 'WorldUnitScale',\r\n animatable: true,\r\n minValue: 0.05,\r\n maxValue: 4\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.worldUnitScale;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.worldUnitScale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'BoundaryColorBleed',\r\n type: 'float',\r\n default: 0.22,\r\n options: {\r\n label: 'BoundaryColorBleed',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.boundaryColorBleed;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.boundaryColorBleed = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'TransmissionTintColor',\r\n type: 'rgb',\r\n default: [1, 0.46, 0.34],\r\n options: {\r\n label: 'TransmissionTintColor',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.transmissionTintColor.x;\r\n value.num[1] = this.transmissionTintColor.y;\r\n value.num[2] = this.transmissionTintColor.z;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.transmissionTintColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'ExtinctionScale',\r\n type: 'float',\r\n default: 1.06,\r\n options: {\r\n label: 'ExtinctionScale',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.extinctionScale;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.extinctionScale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'NormalScale',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n label: 'NormalScale',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 2\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.normalScale;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.normalScale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ScatteringDistribution',\r\n type: 'float',\r\n default: 0.6,\r\n options: {\r\n label: 'ScatteringDistribution',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.scatteringDistribution;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.scatteringDistribution = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'SpecularDetailSoftness',\r\n type: 'float',\r\n default: 0.78,\r\n options: {\r\n label: 'SpecularDetailSoftness',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.specularDetailSoftness;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.specularDetailSoftness = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'SpecularDetailRadius',\r\n type: 'float',\r\n default: 1.8,\r\n options: {\r\n label: 'SpecularDetailRadius',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.specularDetailRadius;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.specularDetailRadius = value.num[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\nfunction getPBRCommonProps(manager: ResourceManager): PropertyAccessor<PBRMaterial>[] {\r\n const supportsSSSThicknessAuthoring = function (this: PBRMaterial) {\r\n return (\r\n (!this.$isInstance || isBlueprintMaterialAssetInstance(this as unknown as MeshMaterial)) &&\r\n !!(this.transmission || (this as PBRMaterial & { subsurfaceProfile?: unknown }).subsurfaceProfile)\r\n );\r\n };\r\n return defineProps([\r\n {\r\n name: 'IOR',\r\n description: 'Index of refraction for the material surface',\r\n type: 'float',\r\n default: 1.5,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.ior;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.ior = value.num[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'OcclusionStrength',\r\n description: 'Strength multiplier for the occlusion texture effect',\r\n type: 'float',\r\n phase: 2,\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.occlusionStrength;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.occlusionStrength = value.num[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['AO']),\r\n isValid(this: PBRMaterial) {\r\n return !this.$isInstance && !!this.occlusionTexture;\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'occlusionTexture', '2D', false, 0, undefined, ['AO']),\r\n {\r\n name: 'EmissiveColor',\r\n description: 'Base self-illumination color emitted by the material',\r\n type: 'rgb',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.emissiveColor.x;\r\n value.num[1] = this.emissiveColor.y;\r\n value.num[2] = this.emissiveColor.z;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.emissiveColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Emissive']),\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.emissiveColor : [0, 0, 0];\r\n }\r\n },\r\n {\r\n name: 'EmissiveStrength',\r\n description:\r\n 'Display-referred intensity multiplier for the emissive color and texture, used by legacy ' +\r\n 'lighting. Physical lighting uses EmissiveLuminance instead.',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.emissiveStrength;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.emissiveStrength = value.num[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Emissive']),\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.emissiveStrength : 1;\r\n }\r\n },\r\n {\r\n name: 'EmissiveLuminance',\r\n description:\r\n 'Emissive multiplier used by physical lighting. With EmissiveExposureWeight at 1 it is a ' +\r\n 'luminance in cd/m²: a display is 200-1000, a neon sign 5,000-20,000, a sunlit white ' +\r\n 'surface ~25,000. With the weight at 0, as on imported glTF/FBX materials, the exposure ' +\r\n 'cancels out and it is a display-referred multiplier where the useful range is about [0, 1].',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.emissiveLuminance;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.emissiveLuminance = value.num[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Emissive']),\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.emissiveLuminance : 1000;\r\n }\r\n },\r\n {\r\n name: 'EmissiveExposureWeight',\r\n description:\r\n 'How strongly the emissive term follows camera exposure, and therefore what unit ' +\r\n 'EmissiveLuminance carries. 1 reads it as a cd/m² luminance that dims as the camera stops ' +\r\n 'down; 0 cancels the exposure out, making it a display-referred multiplier that ignores ' +\r\n 'aperture, shutter and ISO. Imported glTF/FBX materials are set to 0.',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.emissiveExposureWeight;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.emissiveExposureWeight = value.num[0];\r\n },\r\n // Materials are not scene-bound, so this cannot be gated on lightingMode. It is inert in\r\n // legacy anyway (pre-exposure is 1 there), so it stays visible like the other emissive props.\r\n isHidden: createBlueprintOutputHiddenPredicate(['Emissive']),\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.emissiveExposureWeight : 1;\r\n }\r\n },\r\n {\r\n name: 'RectSpecularScale',\r\n type: 'float',\r\n options: {\r\n label: 'RectSpecularScale',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.rectSpecularScale;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.rectSpecularScale = value.num[0];\r\n },\r\n getDefaultValue(this: PBRMaterial) {\r\n if (this instanceof PBRBluePrintMaterialInstance) {\r\n return this.parentMaterial?.rectSpecularScale ?? 1;\r\n }\r\n return this.$isInstance ? this.coreMaterial.rectSpecularScale : 1;\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'emissiveTexture', '2D', true, 0, undefined, ['Emissive']),\r\n ...getTextureProps<PBRMaterial>(manager, 'specularTexture', '2D', false, 0, undefined, [\r\n 'SpecularWeight'\r\n ]),\r\n {\r\n name: 'Transmission',\r\n description: 'If true, enables light transmission through the material',\r\n type: 'bool',\r\n phase: 0,\r\n default: false,\r\n get(this: PBRMaterial, value) {\r\n value.bool[0] = this.transmission;\r\n },\r\n set(this: PBRMaterial, value) {\r\n allowBlueprintInstanceOverride(this as unknown as MeshMaterial, 'Transmission', () => {\r\n this.transmission = value.bool[0];\r\n });\r\n },\r\n isValid() {\r\n return !this.$isInstance || isBlueprintMaterialAssetInstance(this as unknown as MeshMaterial);\r\n }\r\n },\r\n {\r\n name: 'TransmissionFactor',\r\n description: 'Amount of transmitted light, from fully opaque to fully transparent',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.2,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.transmissionFactor;\r\n },\r\n set(this: PBRMaterial, value) {\r\n allowBlueprintInstanceOverride(this as unknown as MeshMaterial, 'TransmissionFactor', () => {\r\n this.transmissionFactor = value.num[0];\r\n });\r\n },\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.transmissionFactor : 0.2;\r\n },\r\n isValid() {\r\n return supportsSSSThicknessAuthoring.call(this);\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'transmissionTexture', '2D', false, 1, function () {\r\n return this.transmission || !!(this as PBRMaterial & { subsurfaceProfile?: unknown }).subsurfaceProfile;\r\n }),\r\n {\r\n name: 'ThicknessFactor',\r\n description: 'Physical thickness used by transmission and volume attenuation',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.35,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 99999\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.thicknessFactor;\r\n },\r\n set(this: PBRMaterial, value) {\r\n allowBlueprintInstanceOverride(this as unknown as MeshMaterial, 'ThicknessFactor', () => {\r\n this.thicknessFactor = value.num[0];\r\n });\r\n },\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.thicknessFactor : 0.35;\r\n },\r\n isValid() {\r\n return supportsSSSThicknessAuthoring.call(this);\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'thicknessTexture', '2D', false, 1, function () {\r\n return this.transmission || !!(this as PBRMaterial & { subsurfaceProfile?: unknown }).subsurfaceProfile;\r\n }),\r\n {\r\n name: 'AttenuationColor',\r\n description: 'Color tint applied to transmitted light as it travels through the material',\r\n type: 'rgb',\r\n phase: 1,\r\n default: [1, 0.5, 0.4],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.attenuationColor.x;\r\n value.num[1] = this.attenuationColor.y;\r\n value.num[2] = this.attenuationColor.z;\r\n },\r\n set(this: PBRMaterial, value) {\r\n allowBlueprintInstanceOverride(this as unknown as MeshMaterial, 'AttenuationColor', () => {\r\n this.attenuationColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n });\r\n },\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.attenuationColor : [1, 0.5, 0.4];\r\n },\r\n isValid() {\r\n return supportsSSSThicknessAuthoring.call(this);\r\n }\r\n },\r\n {\r\n name: 'AttenuationDistance',\r\n description: 'Distance over which transmitted light is attenuated inside the material',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.6,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 99999\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.attenuationDistance;\r\n },\r\n set(this: PBRMaterial, value) {\r\n allowBlueprintInstanceOverride(this as unknown as MeshMaterial, 'AttenuationDistance', () => {\r\n this.attenuationDistance = value.num[0];\r\n });\r\n },\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.attenuationDistance : 0.6;\r\n },\r\n isValid() {\r\n return supportsSSSThicknessAuthoring.call(this);\r\n }\r\n },\r\n {\r\n name: 'Iridescence',\r\n description: 'If true, enables thin-film iridescence on the material surface',\r\n type: 'bool',\r\n phase: 0,\r\n default: false,\r\n get(this: PBRMaterial, value) {\r\n value.bool[0] = this.iridescence;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.iridescence = value.bool[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'IridescenceFactor',\r\n description: 'Strength of the iridescence effect',\r\n type: 'float',\r\n phase: 1,\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.iridescenceFactor;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.iridescenceFactor = value.num[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance && !!this.iridescence;\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'iridescenceTexture', '2D', false, 1, function () {\r\n return this.iridescence;\r\n }),\r\n {\r\n name: 'IridescenceIOR',\r\n description: 'Index of refraction used for the iridescence layer',\r\n type: 'float',\r\n phase: 1,\r\n default: 1.3,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.iridescenceIor;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.iridescenceIor = value.num[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance && !!this.iridescence;\r\n }\r\n },\r\n {\r\n name: 'IridescenceThicknessMin',\r\n description: 'Minimum thin-film thickness used for iridescence, typically in nanometers',\r\n type: 'float',\r\n phase: 1,\r\n default: 100,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1000\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.iridescenceThicknessMin;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.iridescenceThicknessMin = value.num[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance && !!this.iridescence;\r\n }\r\n },\r\n {\r\n name: 'IridescenceThicknessMax',\r\n description: 'Maximum thin-film thickness used for iridescence, typically in nanometers',\r\n type: 'float',\r\n phase: 1,\r\n default: 400,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1000\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.iridescenceThicknessMax;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.iridescenceThicknessMax = value.num[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance && !!this.iridescence;\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'iridescenceThicknessTexture', '2D', false, 1, function () {\r\n return this.iridescence;\r\n }),\r\n {\r\n name: 'ClearCoat',\r\n description: 'If true, enables a clear coat layer on top of the material',\r\n type: 'bool',\r\n phase: 0,\r\n default: false,\r\n get(this: PBRMaterial, value) {\r\n value.bool[0] = this.clearcoat;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.clearcoat = value.bool[0];\r\n },\r\n isValid() {\r\n return (\r\n !this.$isInstance &&\r\n !isBlueprintMaterialAssetInstanceWithInheritedParentProps(this as unknown as MeshMaterial)\r\n );\r\n }\r\n },\r\n {\r\n name: 'ClearCoatIntensity',\r\n description: 'Strength of the clear coat layer',\r\n type: 'float',\r\n phase: 1,\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.clearcoatIntensity;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.clearcoatIntensity = value.num[0];\r\n },\r\n isValid() {\r\n return (\r\n !this.$isInstance &&\r\n !isBlueprintMaterialAssetInstanceWithInheritedParentProps(this as unknown as MeshMaterial) &&\r\n !!this.clearcoat\r\n );\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'clearcoatIntensityTexture', '2D', false, 1, function () {\r\n return (\r\n !isBlueprintMaterialAssetInstanceWithInheritedParentProps(this as unknown as MeshMaterial) &&\r\n this.clearcoat\r\n );\r\n }),\r\n {\r\n name: 'ClearCoatRoughnessFactor',\r\n description: 'Roughness of the clear coat layer',\r\n type: 'float',\r\n phase: 1,\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.clearcoatRoughnessFactor;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.clearcoatRoughnessFactor = value.num[0];\r\n },\r\n isValid() {\r\n return (\r\n !this.$isInstance &&\r\n !isBlueprintMaterialAssetInstanceWithInheritedParentProps(this as unknown as MeshMaterial) &&\r\n !!this.clearcoat\r\n );\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'clearcoatRoughnessTexture', '2D', false, 1, function () {\r\n return (\r\n !isBlueprintMaterialAssetInstanceWithInheritedParentProps(this as unknown as MeshMaterial) &&\r\n this.clearcoat\r\n );\r\n }),\r\n ...getTextureProps<PBRMaterial>(manager, 'clearcoatNormalTexture', '2D', false, 1, function () {\r\n return (\r\n !isBlueprintMaterialAssetInstanceWithInheritedParentProps(this as unknown as MeshMaterial) &&\r\n this.clearcoat\r\n );\r\n }),\r\n {\r\n name: 'Sheen',\r\n description: 'If true, enables a soft fabric-like sheen layer',\r\n type: 'bool',\r\n phase: 0,\r\n default: false,\r\n get(this: PBRMaterial, value) {\r\n value.bool[0] = this.sheen;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.sheen = value.bool[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'SheenColorFactor',\r\n description: 'Color of the sheen layer',\r\n type: 'rgb',\r\n phase: 1,\r\n default: [0, 0, 0],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.sheenColorFactor.x;\r\n value.num[1] = this.sheenColorFactor.y;\r\n value.num[2] = this.sheenColorFactor.z;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.sheenColorFactor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n isValid() {\r\n return !this.$isInstance && !!this.sheen;\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'sheenColorTexture', '2D', true, 1, function () {\r\n return this.sheen;\r\n }),\r\n {\r\n name: 'SheenRoughnessFactor',\r\n description: 'Roughness of the sheen layer',\r\n type: 'float',\r\n phase: 1,\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.sheenRoughnessFactor;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.sheenRoughnessFactor = value.num[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance && !!this.sheen;\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'sheenRoughnessTexture', '2D', false, 1, function () {\r\n return this.sheen;\r\n }),\r\n ...getLitMaterialProps(manager)\r\n ]);\r\n}\r\n\r\nfunction getLitMaterialProps(manager: ResourceManager): PropertyAccessor<LitPropTypes>[] {\r\n return defineProps([\r\n ...getUnlitMaterialProps(manager),\r\n {\r\n name: 'NormalScale',\r\n description: 'Strength multiplier for normal map X and Y components',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 3\r\n },\r\n get(this: LitPropTypes, value) {\r\n value.num[0] = this.normalScale;\r\n },\r\n set(this: LitPropTypes, value) {\r\n allowBlueprintInstanceOverride(this as unknown as MeshMaterial, 'NormalScale', () => {\r\n this.normalScale = value.num[0];\r\n });\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Normal']),\r\n getDefaultValue(this: LitPropTypes) {\r\n if (this instanceof PBRBluePrintMaterialInstance) {\r\n return this.parentMaterial?.normalScale ?? 1;\r\n }\r\n return this.$isInstance ? this.coreMaterial.normalScale : 1;\r\n },\r\n isValid() {\r\n return !this.$isInstance || isBlueprintMaterialAssetInstance(this as unknown as MeshMaterial);\r\n }\r\n },\r\n {\r\n name: 'NormalFlipY',\r\n description: 'If true, flips the green (Y) component sampled from the normal map',\r\n type: 'bool',\r\n default: false,\r\n get(this: LitPropTypes, value) {\r\n value.bool[0] = this.normalFlipY;\r\n },\r\n set(this: LitPropTypes, value) {\r\n allowBlueprintInstanceOverride(this as unknown as MeshMaterial, 'NormalFlipY', () => {\r\n this.normalFlipY = value.bool[0];\r\n });\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Normal']),\r\n getDefaultValue(this: LitPropTypes) {\r\n if (this instanceof PBRBluePrintMaterialInstance) {\r\n return this.parentMaterial?.normalFlipY ?? false;\r\n }\r\n return this.$isInstance ? this.coreMaterial.normalFlipY : false;\r\n },\r\n isValid() {\r\n return !this.$isInstance || isBlueprintMaterialAssetInstance(this as unknown as MeshMaterial);\r\n }\r\n },\r\n {\r\n name: 'doubleSidedLighting',\r\n description: 'If true, lighting is evaluated on both sides of the surface',\r\n type: 'bool',\r\n default: true,\r\n isValid(this: LitPropTypes) {\r\n return !this.$isInstance;\r\n },\r\n get(this: LitPropTypes, value) {\r\n value.bool[0] = this.doubleSidedLighting;\r\n },\r\n set(this: LitPropTypes, value) {\r\n allowBlueprintInstanceOverride(this as unknown as MeshMaterial, 'doubleSidedLighting', () => {\r\n this.doubleSidedLighting = value.bool[0];\r\n });\r\n },\r\n getDefaultValue(this: LitPropTypes) {\r\n if (this instanceof PBRBluePrintMaterialInstance) {\r\n return this.parentMaterial?.doubleSidedLighting ?? true;\r\n }\r\n // Must match what the constructor actually sets - mixinLight enables\r\n // FEATURE_DOUBLE_SIDED_LIGHTING - because this value is used both to\r\n // decide whether to omit the property when saving and to fill it in\r\n // when it is absent on load. Returning false here made every asset\r\n // written before this accessor existed (all of which omitted the key,\r\n // since true was then the assumed default) load as single-sided.\r\n return this.$isInstance ? this.coreMaterial.doubleSidedLighting : true;\r\n }\r\n },\r\n {\r\n name: 'vertexNormal',\r\n description: 'If true, uses vertex normals for lighting and normal mapping',\r\n type: 'bool',\r\n default: true,\r\n get(this: LitPropTypes, value) {\r\n value.bool[0] = this.vertexNormal;\r\n },\r\n set(this: LitPropTypes, value) {\r\n this.vertexNormal = value.bool[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Normal']),\r\n isValid(this: LitPropTypes) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'vertexTangent',\r\n description: 'If true, uses vertex tangents for tangent-space normal mapping',\r\n type: 'bool',\r\n default: false,\r\n get(this: LitPropTypes, value) {\r\n value.bool[0] = this.vertexTangent;\r\n },\r\n set(this: LitPropTypes, value) {\r\n this.vertexTangent = value.bool[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Tangent']),\r\n isValid(this: LitPropTypes) {\r\n return !this.$isInstance && !!this.vertexNormal;\r\n }\r\n },\r\n ...getTextureProps<LitPropTypes>(manager, 'normalTexture', '2D', false, 0, undefined, ['Normal'])\r\n ]);\r\n}\r\n\r\nfunction getUnlitMaterialProps(manager: ResourceManager): PropertyAccessor<UnlitPropTypes>[] {\r\n return defineProps([\r\n {\r\n name: 'vertexColor',\r\n description: 'If true, multiplies the material color by per-vertex color data',\r\n type: 'bool',\r\n default: false,\r\n get(this: UnlitPropTypes, value) {\r\n value.bool[0] = this.vertexColor;\r\n },\r\n set(this: UnlitPropTypes, value) {\r\n this.vertexColor = value.bool[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['BaseColor']),\r\n isValid(this: UnlitPropTypes) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'AlbedoColor',\r\n description: 'Base RGBA color of the material before lighting',\r\n type: 'rgba',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: UnlitPropTypes, value) {\r\n const color = this.albedoColor;\r\n value.num[0] = color.x;\r\n value.num[1] = color.y;\r\n value.num[2] = color.z;\r\n value.num[3] = color.w;\r\n },\r\n set(this: UnlitPropTypes, value) {\r\n this.albedoColor = new Vector4(value.num[0], value.num[1], value.num[2], value.num[3]);\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['BaseColor', 'Opacity']),\r\n getDefaultValue(this: UnlitPropTypes) {\r\n return this.$isInstance ? this.coreMaterial.albedoColor : [1, 1, 1, 1];\r\n }\r\n },\r\n ...getTextureProps<UnlitPropTypes>(manager, 'albedoTexture', '2D', true, 0, undefined, [\r\n 'BaseColor',\r\n 'Opacity'\r\n ])\r\n ]);\r\n}\r\n\r\nfunction getMToonMaterialProps(manager: ResourceManager): PropertyAccessor<MToonMaterial>[] {\r\n return defineProps([\r\n {\r\n name: 'AlbedoColor',\r\n description: 'Base RGBA color of the MToon material',\r\n type: 'rgba',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: MToonMaterial, value) {\r\n const color = this.albedoColor;\r\n value.num[0] = color.x;\r\n value.num[1] = color.y;\r\n value.num[2] = color.z;\r\n value.num[3] = color.w;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.albedoColor = new Vector4(value.num[0], value.num[1], value.num[2], value.num[3]);\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.albedoColor : [1, 1, 1, 1];\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'albedoTexture', '2D', true, 0),\r\n {\r\n name: 'NormalScale',\r\n description: 'Scalar applied to the MToon normal texture',\r\n type: 'float',\r\n phase: 1,\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 2\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.normalScale;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.normalScale = value.num[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance && !!this.normalTexture;\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'normalTexture', '2D', false, 0),\r\n {\r\n name: 'DoubleSidedLighting',\r\n description: 'If true, MToon lighting is evaluated on both sides of the surface',\r\n type: 'bool',\r\n default: true,\r\n get(this: MToonMaterial, value) {\r\n value.bool[0] = this.doubleSidedLighting;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.doubleSidedLighting = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'EmissiveColor',\r\n description: 'Base self-illumination color emitted by the MToon material',\r\n type: 'rgb',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.emissiveColor.x;\r\n value.num[1] = this.emissiveColor.y;\r\n value.num[2] = this.emissiveColor.z;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.emissiveColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.emissiveColor : [0, 0, 0];\r\n }\r\n },\r\n {\r\n name: 'EmissiveStrength',\r\n description: 'Intensity multiplier for the MToon emissive color and texture',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.emissiveStrength;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.emissiveStrength = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.emissiveStrength : 1;\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'emissiveTexture', '2D', true, 0),\r\n {\r\n name: 'ShadeColorFactor',\r\n description: 'MToon shadow-side color factor',\r\n type: 'rgb',\r\n default: [0, 0, 0],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.shadeColorFactor.x;\r\n value.num[1] = this.shadeColorFactor.y;\r\n value.num[2] = this.shadeColorFactor.z;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.shadeColorFactor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.shadeColorFactor : [0, 0, 0];\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'shadeMultiplyTexture', '2D', true, 0),\r\n {\r\n name: 'ShadingShiftFactor',\r\n description: 'MToon terminator shift factor',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: -1,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.shadingShiftFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.shadingShiftFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.shadingShiftFactor : 0;\r\n }\r\n },\r\n {\r\n name: 'ShadingShiftTextureScale',\r\n description: 'Scale applied to the MToon shading shift texture',\r\n type: 'float',\r\n phase: 1,\r\n default: 1,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.shadingShiftTextureScale;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.shadingShiftTextureScale = value.num[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance && !!this.shadingShiftTexture;\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'shadingShiftTexture', '2D', false, 0),\r\n {\r\n name: 'ShadingToonyFactor',\r\n description: 'MToon shadow edge sharpness factor',\r\n type: 'float',\r\n default: 0.9,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 0.99\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.shadingToonyFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.shadingToonyFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.shadingToonyFactor : 0.9;\r\n }\r\n },\r\n {\r\n name: 'GIEqualizationFactor',\r\n description: 'MToon indirect lighting equalization factor',\r\n type: 'float',\r\n default: 0.9,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.giEqualizationFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.giEqualizationFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.giEqualizationFactor : 0.9;\r\n }\r\n },\r\n {\r\n name: 'MatcapFactor',\r\n description: 'MToon matcap color factor',\r\n type: 'rgb',\r\n default: [1, 1, 1],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.matcapFactor.x;\r\n value.num[1] = this.matcapFactor.y;\r\n value.num[2] = this.matcapFactor.z;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.matcapFactor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.matcapFactor : [1, 1, 1];\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'matcapTexture', '2D', true, 0),\r\n {\r\n name: 'ParametricRimColorFactor',\r\n description: 'MToon parametric rim color factor',\r\n type: 'rgb',\r\n default: [0, 0, 0],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.parametricRimColorFactor.x;\r\n value.num[1] = this.parametricRimColorFactor.y;\r\n value.num[2] = this.parametricRimColorFactor.z;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.parametricRimColorFactor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.parametricRimColorFactor : [0, 0, 0];\r\n }\r\n },\r\n {\r\n name: 'ParametricRimFresnelPowerFactor',\r\n description: 'MToon parametric rim Fresnel power factor',\r\n type: 'float',\r\n default: 5,\r\n options: {\r\n animatable: true,\r\n minValue: 0\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.parametricRimFresnelPowerFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.parametricRimFresnelPowerFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.parametricRimFresnelPowerFactor : 5;\r\n }\r\n },\r\n {\r\n name: 'ParametricRimLiftFactor',\r\n description: 'MToon parametric rim lift factor',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.parametricRimLiftFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.parametricRimLiftFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.parametricRimLiftFactor : 0;\r\n }\r\n },\r\n {\r\n name: 'RimLightingMixFactor',\r\n description: 'MToon rim lighting mix factor',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.rimLightingMixFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.rimLightingMixFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.rimLightingMixFactor : 1;\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'rimMultiplyTexture', '2D', true, 0),\r\n {\r\n name: 'OutlineWidthMode',\r\n description: 'MToon outline width mode',\r\n type: 'string',\r\n default: 'none',\r\n options: {\r\n enum: {\r\n labels: ['None', 'World Coordinates', 'Screen Coordinates'],\r\n values: ['none', 'worldCoordinates', 'screenCoordinates']\r\n }\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.str[0] = this.outlineWidthMode;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.outlineWidthMode = value.str[0] as MToonOutlineWidthMode;\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'OutlineWidthFactor',\r\n description: 'MToon outline width factor',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.outlineWidthFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.outlineWidthFactor = value.num[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance && this.outlineWidthMode !== 'none';\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'outlineWidthMultiplyTexture', '2D', false, 1, function () {\r\n return this.outlineWidthMode !== 'none';\r\n }),\r\n {\r\n name: 'OutlineColorFactor',\r\n description: 'MToon outline color factor',\r\n type: 'rgb',\r\n default: [0, 0, 0],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.outlineColorFactor.x;\r\n value.num[1] = this.outlineColorFactor.y;\r\n value.num[2] = this.outlineColorFactor.z;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.outlineColorFactor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance && this.outlineWidthMode !== 'none';\r\n }\r\n },\r\n {\r\n name: 'OutlineLightingMixFactor',\r\n description: 'MToon outline lighting mix factor',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.outlineLightingMixFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.outlineLightingMixFactor = value.num[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance && this.outlineWidthMode !== 'none';\r\n }\r\n },\r\n {\r\n name: 'OutlineUsesTangentNormals',\r\n description: 'Use the tangent attribute xyz as smooth normals for MToon outline expansion',\r\n type: 'boolean',\r\n default: false,\r\n get(this: MToonMaterial, value) {\r\n value.bool[0] = this.outlineUsesTangentNormals;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.outlineUsesTangentNormals = value.bool[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance && this.outlineWidthMode !== 'none';\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'uvAnimationMaskTexture', '2D', false, 0),\r\n {\r\n name: 'UVAnimationScrollXSpeedFactor',\r\n description: 'MToon UV animation scroll speed on the X axis',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.uvAnimationScrollXSpeedFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.uvAnimationScrollXSpeedFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.uvAnimationScrollXSpeedFactor : 0;\r\n }\r\n },\r\n {\r\n name: 'UVAnimationScrollYSpeedFactor',\r\n description: 'MToon UV animation scroll speed on the Y axis',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.uvAnimationScrollYSpeedFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.uvAnimationScrollYSpeedFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.uvAnimationScrollYSpeedFactor : 0;\r\n }\r\n },\r\n {\r\n name: 'UVAnimationRotationSpeedFactor',\r\n description: 'MToon UV animation rotation speed',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.uvAnimationRotationSpeedFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.uvAnimationRotationSpeedFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.uvAnimationRotationSpeedFactor : 0;\r\n }\r\n },\r\n {\r\n name: 'TransparentWithZWrite',\r\n description: 'If true, transparent MToon pixels also write depth',\r\n type: 'bool',\r\n default: false,\r\n get(this: MToonMaterial, value) {\r\n value.bool[0] = this.transparentWithZWrite;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.transparentWithZWrite = value.bool[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'RenderQueueOffsetNumber',\r\n description: 'MToon render queue offset number',\r\n type: 'int',\r\n default: 0,\r\n options: {\r\n minValue: -9,\r\n maxValue: 9\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.renderQueueOffsetNumber;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.renderQueueOffsetNumber = value.num[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance;\r\n }\r\n }\r\n ]);\r\n}\r\n\r\n/** @internal */\r\nexport function getMeshMaterialClass(): SerializableClass[] {\r\n return [\r\n {\r\n ctor: MeshMaterial,\r\n name: 'MeshMaterial',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'AlphaCutoff',\r\n description:\r\n 'If greater then 0, pixels which have alpha smaller than alpha cutoff will be discarded',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MeshMaterial, value) {\r\n value.num[0] = this.alphaCutoff;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.alphaCutoff = value.num[0];\r\n },\r\n isValid(this: MeshMaterial) {\r\n return canEditParentMaterialProperty(this);\r\n }\r\n },\r\n {\r\n name: 'AlphaToCoverage',\r\n description: 'If true, alpha-to-coverage will be enabled',\r\n type: 'bool',\r\n default: false,\r\n get(this: MeshMaterial, value) {\r\n value.bool[0] = this.alphaToCoverage;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.alphaToCoverage = value.bool[0];\r\n },\r\n isValid(this: MeshMaterial) {\r\n return canEditParentMaterialProperty(this);\r\n }\r\n },\r\n {\r\n name: 'AlphaDither',\r\n description: 'If true, alpha-dithering will be enabled',\r\n type: 'bool',\r\n default: false,\r\n get(this: MeshMaterial, value) {\r\n value.bool[0] = this.alphaDither;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.alphaDither = value.bool[0];\r\n },\r\n isValid(this: MeshMaterial) {\r\n return canEditParentMaterialProperty(this) && this.alphaCutoff > 0;\r\n }\r\n },\r\n {\r\n name: 'BlendMode',\r\n description: 'Blending mode for this material',\r\n type: 'string',\r\n options: {\r\n enum: { labels: ['None', 'Blend', 'Additive'], values: ['none', 'blend', 'additive'] }\r\n },\r\n default: 'none',\r\n get(this: MeshMaterial, value) {\r\n value.str[0] = this.blendMode;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.blendMode = value.str[0] as BlendMode;\r\n },\r\n isValid(this: MeshMaterial) {\r\n return canEditParentMaterialProperty(this);\r\n }\r\n },\r\n {\r\n name: 'TransparentShadowCaster',\r\n type: 'bool',\r\n default: false,\r\n get(this: MeshMaterial, value) {\r\n value.bool[0] = this.transparentShadowCaster;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.transparentShadowCaster = value.bool[0];\r\n },\r\n isValid(this: MeshMaterial) {\r\n return canEditParentMaterialProperty(this) && this.blendMode !== 'none';\r\n }\r\n },\r\n {\r\n name: 'ShadowAlphaCutoff',\r\n type: 'float',\r\n default: 0.5,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MeshMaterial, value) {\r\n value.num[0] = this.shadowAlphaCutoff;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.shadowAlphaCutoff = value.num[0];\r\n },\r\n isValid(this: MeshMaterial) {\r\n return (\r\n canEditParentMaterialProperty(this) &&\r\n this.blendMode !== 'none' &&\r\n this.transparentShadowCaster\r\n );\r\n }\r\n },\r\n {\r\n name: 'CullMode',\r\n description: 'Cull mode for this material',\r\n type: 'string',\r\n options: {\r\n enum: { labels: ['None', 'Front', 'Back'], values: ['none', 'front', 'back'] }\r\n },\r\n default: 'back',\r\n get(this: MeshMaterial, value) {\r\n value.str[0] = this.cullMode;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.cullMode = value.str[0] as FaceMode;\r\n },\r\n isValid(this: MeshMaterial) {\r\n return canEditParentMaterialProperty(this);\r\n }\r\n },\r\n {\r\n name: 'Opacity',\r\n description: 'Opacity value for this material, no effect if blendingMode is `none`',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n default: 1,\r\n get(this: MeshMaterial, value) {\r\n value.num[0] = this.opacity;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.opacity = value.num[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Opacity']),\r\n getDefaultValue(this: MeshMaterial) {\r\n return this.$isInstance ? this.coreMaterial.opacity : 1;\r\n }\r\n },\r\n {\r\n name: 'TAAStrength',\r\n description: 'TAA strength for this material',\r\n type: 'float',\r\n options: {\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n default: 15 / 16,\r\n get(this: MeshMaterial, value) {\r\n value.num[0] = this.TAAStrength;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.TAAStrength = value.num[0];\r\n },\r\n isValid(this: MeshMaterial) {\r\n return canEditParentMaterialProperty(this);\r\n }\r\n }\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(MeshMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getSpriteMaterialClass(_manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: SpriteMaterial,\r\n name: 'SpriteMaterial',\r\n parent: MeshMaterial,\r\n getProps() {\r\n return [];\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(SpriteMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getStandardSpriteMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: StandardSpriteMaterial,\r\n name: 'StandardSpriteMaterial',\r\n parent: SpriteMaterial,\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'SpriteTexture',\r\n description: 'Texture file path for the sprite',\r\n type: 'object',\r\n default: '',\r\n options: {\r\n mimeTypes: [\r\n 'image/jpeg',\r\n 'image/png',\r\n 'image/tga',\r\n 'image/vnd.radiance',\r\n 'image/x-dds',\r\n 'image/webp'\r\n ]\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(value) {\r\n value.str[0] = manager.getAssetId(this.spriteTexture) ?? '';\r\n },\r\n async set(this: StandardSpriteMaterial, value) {\r\n if (!value || !value.str[0]) {\r\n this.spriteTexture = null;\r\n } else {\r\n const assetId = value.str[0];\r\n let tex: Nullable<Texture2D>;\r\n try {\r\n tex = await manager.fetchTexture<Texture2D>(assetId, {\r\n linearColorSpace: false\r\n });\r\n } catch (err) {\r\n console.error(`Load asset failed: ${value.str[0]}: ${err}`);\r\n tex = null;\r\n }\r\n if (tex?.isTexture2D()) {\r\n this.spriteTexture = tex;\r\n } else {\r\n console.error('Invalid texture type');\r\n }\r\n }\r\n },\r\n isValid() {\r\n return !this.$isInstance;\r\n }\r\n }\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(StandardSpriteMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getParticleMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: ParticleMaterial,\r\n name: 'ParticleMaterial',\r\n parent: MeshMaterial,\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'AlphaMap',\r\n description: 'Alpha texture file path',\r\n type: 'object',\r\n default: '',\r\n options: {\r\n mimeTypes: [\r\n 'image/jpeg',\r\n 'image/png',\r\n 'image/tga',\r\n 'image/vnd.radiance',\r\n 'image/x-dds',\r\n 'image/webp'\r\n ]\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: ParticleMaterial, value) {\r\n value.str[0] = manager.getAssetId(this.alphaMap) ?? '';\r\n },\r\n async set(this: ParticleMaterial, value) {\r\n if (!value || !value.str[0]) {\r\n this.alphaMap = null;\r\n } else {\r\n const assetId = value.str[0];\r\n let tex: Nullable<Texture2D> = null;\r\n try {\r\n tex = await manager.fetchTexture<Texture2D>(assetId, { linearColorSpace: true });\r\n } catch (err) {\r\n console.error(`Load asset failed: ${value.str[0]}: ${err}`);\r\n }\r\n if (tex?.isTexture2D()) {\r\n this.alphaMap = tex;\r\n } else {\r\n console.error('Invalid albedo texture');\r\n }\r\n }\r\n }\r\n },\r\n {\r\n name: 'RampMap',\r\n description: 'Ramp texture file path',\r\n type: 'object',\r\n default: '',\r\n options: {\r\n mimeTypes: [\r\n 'image/jpeg',\r\n 'image/png',\r\n 'image/tga',\r\n 'image/vnd.radiance',\r\n 'image/x-dds',\r\n 'image/webp'\r\n ]\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: ParticleMaterial, value) {\r\n value.str[0] = manager.getAssetId(this.rampMap) ?? '';\r\n },\r\n async set(this: ParticleMaterial, value) {\r\n if (!value || !value.str[0]) {\r\n this.rampMap = null;\r\n } else {\r\n const assetId = value.str[0];\r\n let tex: Nullable<Texture2D> = null;\r\n try {\r\n tex = await manager.fetchTexture<Texture2D>(assetId);\r\n } catch (err) {\r\n console.error(`Load asset failed: ${value.str[0]}: ${err}`);\r\n }\r\n if (tex?.isTexture2D()) {\r\n this.rampMap = tex;\r\n } else {\r\n console.error('Invalid albedo texture');\r\n }\r\n }\r\n }\r\n }\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(ParticleMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getPBRBluePrintMaterialClass(): SerializableClass[] {\r\n return [\r\n {\r\n ctor: PBRBluePrintMaterial,\r\n parent: PBRMetallicRoughnessMaterial,\r\n name: 'PBRBluePrintMaterial',\r\n getProps() {\r\n return defineProps([]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(PBRBluePrintMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getPBRBluePrintMaterialInstanceClass(): SerializableClass[] {\r\n return [\r\n {\r\n ctor: PBRBluePrintMaterialInstance,\r\n parent: PBRBluePrintMaterial,\r\n name: 'PBRBluePrintMaterialInstance',\r\n getProps() {\r\n return defineProps([]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(PBRBluePrintMaterialInstance)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getSpriteBlueprintMaterialClass(): SerializableClass[] {\r\n return [\r\n {\r\n ctor: SpriteBlueprintMaterial,\r\n parent: MeshMaterial,\r\n name: 'SpriteBlueprintMaterial',\r\n getProps() {\r\n return [];\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(SpriteBlueprintMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getUnlitMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: UnlitMaterial,\r\n parent: MeshMaterial,\r\n name: 'UnlitMaterial',\r\n getProps() {\r\n return getUnlitMaterialProps(manager);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(UnlitMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getMToonMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: MToonMaterial,\r\n parent: MeshMaterial,\r\n name: 'MToonMaterial',\r\n getProps() {\r\n return getMToonMaterialProps(manager);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(MToonMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getLambertMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: LambertMaterial,\r\n parent: MeshMaterial,\r\n name: 'LambertMaterial',\r\n getProps() {\r\n return getLitMaterialProps(manager);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(LambertMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getBlinnMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: BlinnMaterial,\r\n parent: MeshMaterial,\r\n name: 'BlinnMaterial',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Shininess',\r\n description: 'Shininess value',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 2048\r\n },\r\n get(this: BlinnMaterial, value) {\r\n value.num[0] = this.shininess;\r\n },\r\n set(this: BlinnMaterial, value) {\r\n this.shininess = value.num[0];\r\n },\r\n getDefaultValue(this: BlinnMaterial) {\r\n return this.$isInstance ? this.coreMaterial.shininess : 32;\r\n }\r\n },\r\n ...getLitMaterialProps(manager)\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(BlinnMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getHairMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: HairMaterial,\r\n parent: MeshMaterial,\r\n name: 'HairMaterial',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'ShadingModel',\r\n description:\r\n 'Which scattering model shades the hair. Marschner derives the lobes from the fibre; Kajiya-Kay is the art-directed double lobe',\r\n type: 'string',\r\n default: 'kajiya-kay',\r\n options: {\r\n enum: {\r\n labels: ['Kajiya-Kay (double lobe)', 'Marschner (fibre)'],\r\n values: ['kajiya-kay', 'marschner']\r\n }\r\n },\r\n get(this: HairMaterial, value) {\r\n value.str[0] = this.shadingModel;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.shadingModel = value.str[0] as HairShadingModel;\r\n },\r\n isValid(this: HairMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'Specular1Color',\r\n description: 'Color of the primary (sharp, near-white) specular lobe',\r\n type: 'rgb',\r\n default: [0.35, 0.35, 0.35],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.specular1Color.x;\r\n value.num[1] = this.specular1Color.y;\r\n value.num[2] = this.specular1Color.z;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.specular1Color = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'Specular1Power',\r\n description: 'Exponent of the primary specular lobe',\r\n type: 'float',\r\n default: 160,\r\n options: {\r\n animatable: true,\r\n minValue: 1,\r\n maxValue: 1024\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.specular1Power;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.specular1Power = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Specular1Shift',\r\n description: 'Shift of the primary specular lobe along the strand',\r\n type: 'float',\r\n default: -0.15,\r\n options: {\r\n animatable: true,\r\n minValue: -1,\r\n maxValue: 1\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.specular1Shift;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.specular1Shift = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Specular2Color',\r\n description: 'Color of the secondary (broad, hair-tinted) specular lobe',\r\n type: 'rgb',\r\n default: [0.5, 0.45, 0.4],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.specular2Color.x;\r\n value.num[1] = this.specular2Color.y;\r\n value.num[2] = this.specular2Color.z;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.specular2Color = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'Specular2Power',\r\n description: 'Exponent of the secondary specular lobe',\r\n type: 'float',\r\n default: 40,\r\n options: {\r\n animatable: true,\r\n minValue: 1,\r\n maxValue: 1024\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.specular2Power;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.specular2Power = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Specular2Shift',\r\n description: 'Shift of the secondary specular lobe along the strand',\r\n type: 'float',\r\n default: 0.1,\r\n options: {\r\n animatable: true,\r\n minValue: -1,\r\n maxValue: 1\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.specular2Shift;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.specular2Shift = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'StrandDirection',\r\n description: 'Which TBN axis runs along the hair strands in the card atlas',\r\n type: 'string',\r\n default: 'binormal',\r\n options: {\r\n enum: {\r\n labels: ['Tangent (U)', 'Binormal (V)'],\r\n values: ['tangent', 'binormal']\r\n }\r\n },\r\n get(this: HairMaterial, value) {\r\n value.str[0] = this.strandDirection;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.strandDirection = value.str[0] as HairStrandDirection;\r\n },\r\n isValid(this: HairMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n // The Marschner parameters are deliberately not gated on ShadingModel.\r\n // An invalid property is skipped on both save and load, so gating them\r\n // would drop one model's tuning every time the material was saved under\r\n // the other - and switching back and forth is exactly what comparing\r\n // two models involves.\r\n {\r\n name: 'MarschnerShift',\r\n description: 'Cuticle tilt that separates the three Marschner lobes, in sine units',\r\n type: 'float',\r\n default: 0.035,\r\n options: {\r\n animatable: true,\r\n minValue: -0.2,\r\n maxValue: 0.2\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.marschnerShift;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.marschnerShift = value.num[0];\r\n },\r\n isValid(this: HairMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'MarschnerRoughness',\r\n description: 'Longitudinal width of the Marschner lobes',\r\n type: 'float',\r\n default: 0.3,\r\n options: {\r\n animatable: true,\r\n minValue: 0.005,\r\n maxValue: 1\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.marschnerRoughness;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.marschnerRoughness = value.num[0];\r\n },\r\n isValid(this: HairMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'MarschnerIOR',\r\n description: 'Refractive index of the fibre. 1.55 is the measured value for keratin',\r\n type: 'float',\r\n default: 1.55,\r\n options: {\r\n animatable: true,\r\n minValue: 1.01,\r\n maxValue: 2.5\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.marschnerIOR;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.marschnerIOR = value.num[0];\r\n },\r\n isValid(this: HairMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'MarschnerAbsorption',\r\n description: 'How strongly the transmitted Marschner paths take on the hair colour',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.marschnerAbsorption;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.marschnerAbsorption = value.num[0];\r\n },\r\n isValid(this: HairMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'MarschnerLobes',\r\n description: 'Per-path intensities of the Marschner model as (R, TT, TRT)',\r\n type: 'vec3',\r\n default: [1, 1, 1],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.marschnerLobes.x;\r\n value.num[1] = this.marschnerLobes.y;\r\n value.num[2] = this.marschnerLobes.z;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.marschnerLobes = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n isValid(this: HairMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'ShiftMapScale',\r\n description: 'Scale applied to the per-strand shift texture',\r\n type: 'float',\r\n phase: 1,\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.shiftMapScale;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.shiftMapScale = value.num[0];\r\n },\r\n isValid(this: HairMaterial) {\r\n return !this.$isInstance && !!this.specularShiftTexture;\r\n }\r\n },\r\n ...getTextureProps<HairMaterial>(manager, 'specularShiftTexture', '2D', false, 0),\r\n {\r\n name: 'DiffuseWrap',\r\n description: 'Wrap diffuse amount that softens the terminator across thin cards',\r\n type: 'float',\r\n default: 0.5,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.diffuseWrap;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.diffuseWrap = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'TransmissionColor',\r\n description: 'Tint color of the backlit transmission term',\r\n type: 'rgb',\r\n default: [0.9, 0.65, 0.45],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.transmissionColor.x;\r\n value.num[1] = this.transmissionColor.y;\r\n value.num[2] = this.transmissionColor.z;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.transmissionColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'TransmissionIntensity',\r\n description: 'Intensity of the backlit transmission term, 0 disables it',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.transmissionIntensity;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.transmissionIntensity = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'TransmissionPower',\r\n description: 'View-alignment exponent of the transmission term',\r\n type: 'float',\r\n default: 6,\r\n options: {\r\n animatable: true,\r\n minValue: 1,\r\n maxValue: 64\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.transmissionPower;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.transmissionPower = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ScatterColor',\r\n description: 'Tint of multiply-scattered light',\r\n type: 'rgb',\r\n default: [1, 0.85, 0.7],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.scatterColor.x;\r\n value.num[1] = this.scatterColor.y;\r\n value.num[2] = this.scatterColor.z;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.scatterColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'ScatterIntensity',\r\n description: 'Intensity of the multiple scattering term, 0 disables it',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.scatterIntensity;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.scatterIntensity = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ScatterLocal',\r\n description:\r\n 'Balance between scattering that follows the light and scattering that survives where it is blocked',\r\n type: 'float',\r\n default: 0.5,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.scatterLocal;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.scatterLocal = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ScatterWrap',\r\n description: 'Angular width of the forward-scattered lobe',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.scatterWrap;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.scatterWrap = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'OcclusionStrength',\r\n description: 'Strength of the baked occlusion (root darkening) texture',\r\n type: 'float',\r\n phase: 1,\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.occlusionStrength;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.occlusionStrength = value.num[0];\r\n },\r\n isValid(this: HairMaterial) {\r\n return !this.$isInstance && !!this.occlusionTexture;\r\n }\r\n },\r\n ...getTextureProps<HairMaterial>(manager, 'occlusionTexture', '2D', false, 0),\r\n ...getLitMaterialProps(manager)\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(HairMaterial)\r\n ];\r\n}\r\n\r\n/**\r\n * Serialization for the GPU strand expansion material.\r\n *\r\n * @remarks\r\n * Declared as a child of {@link HairMaterial}, so every lighting property the\r\n * parent exposes is inherited and only the expansion controls appear here.\r\n * The strand geometry itself is deliberately absent: it belongs to the node that\r\n * draws it, which references a `.zhair` asset, and duplicating millions of\r\n * control points into a material would defeat the point of having that file.\r\n * @internal\r\n */\r\nexport function getHairStrandMaterialClass(): SerializableClass[] {\r\n return [\r\n {\r\n ctor: HairStrandMaterial,\r\n parent: HairMaterial,\r\n name: 'HairStrandMaterial',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'SegmentsPerStrand',\r\n description:\r\n 'Ribbon segments generated per strand. Independent of the control point count, so the same strands can be drawn coarser at a distance',\r\n type: 'int',\r\n default: 8,\r\n options: { minValue: 1, maxValue: 64 },\r\n get(this: HairStrandMaterial, value) {\r\n value.num[0] = this.segmentsPerStrand;\r\n },\r\n set(this: HairStrandMaterial, value) {\r\n this.segmentsPerStrand = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'StrandWidthScale',\r\n description: 'Multiplier on the width stored in the strand data',\r\n type: 'float',\r\n default: 1,\r\n options: { animatable: true, minValue: 0, maxValue: 100 },\r\n get(this: HairStrandMaterial, value) {\r\n value.num[0] = this.strandWidthScale;\r\n },\r\n set(this: HairStrandMaterial, value) {\r\n this.strandWidthScale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'MinStrandWidth',\r\n description: 'Lower bound on ribbon width, in world units',\r\n type: 'float',\r\n default: 0,\r\n options: { minValue: 0, maxValue: 1 },\r\n get(this: HairStrandMaterial, value) {\r\n value.num[0] = this.minStrandWidth;\r\n },\r\n set(this: HairStrandMaterial, value) {\r\n this.minStrandWidth = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'MinPixelWidth',\r\n description:\r\n 'Lower bound on ribbon width in pixels. Real hair is thinner than a pixel; widening it and paying the coverage back in alpha keeps distant hair from breaking into a flickering dotted line',\r\n type: 'float',\r\n default: 1.4,\r\n options: { minValue: 0, maxValue: 8 },\r\n get(this: HairStrandMaterial, value) {\r\n value.num[0] = this.minPixelWidth;\r\n },\r\n set(this: HairStrandMaterial, value) {\r\n this.minPixelWidth = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'StrandRoundness',\r\n description:\r\n 'How far the shading normal bends across the ribbon. At 0 the strand shades as a flat tape, at 1 as a cylinder',\r\n type: 'float',\r\n default: 1,\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: HairStrandMaterial, value) {\r\n value.num[0] = this.strandRoundness;\r\n },\r\n set(this: HairStrandMaterial, value) {\r\n this.strandRoundness = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'StrandLOD',\r\n description: 'Drop strands with distance, redistributing their coverage to the survivors',\r\n type: 'bool',\r\n default: false,\r\n get(this: HairStrandMaterial, value) {\r\n value.bool[0] = this.strandLOD;\r\n },\r\n set(this: HairStrandMaterial, value) {\r\n this.strandLOD = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'MinStrandLODRatio',\r\n description: 'Floor on the fraction of strands distance decimation keeps',\r\n type: 'float',\r\n default: 0.05,\r\n options: { minValue: 0, maxValue: 1 },\r\n isValid(this: HairStrandMaterial) {\r\n return this.strandLOD;\r\n },\r\n get(this: HairStrandMaterial, value) {\r\n value.num[0] = this.minStrandLODRatio;\r\n },\r\n set(this: HairStrandMaterial, value) {\r\n this.minStrandLODRatio = value.num[0];\r\n }\r\n }\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(HairStrandMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getSkinMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: SkinMaterial,\r\n parent: MeshMaterial,\r\n name: 'SkinMaterial',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Shininess',\r\n description: 'Blinn specular exponent for skin highlights',\r\n type: 'float',\r\n default: 72,\r\n options: {\r\n animatable: true,\r\n minValue: 1,\r\n maxValue: 2048\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.shininess;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.shininess = value.num[0];\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n return this.$isInstance ? this.coreMaterial.shininess : 72;\r\n }\r\n },\r\n {\r\n name: 'SpecularStrength',\r\n description: 'Direct specular strength for restrained skin highlights',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.specularStrength;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.specularStrength = value.num[0];\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n return this.$isInstance ? this.coreMaterial.specularStrength : 1;\r\n }\r\n },\r\n {\r\n name: 'DiffuseWrap',\r\n description: 'Wrap amount for visible diffuse lighting',\r\n type: 'float',\r\n default: 0.28,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 2\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.diffuseWrap;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.diffuseWrap = value.num[0];\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n return this.$isInstance ? this.coreMaterial.diffuseWrap : 0.28;\r\n }\r\n },\r\n {\r\n name: 'DiffuseSoftness',\r\n description: 'Blend from hard Lambert lighting to wrapped diffuse lighting',\r\n type: 'float',\r\n default: 0.45,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.diffuseSoftness;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.diffuseSoftness = value.num[0];\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n return this.$isInstance ? this.coreMaterial.diffuseSoftness : 0.45;\r\n }\r\n },\r\n {\r\n name: 'ScatterWrap',\r\n description: 'Wide wrap amount written to the Skin SSS scattering source',\r\n type: 'float',\r\n default: 0.65,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 2\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.scatterWrap;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.scatterWrap = value.num[0];\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n return this.$isInstance ? this.coreMaterial.scatterWrap : 0.65;\r\n }\r\n },\r\n {\r\n name: 'ScatterStrength',\r\n description: 'Strength of the scatter irradiance written to the Skin SSS side buffer',\r\n type: 'float',\r\n default: 1.5,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.scatterStrength;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.scatterStrength = value.num[0];\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n return this.$isInstance ? this.coreMaterial.scatterStrength : 1.5;\r\n }\r\n },\r\n {\r\n name: 'ScatterColor',\r\n description: 'Warm tint for the blurred skin scattering contribution',\r\n type: 'rgba',\r\n default: [1, 0.42, 0.28, 1],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.scatterColor.x;\r\n value.num[1] = this.scatterColor.y;\r\n value.num[2] = this.scatterColor.z;\r\n value.num[3] = this.scatterColor.w;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.scatterColor = new Vector4(value.num[0], value.num[1], value.num[2], value.num[3]);\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n const color = this.$isInstance ? this.coreMaterial.scatterColor : new Vector4(1, 0.42, 0.28, 1);\r\n return [color.x, color.y, color.z, color.w];\r\n }\r\n },\r\n {\r\n name: 'ShadowTint',\r\n description: 'NPR shadow tint the dark end of the diffuse ramp lifts toward (black is neutral)',\r\n type: 'rgba',\r\n default: [0, 0, 0, 1],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.shadowTint.x;\r\n value.num[1] = this.shadowTint.y;\r\n value.num[2] = this.shadowTint.z;\r\n value.num[3] = this.shadowTint.w;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.shadowTint = new Vector4(value.num[0], value.num[1], value.num[2], value.num[3]);\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n const color = this.$isInstance ? this.coreMaterial.shadowTint : new Vector4(0, 0, 0, 1);\r\n return [color.x, color.y, color.z, color.w];\r\n }\r\n },\r\n {\r\n name: 'Brightening',\r\n description: 'Whitening gain applied to the whole diffuse response',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 2\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.brightening;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.brightening = value.num[0];\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n return this.$isInstance ? this.coreMaterial.brightening : 0;\r\n }\r\n },\r\n {\r\n name: 'TransmissionStrength',\r\n description: 'Back-lit transmission strength (needs thickness in subsurface texture B)',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.transmissionStrength;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.transmissionStrength = value.num[0];\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n return this.$isInstance ? this.coreMaterial.transmissionStrength : 0;\r\n }\r\n },\r\n {\r\n name: 'TransmissionPower',\r\n description: 'Exponent of the back-lit transmission falloff',\r\n type: 'float',\r\n default: 4,\r\n options: {\r\n animatable: true,\r\n minValue: 1,\r\n maxValue: 16\r\n },\r\n get(this: SkinMaterial, value) {\r\n value.num[0] = this.transmissionPower;\r\n },\r\n set(this: SkinMaterial, value) {\r\n this.transmissionPower = value.num[0];\r\n },\r\n getDefaultValue(this: SkinMaterial) {\r\n return this.$isInstance ? this.coreMaterial.transmissionPower : 4;\r\n }\r\n },\r\n ...getTextureProps<SkinMaterial>(manager, 'subsurfaceTexture', '2D', false, 1),\r\n ...getLitMaterialProps(manager)\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(SkinMaterial)\r\n ];\r\n}\r\n\r\n/**\r\n * Serialization for {@link EyeMaterial}.\r\n *\r\n * Every `getDefaultValue()` non-instance branch below must return exactly what\r\n * the constructor sets. The serializer uses this both to decide whether a\r\n * property can be omitted when saving and to fill it in when it is absent on\r\n * load, so a mismatch silently rewrites assets - which is what a mismatched\r\n * `doubleSidedLighting` default did before it was found.\r\n */\r\nexport function getEyeMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: EyeMaterial,\r\n parent: MeshMaterial,\r\n name: 'EyeMaterial',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'IrisCenter',\r\n description: 'UV coordinate of the pupil centre on the eyeball mesh',\r\n type: 'vec2',\r\n default: [0.5, 0.5],\r\n options: { minValue: 0, maxValue: 1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.irisCenter.x;\r\n value.num[1] = this.irisCenter.y;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.irisCenter = new Vector4(value.num[0], value.num[1], 0, 0);\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n const c = this.$isInstance ? this.coreMaterial.irisCenter : new Vector4(0.5, 0.5, 0, 0);\r\n return [c.x, c.y];\r\n }\r\n },\r\n {\r\n name: 'IrisRadius',\r\n description: 'Iris disc radius in UV units',\r\n type: 'float',\r\n default: 0.22,\r\n options: { animatable: true, minValue: 0.001, maxValue: 0.5 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.irisRadius;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.irisRadius = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.irisRadius : 0.22;\r\n }\r\n },\r\n {\r\n name: 'IrisDepth',\r\n description: 'Depth of the iris plane below the cornea; 0 disables parallax',\r\n type: 'float',\r\n default: 0.06,\r\n options: { animatable: true, minValue: 0, maxValue: 0.5 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.irisDepth;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.irisDepth = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.irisDepth : 0.06;\r\n }\r\n },\r\n {\r\n name: 'IOR',\r\n description: 'Index of refraction of the cornea (1.376 is physical)',\r\n type: 'float',\r\n default: 1.376,\r\n options: { animatable: true, minValue: 1, maxValue: 2 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.ior;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.ior = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.ior : 1.376;\r\n }\r\n },\r\n {\r\n name: 'PupilRadius',\r\n description: 'Pupil radius as a fraction of the iris radius',\r\n type: 'float',\r\n default: 0.35,\r\n options: { animatable: true, minValue: 0.01, maxValue: 0.95 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.pupilRadius;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.pupilRadius = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.pupilRadius : 0.35;\r\n }\r\n },\r\n {\r\n name: 'PupilDilation',\r\n description: 'Pupil dilation from -1 (constricted) to 1 (dilated)',\r\n type: 'float',\r\n default: 0,\r\n options: { animatable: true, minValue: -1, maxValue: 1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.pupilDilation;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.pupilDilation = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.pupilDilation : 0;\r\n }\r\n },\r\n {\r\n name: 'IrisColor',\r\n description: 'Tint multiplied over the iris texture',\r\n type: 'rgba',\r\n default: [1, 1, 1, 1],\r\n options: { animatable: true, minValue: 0, maxValue: 4 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.irisColor.x;\r\n value.num[1] = this.irisColor.y;\r\n value.num[2] = this.irisColor.z;\r\n value.num[3] = this.irisColor.w;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.irisColor = new Vector4(value.num[0], value.num[1], value.num[2], value.num[3]);\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n const c = this.$isInstance ? this.coreMaterial.irisColor : new Vector4(1, 1, 1, 1);\r\n return [c.x, c.y, c.z, c.w];\r\n }\r\n },\r\n {\r\n name: 'IrisBrightness',\r\n description: 'Internal scattering that keeps the iris from crushing to black in shadow',\r\n type: 'float',\r\n default: 0.15,\r\n options: { animatable: true, minValue: 0, maxValue: 2 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.irisBrightness;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.irisBrightness = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.irisBrightness : 0.15;\r\n }\r\n },\r\n {\r\n name: 'LimbalRingWidth',\r\n description: 'Width of the dark ring at the iris edge, as a fraction of the iris radius',\r\n type: 'float',\r\n default: 0.15,\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.limbalRingWidth;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.limbalRingWidth = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.limbalRingWidth : 0.15;\r\n }\r\n },\r\n {\r\n name: 'LimbalRingStrength',\r\n description: 'How dark the limbal ring gets; 0 disables it',\r\n type: 'float',\r\n default: 0.7,\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.limbalRingStrength;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.limbalRingStrength = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.limbalRingStrength : 0.7;\r\n }\r\n },\r\n {\r\n name: 'ScleraColor',\r\n description: 'Base sclera colour; pure white reads as plastic',\r\n type: 'rgba',\r\n default: [0.9, 0.88, 0.86, 1],\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.scleraColor.x;\r\n value.num[1] = this.scleraColor.y;\r\n value.num[2] = this.scleraColor.z;\r\n value.num[3] = this.scleraColor.w;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.scleraColor = new Vector4(value.num[0], value.num[1], value.num[2], value.num[3]);\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n const c = this.$isInstance ? this.coreMaterial.scleraColor : new Vector4(0.9, 0.88, 0.86, 1);\r\n return [c.x, c.y, c.z, c.w];\r\n }\r\n },\r\n {\r\n name: 'ScleraWrap',\r\n description: 'Diffuse wrap for the sclera, standing in for its subsurface softness',\r\n type: 'float',\r\n default: 0.35,\r\n options: { animatable: true, minValue: 0, maxValue: 2 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.scleraWrap;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.scleraWrap = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.scleraWrap : 0.35;\r\n }\r\n },\r\n {\r\n name: 'ScleraEdgeTint',\r\n description: 'Vasculature colour bled into the sclera away from the iris; alpha is its strength',\r\n type: 'rgba',\r\n default: [0.55, 0.22, 0.18, 1],\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.scleraEdgeTint.x;\r\n value.num[1] = this.scleraEdgeTint.y;\r\n value.num[2] = this.scleraEdgeTint.z;\r\n value.num[3] = this.scleraEdgeTint.w;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.scleraEdgeTint = new Vector4(value.num[0], value.num[1], value.num[2], value.num[3]);\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n const c = this.$isInstance\r\n ? this.coreMaterial.scleraEdgeTint\r\n : new Vector4(0.55, 0.22, 0.18, 1);\r\n return [c.x, c.y, c.z, c.w];\r\n }\r\n },\r\n {\r\n name: 'CorneaSpecularStrength',\r\n description: 'Strength of the corneal highlight - the main cue that an eye is wet',\r\n type: 'float',\r\n default: 1,\r\n options: { animatable: true, minValue: 0, maxValue: 4 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.corneaSpecularStrength;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.corneaSpecularStrength = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.corneaSpecularStrength : 1;\r\n }\r\n },\r\n {\r\n name: 'CorneaRoughness',\r\n description: 'Corneal roughness; the cornea is close to a mirror, so keep this very low',\r\n type: 'float',\r\n default: 0.05,\r\n options: { animatable: true, minValue: 0.001, maxValue: 1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.corneaRoughness;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.corneaRoughness = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.corneaRoughness : 0.05;\r\n }\r\n },\r\n {\r\n name: 'vertexTangent',\r\n description: 'Whether the mesh supplies tangents; without them refraction is disabled',\r\n type: 'bool',\r\n default: false,\r\n get(this: EyeMaterial, value) {\r\n value.bool[0] = this.vertexTangent;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.vertexTangent = value.bool[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.vertexTangent : false;\r\n }\r\n },\r\n {\r\n name: 'SocketOcclusion',\r\n description: 'Enables analytic shadowing of the eyeball by the eyelids and socket',\r\n type: 'bool',\r\n default: false,\r\n get(this: EyeMaterial, value) {\r\n value.bool[0] = this.socketOcclusion;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.socketOcclusion = value.bool[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.socketOcclusion : false;\r\n }\r\n },\r\n {\r\n name: 'SocketRotation',\r\n description: 'Euler rotation in degrees of the socket frame; zero matches +Y up, +Z gaze assets',\r\n type: 'vec3',\r\n default: [0, 0, 0],\r\n options: { minValue: -180, maxValue: 180 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.socketRotation.x;\r\n value.num[1] = this.socketRotation.y;\r\n value.num[2] = this.socketRotation.z;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.socketRotation = new Vector4(value.num[0], value.num[1], value.num[2], 0);\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n const r = this.$isInstance ? this.coreMaterial.socketRotation : new Vector4(0, 0, 0, 0);\r\n return [r.x, r.y, r.z];\r\n }\r\n },\r\n {\r\n name: 'UpperLidAngle',\r\n description: 'Aperture half-angle towards the upper lid, in degrees',\r\n type: 'float',\r\n default: 50,\r\n options: { animatable: true, minValue: 5, maxValue: 90 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.upperLidAngle;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.upperLidAngle = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.upperLidAngle : 50;\r\n }\r\n },\r\n {\r\n name: 'LowerLidAngle',\r\n description: 'Aperture half-angle towards the lower lid, in degrees',\r\n type: 'float',\r\n default: 65,\r\n options: { animatable: true, minValue: 5, maxValue: 90 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.lowerLidAngle;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.lowerLidAngle = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.lowerLidAngle : 65;\r\n }\r\n },\r\n {\r\n name: 'SocketOcclusionSoftness',\r\n description: 'Width of the lit-to-shadowed transition, in degrees',\r\n type: 'float',\r\n default: 15,\r\n options: { animatable: true, minValue: 1, maxValue: 45 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.socketOcclusionSoftness;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.socketOcclusionSoftness = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.socketOcclusionSoftness : 15;\r\n }\r\n },\r\n {\r\n name: 'SocketOcclusionStrength',\r\n description: 'Overall socket occlusion strength',\r\n type: 'float',\r\n default: 0.65,\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.socketOcclusionStrength;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.socketOcclusionStrength = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.socketOcclusionStrength : 0.65;\r\n }\r\n },\r\n {\r\n name: 'ContactAO',\r\n description:\r\n 'Enables screen-space contact occlusion of the eyeball by the eyelid, read from the depth prepass',\r\n type: 'bool',\r\n default: false,\r\n get(this: EyeMaterial, value) {\r\n value.bool[0] = this.contactAO;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.contactAO = value.bool[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.contactAO : false;\r\n }\r\n },\r\n {\r\n name: 'ContactAORadius',\r\n description: 'Radius of the contact occlusion disc, in world units',\r\n type: 'float',\r\n default: 0.006,\r\n options: { animatable: true, minValue: 0.0001, maxValue: 0.1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.contactAORadius;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.contactAORadius = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.contactAORadius : 0.006;\r\n }\r\n },\r\n {\r\n name: 'ContactAOMinDistance',\r\n description: 'Smallest depth step counted as an occluder, in world units',\r\n type: 'float',\r\n default: 0.0004,\r\n options: { animatable: true, minValue: 0.00001, maxValue: 0.02 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.contactAOMinDistance;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.contactAOMinDistance = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.contactAOMinDistance : 0.0004;\r\n }\r\n },\r\n {\r\n name: 'ContactAOMaxDistance',\r\n description: 'Largest depth step counted as an occluder, in world units',\r\n type: 'float',\r\n default: 0.006,\r\n options: { animatable: true, minValue: 0.00001, maxValue: 0.2 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.contactAOMaxDistance;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.contactAOMaxDistance = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.contactAOMaxDistance : 0.006;\r\n }\r\n },\r\n {\r\n name: 'ContactAOStrength',\r\n description: 'Overall contact occlusion strength',\r\n type: 'float',\r\n default: 0.7,\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.contactAOStrength;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.contactAOStrength = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.contactAOStrength : 0.7;\r\n }\r\n },\r\n {\r\n name: 'ContactAOTemporalJitter',\r\n description:\r\n 'Advances the contact occlusion noise pattern every frame so TAA can integrate it away; enable only with temporal anti-aliasing',\r\n type: 'bool',\r\n default: false,\r\n get(this: EyeMaterial, value) {\r\n value.bool[0] = this.contactAOTemporalJitter;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.contactAOTemporalJitter = value.bool[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.contactAOTemporalJitter : false;\r\n }\r\n },\r\n ...getTextureProps<EyeMaterial>(manager, 'irisTexture', '2D', true, 0),\r\n ...getTextureProps<EyeMaterial>(manager, 'scleraTexture', '2D', true, 0)\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(EyeMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getPBRMetallicRoughnessMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: PBRMetallicRoughnessMaterial,\r\n parent: MeshMaterial,\r\n name: 'PBRMetallicRoughnessMaterial',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Metallic',\r\n description: 'Metallic value',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.metallic;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.metallic = value.num[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Metallic']),\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.metallic : 1;\r\n }\r\n },\r\n {\r\n name: 'Roughness',\r\n description: 'Roughness value',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.roughness;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.roughness = value.num[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Roughness']),\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.roughness : 1;\r\n }\r\n },\r\n {\r\n name: 'SpecularFactor',\r\n description: 'RGBA specular factor used to tint and scale specular reflections',\r\n type: 'rgba',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.specularFactor.x;\r\n value.num[1] = this.specularFactor.y;\r\n value.num[2] = this.specularFactor.z;\r\n value.num[3] = this.specularFactor.w;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.specularFactor = new Vector4(value.num[0], value.num[1], value.num[2], value.num[3]);\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Specular', 'SpecularWeight']),\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.specularFactor : [1, 1, 1, 1];\r\n }\r\n },\r\n {\r\n name: 'Reflection',\r\n description: 'Reflection mode',\r\n type: 'string',\r\n default: 'ggx',\r\n options: {\r\n enum: {\r\n labels: ['None', 'GGX', 'Anisotropic', 'Glint'],\r\n values: ['none', 'ggx', 'anisotropic', 'glint']\r\n }\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.str[0] = this.reflectionMode;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const reflectionMode = value.str[0] as PBRReflectionMode;\r\n const blueprintInstance = this as PBRMetallicRoughnessMaterial & {\r\n isBlueprintMaterialInstance?: boolean;\r\n setBlueprintInstanceReflectionMode?: (val: PBRReflectionMode, inherited?: boolean) => void;\r\n };\r\n if (\r\n blueprintInstance.isBlueprintMaterialInstance &&\r\n blueprintInstance.setBlueprintInstanceReflectionMode\r\n ) {\r\n blueprintInstance.setBlueprintInstanceReflectionMode(reflectionMode);\r\n } else {\r\n this.reflectionMode = reflectionMode;\r\n }\r\n },\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.reflectionMode : 'ggx';\r\n }\r\n },\r\n {\r\n name: 'Anisotropy',\r\n description: 'Strength of anisotropic reflections; values near 0 behave isotropically',\r\n type: 'float',\r\n default: 0.75,\r\n options: {\r\n animatable: true,\r\n minValue: -0.95,\r\n maxValue: 0.95\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.anisotropy;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.anisotropy = value.num[0];\r\n },\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.anisotropy : 0.75;\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return this.reflectionMode === 'anisotropic';\r\n }\r\n },\r\n {\r\n name: 'AnisotropyDirection',\r\n description: 'Rotation angle in degrees for the anisotropic highlight direction',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 360\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.anisotropyDirection;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.anisotropyDirection = value.num[0];\r\n },\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.anisotropyDirection : 0;\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return this.reflectionMode === 'anisotropic';\r\n }\r\n },\r\n ...getTextureProps<PBRMetallicRoughnessMaterial>(\r\n manager,\r\n 'anisotropyDirectionTexture',\r\n '2D',\r\n false,\r\n 0,\r\n function () {\r\n return this.reflectionMode === 'anisotropic';\r\n }\r\n ),\r\n {\r\n name: 'AnisotropyDirectionScaleBias',\r\n description: 'Scale and bias applied when decoding anisotropy direction from its texture',\r\n type: 'vec2',\r\n default: [1, 0],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.anisotropyDirectionScaleBias.x;\r\n value.num[1] = this.anisotropyDirectionScaleBias.y;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.anisotropyDirectionScaleBias = new Vector2(value.num[0], value.num[1]);\r\n },\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.anisotropyDirectionScaleBias : [1, 0];\r\n },\r\n isValid() {\r\n return (\r\n !this.$isInstance &&\r\n this.reflectionMode === 'anisotropic' &&\r\n !!this.anisotropyDirectionTexture\r\n );\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceLookPreset',\r\n description: 'Per-instance preset override for the active subsurface profile',\r\n type: 'string',\r\n phase: 1,\r\n default: 'skin_default',\r\n options: {\r\n label: 'LookPreset',\r\n enum: {\r\n labels: [\r\n 'Skin Thin',\r\n 'Skin Default',\r\n 'Skin HeavyMakeup',\r\n 'Wax Backlit',\r\n 'Wax Soft',\r\n 'Jade Backlit',\r\n 'Jade Soft'\r\n ],\r\n values: [\r\n 'skin_thin',\r\n 'skin_default',\r\n 'skin_heavy_makeup',\r\n 'wax_backlit',\r\n 'wax_soft',\r\n 'jade_backlit',\r\n 'jade_soft'\r\n ]\r\n },\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.str[0] = this.subsurfaceProfile?.preset ?? 'skin_default';\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n if (profile.isBlueprintMaterialInstance && profile.setBlueprintInstanceSubsurfacePreset) {\r\n profile.setBlueprintInstanceSubsurfacePreset(value.str[0] as SubsurfaceProfilePreset);\r\n }\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceMeanFreePathColor',\r\n description: 'Per-instance mean free path color override for the active subsurface profile',\r\n type: 'rgb',\r\n phase: 1,\r\n default: [1, 0.45, 0.17],\r\n options: {\r\n label: 'MeanFreePathColor',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.meanFreePathColor.x ?? 0;\r\n value.num[1] = this.subsurfaceProfile?.meanFreePathColor.y ?? 0;\r\n value.num[2] = this.subsurfaceProfile?.meanFreePathColor.z ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceMeanFreePathColor',\r\n 'meanFreePathColor',\r\n new Vector3(value.num[0], value.num[1], value.num[2])\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceMeanFreePathDistance',\r\n description: 'Per-instance mean free path distance override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.92,\r\n options: {\r\n label: 'MeanFreePathDistance',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 8,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.meanFreePathDistance ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceMeanFreePathDistance',\r\n 'meanFreePathDistance',\r\n value.num[0]\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceScatterWeight',\r\n description: 'Per-instance scatter weight override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.82,\r\n options: {\r\n label: 'ScatterWeight',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 8,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.strength ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n if (profile.isBlueprintMaterialInstance && profile.setBlueprintInstanceSubsurfaceStrength) {\r\n profile.setBlueprintInstanceSubsurfaceStrength(value.num[0]);\r\n }\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceScatterScale',\r\n description: 'Per-instance scatter scale override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.96,\r\n options: {\r\n label: 'ScatterScale',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 8,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.scale ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n if (profile.isBlueprintMaterialInstance && profile.setBlueprintInstanceSubsurfaceScale) {\r\n profile.setBlueprintInstanceSubsurfaceScale(value.num[0]);\r\n }\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceWorldUnitScale',\r\n description: 'Per-instance world unit scale override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 1,\r\n options: {\r\n label: 'WorldUnitScale',\r\n animatable: true,\r\n minValue: 0.05,\r\n maxValue: 4,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.worldUnitScale ?? 1;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceWorldUnitScale',\r\n 'worldUnitScale',\r\n value.num[0]\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceBoundaryColorBleed',\r\n description: 'Per-instance boundary color bleed override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.22,\r\n options: {\r\n label: 'BoundaryColorBleed',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.boundaryColorBleed ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceBoundaryColorBleed',\r\n 'boundaryColorBleed',\r\n value.num[0]\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceTransmissionTintColor',\r\n description: 'Per-instance transmission tint color override for the active subsurface profile',\r\n type: 'rgb',\r\n phase: 1,\r\n default: [1, 0.46, 0.34],\r\n options: {\r\n label: 'TransmissionTintColor',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.transmissionTintColor.x ?? 0;\r\n value.num[1] = this.subsurfaceProfile?.transmissionTintColor.y ?? 0;\r\n value.num[2] = this.subsurfaceProfile?.transmissionTintColor.z ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceTransmissionTintColor',\r\n 'transmissionTintColor',\r\n new Vector3(value.num[0], value.num[1], value.num[2])\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceExtinctionScale',\r\n description: 'Per-instance extinction scale override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 1.06,\r\n options: {\r\n label: 'ExtinctionScale',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.extinctionScale ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceExtinctionScale',\r\n 'extinctionScale',\r\n value.num[0]\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceNormalScale',\r\n description: 'Per-instance normal scale override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 1,\r\n options: {\r\n label: 'NormalScale',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 2,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.normalScale ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceNormalScale',\r\n 'normalScale',\r\n value.num[0]\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceScatteringDistribution',\r\n description: 'Per-instance scattering distribution override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.6,\r\n options: {\r\n label: 'ScatteringDistribution',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.scatteringDistribution ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceScatteringDistribution',\r\n 'scatteringDistribution',\r\n value.num[0]\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceSpecularDetailSoftness',\r\n description: 'Per-instance specular detail softness override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.78,\r\n options: {\r\n label: 'SpecularDetailSoftness',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.specularDetailSoftness ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceSpecularDetailSoftness',\r\n 'specularDetailSoftness',\r\n value.num[0]\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceSpecularDetailRadius',\r\n description: 'Per-instance specular detail radius override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 1.8,\r\n options: {\r\n label: 'SpecularDetailRadius',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.specularDetailRadius ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceSpecularDetailRadius',\r\n 'specularDetailRadius',\r\n value.num[0]\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceProfile',\r\n description: 'If true, enables subsurface scattering for translucent materials',\r\n type: 'object',\r\n phase: 0,\r\n default: null,\r\n options: {\r\n objectTypes: [SubsurfaceProfile]\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.object[0] = this.subsurfaceProfile;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.subsurfaceProfile = (value.object[0] as SubsurfaceProfile) ?? null;\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditParentMaterialProperty(this);\r\n }\r\n },\r\n ...getTextureProps<PBRMetallicRoughnessMaterial>(\r\n manager,\r\n 'subsurfaceTexture',\r\n '2D',\r\n false,\r\n 1,\r\n function () {\r\n return !!this.subsurfaceProfile;\r\n }\r\n ),\r\n ...getTextureProps<PBRMetallicRoughnessMaterial>(\r\n manager,\r\n 'metallicRoughnessTexture',\r\n '2D',\r\n false,\r\n 0,\r\n undefined,\r\n ['Metallic', 'Roughness']\r\n ),\r\n ...getTextureProps<PBRMetallicRoughnessMaterial>(\r\n manager,\r\n 'specularColorTexture',\r\n '2D',\r\n true,\r\n 0,\r\n undefined,\r\n ['Specular']\r\n ),\r\n ...getPBRCommonProps(manager)\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(PBRMetallicRoughnessMaterial)\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getPBRSpecularGlossinessMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: PBRSpecularGlossinessMaterial,\r\n name: 'PBRSpecularGlossinessMaterial',\r\n parent: MeshMaterial,\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'SpecularFactor',\r\n description: 'RGB specular color multiplier for reflected highlights',\r\n type: 'rgb',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRSpecularGlossinessMaterial, value) {\r\n value.num[0] = this.specularFactor.x;\r\n value.num[1] = this.specularFactor.y;\r\n value.num[2] = this.specularFactor.z;\r\n },\r\n set(this: PBRSpecularGlossinessMaterial, value) {\r\n this.specularFactor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n getDefaultValue(this: PBRSpecularGlossinessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.specularFactor : [1, 1, 1];\r\n }\r\n },\r\n {\r\n name: 'GlossnessFactor',\r\n description: 'Glossiness of the surface; higher values produce sharper reflections',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRSpecularGlossinessMaterial, value) {\r\n value.num[0] = this.glossinessFactor;\r\n },\r\n set(this: PBRSpecularGlossinessMaterial, value) {\r\n this.glossinessFactor = value.num[0];\r\n },\r\n getDefaultValue(this: PBRSpecularGlossinessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.glossinessFactor : 1;\r\n }\r\n },\r\n ...getPBRCommonProps(manager)\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(PBRSpecularGlossinessMaterial)\r\n ];\r\n}\r\n"],"names":["createBlueprintOutputHiddenPredicate","_outputs","PBRBluePrintMaterial","canEditParentMaterialProperty","material","$isInstance","isBlueprintMaterialInstance","isBlueprintMaterialAssetInstanceWithInheritedParentProps","isBlueprintMaterialAssetInstance","allowBlueprintInstanceOverride","propName","setter","markMaterialPropertyOverridden","canEditBlueprintInstanceSubsurfaceProfile","subsurfaceProfile","getBlueprintInstanceSubsurfaceMaterial","getSubsurfaceProfileClass","ctor","SubsurfaceProfile","name","getProps","defineProps","type","default","options","label","enum","labels","values","get","value","str","preset","set","animatable","minValue","maxValue","num","meanFreePathColor","x","y","z","Vector3","meanFreePathDistance","strength","scale","worldUnitScale","boundaryColorBleed","transmissionTintColor","extinctionScale","normalScale","scatteringDistribution","specularDetailSoftness","specularDetailRadius","getPBRCommonProps","manager","supportsSSSThicknessAuthoring","transmission","description","ior","isValid","phase","occlusionStrength","isHidden","occlusionTexture","getTextureProps","undefined","emissiveColor","getDefaultValue","coreMaterial","emissiveStrength","emissiveLuminance","emissiveExposureWeight","rectSpecularScale","PBRBluePrintMaterialInstance","parentMaterial","bool","transmissionFactor","call","thicknessFactor","attenuationColor","attenuationDistance","iridescence","iridescenceFactor","iridescenceIor","iridescenceThicknessMin","iridescenceThicknessMax","clearcoat","clearcoatIntensity","clearcoatRoughnessFactor","sheen","sheenColorFactor","sheenRoughnessFactor","getLitMaterialProps","getUnlitMaterialProps","normalFlipY","doubleSidedLighting","vertexNormal","vertexTangent","vertexColor","color","albedoColor","w","Vector4","getMToonMaterialProps","normalTexture","shadeColorFactor","shadingShiftFactor","shadingShiftTextureScale","shadingShiftTexture","shadingToonyFactor","giEqualizationFactor","matcapFactor","parametricRimColorFactor","parametricRimFresnelPowerFactor","parametricRimLiftFactor","rimLightingMixFactor","outlineWidthMode","outlineWidthFactor","outlineColorFactor","outlineLightingMixFactor","outlineUsesTangentNormals","uvAnimationScrollXSpeedFactor","uvAnimationScrollYSpeedFactor","uvAnimationRotationSpeedFactor","transparentWithZWrite","renderQueueOffsetNumber","getMeshMaterialClass","MeshMaterial","alphaCutoff","alphaToCoverage","alphaDither","blendMode","transparentShadowCaster","shadowAlphaCutoff","cullMode","opacity","TAAStrength","getMeshMaterialInstanceUniformsClass","getSpriteMaterialClass","_manager","SpriteMaterial","parent","getStandardSpriteMaterialClass","StandardSpriteMaterial","mimeTypes","isNullable","getAssetId","spriteTexture","assetId","tex","fetchTexture","linearColorSpace","err","console","error","isTexture2D","getParticleMaterialClass","ParticleMaterial","alphaMap","rampMap","getPBRBluePrintMaterialClass","PBRMetallicRoughnessMaterial","getPBRBluePrintMaterialInstanceClass","getSpriteBlueprintMaterialClass","SpriteBlueprintMaterial","getUnlitMaterialClass","UnlitMaterial","getMToonMaterialClass","MToonMaterial","getLambertMaterialClass","LambertMaterial","getBlinnMaterialClass","BlinnMaterial","shininess","getHairMaterialClass","HairMaterial","shadingModel","specular1Color","specular1Power","specular1Shift","specular2Color","specular2Power","specular2Shift","strandDirection","marschnerShift","marschnerRoughness","marschnerIOR","marschnerAbsorption","marschnerLobes","shiftMapScale","specularShiftTexture","diffuseWrap","transmissionColor","transmissionIntensity","transmissionPower","scatterColor","scatterIntensity","scatterLocal","scatterWrap","getSkinMaterialClass","SkinMaterial","specularStrength","diffuseSoftness","scatterStrength","shadowTint","brightening","transmissionStrength","getEyeMaterialClass","EyeMaterial","irisCenter","c","irisRadius","irisDepth","pupilRadius","pupilDilation","irisColor","irisBrightness","limbalRingWidth","limbalRingStrength","scleraColor","scleraWrap","scleraEdgeTint","corneaSpecularStrength","corneaRoughness","socketOcclusion","socketRotation","r","upperLidAngle","lowerLidAngle","socketOcclusionSoftness","socketOcclusionStrength","contactAO","contactAORadius","contactAOMinDistance","contactAOMaxDistance","contactAOStrength","contactAOTemporalJitter","getPBRMetallicRoughnessMaterialClass","metallic","roughness","specularFactor","reflectionMode","blueprintInstance","setBlueprintInstanceReflectionMode","anisotropy","anisotropyDirection","anisotropyDirectionScaleBias","Vector2","anisotropyDirectionTexture","group","profile","setBlueprintInstanceSubsurfacePreset","setBlueprintInstanceSubsurfaceProfileValue","setBlueprintInstanceSubsurfaceStrength","setBlueprintInstanceSubsurfaceScale","objectTypes","object","getPBRSpecularGlossinessMaterialClass","PBRSpecularGlossinessMaterial","glossinessFactor"],"mappings":"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"}
1
+ {"version":3,"file":"material.js","sources":["../../../../src/utility/serialization/scene/material.ts"],"sourcesContent":["import type { FaceMode, Texture2D } from '@zephyr3d/device';\r\nimport type { BlendMode } from '../../../material';\r\nimport {\r\n BlinnMaterial,\r\n HairMaterial,\r\n HairStrandMaterial,\r\n LambertMaterial,\r\n MeshMaterial,\r\n MToonMaterial,\r\n ParticleMaterial,\r\n PBRBluePrintMaterial,\r\n PBRBluePrintMaterialInstance,\r\n PBRMetallicRoughnessMaterial,\r\n PBRSpecularGlossinessMaterial,\r\n EyeMaterial,\r\n SSSMaterial,\r\n SubsurfaceProfile,\r\n SSSProfile,\r\n type SSSProfilePreset,\r\n type MToonOutlineWidthMode,\r\n type SubsurfaceProfilePreset,\r\n SpriteBlueprintMaterial,\r\n UnlitMaterial,\r\n type HairStrandDirection,\r\n type HairShadingModel\r\n} from '../../../material';\r\nimport type { PBRBlueprintOutputName } from '../../../material/pbrblueprint';\r\nimport { defineProps, type PropertyAccessor, type SerializableClass } from '../types';\r\nimport type { GenericConstructor, Nullable } from '@zephyr3d/base';\r\nimport { Vector2, Vector3, Vector4 } from '@zephyr3d/base';\r\nimport { getTextureProps } from './common';\r\nimport type { ResourceManager } from '../manager';\r\nimport { getMeshMaterialInstanceUniformsClass } from './common';\r\nimport { SpriteMaterial } from '../../../material/sprite';\r\nimport { StandardSpriteMaterial } from '../../../material/sprite_std';\r\nimport type { PBRReflectionMode } from '../../../material/mixins/lightmodel/pbrmetallicroughness';\r\n\r\ntype PBRMaterial = PBRMetallicRoughnessMaterial | PBRSpecularGlossinessMaterial;\r\ntype LitPropTypes = LambertMaterial | BlinnMaterial | SSSMaterial | HairMaterial | PBRMaterial;\r\ntype UnlitPropTypes = UnlitMaterial | LitPropTypes;\r\n\r\nfunction createBlueprintOutputHiddenPredicate(_outputs: readonly PBRBlueprintOutputName[]) {\r\n return function (this: any) {\r\n return this instanceof PBRBluePrintMaterial;\r\n };\r\n}\r\n\r\nfunction canEditParentMaterialProperty(material: MeshMaterial) {\r\n return (\r\n !material.$isInstance &&\r\n !(material as MeshMaterial & { isBlueprintMaterialInstance?: boolean }).isBlueprintMaterialInstance\r\n );\r\n}\r\n\r\nfunction isBlueprintMaterialAssetInstanceWithInheritedParentProps(material: MeshMaterial) {\r\n return !!(material as MeshMaterial & { isBlueprintMaterialInstance?: boolean }).isBlueprintMaterialInstance;\r\n}\r\n\r\nfunction isBlueprintMaterialAssetInstance(material: MeshMaterial): material is MeshMaterial & {\r\n isBlueprintMaterialInstance: true;\r\n markMaterialPropertyOverridden?: (propName: string) => void;\r\n} {\r\n return !!(material as MeshMaterial & { isBlueprintMaterialInstance?: boolean }).isBlueprintMaterialInstance;\r\n}\r\n\r\nfunction allowBlueprintInstanceOverride(material: MeshMaterial, propName: string, setter: () => void) {\r\n setter();\r\n if (isBlueprintMaterialAssetInstance(material)) {\r\n material.markMaterialPropertyOverridden?.(propName);\r\n }\r\n}\r\n\r\ntype BlueprintInstanceSubsurfaceMaterial = PBRMetallicRoughnessMaterial & {\r\n isBlueprintMaterialInstance?: boolean;\r\n setBlueprintInstanceSubsurfacePreset?: (val: SubsurfaceProfilePreset) => void;\r\n setBlueprintInstanceSubsurfaceStrength?: (val: number) => void;\r\n setBlueprintInstanceSubsurfaceScale?: (val: number) => void;\r\n setBlueprintInstanceSubsurfaceProfileValue?: <K extends keyof SubsurfaceProfile>(\r\n propName: string,\r\n key: K,\r\n value: SubsurfaceProfile[K]\r\n ) => void;\r\n};\r\n\r\nfunction canEditBlueprintInstanceSubsurfaceProfile(material: PBRMetallicRoughnessMaterial) {\r\n return (\r\n !!material.subsurfaceProfile &&\r\n !!(material as BlueprintInstanceSubsurfaceMaterial).isBlueprintMaterialInstance\r\n );\r\n}\r\n\r\nfunction getBlueprintInstanceSubsurfaceMaterial(\r\n material: PBRMetallicRoughnessMaterial\r\n): BlueprintInstanceSubsurfaceMaterial {\r\n return material as BlueprintInstanceSubsurfaceMaterial;\r\n}\r\n\r\nexport function getSubsurfaceProfileClass(): SerializableClass {\r\n return {\r\n ctor: SubsurfaceProfile,\r\n name: 'SubsurfaceProfile',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Preset',\r\n type: 'string',\r\n default: 'skin_default',\r\n options: {\r\n label: 'LookPreset',\r\n enum: {\r\n labels: [\r\n 'Skin Thin',\r\n 'Skin Default',\r\n 'Skin HeavyMakeup',\r\n 'Wax Backlit',\r\n 'Wax Soft',\r\n 'Jade Backlit',\r\n 'Jade Soft'\r\n ],\r\n values: [\r\n 'skin_thin',\r\n 'skin_default',\r\n 'skin_heavy_makeup',\r\n 'wax_backlit',\r\n 'wax_soft',\r\n 'jade_backlit',\r\n 'jade_soft'\r\n ]\r\n }\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.str[0] = this.preset;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.preset = value.str[0] as SubsurfaceProfilePreset;\r\n }\r\n },\r\n {\r\n name: 'ScatterColor',\r\n type: 'rgb',\r\n default: [1, 0.45, 0.17],\r\n options: {\r\n label: 'MeanFreePathColor',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.meanFreePathColor.x;\r\n value.num[1] = this.meanFreePathColor.y;\r\n value.num[2] = this.meanFreePathColor.z;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.meanFreePathColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'ScatterDistance',\r\n type: 'float',\r\n default: 0.92,\r\n options: {\r\n label: 'MeanFreePathDistance',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 8\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.meanFreePathDistance;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.meanFreePathDistance = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ScatterWeight',\r\n type: 'float',\r\n default: 0.82,\r\n options: {\r\n label: 'ScatterWeight',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 8\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.strength;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.strength = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ScatterScale',\r\n type: 'float',\r\n default: 0.96,\r\n options: {\r\n label: 'ScatterScale',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 8\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.scale;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.scale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'WorldUnitScale',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n label: 'WorldUnitScale',\r\n animatable: true,\r\n minValue: 0.05,\r\n maxValue: 4\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.worldUnitScale;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.worldUnitScale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'BoundaryColorBleed',\r\n type: 'float',\r\n default: 0.22,\r\n options: {\r\n label: 'BoundaryColorBleed',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.boundaryColorBleed;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.boundaryColorBleed = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'TransmissionTintColor',\r\n type: 'rgb',\r\n default: [1, 0.46, 0.34],\r\n options: {\r\n label: 'TransmissionTintColor',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.transmissionTintColor.x;\r\n value.num[1] = this.transmissionTintColor.y;\r\n value.num[2] = this.transmissionTintColor.z;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.transmissionTintColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'ExtinctionScale',\r\n type: 'float',\r\n default: 1.06,\r\n options: {\r\n label: 'ExtinctionScale',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.extinctionScale;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.extinctionScale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'NormalScale',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n label: 'NormalScale',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 2\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.normalScale;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.normalScale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ScatteringDistribution',\r\n type: 'float',\r\n default: 0.6,\r\n options: {\r\n label: 'ScatteringDistribution',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.scatteringDistribution;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.scatteringDistribution = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'SpecularDetailSoftness',\r\n type: 'float',\r\n default: 0.78,\r\n options: {\r\n label: 'SpecularDetailSoftness',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.specularDetailSoftness;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.specularDetailSoftness = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'SpecularDetailRadius',\r\n type: 'float',\r\n default: 1.8,\r\n options: {\r\n label: 'SpecularDetailRadius',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: SubsurfaceProfile, value) {\r\n value.num[0] = this.specularDetailRadius;\r\n },\r\n set(this: SubsurfaceProfile, value) {\r\n this.specularDetailRadius = value.num[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\n/**\r\n * Serialization for {@link SSSProfile}, the profile asset driving\r\n * {@link SSSMaterial}'s subsurface scattering.\r\n */\r\nexport function getSSSProfileClass(): SerializableClass {\r\n return {\r\n // Not constructible from here by design; the cast is the price of declaring\r\n // the class at all. `createFunc` below is what actually supplies the\r\n // instance, so the constructor is never reached.\r\n ctor: SSSProfile as unknown as GenericConstructor,\r\n name: 'SSSProfile',\r\n /**\r\n * Hands back the owning material's profile instead of building one.\r\n *\r\n * A profile holds a row of a 256-entry GPU table that is only freed when its\r\n * material is disposed, so deserializing into a fresh instance - which is\r\n * what the default path does for an object-typed property - stranded a row\r\n * on every scene load and every undo. `ctx` is the owner, since the\r\n * property's deserializer passes the object it is filling in.\r\n */\r\n createFunc(ctx: unknown) {\r\n const material = ctx as SSSMaterial | null;\r\n return material instanceof SSSMaterial\r\n ? { obj: material.subsurfaceProfile }\r\n : { obj: null, loadProps: false };\r\n },\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Preset',\r\n description:\r\n 'Starting look for the whole profile: skin tones, wax, jade or marble. Choosing a preset overwrites every other value here, so pick one first and fine-tune afterwards',\r\n type: 'string',\r\n default: 'skin',\r\n options: {\r\n label: 'LookPreset',\r\n enum: {\r\n labels: ['Skin', 'Skin Pale', 'Skin Tan', 'Skin Dark', 'Wax', 'Jade', 'Marble'],\r\n values: ['skin', 'skin_pale', 'skin_tan', 'skin_dark', 'wax', 'jade', 'marble']\r\n }\r\n },\r\n get(this: SSSProfile, value) {\r\n value.str[0] = this.preset;\r\n },\r\n set(this: SSSProfile, value) {\r\n this.preset = value.str[0] as SSSProfilePreset;\r\n }\r\n },\r\n {\r\n name: 'SurfaceAlbedo',\r\n description:\r\n \"Set this close to the skin's base color. It does not recolor the surface; it fine-tunes how soft or tight the scattered glow is in each color channel\",\r\n type: 'rgb',\r\n default: [0.91058, 0.338275, 0.2718],\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: SSSProfile, value) {\r\n value.num[0] = this.surfaceAlbedo.x;\r\n value.num[1] = this.surfaceAlbedo.y;\r\n value.num[2] = this.surfaceAlbedo.z;\r\n },\r\n set(this: SSSProfile, value) {\r\n this.surfaceAlbedo = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'MeanFreePath',\r\n description:\r\n 'Relative softness per color channel. The channel with the highest value bleeds furthest, which sets the color of the glow in shadow edges and around fine details; skin keeps red high, giving the warm red fringe at the light-to-shadow transition',\r\n type: 'rgb',\r\n default: [1, 0.0889636, 0.0720951],\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: SSSProfile, value) {\r\n value.num[0] = this.meanFreePath.x;\r\n value.num[1] = this.meanFreePath.y;\r\n value.num[2] = this.meanFreePath.z;\r\n },\r\n set(this: SSSProfile, value) {\r\n this.meanFreePath = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'MeanFreePathDistance',\r\n description:\r\n 'Overall softness of the skin, in real-world metres (about 0.01 for human skin). Higher values blur lighting and surface detail more, giving a waxy, translucent look; lower values give a harder, more opaque, plastic-like surface',\r\n type: 'float',\r\n default: 0.026748,\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: SSSProfile, value) {\r\n value.num[0] = this.meanFreePathDistance;\r\n },\r\n set(this: SSSProfile, value) {\r\n this.meanFreePathDistance = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'WorldUnitScale',\r\n description:\r\n \"Set this to the model's size relative to real life (1 for a life-size model in metres, 4 for a head modelled four times too large). If the skin looks too waxy or too hard only because of the model's scale, fix it here instead of changing the softness\",\r\n type: 'float',\r\n default: 1,\r\n options: { animatable: true, minValue: 0.01, maxValue: 100 },\r\n get(this: SSSProfile, value) {\r\n value.num[0] = this.worldUnitScale;\r\n },\r\n set(this: SSSProfile, value) {\r\n this.worldUnitScale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ScatterScale',\r\n description:\r\n 'Quick overall softness knob on top of MeanFreePathDistance, affecting both the soft skin look and the glow through thin parts. Raise it for softer, more translucent skin; 0 removes the soft scattering look entirely',\r\n type: 'float',\r\n default: 1,\r\n options: { animatable: true, minValue: 0, maxValue: 8 },\r\n get(this: SSSProfile, value) {\r\n value.num[0] = this.scatterScale;\r\n },\r\n set(this: SSSProfile, value) {\r\n this.scatterScale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'BoundaryColorBleed',\r\n description:\r\n 'Color used where this skin meets a different profile, e.g. face and lips. Values near white let the softness blend smoothly across the boundary; darker or more saturated values tint the transition and make the seam more visible',\r\n type: 'rgb',\r\n default: [1, 1, 1],\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: SSSProfile, value) {\r\n value.num[0] = this.boundaryColorBleed.x;\r\n value.num[1] = this.boundaryColorBleed.y;\r\n value.num[2] = this.boundaryColorBleed.z;\r\n },\r\n set(this: SSSProfile, value) {\r\n this.boundaryColorBleed = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'TransmissionTint',\r\n description:\r\n 'Color of the glow seen when light shines through thin parts such as ears, nostrils and fingers from behind. Warm reds and oranges for skin',\r\n type: 'rgb',\r\n default: [1, 0.42, 0.3],\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: SSSProfile, value) {\r\n value.num[0] = this.transmissionTint.x;\r\n value.num[1] = this.transmissionTint.y;\r\n value.num[2] = this.transmissionTint.z;\r\n },\r\n set(this: SSSProfile, value) {\r\n this.transmissionTint = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'ExtinctionScale',\r\n description:\r\n 'How opaque the material is to back-lighting. Higher values make only the thinnest edges glow; lower values let the glow reach thicker areas, making the object look more translucent overall',\r\n type: 'float',\r\n default: 1,\r\n options: { animatable: true, minValue: 0, maxValue: 8 },\r\n get(this: SSSProfile, value) {\r\n value.num[0] = this.extinctionScale;\r\n },\r\n set(this: SSSProfile, value) {\r\n this.extinctionScale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'NormalScale',\r\n description:\r\n 'Stability of the back-lit glow. Too low makes the glow through thin parts disappear or look blotchy; higher values give a cleaner, smoother glow but wash out small thin details. Does not affect front-lit skin',\r\n type: 'float',\r\n default: 0.08,\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: SSSProfile, value) {\r\n value.num[0] = this.normalScale;\r\n },\r\n set(this: SSSProfile, value) {\r\n this.normalScale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ScatteringDistribution',\r\n description:\r\n 'How directional the back-lit glow is. Values near 1 make thin parts glow strongly only when looking almost straight towards the light; lower values spread the glow over a wider range of viewing angles',\r\n type: 'float',\r\n default: 0.93,\r\n options: { animatable: true, minValue: -1, maxValue: 1 },\r\n get(this: SSSProfile, value) {\r\n value.num[0] = this.scatteringDistribution;\r\n },\r\n set(this: SSSProfile, value) {\r\n this.scatteringDistribution = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'IOR',\r\n description:\r\n 'Changes how the back-lit glow depends on the viewing angle. Higher values make the glow follow the surface shape and the light more than the camera direction. Does not affect front-lit highlights',\r\n type: 'float',\r\n default: 1.55,\r\n options: { animatable: true, minValue: 1, maxValue: 3 },\r\n get(this: SSSProfile, value) {\r\n value.num[0] = this.ior;\r\n },\r\n set(this: SSSProfile, value) {\r\n this.ior = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Roughness0',\r\n description:\r\n 'Sharpness of the tight highlight layer, as a fraction of the material roughness. Lower values give a small, crisp, oily-looking highlight',\r\n type: 'float',\r\n default: 0.75,\r\n options: { animatable: true, minValue: 0.5, maxValue: 2 },\r\n get(this: SSSProfile, value) {\r\n value.num[0] = this.roughness0;\r\n },\r\n set(this: SSSProfile, value) {\r\n this.roughness0 = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Roughness1',\r\n description:\r\n 'Sharpness of the broad highlight layer, as a fraction of the material roughness. Lower values make the soft sheen smaller and brighter',\r\n type: 'float',\r\n default: 1.3,\r\n options: { animatable: true, minValue: 0.5, maxValue: 2 },\r\n get(this: SSSProfile, value) {\r\n value.num[0] = this.roughness1;\r\n },\r\n set(this: SSSProfile, value) {\r\n this.roughness1 = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'LobeMix',\r\n description:\r\n 'Balance between the two highlight layers. 0 shows only the tight, crisp highlight; higher values add more of the broad, soft sheen for a more matte look',\r\n type: 'float',\r\n default: 0.85,\r\n options: { animatable: true, minValue: 0.1, maxValue: 0.9 },\r\n get(this: SSSProfile, value) {\r\n value.num[0] = this.lobeMix;\r\n },\r\n set(this: SSSProfile, value) {\r\n this.lobeMix = value.num[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n\r\nfunction getPBRCommonProps(manager: ResourceManager): PropertyAccessor<PBRMaterial>[] {\r\n const supportsSSSThicknessAuthoring = function (this: PBRMaterial) {\r\n return (\r\n (!this.$isInstance || isBlueprintMaterialAssetInstance(this as unknown as MeshMaterial)) &&\r\n !!(this.transmission || (this as PBRMaterial & { subsurfaceProfile?: unknown }).subsurfaceProfile)\r\n );\r\n };\r\n return defineProps([\r\n {\r\n name: 'IOR',\r\n description: 'Index of refraction for the material surface',\r\n type: 'float',\r\n default: 1.5,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.ior;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.ior = value.num[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'OcclusionStrength',\r\n description: 'Strength multiplier for the occlusion texture effect',\r\n type: 'float',\r\n phase: 2,\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.occlusionStrength;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.occlusionStrength = value.num[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['AO']),\r\n isValid(this: PBRMaterial) {\r\n return !this.$isInstance && !!this.occlusionTexture;\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'occlusionTexture', '2D', false, 0, undefined, ['AO']),\r\n {\r\n name: 'EmissiveColor',\r\n description: 'Base self-illumination color emitted by the material',\r\n type: 'rgb',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.emissiveColor.x;\r\n value.num[1] = this.emissiveColor.y;\r\n value.num[2] = this.emissiveColor.z;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.emissiveColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Emissive']),\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.emissiveColor : [0, 0, 0];\r\n }\r\n },\r\n {\r\n name: 'EmissiveStrength',\r\n description:\r\n 'Display-referred intensity multiplier for the emissive color and texture, used by legacy ' +\r\n 'lighting. Physical lighting uses EmissiveLuminance instead.',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.emissiveStrength;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.emissiveStrength = value.num[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Emissive']),\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.emissiveStrength : 1;\r\n }\r\n },\r\n {\r\n name: 'EmissiveLuminance',\r\n description:\r\n 'Emissive multiplier used by physical lighting. With EmissiveExposureWeight at 1 it is a ' +\r\n 'luminance in cd/m²: a display is 200-1000, a neon sign 5,000-20,000, a sunlit white ' +\r\n 'surface ~25,000. With the weight at 0, as on imported glTF/FBX materials, the exposure ' +\r\n 'cancels out and it is a display-referred multiplier where the useful range is about [0, 1].',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.emissiveLuminance;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.emissiveLuminance = value.num[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Emissive']),\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.emissiveLuminance : 1000;\r\n }\r\n },\r\n {\r\n name: 'EmissiveExposureWeight',\r\n description:\r\n 'How strongly the emissive term follows camera exposure, and therefore what unit ' +\r\n 'EmissiveLuminance carries. 1 reads it as a cd/m² luminance that dims as the camera stops ' +\r\n 'down; 0 cancels the exposure out, making it a display-referred multiplier that ignores ' +\r\n 'aperture, shutter and ISO. Imported glTF/FBX materials are set to 0.',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.emissiveExposureWeight;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.emissiveExposureWeight = value.num[0];\r\n },\r\n // Materials are not scene-bound, so this cannot be gated on lightingMode. It is inert in\r\n // legacy anyway (pre-exposure is 1 there), so it stays visible like the other emissive props.\r\n isHidden: createBlueprintOutputHiddenPredicate(['Emissive']),\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.emissiveExposureWeight : 1;\r\n }\r\n },\r\n {\r\n name: 'RectSpecularScale',\r\n description:\r\n 'Brightness of the highlights produced by rectangular area lights on this material; 1 is neutral, lower values dim the reflections of the light panels, higher values make them brighter',\r\n type: 'float',\r\n options: {\r\n label: 'RectSpecularScale',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.rectSpecularScale;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.rectSpecularScale = value.num[0];\r\n },\r\n getDefaultValue(this: PBRMaterial) {\r\n if (this instanceof PBRBluePrintMaterialInstance) {\r\n return this.parentMaterial?.rectSpecularScale ?? 1;\r\n }\r\n return this.$isInstance ? this.coreMaterial.rectSpecularScale : 1;\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'emissiveTexture', '2D', true, 0, undefined, ['Emissive']),\r\n ...getTextureProps<PBRMaterial>(manager, 'specularTexture', '2D', false, 0, undefined, [\r\n 'SpecularWeight'\r\n ]),\r\n {\r\n name: 'Transmission',\r\n description: 'If true, enables light transmission through the material',\r\n type: 'bool',\r\n phase: 0,\r\n default: false,\r\n get(this: PBRMaterial, value) {\r\n value.bool[0] = this.transmission;\r\n },\r\n set(this: PBRMaterial, value) {\r\n allowBlueprintInstanceOverride(this as unknown as MeshMaterial, 'Transmission', () => {\r\n this.transmission = value.bool[0];\r\n });\r\n },\r\n isValid() {\r\n return !this.$isInstance || isBlueprintMaterialAssetInstance(this as unknown as MeshMaterial);\r\n }\r\n },\r\n {\r\n name: 'TransmissionFactor',\r\n description: 'Amount of transmitted light, from fully opaque to fully transparent',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.2,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.transmissionFactor;\r\n },\r\n set(this: PBRMaterial, value) {\r\n allowBlueprintInstanceOverride(this as unknown as MeshMaterial, 'TransmissionFactor', () => {\r\n this.transmissionFactor = value.num[0];\r\n });\r\n },\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.transmissionFactor : 0.2;\r\n },\r\n isValid() {\r\n return supportsSSSThicknessAuthoring.call(this);\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'transmissionTexture', '2D', false, 1, function () {\r\n return this.transmission || !!(this as PBRMaterial & { subsurfaceProfile?: unknown }).subsurfaceProfile;\r\n }),\r\n {\r\n name: 'ThicknessFactor',\r\n description: 'Physical thickness used by transmission and volume attenuation',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.35,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 99999\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.thicknessFactor;\r\n },\r\n set(this: PBRMaterial, value) {\r\n allowBlueprintInstanceOverride(this as unknown as MeshMaterial, 'ThicknessFactor', () => {\r\n this.thicknessFactor = value.num[0];\r\n });\r\n },\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.thicknessFactor : 0.35;\r\n },\r\n isValid() {\r\n return supportsSSSThicknessAuthoring.call(this);\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'thicknessTexture', '2D', false, 1, function () {\r\n return this.transmission || !!(this as PBRMaterial & { subsurfaceProfile?: unknown }).subsurfaceProfile;\r\n }),\r\n {\r\n name: 'AttenuationColor',\r\n description: 'Color tint applied to transmitted light as it travels through the material',\r\n type: 'rgb',\r\n phase: 1,\r\n default: [1, 0.5, 0.4],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.attenuationColor.x;\r\n value.num[1] = this.attenuationColor.y;\r\n value.num[2] = this.attenuationColor.z;\r\n },\r\n set(this: PBRMaterial, value) {\r\n allowBlueprintInstanceOverride(this as unknown as MeshMaterial, 'AttenuationColor', () => {\r\n this.attenuationColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n });\r\n },\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.attenuationColor : [1, 0.5, 0.4];\r\n },\r\n isValid() {\r\n return supportsSSSThicknessAuthoring.call(this);\r\n }\r\n },\r\n {\r\n name: 'AttenuationDistance',\r\n description: 'Distance over which transmitted light is attenuated inside the material',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.6,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 99999\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.attenuationDistance;\r\n },\r\n set(this: PBRMaterial, value) {\r\n allowBlueprintInstanceOverride(this as unknown as MeshMaterial, 'AttenuationDistance', () => {\r\n this.attenuationDistance = value.num[0];\r\n });\r\n },\r\n getDefaultValue(this: PBRMaterial) {\r\n return this.$isInstance ? this.coreMaterial.attenuationDistance : 0.6;\r\n },\r\n isValid() {\r\n return supportsSSSThicknessAuthoring.call(this);\r\n }\r\n },\r\n {\r\n name: 'Iridescence',\r\n description: 'If true, enables thin-film iridescence on the material surface',\r\n type: 'bool',\r\n phase: 0,\r\n default: false,\r\n get(this: PBRMaterial, value) {\r\n value.bool[0] = this.iridescence;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.iridescence = value.bool[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'IridescenceFactor',\r\n description: 'Strength of the iridescence effect',\r\n type: 'float',\r\n phase: 1,\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.iridescenceFactor;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.iridescenceFactor = value.num[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance && !!this.iridescence;\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'iridescenceTexture', '2D', false, 1, function () {\r\n return this.iridescence;\r\n }),\r\n {\r\n name: 'IridescenceIOR',\r\n description: 'Index of refraction used for the iridescence layer',\r\n type: 'float',\r\n phase: 1,\r\n default: 1.3,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.iridescenceIor;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.iridescenceIor = value.num[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance && !!this.iridescence;\r\n }\r\n },\r\n {\r\n name: 'IridescenceThicknessMin',\r\n description: 'Minimum thin-film thickness used for iridescence, typically in nanometers',\r\n type: 'float',\r\n phase: 1,\r\n default: 100,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1000\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.iridescenceThicknessMin;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.iridescenceThicknessMin = value.num[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance && !!this.iridescence;\r\n }\r\n },\r\n {\r\n name: 'IridescenceThicknessMax',\r\n description: 'Maximum thin-film thickness used for iridescence, typically in nanometers',\r\n type: 'float',\r\n phase: 1,\r\n default: 400,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1000\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.iridescenceThicknessMax;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.iridescenceThicknessMax = value.num[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance && !!this.iridescence;\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'iridescenceThicknessTexture', '2D', false, 1, function () {\r\n return this.iridescence;\r\n }),\r\n {\r\n name: 'ClearCoat',\r\n description: 'If true, enables a clear coat layer on top of the material',\r\n type: 'bool',\r\n phase: 0,\r\n default: false,\r\n get(this: PBRMaterial, value) {\r\n value.bool[0] = this.clearcoat;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.clearcoat = value.bool[0];\r\n },\r\n isValid() {\r\n return (\r\n !this.$isInstance &&\r\n !isBlueprintMaterialAssetInstanceWithInheritedParentProps(this as unknown as MeshMaterial)\r\n );\r\n }\r\n },\r\n {\r\n name: 'ClearCoatIntensity',\r\n description: 'Strength of the clear coat layer',\r\n type: 'float',\r\n phase: 1,\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.clearcoatIntensity;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.clearcoatIntensity = value.num[0];\r\n },\r\n isValid() {\r\n return (\r\n !this.$isInstance &&\r\n !isBlueprintMaterialAssetInstanceWithInheritedParentProps(this as unknown as MeshMaterial) &&\r\n !!this.clearcoat\r\n );\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'clearcoatIntensityTexture', '2D', false, 1, function () {\r\n return (\r\n !isBlueprintMaterialAssetInstanceWithInheritedParentProps(this as unknown as MeshMaterial) &&\r\n this.clearcoat\r\n );\r\n }),\r\n {\r\n name: 'ClearCoatRoughnessFactor',\r\n description: 'Roughness of the clear coat layer',\r\n type: 'float',\r\n phase: 1,\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.clearcoatRoughnessFactor;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.clearcoatRoughnessFactor = value.num[0];\r\n },\r\n isValid() {\r\n return (\r\n !this.$isInstance &&\r\n !isBlueprintMaterialAssetInstanceWithInheritedParentProps(this as unknown as MeshMaterial) &&\r\n !!this.clearcoat\r\n );\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'clearcoatRoughnessTexture', '2D', false, 1, function () {\r\n return (\r\n !isBlueprintMaterialAssetInstanceWithInheritedParentProps(this as unknown as MeshMaterial) &&\r\n this.clearcoat\r\n );\r\n }),\r\n ...getTextureProps<PBRMaterial>(manager, 'clearcoatNormalTexture', '2D', false, 1, function () {\r\n return (\r\n !isBlueprintMaterialAssetInstanceWithInheritedParentProps(this as unknown as MeshMaterial) &&\r\n this.clearcoat\r\n );\r\n }),\r\n {\r\n name: 'Sheen',\r\n description: 'If true, enables a soft fabric-like sheen layer',\r\n type: 'bool',\r\n phase: 0,\r\n default: false,\r\n get(this: PBRMaterial, value) {\r\n value.bool[0] = this.sheen;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.sheen = value.bool[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'SheenColorFactor',\r\n description: 'Color of the sheen layer',\r\n type: 'rgb',\r\n phase: 1,\r\n default: [0, 0, 0],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.sheenColorFactor.x;\r\n value.num[1] = this.sheenColorFactor.y;\r\n value.num[2] = this.sheenColorFactor.z;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.sheenColorFactor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n isValid() {\r\n return !this.$isInstance && !!this.sheen;\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'sheenColorTexture', '2D', true, 1, function () {\r\n return this.sheen;\r\n }),\r\n {\r\n name: 'SheenRoughnessFactor',\r\n description: 'Roughness of the sheen layer',\r\n type: 'float',\r\n phase: 1,\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMaterial, value) {\r\n value.num[0] = this.sheenRoughnessFactor;\r\n },\r\n set(this: PBRMaterial, value) {\r\n this.sheenRoughnessFactor = value.num[0];\r\n },\r\n isValid() {\r\n return !this.$isInstance && !!this.sheen;\r\n }\r\n },\r\n ...getTextureProps<PBRMaterial>(manager, 'sheenRoughnessTexture', '2D', false, 1, function () {\r\n return this.sheen;\r\n }),\r\n ...getLitMaterialProps(manager)\r\n ]);\r\n}\r\n\r\nfunction getLitMaterialProps(manager: ResourceManager): PropertyAccessor<LitPropTypes>[] {\r\n return defineProps([\r\n ...getUnlitMaterialProps(manager),\r\n {\r\n name: 'NormalScale',\r\n description: 'Strength multiplier for normal map X and Y components',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 3\r\n },\r\n get(this: LitPropTypes, value) {\r\n value.num[0] = this.normalScale;\r\n },\r\n set(this: LitPropTypes, value) {\r\n allowBlueprintInstanceOverride(this as unknown as MeshMaterial, 'NormalScale', () => {\r\n this.normalScale = value.num[0];\r\n });\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Normal']),\r\n getDefaultValue(this: LitPropTypes) {\r\n if (this instanceof PBRBluePrintMaterialInstance) {\r\n return this.parentMaterial?.normalScale ?? 1;\r\n }\r\n return this.$isInstance ? this.coreMaterial.normalScale : 1;\r\n },\r\n isValid() {\r\n return !this.$isInstance || isBlueprintMaterialAssetInstance(this as unknown as MeshMaterial);\r\n }\r\n },\r\n {\r\n name: 'NormalFlipY',\r\n description: 'If true, flips the green (Y) component sampled from the normal map',\r\n type: 'bool',\r\n default: false,\r\n get(this: LitPropTypes, value) {\r\n value.bool[0] = this.normalFlipY;\r\n },\r\n set(this: LitPropTypes, value) {\r\n allowBlueprintInstanceOverride(this as unknown as MeshMaterial, 'NormalFlipY', () => {\r\n this.normalFlipY = value.bool[0];\r\n });\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Normal']),\r\n getDefaultValue(this: LitPropTypes) {\r\n if (this instanceof PBRBluePrintMaterialInstance) {\r\n return this.parentMaterial?.normalFlipY ?? false;\r\n }\r\n return this.$isInstance ? this.coreMaterial.normalFlipY : false;\r\n },\r\n isValid() {\r\n return !this.$isInstance || isBlueprintMaterialAssetInstance(this as unknown as MeshMaterial);\r\n }\r\n },\r\n {\r\n name: 'doubleSidedLighting',\r\n description: 'If true, lighting is evaluated on both sides of the surface',\r\n type: 'bool',\r\n default: true,\r\n isValid(this: LitPropTypes) {\r\n return !this.$isInstance;\r\n },\r\n get(this: LitPropTypes, value) {\r\n value.bool[0] = this.doubleSidedLighting;\r\n },\r\n set(this: LitPropTypes, value) {\r\n allowBlueprintInstanceOverride(this as unknown as MeshMaterial, 'doubleSidedLighting', () => {\r\n this.doubleSidedLighting = value.bool[0];\r\n });\r\n },\r\n getDefaultValue(this: LitPropTypes) {\r\n if (this instanceof PBRBluePrintMaterialInstance) {\r\n return this.parentMaterial?.doubleSidedLighting ?? true;\r\n }\r\n // Must match what the constructor actually sets - mixinLight enables\r\n // FEATURE_DOUBLE_SIDED_LIGHTING - because this value is used both to\r\n // decide whether to omit the property when saving and to fill it in\r\n // when it is absent on load. Returning false here made every asset\r\n // written before this accessor existed (all of which omitted the key,\r\n // since true was then the assumed default) load as single-sided.\r\n return this.$isInstance ? this.coreMaterial.doubleSidedLighting : true;\r\n }\r\n },\r\n {\r\n name: 'vertexNormal',\r\n description: 'If true, uses vertex normals for lighting and normal mapping',\r\n type: 'bool',\r\n default: true,\r\n get(this: LitPropTypes, value) {\r\n value.bool[0] = this.vertexNormal;\r\n },\r\n set(this: LitPropTypes, value) {\r\n this.vertexNormal = value.bool[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Normal']),\r\n isValid(this: LitPropTypes) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'vertexTangent',\r\n description: 'If true, uses vertex tangents for tangent-space normal mapping',\r\n type: 'bool',\r\n default: false,\r\n get(this: LitPropTypes, value) {\r\n value.bool[0] = this.vertexTangent;\r\n },\r\n set(this: LitPropTypes, value) {\r\n this.vertexTangent = value.bool[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Tangent']),\r\n isValid(this: LitPropTypes) {\r\n return !this.$isInstance && !!this.vertexNormal;\r\n }\r\n },\r\n ...getTextureProps<LitPropTypes>(manager, 'normalTexture', '2D', false, 0, undefined, ['Normal'])\r\n ]);\r\n}\r\n\r\nfunction getUnlitMaterialProps(manager: ResourceManager): PropertyAccessor<UnlitPropTypes>[] {\r\n return defineProps([\r\n {\r\n name: 'vertexColor',\r\n description: 'If true, multiplies the material color by per-vertex color data',\r\n type: 'bool',\r\n default: false,\r\n get(this: UnlitPropTypes, value) {\r\n value.bool[0] = this.vertexColor;\r\n },\r\n set(this: UnlitPropTypes, value) {\r\n this.vertexColor = value.bool[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['BaseColor']),\r\n isValid(this: UnlitPropTypes) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'AlbedoColor',\r\n description: 'Base RGBA color of the material before lighting',\r\n type: 'rgba',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: UnlitPropTypes, value) {\r\n const color = this.albedoColor;\r\n value.num[0] = color.x;\r\n value.num[1] = color.y;\r\n value.num[2] = color.z;\r\n value.num[3] = color.w;\r\n },\r\n set(this: UnlitPropTypes, value) {\r\n this.albedoColor = new Vector4(value.num[0], value.num[1], value.num[2], value.num[3]);\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['BaseColor', 'Opacity']),\r\n getDefaultValue(this: UnlitPropTypes) {\r\n return this.$isInstance ? this.coreMaterial.albedoColor : [1, 1, 1, 1];\r\n }\r\n },\r\n ...getTextureProps<UnlitPropTypes>(manager, 'albedoTexture', '2D', true, 0, undefined, [\r\n 'BaseColor',\r\n 'Opacity'\r\n ])\r\n ]);\r\n}\r\n\r\nfunction getMToonMaterialProps(manager: ResourceManager): PropertyAccessor<MToonMaterial>[] {\r\n return defineProps([\r\n {\r\n name: 'AlbedoColor',\r\n description: 'Base RGBA color of the MToon material',\r\n type: 'rgba',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: MToonMaterial, value) {\r\n const color = this.albedoColor;\r\n value.num[0] = color.x;\r\n value.num[1] = color.y;\r\n value.num[2] = color.z;\r\n value.num[3] = color.w;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.albedoColor = new Vector4(value.num[0], value.num[1], value.num[2], value.num[3]);\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.albedoColor : [1, 1, 1, 1];\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'albedoTexture', '2D', true, 0),\r\n {\r\n name: 'NormalScale',\r\n description: 'Scalar applied to the MToon normal texture',\r\n type: 'float',\r\n phase: 1,\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 2\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.normalScale;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.normalScale = value.num[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance && !!this.normalTexture;\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'normalTexture', '2D', false, 0),\r\n {\r\n name: 'DoubleSidedLighting',\r\n description: 'If true, MToon lighting is evaluated on both sides of the surface',\r\n type: 'bool',\r\n default: true,\r\n get(this: MToonMaterial, value) {\r\n value.bool[0] = this.doubleSidedLighting;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.doubleSidedLighting = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'EmissiveColor',\r\n description: 'Base self-illumination color emitted by the MToon material',\r\n type: 'rgb',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.emissiveColor.x;\r\n value.num[1] = this.emissiveColor.y;\r\n value.num[2] = this.emissiveColor.z;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.emissiveColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.emissiveColor : [0, 0, 0];\r\n }\r\n },\r\n {\r\n name: 'EmissiveStrength',\r\n description: 'Intensity multiplier for the MToon emissive color and texture',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.emissiveStrength;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.emissiveStrength = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.emissiveStrength : 1;\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'emissiveTexture', '2D', true, 0),\r\n {\r\n name: 'ShadeColorFactor',\r\n description: 'MToon shadow-side color factor',\r\n type: 'rgb',\r\n default: [0, 0, 0],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.shadeColorFactor.x;\r\n value.num[1] = this.shadeColorFactor.y;\r\n value.num[2] = this.shadeColorFactor.z;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.shadeColorFactor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.shadeColorFactor : [0, 0, 0];\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'shadeMultiplyTexture', '2D', true, 0),\r\n {\r\n name: 'ShadingShiftFactor',\r\n description: 'MToon terminator shift factor',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: -1,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.shadingShiftFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.shadingShiftFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.shadingShiftFactor : 0;\r\n }\r\n },\r\n {\r\n name: 'ShadingShiftTextureScale',\r\n description: 'Scale applied to the MToon shading shift texture',\r\n type: 'float',\r\n phase: 1,\r\n default: 1,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.shadingShiftTextureScale;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.shadingShiftTextureScale = value.num[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance && !!this.shadingShiftTexture;\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'shadingShiftTexture', '2D', false, 0),\r\n {\r\n name: 'ShadingToonyFactor',\r\n description: 'MToon shadow edge sharpness factor',\r\n type: 'float',\r\n default: 0.9,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 0.99\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.shadingToonyFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.shadingToonyFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.shadingToonyFactor : 0.9;\r\n }\r\n },\r\n {\r\n name: 'GIEqualizationFactor',\r\n description: 'MToon indirect lighting equalization factor',\r\n type: 'float',\r\n default: 0.9,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.giEqualizationFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.giEqualizationFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.giEqualizationFactor : 0.9;\r\n }\r\n },\r\n {\r\n name: 'MatcapFactor',\r\n description: 'MToon matcap color factor',\r\n type: 'rgb',\r\n default: [1, 1, 1],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.matcapFactor.x;\r\n value.num[1] = this.matcapFactor.y;\r\n value.num[2] = this.matcapFactor.z;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.matcapFactor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.matcapFactor : [1, 1, 1];\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'matcapTexture', '2D', true, 0),\r\n {\r\n name: 'ParametricRimColorFactor',\r\n description: 'MToon parametric rim color factor',\r\n type: 'rgb',\r\n default: [0, 0, 0],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.parametricRimColorFactor.x;\r\n value.num[1] = this.parametricRimColorFactor.y;\r\n value.num[2] = this.parametricRimColorFactor.z;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.parametricRimColorFactor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.parametricRimColorFactor : [0, 0, 0];\r\n }\r\n },\r\n {\r\n name: 'ParametricRimFresnelPowerFactor',\r\n description: 'MToon parametric rim Fresnel power factor',\r\n type: 'float',\r\n default: 5,\r\n options: {\r\n animatable: true,\r\n minValue: 0\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.parametricRimFresnelPowerFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.parametricRimFresnelPowerFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.parametricRimFresnelPowerFactor : 5;\r\n }\r\n },\r\n {\r\n name: 'ParametricRimLiftFactor',\r\n description: 'MToon parametric rim lift factor',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.parametricRimLiftFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.parametricRimLiftFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.parametricRimLiftFactor : 0;\r\n }\r\n },\r\n {\r\n name: 'RimLightingMixFactor',\r\n description: 'MToon rim lighting mix factor',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.rimLightingMixFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.rimLightingMixFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.rimLightingMixFactor : 1;\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'rimMultiplyTexture', '2D', true, 0),\r\n {\r\n name: 'OutlineWidthMode',\r\n description: 'MToon outline width mode',\r\n type: 'string',\r\n default: 'none',\r\n options: {\r\n enum: {\r\n labels: ['None', 'World Coordinates', 'Screen Coordinates'],\r\n values: ['none', 'worldCoordinates', 'screenCoordinates']\r\n }\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.str[0] = this.outlineWidthMode;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.outlineWidthMode = value.str[0] as MToonOutlineWidthMode;\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'OutlineWidthFactor',\r\n description: 'MToon outline width factor',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.outlineWidthFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.outlineWidthFactor = value.num[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance && this.outlineWidthMode !== 'none';\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'outlineWidthMultiplyTexture', '2D', false, 1, function () {\r\n return this.outlineWidthMode !== 'none';\r\n }),\r\n {\r\n name: 'OutlineColorFactor',\r\n description: 'MToon outline color factor',\r\n type: 'rgb',\r\n default: [0, 0, 0],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.outlineColorFactor.x;\r\n value.num[1] = this.outlineColorFactor.y;\r\n value.num[2] = this.outlineColorFactor.z;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.outlineColorFactor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance && this.outlineWidthMode !== 'none';\r\n }\r\n },\r\n {\r\n name: 'OutlineLightingMixFactor',\r\n description: 'MToon outline lighting mix factor',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.outlineLightingMixFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.outlineLightingMixFactor = value.num[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance && this.outlineWidthMode !== 'none';\r\n }\r\n },\r\n {\r\n name: 'OutlineUsesTangentNormals',\r\n description: 'Use the tangent attribute xyz as smooth normals for MToon outline expansion',\r\n type: 'boolean',\r\n default: false,\r\n get(this: MToonMaterial, value) {\r\n value.bool[0] = this.outlineUsesTangentNormals;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.outlineUsesTangentNormals = value.bool[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance && this.outlineWidthMode !== 'none';\r\n }\r\n },\r\n ...getTextureProps<MToonMaterial>(manager, 'uvAnimationMaskTexture', '2D', false, 0),\r\n {\r\n name: 'UVAnimationScrollXSpeedFactor',\r\n description: 'MToon UV animation scroll speed on the X axis',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.uvAnimationScrollXSpeedFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.uvAnimationScrollXSpeedFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.uvAnimationScrollXSpeedFactor : 0;\r\n }\r\n },\r\n {\r\n name: 'UVAnimationScrollYSpeedFactor',\r\n description: 'MToon UV animation scroll speed on the Y axis',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.uvAnimationScrollYSpeedFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.uvAnimationScrollYSpeedFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.uvAnimationScrollYSpeedFactor : 0;\r\n }\r\n },\r\n {\r\n name: 'UVAnimationRotationSpeedFactor',\r\n description: 'MToon UV animation rotation speed',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.uvAnimationRotationSpeedFactor;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.uvAnimationRotationSpeedFactor = value.num[0];\r\n },\r\n getDefaultValue(this: MToonMaterial) {\r\n return this.$isInstance ? this.coreMaterial.uvAnimationRotationSpeedFactor : 0;\r\n }\r\n },\r\n {\r\n name: 'TransparentWithZWrite',\r\n description: 'If true, transparent MToon pixels also write depth',\r\n type: 'bool',\r\n default: false,\r\n get(this: MToonMaterial, value) {\r\n value.bool[0] = this.transparentWithZWrite;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.transparentWithZWrite = value.bool[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'RenderQueueOffsetNumber',\r\n description: 'MToon render queue offset number',\r\n type: 'int',\r\n default: 0,\r\n options: {\r\n minValue: -9,\r\n maxValue: 9\r\n },\r\n get(this: MToonMaterial, value) {\r\n value.num[0] = this.renderQueueOffsetNumber;\r\n },\r\n set(this: MToonMaterial, value) {\r\n this.renderQueueOffsetNumber = value.num[0];\r\n },\r\n isValid(this: MToonMaterial) {\r\n return !this.$isInstance;\r\n }\r\n }\r\n ]);\r\n}\r\n\r\n/** @internal */\r\nexport function getMeshMaterialClass(): SerializableClass[] {\r\n return [\r\n {\r\n ctor: MeshMaterial,\r\n name: 'MeshMaterial',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'AlphaCutoff',\r\n description:\r\n 'If greater then 0, pixels which have alpha smaller than alpha cutoff will be discarded',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MeshMaterial, value) {\r\n value.num[0] = this.alphaCutoff;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.alphaCutoff = value.num[0];\r\n },\r\n isValid(this: MeshMaterial) {\r\n return canEditParentMaterialProperty(this);\r\n }\r\n },\r\n {\r\n name: 'AlphaToCoverage',\r\n description: 'If true, alpha-to-coverage will be enabled',\r\n type: 'bool',\r\n default: false,\r\n get(this: MeshMaterial, value) {\r\n value.bool[0] = this.alphaToCoverage;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.alphaToCoverage = value.bool[0];\r\n },\r\n isValid(this: MeshMaterial) {\r\n return canEditParentMaterialProperty(this);\r\n }\r\n },\r\n {\r\n name: 'AlphaDither',\r\n description: 'If true, alpha-dithering will be enabled',\r\n type: 'bool',\r\n default: false,\r\n get(this: MeshMaterial, value) {\r\n value.bool[0] = this.alphaDither;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.alphaDither = value.bool[0];\r\n },\r\n isValid(this: MeshMaterial) {\r\n return canEditParentMaterialProperty(this) && this.alphaCutoff > 0;\r\n }\r\n },\r\n {\r\n name: 'BlendMode',\r\n description: 'Blending mode for this material',\r\n type: 'string',\r\n options: {\r\n enum: { labels: ['None', 'Blend', 'Additive'], values: ['none', 'blend', 'additive'] }\r\n },\r\n default: 'none',\r\n get(this: MeshMaterial, value) {\r\n value.str[0] = this.blendMode;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.blendMode = value.str[0] as BlendMode;\r\n },\r\n isValid(this: MeshMaterial) {\r\n return canEditParentMaterialProperty(this);\r\n }\r\n },\r\n {\r\n name: 'TransparentShadowCaster',\r\n description:\r\n 'Lets a transparent (blended) material cast shadows. Areas more opaque than ShadowAlphaCutoff cast solid shadows, useful for foliage, hair cards or fabric; when off, transparent objects cast no shadow',\r\n type: 'bool',\r\n default: false,\r\n get(this: MeshMaterial, value) {\r\n value.bool[0] = this.transparentShadowCaster;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.transparentShadowCaster = value.bool[0];\r\n },\r\n isValid(this: MeshMaterial) {\r\n return canEditParentMaterialProperty(this) && this.blendMode !== 'none';\r\n }\r\n },\r\n {\r\n name: 'ShadowAlphaCutoff',\r\n description:\r\n 'Opacity above which a transparent material casts shadow. Lower values make fainter parts cast shadow too, giving fuller shadows; higher values keep only the most opaque parts, giving thinner shadows',\r\n type: 'float',\r\n default: 0.5,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: MeshMaterial, value) {\r\n value.num[0] = this.shadowAlphaCutoff;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.shadowAlphaCutoff = value.num[0];\r\n },\r\n isValid(this: MeshMaterial) {\r\n return (\r\n canEditParentMaterialProperty(this) &&\r\n this.blendMode !== 'none' &&\r\n this.transparentShadowCaster\r\n );\r\n }\r\n },\r\n {\r\n name: 'CullMode',\r\n description: 'Cull mode for this material',\r\n type: 'string',\r\n options: {\r\n enum: { labels: ['None', 'Front', 'Back'], values: ['none', 'front', 'back'] }\r\n },\r\n default: 'back',\r\n get(this: MeshMaterial, value) {\r\n value.str[0] = this.cullMode;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.cullMode = value.str[0] as FaceMode;\r\n },\r\n isValid(this: MeshMaterial) {\r\n return canEditParentMaterialProperty(this);\r\n }\r\n },\r\n {\r\n name: 'Opacity',\r\n description: 'Opacity value for this material, no effect if blendingMode is `none`',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n default: 1,\r\n get(this: MeshMaterial, value) {\r\n value.num[0] = this.opacity;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.opacity = value.num[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Opacity']),\r\n getDefaultValue(this: MeshMaterial) {\r\n return this.$isInstance ? this.coreMaterial.opacity : 1;\r\n }\r\n },\r\n {\r\n name: 'TAAStrength',\r\n description: 'TAA strength for this material',\r\n type: 'float',\r\n options: {\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n default: 15 / 16,\r\n get(this: MeshMaterial, value) {\r\n value.num[0] = this.TAAStrength;\r\n },\r\n set(this: MeshMaterial, value) {\r\n this.TAAStrength = value.num[0];\r\n },\r\n isValid(this: MeshMaterial) {\r\n return canEditParentMaterialProperty(this);\r\n }\r\n }\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(MeshMaterial, 'MeshMaterial')\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getSpriteMaterialClass(_manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: SpriteMaterial,\r\n name: 'SpriteMaterial',\r\n parent: MeshMaterial,\r\n getProps() {\r\n return [];\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(SpriteMaterial, 'SpriteMaterial')\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getStandardSpriteMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: StandardSpriteMaterial,\r\n name: 'StandardSpriteMaterial',\r\n parent: SpriteMaterial,\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'SpriteTexture',\r\n description: 'Texture file path for the sprite',\r\n type: 'object',\r\n default: '',\r\n options: {\r\n mimeTypes: [\r\n 'image/jpeg',\r\n 'image/png',\r\n 'image/tga',\r\n 'image/vnd.radiance',\r\n 'image/x-dds',\r\n 'image/webp'\r\n ]\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(value) {\r\n value.str[0] = manager.getAssetId(this.spriteTexture) ?? '';\r\n },\r\n async set(this: StandardSpriteMaterial, value) {\r\n if (!value || !value.str[0]) {\r\n this.spriteTexture = null;\r\n } else {\r\n const assetId = value.str[0];\r\n let tex: Nullable<Texture2D>;\r\n try {\r\n tex = await manager.fetchTexture<Texture2D>(assetId, {\r\n linearColorSpace: false\r\n });\r\n } catch (err) {\r\n console.error(`Load asset failed: ${value.str[0]}: ${err}`);\r\n tex = null;\r\n }\r\n if (tex?.isTexture2D()) {\r\n this.spriteTexture = tex;\r\n } else {\r\n console.error('Invalid texture type');\r\n }\r\n }\r\n },\r\n isValid() {\r\n return !this.$isInstance;\r\n }\r\n }\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(StandardSpriteMaterial, 'StandardSpriteMaterial')\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getParticleMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: ParticleMaterial,\r\n name: 'ParticleMaterial',\r\n parent: MeshMaterial,\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'AlphaMap',\r\n description: 'Alpha texture file path',\r\n type: 'object',\r\n default: '',\r\n options: {\r\n mimeTypes: [\r\n 'image/jpeg',\r\n 'image/png',\r\n 'image/tga',\r\n 'image/vnd.radiance',\r\n 'image/x-dds',\r\n 'image/webp'\r\n ]\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: ParticleMaterial, value) {\r\n value.str[0] = manager.getAssetId(this.alphaMap) ?? '';\r\n },\r\n async set(this: ParticleMaterial, value) {\r\n if (!value || !value.str[0]) {\r\n this.alphaMap = null;\r\n } else {\r\n const assetId = value.str[0];\r\n let tex: Nullable<Texture2D> = null;\r\n try {\r\n tex = await manager.fetchTexture<Texture2D>(assetId, { linearColorSpace: true });\r\n } catch (err) {\r\n console.error(`Load asset failed: ${value.str[0]}: ${err}`);\r\n }\r\n if (tex?.isTexture2D()) {\r\n this.alphaMap = tex;\r\n } else {\r\n console.error('Invalid albedo texture');\r\n }\r\n }\r\n }\r\n },\r\n {\r\n name: 'RampMap',\r\n description: 'Ramp texture file path',\r\n type: 'object',\r\n default: '',\r\n options: {\r\n mimeTypes: [\r\n 'image/jpeg',\r\n 'image/png',\r\n 'image/tga',\r\n 'image/vnd.radiance',\r\n 'image/x-dds',\r\n 'image/webp'\r\n ]\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: ParticleMaterial, value) {\r\n value.str[0] = manager.getAssetId(this.rampMap) ?? '';\r\n },\r\n async set(this: ParticleMaterial, value) {\r\n if (!value || !value.str[0]) {\r\n this.rampMap = null;\r\n } else {\r\n const assetId = value.str[0];\r\n let tex: Nullable<Texture2D> = null;\r\n try {\r\n tex = await manager.fetchTexture<Texture2D>(assetId);\r\n } catch (err) {\r\n console.error(`Load asset failed: ${value.str[0]}: ${err}`);\r\n }\r\n if (tex?.isTexture2D()) {\r\n this.rampMap = tex;\r\n } else {\r\n console.error('Invalid albedo texture');\r\n }\r\n }\r\n }\r\n }\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(ParticleMaterial, 'ParticleMaterial')\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getPBRBluePrintMaterialClass(): SerializableClass[] {\r\n return [\r\n {\r\n ctor: PBRBluePrintMaterial,\r\n parent: PBRMetallicRoughnessMaterial,\r\n name: 'PBRBluePrintMaterial',\r\n getProps() {\r\n return defineProps([]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(PBRBluePrintMaterial, 'PBRBluePrintMaterial')\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getPBRBluePrintMaterialInstanceClass(): SerializableClass[] {\r\n return [\r\n {\r\n ctor: PBRBluePrintMaterialInstance,\r\n parent: PBRBluePrintMaterial,\r\n name: 'PBRBluePrintMaterialInstance',\r\n getProps() {\r\n return defineProps([]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(PBRBluePrintMaterialInstance, 'PBRBluePrintMaterialInstance')\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getSpriteBlueprintMaterialClass(): SerializableClass[] {\r\n return [\r\n {\r\n ctor: SpriteBlueprintMaterial,\r\n parent: MeshMaterial,\r\n name: 'SpriteBlueprintMaterial',\r\n getProps() {\r\n return [];\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(SpriteBlueprintMaterial, 'SpriteBlueprintMaterial')\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getUnlitMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: UnlitMaterial,\r\n parent: MeshMaterial,\r\n name: 'UnlitMaterial',\r\n getProps() {\r\n return getUnlitMaterialProps(manager);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(UnlitMaterial, 'UnlitMaterial')\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getMToonMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: MToonMaterial,\r\n parent: MeshMaterial,\r\n name: 'MToonMaterial',\r\n getProps() {\r\n return getMToonMaterialProps(manager);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(MToonMaterial, 'MToonMaterial')\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getLambertMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: LambertMaterial,\r\n parent: MeshMaterial,\r\n name: 'LambertMaterial',\r\n getProps() {\r\n return getLitMaterialProps(manager);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(LambertMaterial, 'LambertMaterial')\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getBlinnMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: BlinnMaterial,\r\n parent: MeshMaterial,\r\n name: 'BlinnMaterial',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Shininess',\r\n description: 'Shininess value',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 2048\r\n },\r\n get(this: BlinnMaterial, value) {\r\n value.num[0] = this.shininess;\r\n },\r\n set(this: BlinnMaterial, value) {\r\n this.shininess = value.num[0];\r\n },\r\n getDefaultValue(this: BlinnMaterial) {\r\n return this.$isInstance ? this.coreMaterial.shininess : 32;\r\n }\r\n },\r\n ...getLitMaterialProps(manager)\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(BlinnMaterial, 'BlinnMaterial')\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getHairMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: HairMaterial,\r\n parent: MeshMaterial,\r\n name: 'HairMaterial',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'ShadingModel',\r\n description:\r\n 'Which scattering model shades the hair. Marschner derives the lobes from the fibre; Kajiya-Kay is the art-directed double lobe',\r\n type: 'string',\r\n default: 'kajiya-kay',\r\n options: {\r\n enum: {\r\n labels: ['Kajiya-Kay (double lobe)', 'Marschner (fibre)'],\r\n values: ['kajiya-kay', 'marschner']\r\n }\r\n },\r\n get(this: HairMaterial, value) {\r\n value.str[0] = this.shadingModel;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.shadingModel = value.str[0] as HairShadingModel;\r\n },\r\n isValid(this: HairMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'Specular1Color',\r\n description: 'Color of the primary (sharp, near-white) specular lobe',\r\n type: 'rgb',\r\n default: [0.35, 0.35, 0.35],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.specular1Color.x;\r\n value.num[1] = this.specular1Color.y;\r\n value.num[2] = this.specular1Color.z;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.specular1Color = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'Specular1Power',\r\n description: 'Exponent of the primary specular lobe',\r\n type: 'float',\r\n default: 160,\r\n options: {\r\n animatable: true,\r\n minValue: 1,\r\n maxValue: 1024\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.specular1Power;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.specular1Power = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Specular1Shift',\r\n description: 'Shift of the primary specular lobe along the strand',\r\n type: 'float',\r\n default: -0.15,\r\n options: {\r\n animatable: true,\r\n minValue: -1,\r\n maxValue: 1\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.specular1Shift;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.specular1Shift = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Specular2Color',\r\n description: 'Color of the secondary (broad, hair-tinted) specular lobe',\r\n type: 'rgb',\r\n default: [0.5, 0.45, 0.4],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.specular2Color.x;\r\n value.num[1] = this.specular2Color.y;\r\n value.num[2] = this.specular2Color.z;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.specular2Color = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'Specular2Power',\r\n description: 'Exponent of the secondary specular lobe',\r\n type: 'float',\r\n default: 40,\r\n options: {\r\n animatable: true,\r\n minValue: 1,\r\n maxValue: 1024\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.specular2Power;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.specular2Power = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'Specular2Shift',\r\n description: 'Shift of the secondary specular lobe along the strand',\r\n type: 'float',\r\n default: 0.1,\r\n options: {\r\n animatable: true,\r\n minValue: -1,\r\n maxValue: 1\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.specular2Shift;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.specular2Shift = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'StrandDirection',\r\n description: 'Which TBN axis runs along the hair strands in the card atlas',\r\n type: 'string',\r\n default: 'binormal',\r\n options: {\r\n enum: {\r\n labels: ['Tangent (U)', 'Binormal (V)'],\r\n values: ['tangent', 'binormal']\r\n }\r\n },\r\n get(this: HairMaterial, value) {\r\n value.str[0] = this.strandDirection;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.strandDirection = value.str[0] as HairStrandDirection;\r\n },\r\n isValid(this: HairMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n // The Marschner parameters are deliberately not gated on ShadingModel.\r\n // An invalid property is skipped on both save and load, so gating them\r\n // would drop one model's tuning every time the material was saved under\r\n // the other - and switching back and forth is exactly what comparing\r\n // two models involves.\r\n {\r\n name: 'MarschnerShift',\r\n description: 'Cuticle tilt that separates the three Marschner lobes, in sine units',\r\n type: 'float',\r\n default: 0.035,\r\n options: {\r\n animatable: true,\r\n minValue: -0.2,\r\n maxValue: 0.2\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.marschnerShift;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.marschnerShift = value.num[0];\r\n },\r\n isValid(this: HairMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'MarschnerRoughness',\r\n description: 'Longitudinal width of the Marschner lobes',\r\n type: 'float',\r\n default: 0.3,\r\n options: {\r\n animatable: true,\r\n minValue: 0.005,\r\n maxValue: 1\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.marschnerRoughness;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.marschnerRoughness = value.num[0];\r\n },\r\n isValid(this: HairMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'MarschnerIOR',\r\n description: 'Refractive index of the fibre. 1.55 is the measured value for keratin',\r\n type: 'float',\r\n default: 1.55,\r\n options: {\r\n animatable: true,\r\n minValue: 1.01,\r\n maxValue: 2.5\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.marschnerIOR;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.marschnerIOR = value.num[0];\r\n },\r\n isValid(this: HairMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'MarschnerAbsorption',\r\n description: 'How strongly the transmitted Marschner paths take on the hair colour',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.marschnerAbsorption;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.marschnerAbsorption = value.num[0];\r\n },\r\n isValid(this: HairMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'MarschnerLobes',\r\n description: 'Per-path intensities of the Marschner model as (R, TT, TRT)',\r\n type: 'vec3',\r\n default: [1, 1, 1],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.marschnerLobes.x;\r\n value.num[1] = this.marschnerLobes.y;\r\n value.num[2] = this.marschnerLobes.z;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.marschnerLobes = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n isValid(this: HairMaterial) {\r\n return !this.$isInstance;\r\n }\r\n },\r\n {\r\n name: 'ShiftMapScale',\r\n description: 'Scale applied to the per-strand shift texture',\r\n type: 'float',\r\n phase: 1,\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.shiftMapScale;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.shiftMapScale = value.num[0];\r\n },\r\n isValid(this: HairMaterial) {\r\n return !this.$isInstance && !!this.specularShiftTexture;\r\n }\r\n },\r\n ...getTextureProps<HairMaterial>(manager, 'specularShiftTexture', '2D', false, 0),\r\n {\r\n name: 'DiffuseWrap',\r\n description: 'Wrap diffuse amount that softens the terminator across thin cards',\r\n type: 'float',\r\n default: 0.5,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.diffuseWrap;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.diffuseWrap = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'TransmissionColor',\r\n description: 'Tint color of the backlit transmission term',\r\n type: 'rgb',\r\n default: [0.9, 0.65, 0.45],\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.transmissionColor.x;\r\n value.num[1] = this.transmissionColor.y;\r\n value.num[2] = this.transmissionColor.z;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.transmissionColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'TransmissionIntensity',\r\n description: 'Intensity of the backlit transmission term, 0 disables it',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.transmissionIntensity;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.transmissionIntensity = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'TransmissionPower',\r\n description: 'View-alignment exponent of the transmission term',\r\n type: 'float',\r\n default: 6,\r\n options: {\r\n animatable: true,\r\n minValue: 1,\r\n maxValue: 64\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.transmissionPower;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.transmissionPower = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ScatterColor',\r\n description: 'Tint of multiply-scattered light',\r\n type: 'rgb',\r\n default: [1, 0.85, 0.7],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.scatterColor.x;\r\n value.num[1] = this.scatterColor.y;\r\n value.num[2] = this.scatterColor.z;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.scatterColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'ScatterIntensity',\r\n description: 'Intensity of the multiple scattering term, 0 disables it',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.scatterIntensity;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.scatterIntensity = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ScatterLocal',\r\n description:\r\n 'Balance between scattering that follows the light and scattering that survives where it is blocked',\r\n type: 'float',\r\n default: 0.5,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.scatterLocal;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.scatterLocal = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'ScatterWrap',\r\n description: 'Angular width of the forward-scattered lobe',\r\n type: 'float',\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.scatterWrap;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.scatterWrap = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'OcclusionStrength',\r\n description: 'Strength of the baked occlusion (root darkening) texture',\r\n type: 'float',\r\n phase: 1,\r\n default: 1,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: HairMaterial, value) {\r\n value.num[0] = this.occlusionStrength;\r\n },\r\n set(this: HairMaterial, value) {\r\n this.occlusionStrength = value.num[0];\r\n },\r\n isValid(this: HairMaterial) {\r\n return !this.$isInstance && !!this.occlusionTexture;\r\n }\r\n },\r\n ...getTextureProps<HairMaterial>(manager, 'occlusionTexture', '2D', false, 0),\r\n ...getLitMaterialProps(manager)\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(HairMaterial, 'HairMaterial')\r\n ];\r\n}\r\n\r\n/**\r\n * Serialization for the GPU strand expansion material.\r\n *\r\n * @remarks\r\n * Declared as a child of {@link HairMaterial}, so every lighting property the\r\n * parent exposes is inherited and only the expansion controls appear here.\r\n * The strand geometry itself is deliberately absent: it belongs to the node that\r\n * draws it, which references a `.zhair` asset, and duplicating millions of\r\n * control points into a material would defeat the point of having that file.\r\n * @internal\r\n */\r\nexport function getHairStrandMaterialClass(): SerializableClass[] {\r\n return [\r\n {\r\n ctor: HairStrandMaterial,\r\n parent: HairMaterial,\r\n name: 'HairStrandMaterial',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'SegmentsPerStrand',\r\n description:\r\n 'Ribbon segments generated per strand. Independent of the control point count, so the same strands can be drawn coarser at a distance',\r\n type: 'int',\r\n default: 8,\r\n options: { minValue: 1, maxValue: 64 },\r\n get(this: HairStrandMaterial, value) {\r\n value.num[0] = this.segmentsPerStrand;\r\n },\r\n set(this: HairStrandMaterial, value) {\r\n this.segmentsPerStrand = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'StrandWidthScale',\r\n description: 'Multiplier on the width stored in the strand data',\r\n type: 'float',\r\n default: 1,\r\n options: { animatable: true, minValue: 0, maxValue: 100 },\r\n get(this: HairStrandMaterial, value) {\r\n value.num[0] = this.strandWidthScale;\r\n },\r\n set(this: HairStrandMaterial, value) {\r\n this.strandWidthScale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'MinStrandWidth',\r\n description: 'Lower bound on ribbon width, in world units',\r\n type: 'float',\r\n default: 0,\r\n options: { minValue: 0, maxValue: 1 },\r\n get(this: HairStrandMaterial, value) {\r\n value.num[0] = this.minStrandWidth;\r\n },\r\n set(this: HairStrandMaterial, value) {\r\n this.minStrandWidth = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'MinPixelWidth',\r\n description:\r\n 'Lower bound on ribbon width in pixels. Real hair is thinner than a pixel; widening it and paying the coverage back in alpha keeps distant hair from breaking into a flickering dotted line',\r\n type: 'float',\r\n default: 1.4,\r\n options: { minValue: 0, maxValue: 8 },\r\n get(this: HairStrandMaterial, value) {\r\n value.num[0] = this.minPixelWidth;\r\n },\r\n set(this: HairStrandMaterial, value) {\r\n this.minPixelWidth = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'StrandRoundness',\r\n description:\r\n 'How far the shading normal bends across the ribbon. At 0 the strand shades as a flat tape, at 1 as a cylinder',\r\n type: 'float',\r\n default: 1,\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: HairStrandMaterial, value) {\r\n value.num[0] = this.strandRoundness;\r\n },\r\n set(this: HairStrandMaterial, value) {\r\n this.strandRoundness = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'StrandLOD',\r\n description: 'Drop strands with distance, redistributing their coverage to the survivors',\r\n type: 'bool',\r\n default: false,\r\n get(this: HairStrandMaterial, value) {\r\n value.bool[0] = this.strandLOD;\r\n },\r\n set(this: HairStrandMaterial, value) {\r\n this.strandLOD = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'MinStrandLODRatio',\r\n description: 'Floor on the fraction of strands distance decimation keeps',\r\n type: 'float',\r\n default: 0.05,\r\n options: { minValue: 0, maxValue: 1 },\r\n isValid(this: HairStrandMaterial) {\r\n return this.strandLOD;\r\n },\r\n get(this: HairStrandMaterial, value) {\r\n value.num[0] = this.minStrandLODRatio;\r\n },\r\n set(this: HairStrandMaterial, value) {\r\n this.minStrandLODRatio = value.num[0];\r\n }\r\n }\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(HairStrandMaterial, 'HairStrandMaterial')\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getSkinMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: SSSMaterial,\r\n parent: MeshMaterial,\r\n name: 'SSSMaterial',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Roughness',\r\n description: 'GGX base roughness for skin',\r\n type: 'float',\r\n default: 0.5,\r\n options: { animatable: true, minValue: 0.045, maxValue: 1 },\r\n get(this: SSSMaterial, value) {\r\n value.num[0] = this.roughness;\r\n },\r\n set(this: SSSMaterial, value) {\r\n this.roughness = value.num[0];\r\n },\r\n getDefaultValue(this: SSSMaterial) {\r\n return this.$isInstance ? this.coreMaterial.roughness : 0.5;\r\n }\r\n },\r\n {\r\n name: 'SpecularF0',\r\n description: 'Fresnel F0 for the skin oil layer',\r\n type: 'float',\r\n default: 0.04,\r\n options: { animatable: true, minValue: 0, maxValue: 0.2 },\r\n get(this: SSSMaterial, value) {\r\n value.num[0] = this.specularF0;\r\n },\r\n set(this: SSSMaterial, value) {\r\n this.specularF0 = value.num[0];\r\n },\r\n getDefaultValue(this: SSSMaterial) {\r\n return this.$isInstance ? this.coreMaterial.specularF0 : 0.04;\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceProfile',\r\n description: 'Profile driving the subsurface scattering of this skin',\r\n type: 'object',\r\n phase: 0,\r\n default: null,\r\n options: {\r\n objectTypes: [SSSProfile as unknown as GenericConstructor]\r\n },\r\n get(this: SSSMaterial, value) {\r\n value.object[0] = this.subsurfaceProfile;\r\n },\r\n // Deliberately empty rather than absent. The material owns its\r\n // profile and cannot be handed another one, but a property with no\r\n // setter is skipped outright during deserialization, and the nested\r\n // values would never be read back - `createFunc` on the profile\r\n // class has already routed them into this material's own instance by\r\n // the time this runs.\r\n set() {}\r\n },\r\n {\r\n name: 'TransmissionStrength',\r\n description:\r\n 'Multiplier on back-lit transmission; needs a shadow-casting light with transmission enabled',\r\n type: 'float',\r\n default: 1,\r\n options: { animatable: true, minValue: 0, maxValue: 4 },\r\n get(this: SSSMaterial, value) {\r\n value.num[0] = this.transmissionStrength;\r\n },\r\n set(this: SSSMaterial, value) {\r\n this.transmissionStrength = value.num[0];\r\n },\r\n getDefaultValue(this: SSSMaterial) {\r\n return this.$isInstance ? this.coreMaterial.transmissionStrength : 1;\r\n }\r\n },\r\n ...getTextureProps<SSSMaterial>(manager, 'subsurfaceTexture', '2D', false, 1),\r\n ...getLitMaterialProps(manager)\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(SSSMaterial, 'SSSMaterial')\r\n ];\r\n}\r\n\r\n/**\r\n * Serialization for {@link EyeMaterial}.\r\n *\r\n * Every `getDefaultValue()` non-instance branch below must return exactly what\r\n * the constructor sets. The serializer uses this both to decide whether a\r\n * property can be omitted when saving and to fill it in when it is absent on\r\n * load, so a mismatch silently rewrites assets - which is what a mismatched\r\n * `doubleSidedLighting` default did before it was found.\r\n */\r\nexport function getEyeMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: EyeMaterial,\r\n parent: MeshMaterial,\r\n name: 'EyeMaterial',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'IrisCenter',\r\n description: 'UV coordinate of the pupil centre on the eyeball mesh',\r\n type: 'vec2',\r\n default: [0.5, 0.5],\r\n options: { minValue: 0, maxValue: 1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.irisCenter.x;\r\n value.num[1] = this.irisCenter.y;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.irisCenter = new Vector4(value.num[0], value.num[1], 0, 0);\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n const c = this.$isInstance ? this.coreMaterial.irisCenter : new Vector4(0.5, 0.5, 0, 0);\r\n return [c.x, c.y];\r\n }\r\n },\r\n {\r\n name: 'IrisRadius',\r\n description: 'Iris disc radius in UV units',\r\n type: 'float',\r\n default: 0.22,\r\n options: { animatable: true, minValue: 0.001, maxValue: 0.5 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.irisRadius;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.irisRadius = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.irisRadius : 0.22;\r\n }\r\n },\r\n {\r\n name: 'IrisDepth',\r\n description: 'Depth of the iris plane below the cornea; 0 disables parallax',\r\n type: 'float',\r\n default: 0.06,\r\n options: { animatable: true, minValue: 0, maxValue: 0.5 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.irisDepth;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.irisDepth = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.irisDepth : 0.06;\r\n }\r\n },\r\n {\r\n name: 'IOR',\r\n description: 'Index of refraction of the cornea (1.376 is physical)',\r\n type: 'float',\r\n default: 1.376,\r\n options: { animatable: true, minValue: 1, maxValue: 2 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.ior;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.ior = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.ior : 1.376;\r\n }\r\n },\r\n {\r\n name: 'PupilRadius',\r\n description: 'Pupil radius as a fraction of the iris radius',\r\n type: 'float',\r\n default: 0.35,\r\n options: { animatable: true, minValue: 0.01, maxValue: 0.95 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.pupilRadius;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.pupilRadius = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.pupilRadius : 0.35;\r\n }\r\n },\r\n {\r\n name: 'PupilDilation',\r\n description: 'Pupil dilation from -1 (constricted) to 1 (dilated)',\r\n type: 'float',\r\n default: 0,\r\n options: { animatable: true, minValue: -1, maxValue: 1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.pupilDilation;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.pupilDilation = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.pupilDilation : 0;\r\n }\r\n },\r\n {\r\n name: 'IrisColor',\r\n description: 'Tint multiplied over the iris texture',\r\n type: 'rgba',\r\n default: [1, 1, 1, 1],\r\n options: { animatable: true, minValue: 0, maxValue: 4 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.irisColor.x;\r\n value.num[1] = this.irisColor.y;\r\n value.num[2] = this.irisColor.z;\r\n value.num[3] = this.irisColor.w;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.irisColor = new Vector4(value.num[0], value.num[1], value.num[2], value.num[3]);\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n const c = this.$isInstance ? this.coreMaterial.irisColor : new Vector4(1, 1, 1, 1);\r\n return [c.x, c.y, c.z, c.w];\r\n }\r\n },\r\n {\r\n name: 'IrisBrightness',\r\n description: 'Internal scattering that keeps the iris from crushing to black in shadow',\r\n type: 'float',\r\n default: 0.15,\r\n options: { animatable: true, minValue: 0, maxValue: 2 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.irisBrightness;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.irisBrightness = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.irisBrightness : 0.15;\r\n }\r\n },\r\n {\r\n name: 'LimbalRingWidth',\r\n description: 'Width of the dark ring at the iris edge, as a fraction of the iris radius',\r\n type: 'float',\r\n default: 0.15,\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.limbalRingWidth;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.limbalRingWidth = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.limbalRingWidth : 0.15;\r\n }\r\n },\r\n {\r\n name: 'LimbalRingStrength',\r\n description: 'How dark the limbal ring gets; 0 disables it',\r\n type: 'float',\r\n default: 0.7,\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.limbalRingStrength;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.limbalRingStrength = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.limbalRingStrength : 0.7;\r\n }\r\n },\r\n {\r\n name: 'ScleraColor',\r\n description: 'Base sclera colour; pure white reads as plastic',\r\n type: 'rgba',\r\n default: [0.9, 0.88, 0.86, 1],\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.scleraColor.x;\r\n value.num[1] = this.scleraColor.y;\r\n value.num[2] = this.scleraColor.z;\r\n value.num[3] = this.scleraColor.w;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.scleraColor = new Vector4(value.num[0], value.num[1], value.num[2], value.num[3]);\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n const c = this.$isInstance ? this.coreMaterial.scleraColor : new Vector4(0.9, 0.88, 0.86, 1);\r\n return [c.x, c.y, c.z, c.w];\r\n }\r\n },\r\n {\r\n name: 'ScleraWrap',\r\n description: 'Diffuse wrap for the sclera, standing in for its subsurface softness',\r\n type: 'float',\r\n default: 0.35,\r\n options: { animatable: true, minValue: 0, maxValue: 2 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.scleraWrap;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.scleraWrap = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.scleraWrap : 0.35;\r\n }\r\n },\r\n {\r\n name: 'ScleraEdgeTint',\r\n description: 'Vasculature colour bled into the sclera away from the iris; alpha is its strength',\r\n type: 'rgba',\r\n default: [0.55, 0.22, 0.18, 1],\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.scleraEdgeTint.x;\r\n value.num[1] = this.scleraEdgeTint.y;\r\n value.num[2] = this.scleraEdgeTint.z;\r\n value.num[3] = this.scleraEdgeTint.w;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.scleraEdgeTint = new Vector4(value.num[0], value.num[1], value.num[2], value.num[3]);\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n const c = this.$isInstance\r\n ? this.coreMaterial.scleraEdgeTint\r\n : new Vector4(0.55, 0.22, 0.18, 1);\r\n return [c.x, c.y, c.z, c.w];\r\n }\r\n },\r\n {\r\n name: 'CorneaSpecularStrength',\r\n description: 'Strength of the corneal highlight - the main cue that an eye is wet',\r\n type: 'float',\r\n default: 1,\r\n options: { animatable: true, minValue: 0, maxValue: 4 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.corneaSpecularStrength;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.corneaSpecularStrength = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.corneaSpecularStrength : 1;\r\n }\r\n },\r\n {\r\n name: 'CorneaRoughness',\r\n description: 'Corneal roughness; the cornea is close to a mirror, so keep this very low',\r\n type: 'float',\r\n default: 0.05,\r\n options: { animatable: true, minValue: 0.001, maxValue: 1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.corneaRoughness;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.corneaRoughness = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.corneaRoughness : 0.05;\r\n }\r\n },\r\n {\r\n name: 'vertexTangent',\r\n description: 'Whether the mesh supplies tangents; without them refraction is disabled',\r\n type: 'bool',\r\n default: false,\r\n get(this: EyeMaterial, value) {\r\n value.bool[0] = this.vertexTangent;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.vertexTangent = value.bool[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.vertexTangent : false;\r\n }\r\n },\r\n {\r\n name: 'SocketOcclusion',\r\n description: 'Enables analytic shadowing of the eyeball by the eyelids and socket',\r\n type: 'bool',\r\n default: false,\r\n get(this: EyeMaterial, value) {\r\n value.bool[0] = this.socketOcclusion;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.socketOcclusion = value.bool[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.socketOcclusion : false;\r\n }\r\n },\r\n {\r\n name: 'SocketRotation',\r\n description: 'Euler rotation in degrees of the socket frame; zero matches +Y up, +Z gaze assets',\r\n type: 'vec3',\r\n default: [0, 0, 0],\r\n options: { minValue: -180, maxValue: 180 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.socketRotation.x;\r\n value.num[1] = this.socketRotation.y;\r\n value.num[2] = this.socketRotation.z;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.socketRotation = new Vector4(value.num[0], value.num[1], value.num[2], 0);\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n const r = this.$isInstance ? this.coreMaterial.socketRotation : new Vector4(0, 0, 0, 0);\r\n return [r.x, r.y, r.z];\r\n }\r\n },\r\n {\r\n name: 'UpperLidAngle',\r\n description: 'Aperture half-angle towards the upper lid, in degrees',\r\n type: 'float',\r\n default: 50,\r\n options: { animatable: true, minValue: 5, maxValue: 90 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.upperLidAngle;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.upperLidAngle = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.upperLidAngle : 50;\r\n }\r\n },\r\n {\r\n name: 'LowerLidAngle',\r\n description: 'Aperture half-angle towards the lower lid, in degrees',\r\n type: 'float',\r\n default: 65,\r\n options: { animatable: true, minValue: 5, maxValue: 90 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.lowerLidAngle;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.lowerLidAngle = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.lowerLidAngle : 65;\r\n }\r\n },\r\n {\r\n name: 'SocketOcclusionSoftness',\r\n description: 'Width of the lit-to-shadowed transition, in degrees',\r\n type: 'float',\r\n default: 15,\r\n options: { animatable: true, minValue: 1, maxValue: 45 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.socketOcclusionSoftness;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.socketOcclusionSoftness = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.socketOcclusionSoftness : 15;\r\n }\r\n },\r\n {\r\n name: 'SocketOcclusionStrength',\r\n description: 'Overall socket occlusion strength',\r\n type: 'float',\r\n default: 0.65,\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.socketOcclusionStrength;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.socketOcclusionStrength = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.socketOcclusionStrength : 0.65;\r\n }\r\n },\r\n {\r\n name: 'ContactAO',\r\n description:\r\n 'Enables screen-space contact occlusion of the eyeball by the eyelid, read from the depth prepass',\r\n type: 'bool',\r\n default: false,\r\n get(this: EyeMaterial, value) {\r\n value.bool[0] = this.contactAO;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.contactAO = value.bool[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.contactAO : false;\r\n }\r\n },\r\n {\r\n name: 'ContactAORadius',\r\n description: 'Radius of the contact occlusion disc, in world units',\r\n type: 'float',\r\n default: 0.006,\r\n options: { animatable: true, minValue: 0.0001, maxValue: 0.1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.contactAORadius;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.contactAORadius = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.contactAORadius : 0.006;\r\n }\r\n },\r\n {\r\n name: 'ContactAOMinDistance',\r\n description: 'Smallest depth step counted as an occluder, in world units',\r\n type: 'float',\r\n default: 0.0004,\r\n options: { animatable: true, minValue: 0.00001, maxValue: 0.02 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.contactAOMinDistance;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.contactAOMinDistance = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.contactAOMinDistance : 0.0004;\r\n }\r\n },\r\n {\r\n name: 'ContactAOMaxDistance',\r\n description: 'Largest depth step counted as an occluder, in world units',\r\n type: 'float',\r\n default: 0.006,\r\n options: { animatable: true, minValue: 0.00001, maxValue: 0.2 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.contactAOMaxDistance;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.contactAOMaxDistance = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.contactAOMaxDistance : 0.006;\r\n }\r\n },\r\n {\r\n name: 'ContactAOStrength',\r\n description: 'Overall contact occlusion strength',\r\n type: 'float',\r\n default: 0.7,\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: EyeMaterial, value) {\r\n value.num[0] = this.contactAOStrength;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.contactAOStrength = value.num[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.contactAOStrength : 0.7;\r\n }\r\n },\r\n {\r\n name: 'ContactAOTemporalJitter',\r\n description:\r\n 'Advances the contact occlusion noise pattern every frame so TAA can integrate it away; enable only with temporal anti-aliasing',\r\n type: 'bool',\r\n default: false,\r\n get(this: EyeMaterial, value) {\r\n value.bool[0] = this.contactAOTemporalJitter;\r\n },\r\n set(this: EyeMaterial, value) {\r\n this.contactAOTemporalJitter = value.bool[0];\r\n },\r\n getDefaultValue(this: EyeMaterial) {\r\n return this.$isInstance ? this.coreMaterial.contactAOTemporalJitter : false;\r\n }\r\n },\r\n ...getTextureProps<EyeMaterial>(manager, 'irisTexture', '2D', true, 0),\r\n ...getTextureProps<EyeMaterial>(manager, 'scleraTexture', '2D', true, 0)\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(EyeMaterial, 'EyeMaterial')\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getPBRMetallicRoughnessMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: PBRMetallicRoughnessMaterial,\r\n parent: MeshMaterial,\r\n name: 'PBRMetallicRoughnessMaterial',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'Metallic',\r\n description: 'Metallic value',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.metallic;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.metallic = value.num[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Metallic']),\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.metallic : 1;\r\n }\r\n },\r\n {\r\n name: 'Roughness',\r\n description: 'Roughness value',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.roughness;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.roughness = value.num[0];\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Roughness']),\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.roughness : 1;\r\n }\r\n },\r\n {\r\n name: 'SpecularFactor',\r\n description: 'RGBA specular factor used to tint and scale specular reflections',\r\n type: 'rgba',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.specularFactor.x;\r\n value.num[1] = this.specularFactor.y;\r\n value.num[2] = this.specularFactor.z;\r\n value.num[3] = this.specularFactor.w;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.specularFactor = new Vector4(value.num[0], value.num[1], value.num[2], value.num[3]);\r\n },\r\n isHidden: createBlueprintOutputHiddenPredicate(['Specular', 'SpecularWeight']),\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.specularFactor : [1, 1, 1, 1];\r\n }\r\n },\r\n {\r\n name: 'Reflection',\r\n description: 'Reflection mode',\r\n type: 'string',\r\n default: 'ggx',\r\n options: {\r\n enum: {\r\n labels: ['None', 'GGX', 'Anisotropic', 'Glint'],\r\n values: ['none', 'ggx', 'anisotropic', 'glint']\r\n }\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.str[0] = this.reflectionMode;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const reflectionMode = value.str[0] as PBRReflectionMode;\r\n const blueprintInstance = this as PBRMetallicRoughnessMaterial & {\r\n isBlueprintMaterialInstance?: boolean;\r\n setBlueprintInstanceReflectionMode?: (val: PBRReflectionMode, inherited?: boolean) => void;\r\n };\r\n if (\r\n blueprintInstance.isBlueprintMaterialInstance &&\r\n blueprintInstance.setBlueprintInstanceReflectionMode\r\n ) {\r\n blueprintInstance.setBlueprintInstanceReflectionMode(reflectionMode);\r\n } else {\r\n this.reflectionMode = reflectionMode;\r\n }\r\n },\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.reflectionMode : 'ggx';\r\n }\r\n },\r\n {\r\n name: 'Anisotropy',\r\n description: 'Strength of anisotropic reflections; values near 0 behave isotropically',\r\n type: 'float',\r\n default: 0.75,\r\n options: {\r\n animatable: true,\r\n minValue: -0.95,\r\n maxValue: 0.95\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.anisotropy;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.anisotropy = value.num[0];\r\n },\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.anisotropy : 0.75;\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return this.reflectionMode === 'anisotropic';\r\n }\r\n },\r\n {\r\n name: 'AnisotropyDirection',\r\n description: 'Rotation angle in degrees for the anisotropic highlight direction',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 360\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.anisotropyDirection;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.anisotropyDirection = value.num[0];\r\n },\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.anisotropyDirection : 0;\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return this.reflectionMode === 'anisotropic';\r\n }\r\n },\r\n ...getTextureProps<PBRMetallicRoughnessMaterial>(\r\n manager,\r\n 'anisotropyDirectionTexture',\r\n '2D',\r\n false,\r\n 0,\r\n function () {\r\n return this.reflectionMode === 'anisotropic';\r\n }\r\n ),\r\n {\r\n name: 'AnisotropyDirectionScaleBias',\r\n description: 'Scale and bias applied when decoding anisotropy direction from its texture',\r\n type: 'vec2',\r\n default: [1, 0],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.anisotropyDirectionScaleBias.x;\r\n value.num[1] = this.anisotropyDirectionScaleBias.y;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.anisotropyDirectionScaleBias = new Vector2(value.num[0], value.num[1]);\r\n },\r\n getDefaultValue(this: PBRMetallicRoughnessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.anisotropyDirectionScaleBias : [1, 0];\r\n },\r\n isValid() {\r\n return (\r\n !this.$isInstance &&\r\n this.reflectionMode === 'anisotropic' &&\r\n !!this.anisotropyDirectionTexture\r\n );\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceLookPreset',\r\n description: 'Per-instance preset override for the active subsurface profile',\r\n type: 'string',\r\n phase: 1,\r\n default: 'skin_default',\r\n options: {\r\n label: 'LookPreset',\r\n enum: {\r\n labels: [\r\n 'Skin Thin',\r\n 'Skin Default',\r\n 'Skin HeavyMakeup',\r\n 'Wax Backlit',\r\n 'Wax Soft',\r\n 'Jade Backlit',\r\n 'Jade Soft'\r\n ],\r\n values: [\r\n 'skin_thin',\r\n 'skin_default',\r\n 'skin_heavy_makeup',\r\n 'wax_backlit',\r\n 'wax_soft',\r\n 'jade_backlit',\r\n 'jade_soft'\r\n ]\r\n },\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.str[0] = this.subsurfaceProfile?.preset ?? 'skin_default';\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n if (profile.isBlueprintMaterialInstance && profile.setBlueprintInstanceSubsurfacePreset) {\r\n profile.setBlueprintInstanceSubsurfacePreset(value.str[0] as SubsurfaceProfilePreset);\r\n }\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceMeanFreePathColor',\r\n description: 'Per-instance mean free path color override for the active subsurface profile',\r\n type: 'rgb',\r\n phase: 1,\r\n default: [1, 0.45, 0.17],\r\n options: {\r\n label: 'MeanFreePathColor',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.meanFreePathColor.x ?? 0;\r\n value.num[1] = this.subsurfaceProfile?.meanFreePathColor.y ?? 0;\r\n value.num[2] = this.subsurfaceProfile?.meanFreePathColor.z ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceMeanFreePathColor',\r\n 'meanFreePathColor',\r\n new Vector3(value.num[0], value.num[1], value.num[2])\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceMeanFreePathDistance',\r\n description: 'Per-instance mean free path distance override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.92,\r\n options: {\r\n label: 'MeanFreePathDistance',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 8,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.meanFreePathDistance ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceMeanFreePathDistance',\r\n 'meanFreePathDistance',\r\n value.num[0]\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceScatterWeight',\r\n description: 'Per-instance scatter weight override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.82,\r\n options: {\r\n label: 'ScatterWeight',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 8,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.strength ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n if (profile.isBlueprintMaterialInstance && profile.setBlueprintInstanceSubsurfaceStrength) {\r\n profile.setBlueprintInstanceSubsurfaceStrength(value.num[0]);\r\n }\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceScatterScale',\r\n description: 'Per-instance scatter scale override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.96,\r\n options: {\r\n label: 'ScatterScale',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 8,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.scale ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n if (profile.isBlueprintMaterialInstance && profile.setBlueprintInstanceSubsurfaceScale) {\r\n profile.setBlueprintInstanceSubsurfaceScale(value.num[0]);\r\n }\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceWorldUnitScale',\r\n description: 'Per-instance world unit scale override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 1,\r\n options: {\r\n label: 'WorldUnitScale',\r\n animatable: true,\r\n minValue: 0.05,\r\n maxValue: 4,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.worldUnitScale ?? 1;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceWorldUnitScale',\r\n 'worldUnitScale',\r\n value.num[0]\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceBoundaryColorBleed',\r\n description: 'Per-instance boundary color bleed override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.22,\r\n options: {\r\n label: 'BoundaryColorBleed',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.boundaryColorBleed ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceBoundaryColorBleed',\r\n 'boundaryColorBleed',\r\n value.num[0]\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceTransmissionTintColor',\r\n description: 'Per-instance transmission tint color override for the active subsurface profile',\r\n type: 'rgb',\r\n phase: 1,\r\n default: [1, 0.46, 0.34],\r\n options: {\r\n label: 'TransmissionTintColor',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.transmissionTintColor.x ?? 0;\r\n value.num[1] = this.subsurfaceProfile?.transmissionTintColor.y ?? 0;\r\n value.num[2] = this.subsurfaceProfile?.transmissionTintColor.z ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceTransmissionTintColor',\r\n 'transmissionTintColor',\r\n new Vector3(value.num[0], value.num[1], value.num[2])\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceExtinctionScale',\r\n description: 'Per-instance extinction scale override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 1.06,\r\n options: {\r\n label: 'ExtinctionScale',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.extinctionScale ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceExtinctionScale',\r\n 'extinctionScale',\r\n value.num[0]\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceNormalScale',\r\n description: 'Per-instance normal scale override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 1,\r\n options: {\r\n label: 'NormalScale',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 2,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.normalScale ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceNormalScale',\r\n 'normalScale',\r\n value.num[0]\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceScatteringDistribution',\r\n description: 'Per-instance scattering distribution override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.6,\r\n options: {\r\n label: 'ScatteringDistribution',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.scatteringDistribution ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceScatteringDistribution',\r\n 'scatteringDistribution',\r\n value.num[0]\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceSpecularDetailSoftness',\r\n description: 'Per-instance specular detail softness override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 0.78,\r\n options: {\r\n label: 'SpecularDetailSoftness',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.specularDetailSoftness ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceSpecularDetailSoftness',\r\n 'specularDetailSoftness',\r\n value.num[0]\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceSpecularDetailRadius',\r\n description: 'Per-instance specular detail radius override for the active subsurface profile',\r\n type: 'float',\r\n phase: 1,\r\n default: 1.8,\r\n options: {\r\n label: 'SpecularDetailRadius',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 4,\r\n group: 'Subsurface Profile'\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.num[0] = this.subsurfaceProfile?.specularDetailRadius ?? 0;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n const profile = getBlueprintInstanceSubsurfaceMaterial(this);\r\n profile.setBlueprintInstanceSubsurfaceProfileValue?.(\r\n 'SubsurfaceSpecularDetailRadius',\r\n 'specularDetailRadius',\r\n value.num[0]\r\n );\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditBlueprintInstanceSubsurfaceProfile(this);\r\n }\r\n },\r\n {\r\n name: 'SubsurfaceProfile',\r\n description: 'If true, enables subsurface scattering for translucent materials',\r\n type: 'object',\r\n phase: 0,\r\n default: null,\r\n options: {\r\n objectTypes: [SubsurfaceProfile]\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: PBRMetallicRoughnessMaterial, value) {\r\n value.object[0] = this.subsurfaceProfile;\r\n },\r\n set(this: PBRMetallicRoughnessMaterial, value) {\r\n this.subsurfaceProfile = (value.object[0] as SubsurfaceProfile) ?? null;\r\n },\r\n isValid(this: PBRMetallicRoughnessMaterial) {\r\n return canEditParentMaterialProperty(this);\r\n }\r\n },\r\n ...getTextureProps<PBRMetallicRoughnessMaterial>(\r\n manager,\r\n 'subsurfaceTexture',\r\n '2D',\r\n false,\r\n 1,\r\n function () {\r\n return !!this.subsurfaceProfile;\r\n }\r\n ),\r\n ...getTextureProps<PBRMetallicRoughnessMaterial>(\r\n manager,\r\n 'metallicRoughnessTexture',\r\n '2D',\r\n false,\r\n 0,\r\n undefined,\r\n ['Metallic', 'Roughness']\r\n ),\r\n ...getTextureProps<PBRMetallicRoughnessMaterial>(\r\n manager,\r\n 'specularColorTexture',\r\n '2D',\r\n true,\r\n 0,\r\n undefined,\r\n ['Specular']\r\n ),\r\n ...getPBRCommonProps(manager)\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(PBRMetallicRoughnessMaterial, 'PBRMetallicRoughnessMaterial')\r\n ];\r\n}\r\n\r\n/** @internal */\r\nexport function getPBRSpecularGlossinessMaterialClass(manager: ResourceManager): SerializableClass[] {\r\n return [\r\n {\r\n ctor: PBRSpecularGlossinessMaterial,\r\n name: 'PBRSpecularGlossinessMaterial',\r\n parent: MeshMaterial,\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'SpecularFactor',\r\n description: 'RGB specular color multiplier for reflected highlights',\r\n type: 'rgb',\r\n options: {\r\n animatable: true\r\n },\r\n get(this: PBRSpecularGlossinessMaterial, value) {\r\n value.num[0] = this.specularFactor.x;\r\n value.num[1] = this.specularFactor.y;\r\n value.num[2] = this.specularFactor.z;\r\n },\r\n set(this: PBRSpecularGlossinessMaterial, value) {\r\n this.specularFactor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n getDefaultValue(this: PBRSpecularGlossinessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.specularFactor : [1, 1, 1];\r\n }\r\n },\r\n {\r\n name: 'GlossnessFactor',\r\n description: 'Glossiness of the surface; higher values produce sharper reflections',\r\n type: 'float',\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: PBRSpecularGlossinessMaterial, value) {\r\n value.num[0] = this.glossinessFactor;\r\n },\r\n set(this: PBRSpecularGlossinessMaterial, value) {\r\n this.glossinessFactor = value.num[0];\r\n },\r\n getDefaultValue(this: PBRSpecularGlossinessMaterial) {\r\n return this.$isInstance ? this.coreMaterial.glossinessFactor : 1;\r\n }\r\n },\r\n ...getPBRCommonProps(manager)\r\n ]);\r\n }\r\n },\r\n getMeshMaterialInstanceUniformsClass(PBRSpecularGlossinessMaterial, 'PBRSpecularGlossinessMaterial')\r\n ];\r\n}\r\n"],"names":["createBlueprintOutputHiddenPredicate","_outputs","PBRBluePrintMaterial","canEditParentMaterialProperty","material","$isInstance","isBlueprintMaterialInstance","isBlueprintMaterialAssetInstanceWithInheritedParentProps","isBlueprintMaterialAssetInstance","allowBlueprintInstanceOverride","propName","setter","markMaterialPropertyOverridden","canEditBlueprintInstanceSubsurfaceProfile","subsurfaceProfile","getBlueprintInstanceSubsurfaceMaterial","getSubsurfaceProfileClass","ctor","SubsurfaceProfile","name","getProps","defineProps","type","default","options","label","enum","labels","values","get","value","str","preset","set","animatable","minValue","maxValue","num","meanFreePathColor","x","y","z","Vector3","meanFreePathDistance","strength","scale","worldUnitScale","boundaryColorBleed","transmissionTintColor","extinctionScale","normalScale","scatteringDistribution","specularDetailSoftness","specularDetailRadius","getSSSProfileClass","SSSProfile","createFunc","ctx","SSSMaterial","obj","loadProps","description","surfaceAlbedo","meanFreePath","scatterScale","transmissionTint","ior","roughness0","roughness1","lobeMix","getPBRCommonProps","manager","supportsSSSThicknessAuthoring","transmission","isValid","phase","occlusionStrength","isHidden","occlusionTexture","getTextureProps","undefined","emissiveColor","getDefaultValue","coreMaterial","emissiveStrength","emissiveLuminance","emissiveExposureWeight","rectSpecularScale","PBRBluePrintMaterialInstance","parentMaterial","bool","transmissionFactor","call","thicknessFactor","attenuationColor","attenuationDistance","iridescence","iridescenceFactor","iridescenceIor","iridescenceThicknessMin","iridescenceThicknessMax","clearcoat","clearcoatIntensity","clearcoatRoughnessFactor","sheen","sheenColorFactor","sheenRoughnessFactor","getLitMaterialProps","getUnlitMaterialProps","normalFlipY","doubleSidedLighting","vertexNormal","vertexTangent","vertexColor","color","albedoColor","w","Vector4","getMToonMaterialProps","normalTexture","shadeColorFactor","shadingShiftFactor","shadingShiftTextureScale","shadingShiftTexture","shadingToonyFactor","giEqualizationFactor","matcapFactor","parametricRimColorFactor","parametricRimFresnelPowerFactor","parametricRimLiftFactor","rimLightingMixFactor","outlineWidthMode","outlineWidthFactor","outlineColorFactor","outlineLightingMixFactor","outlineUsesTangentNormals","uvAnimationScrollXSpeedFactor","uvAnimationScrollYSpeedFactor","uvAnimationRotationSpeedFactor","transparentWithZWrite","renderQueueOffsetNumber","getMeshMaterialClass","MeshMaterial","alphaCutoff","alphaToCoverage","alphaDither","blendMode","transparentShadowCaster","shadowAlphaCutoff","cullMode","opacity","TAAStrength","getMeshMaterialInstanceUniformsClass","getSpriteMaterialClass","_manager","SpriteMaterial","parent","getStandardSpriteMaterialClass","StandardSpriteMaterial","mimeTypes","isNullable","getAssetId","spriteTexture","assetId","tex","fetchTexture","linearColorSpace","err","console","error","isTexture2D","getParticleMaterialClass","ParticleMaterial","alphaMap","rampMap","getPBRBluePrintMaterialClass","PBRMetallicRoughnessMaterial","getPBRBluePrintMaterialInstanceClass","getSpriteBlueprintMaterialClass","SpriteBlueprintMaterial","getUnlitMaterialClass","UnlitMaterial","getMToonMaterialClass","MToonMaterial","getLambertMaterialClass","LambertMaterial","getBlinnMaterialClass","BlinnMaterial","shininess","getHairMaterialClass","HairMaterial","shadingModel","specular1Color","specular1Power","specular1Shift","specular2Color","specular2Power","specular2Shift","strandDirection","marschnerShift","marschnerRoughness","marschnerIOR","marschnerAbsorption","marschnerLobes","shiftMapScale","specularShiftTexture","diffuseWrap","transmissionColor","transmissionIntensity","transmissionPower","scatterColor","scatterIntensity","scatterLocal","scatterWrap","getSkinMaterialClass","roughness","specularF0","objectTypes","object","transmissionStrength","getEyeMaterialClass","EyeMaterial","irisCenter","c","irisRadius","irisDepth","pupilRadius","pupilDilation","irisColor","irisBrightness","limbalRingWidth","limbalRingStrength","scleraColor","scleraWrap","scleraEdgeTint","corneaSpecularStrength","corneaRoughness","socketOcclusion","socketRotation","r","upperLidAngle","lowerLidAngle","socketOcclusionSoftness","socketOcclusionStrength","contactAO","contactAORadius","contactAOMinDistance","contactAOMaxDistance","contactAOStrength","contactAOTemporalJitter","getPBRMetallicRoughnessMaterialClass","metallic","specularFactor","reflectionMode","blueprintInstance","setBlueprintInstanceReflectionMode","anisotropy","anisotropyDirection","anisotropyDirectionScaleBias","Vector2","anisotropyDirectionTexture","group","profile","setBlueprintInstanceSubsurfacePreset","setBlueprintInstanceSubsurfaceProfileValue","setBlueprintInstanceSubsurfaceStrength","setBlueprintInstanceSubsurfaceScale","getPBRSpecularGlossinessMaterialClass","PBRSpecularGlossinessMaterial","glossinessFactor"],"mappings":"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"}