@rings-webgpu/core 1.0.1 → 1.0.2

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 (1154) hide show
  1. package/dist/package.json +54 -0
  2. package/dist/packages/wasm-matrix/WasmMatrix.d.ts +26 -0
  3. package/dist/packages/wasm-matrix/WasmMatrix.js +88 -0
  4. package/dist/rings.es.js +11195 -0
  5. package/dist/rings.es.js.map +7 -0
  6. package/dist/rings.es.max.js +1316 -1043
  7. package/dist/rings.umd.js +11195 -0
  8. package/dist/rings.umd.js.map +7 -0
  9. package/dist/rings.umd.max.js +1317 -1044
  10. package/dist/src/Engine3D.d.ts +107 -0
  11. package/dist/src/Engine3D.js +471 -0
  12. package/dist/src/assets/Fonts.d.ts +20 -0
  13. package/dist/src/assets/Fonts.js +24 -0
  14. package/dist/src/assets/Res.d.ts +72 -0
  15. package/dist/src/assets/Res.js +299 -0
  16. package/dist/src/assets/shader/ShaderLib.d.ts +5 -0
  17. package/dist/src/assets/shader/ShaderLib.js +128 -0
  18. package/dist/src/assets/shader/anim/SkeletonAnimation_shader.d.ts +3 -0
  19. package/dist/src/assets/shader/anim/SkeletonAnimation_shader.js +51 -0
  20. package/dist/src/assets/shader/cluster/ClusterBoundsSource_cs.d.ts +1 -0
  21. package/dist/src/assets/shader/cluster/ClusterBoundsSource_cs.js +88 -0
  22. package/dist/src/assets/shader/cluster/ClusterLighting_cs.d.ts +1 -0
  23. package/dist/src/assets/shader/cluster/ClusterLighting_cs.js +127 -0
  24. package/dist/src/assets/shader/compute/BRDFLUT.d.ts +1 -0
  25. package/dist/src/assets/shader/compute/BRDFLUT.js +90 -0
  26. package/dist/src/assets/shader/compute/BloomEffect_cs.d.ts +4 -0
  27. package/dist/src/assets/shader/compute/BloomEffect_cs.js +173 -0
  28. package/dist/src/assets/shader/compute/BlurEffectCreator_cs.d.ts +2 -0
  29. package/dist/src/assets/shader/compute/BlurEffectCreator_cs.js +84 -0
  30. package/dist/src/assets/shader/compute/DDGIIrradiance_Cs.d.ts +4 -0
  31. package/dist/src/assets/shader/compute/DDGIIrradiance_Cs.js +307 -0
  32. package/dist/src/assets/shader/compute/DDGILighting_CSShader.d.ts +4 -0
  33. package/dist/src/assets/shader/compute/DDGILighting_CSShader.js +285 -0
  34. package/dist/src/assets/shader/compute/DepthOfView_cs.d.ts +4 -0
  35. package/dist/src/assets/shader/compute/DepthOfView_cs.js +90 -0
  36. package/dist/src/assets/shader/compute/ErpImage2CubeMapCreateCube_cs.d.ts +1 -0
  37. package/dist/src/assets/shader/compute/ErpImage2CubeMapCreateCube_cs.js +64 -0
  38. package/dist/src/assets/shader/compute/ErpImage2CubeMapRgbe2rgba_cs.d.ts +1 -0
  39. package/dist/src/assets/shader/compute/ErpImage2CubeMapRgbe2rgba_cs.js +34 -0
  40. package/dist/src/assets/shader/compute/GTAO_cs.d.ts +4 -0
  41. package/dist/src/assets/shader/compute/GTAO_cs.js +133 -0
  42. package/dist/src/assets/shader/compute/GodRay_cs.d.ts +1 -0
  43. package/dist/src/assets/shader/compute/GodRay_cs.js +214 -0
  44. package/dist/src/assets/shader/compute/IBLEnvMapCreator_cs.d.ts +1 -0
  45. package/dist/src/assets/shader/compute/IBLEnvMapCreator_cs.js +164 -0
  46. package/dist/src/assets/shader/compute/MergeRGBA_cs.d.ts +1 -0
  47. package/dist/src/assets/shader/compute/MergeRGBA_cs.js +27 -0
  48. package/dist/src/assets/shader/compute/MultiBouncePass_cs.d.ts +4 -0
  49. package/dist/src/assets/shader/compute/MultiBouncePass_cs.js +169 -0
  50. package/dist/src/assets/shader/compute/OutLineBlendColor_cs.d.ts +1 -0
  51. package/dist/src/assets/shader/compute/OutLineBlendColor_cs.js +49 -0
  52. package/dist/src/assets/shader/compute/OutlineCalcOutline_cs.d.ts +1 -0
  53. package/dist/src/assets/shader/compute/OutlineCalcOutline_cs.js +95 -0
  54. package/dist/src/assets/shader/compute/Outline_cs.d.ts +1 -0
  55. package/dist/src/assets/shader/compute/Outline_cs.js +116 -0
  56. package/dist/src/assets/shader/compute/Picker_cs.d.ts +1 -0
  57. package/dist/src/assets/shader/compute/Picker_cs.js +40 -0
  58. package/dist/src/assets/shader/compute/PreFilteredEnvironment_cs copy.d.ts +1 -0
  59. package/dist/src/assets/shader/compute/PreFilteredEnvironment_cs copy.js +162 -0
  60. package/dist/src/assets/shader/compute/PreFilteredEnvironment_cs.d.ts +4 -0
  61. package/dist/src/assets/shader/compute/PreFilteredEnvironment_cs.js +201 -0
  62. package/dist/src/assets/shader/compute/PreIntegratedLut.d.ts +1 -0
  63. package/dist/src/assets/shader/compute/PreIntegratedLut.js +46 -0
  64. package/dist/src/assets/shader/compute/SSAO_cs.d.ts +1 -0
  65. package/dist/src/assets/shader/compute/SSAO_cs.js +82 -0
  66. package/dist/src/assets/shader/compute/SSGI2_cs.d.ts +7 -0
  67. package/dist/src/assets/shader/compute/SSGI2_cs.js +169 -0
  68. package/dist/src/assets/shader/compute/SSR_BlendColor_cs.d.ts +4 -0
  69. package/dist/src/assets/shader/compute/SSR_BlendColor_cs.js +53 -0
  70. package/dist/src/assets/shader/compute/SSR_IS_cs.d.ts +1 -0
  71. package/dist/src/assets/shader/compute/SSR_IS_cs.js +76 -0
  72. package/dist/src/assets/shader/compute/SSR_RayTrace_cs.d.ts +1 -0
  73. package/dist/src/assets/shader/compute/SSR_RayTrace_cs.js +289 -0
  74. package/dist/src/assets/shader/compute/TAACopyTex_cs.d.ts +4 -0
  75. package/dist/src/assets/shader/compute/TAACopyTex_cs.js +22 -0
  76. package/dist/src/assets/shader/compute/TAASharpTex_cs.d.ts +1 -0
  77. package/dist/src/assets/shader/compute/TAASharpTex_cs.js +42 -0
  78. package/dist/src/assets/shader/compute/TAA_cs.d.ts +4 -0
  79. package/dist/src/assets/shader/compute/TAA_cs.js +152 -0
  80. package/dist/src/assets/shader/compute/utils/Combine_cs.d.ts +4 -0
  81. package/dist/src/assets/shader/compute/utils/Combine_cs.js +47 -0
  82. package/dist/src/assets/shader/compute/utils/Denoising_cs.d.ts +4 -0
  83. package/dist/src/assets/shader/compute/utils/Denoising_cs.js +28 -0
  84. package/dist/src/assets/shader/compute/utils/TestComputeLoadBuffer.d.ts +1 -0
  85. package/dist/src/assets/shader/compute/utils/TestComputeLoadBuffer.js +128 -0
  86. package/dist/src/assets/shader/compute/utils/TextureCompress.d.ts +2 -0
  87. package/dist/src/assets/shader/compute/utils/TextureCompress.js +131 -0
  88. package/dist/src/assets/shader/compute/utils/tw.d.ts +4 -0
  89. package/dist/src/assets/shader/compute/utils/tw.js +43 -0
  90. package/dist/src/assets/shader/core/base/Common_frag.d.ts +1 -0
  91. package/dist/src/assets/shader/core/base/Common_frag.js +62 -0
  92. package/dist/src/assets/shader/core/base/Common_vert.d.ts +1 -0
  93. package/dist/src/assets/shader/core/base/Common_vert.js +12 -0
  94. package/dist/src/assets/shader/core/common/BrdfLut_frag.d.ts +1 -0
  95. package/dist/src/assets/shader/core/common/BrdfLut_frag.js +6 -0
  96. package/dist/src/assets/shader/core/common/EnvMap_frag.d.ts +1 -0
  97. package/dist/src/assets/shader/core/common/EnvMap_frag.js +10 -0
  98. package/dist/src/assets/shader/core/common/GBufferStand.d.ts +1 -0
  99. package/dist/src/assets/shader/core/common/GBufferStand.js +171 -0
  100. package/dist/src/assets/shader/core/common/GlobalUniform.d.ts +4 -0
  101. package/dist/src/assets/shader/core/common/GlobalUniform.js +117 -0
  102. package/dist/src/assets/shader/core/common/InstanceUniform.d.ts +1 -0
  103. package/dist/src/assets/shader/core/common/InstanceUniform.js +9 -0
  104. package/dist/src/assets/shader/core/common/SHCommon_frag.d.ts +1 -0
  105. package/dist/src/assets/shader/core/common/SHCommon_frag.js +82 -0
  106. package/dist/src/assets/shader/core/common/WorldMatrixUniform.d.ts +1 -0
  107. package/dist/src/assets/shader/core/common/WorldMatrixUniform.js +8 -0
  108. package/dist/src/assets/shader/core/inline/Inline_vert.d.ts +1 -0
  109. package/dist/src/assets/shader/core/inline/Inline_vert.js +59 -0
  110. package/dist/src/assets/shader/core/pass/CastShadow_pass.d.ts +4 -0
  111. package/dist/src/assets/shader/core/pass/CastShadow_pass.js +284 -0
  112. package/dist/src/assets/shader/core/pass/FrustumCulling_cs.d.ts +4 -0
  113. package/dist/src/assets/shader/core/pass/FrustumCulling_cs.js +91 -0
  114. package/dist/src/assets/shader/core/pass/GBuffer_pass.d.ts +1 -0
  115. package/dist/src/assets/shader/core/pass/GBuffer_pass.js +72 -0
  116. package/dist/src/assets/shader/core/pass/SkyGBuffer_pass.d.ts +1 -0
  117. package/dist/src/assets/shader/core/pass/SkyGBuffer_pass.js +34 -0
  118. package/dist/src/assets/shader/core/pass/ZPassShader_cs.d.ts +1 -0
  119. package/dist/src/assets/shader/core/pass/ZPassShader_cs.js +14 -0
  120. package/dist/src/assets/shader/core/pass/ZPassShader_fs.d.ts +1 -0
  121. package/dist/src/assets/shader/core/pass/ZPassShader_fs.js +15 -0
  122. package/dist/src/assets/shader/core/pass/ZPassShader_vs.d.ts +1 -0
  123. package/dist/src/assets/shader/core/pass/ZPassShader_vs.js +83 -0
  124. package/dist/src/assets/shader/core/struct/ClusterLight.d.ts +4 -0
  125. package/dist/src/assets/shader/core/struct/ClusterLight.js +98 -0
  126. package/dist/src/assets/shader/core/struct/ColorPassFragmentOutput.d.ts +1 -0
  127. package/dist/src/assets/shader/core/struct/ColorPassFragmentOutput.js +16 -0
  128. package/dist/src/assets/shader/core/struct/FragmentOutput.d.ts +1 -0
  129. package/dist/src/assets/shader/core/struct/FragmentOutput.js +18 -0
  130. package/dist/src/assets/shader/core/struct/FragmentVarying.d.ts +1 -0
  131. package/dist/src/assets/shader/core/struct/FragmentVarying.js +23 -0
  132. package/dist/src/assets/shader/core/struct/ShadingInput.d.ts +1 -0
  133. package/dist/src/assets/shader/core/struct/ShadingInput.js +21 -0
  134. package/dist/src/assets/shader/core/struct/VertexAttributeIndexShader.d.ts +1 -0
  135. package/dist/src/assets/shader/core/struct/VertexAttributeIndexShader.js +100 -0
  136. package/dist/src/assets/shader/core/struct/VertexAttributes.d.ts +1 -0
  137. package/dist/src/assets/shader/core/struct/VertexAttributes.js +160 -0
  138. package/dist/src/assets/shader/env/ReflectionCG.d.ts +1 -0
  139. package/dist/src/assets/shader/env/ReflectionCG.js +86 -0
  140. package/dist/src/assets/shader/glsl/Quad_glsl.d.ts +2 -0
  141. package/dist/src/assets/shader/glsl/Quad_glsl.js +55 -0
  142. package/dist/src/assets/shader/lighting/BRDF_frag.d.ts +4 -0
  143. package/dist/src/assets/shader/lighting/BRDF_frag.js +461 -0
  144. package/dist/src/assets/shader/lighting/BsDF_frag.d.ts +4 -0
  145. package/dist/src/assets/shader/lighting/BsDF_frag.js +139 -0
  146. package/dist/src/assets/shader/lighting/BxDF_frag.d.ts +4 -0
  147. package/dist/src/assets/shader/lighting/BxDF_frag.js +210 -0
  148. package/dist/src/assets/shader/lighting/Hair_frag.d.ts +1 -0
  149. package/dist/src/assets/shader/lighting/Hair_frag.js +277 -0
  150. package/dist/src/assets/shader/lighting/IESProfiles_frag.d.ts +1 -0
  151. package/dist/src/assets/shader/lighting/IESProfiles_frag.js +33 -0
  152. package/dist/src/assets/shader/lighting/IrradianceVolumeData_frag.d.ts +1 -0
  153. package/dist/src/assets/shader/lighting/IrradianceVolumeData_frag.js +40 -0
  154. package/dist/src/assets/shader/lighting/Irradiance_frag.d.ts +4 -0
  155. package/dist/src/assets/shader/lighting/Irradiance_frag.js +270 -0
  156. package/dist/src/assets/shader/lighting/LightingFunction_frag.d.ts +1 -0
  157. package/dist/src/assets/shader/lighting/LightingFunction_frag.js +203 -0
  158. package/dist/src/assets/shader/lighting/UnLit_frag.d.ts +1 -0
  159. package/dist/src/assets/shader/lighting/UnLit_frag.js +30 -0
  160. package/dist/src/assets/shader/materials/ColorLitShader.d.ts +1 -0
  161. package/dist/src/assets/shader/materials/ColorLitShader.js +22 -0
  162. package/dist/src/assets/shader/materials/GIProbeShader.d.ts +1 -0
  163. package/dist/src/assets/shader/materials/GIProbeShader.js +34 -0
  164. package/dist/src/assets/shader/materials/GlassShader.d.ts +1 -0
  165. package/dist/src/assets/shader/materials/GlassShader.js +26 -0
  166. package/dist/src/assets/shader/materials/Hair_shader.d.ts +2 -0
  167. package/dist/src/assets/shader/materials/Hair_shader.js +210 -0
  168. package/dist/src/assets/shader/materials/Lambert_shader.d.ts +1 -0
  169. package/dist/src/assets/shader/materials/Lambert_shader.js +56 -0
  170. package/dist/src/assets/shader/materials/Lit_shader.d.ts +1 -0
  171. package/dist/src/assets/shader/materials/Lit_shader.js +21 -0
  172. package/dist/src/assets/shader/materials/OutlinePass.d.ts +1 -0
  173. package/dist/src/assets/shader/materials/OutlinePass.js +73 -0
  174. package/dist/src/assets/shader/materials/PBRLItShader.d.ts +4 -0
  175. package/dist/src/assets/shader/materials/PBRLItShader.js +155 -0
  176. package/dist/src/assets/shader/materials/PBRLitSSSShader.d.ts +4 -0
  177. package/dist/src/assets/shader/materials/PBRLitSSSShader.js +192 -0
  178. package/dist/src/assets/shader/materials/ReflectionShader_shader.d.ts +1 -0
  179. package/dist/src/assets/shader/materials/ReflectionShader_shader.js +63 -0
  180. package/dist/src/assets/shader/materials/UnLit.d.ts +4 -0
  181. package/dist/src/assets/shader/materials/UnLit.js +41 -0
  182. package/dist/src/assets/shader/materials/UnLitTextureArray.d.ts +1 -0
  183. package/dist/src/assets/shader/materials/UnLitTextureArray.js +100 -0
  184. package/dist/src/assets/shader/materials/program/BxdfDebug_frag.d.ts +4 -0
  185. package/dist/src/assets/shader/materials/program/BxdfDebug_frag.js +180 -0
  186. package/dist/src/assets/shader/materials/program/Clearcoat_frag.d.ts +1 -0
  187. package/dist/src/assets/shader/materials/program/Clearcoat_frag.js +38 -0
  188. package/dist/src/assets/shader/materials/program/ClusterDebug_frag.d.ts +1 -0
  189. package/dist/src/assets/shader/materials/program/ClusterDebug_frag.js +40 -0
  190. package/dist/src/assets/shader/materials/program/NormalMap_frag.d.ts +4 -0
  191. package/dist/src/assets/shader/materials/program/NormalMap_frag.js +65 -0
  192. package/dist/src/assets/shader/materials/program/ShadowMapping_frag.d.ts +1 -0
  193. package/dist/src/assets/shader/materials/program/ShadowMapping_frag.js +210 -0
  194. package/dist/src/assets/shader/materials/uniforms/PhysicMaterialUniform_frag.d.ts +1 -0
  195. package/dist/src/assets/shader/materials/uniforms/PhysicMaterialUniform_frag.js +37 -0
  196. package/dist/src/assets/shader/materials/uniforms/UnLitMaterialUniform_frag.d.ts +1 -0
  197. package/dist/src/assets/shader/materials/uniforms/UnLitMaterialUniform_frag.js +14 -0
  198. package/dist/src/assets/shader/materials/uniforms/VideoUniform_frag.d.ts +1 -0
  199. package/dist/src/assets/shader/materials/uniforms/VideoUniform_frag.js +12 -0
  200. package/dist/src/assets/shader/math/FastMathShader.d.ts +1 -0
  201. package/dist/src/assets/shader/math/FastMathShader.js +91 -0
  202. package/dist/src/assets/shader/math/MathShader.d.ts +4 -0
  203. package/dist/src/assets/shader/math/MathShader.js +558 -0
  204. package/dist/src/assets/shader/math/MatrixShader.d.ts +1 -0
  205. package/dist/src/assets/shader/math/MatrixShader.js +104 -0
  206. package/dist/src/assets/shader/post/FXAAShader.d.ts +1 -0
  207. package/dist/src/assets/shader/post/FXAAShader.js +79 -0
  208. package/dist/src/assets/shader/post/GlobalFog_shader.d.ts +4 -0
  209. package/dist/src/assets/shader/post/GlobalFog_shader.js +191 -0
  210. package/dist/src/assets/shader/quad/Quad_shader.d.ts +24 -0
  211. package/dist/src/assets/shader/quad/Quad_shader.js +210 -0
  212. package/dist/src/assets/shader/sky/AtmosphericScatteringSky_shader.d.ts +6 -0
  213. package/dist/src/assets/shader/sky/AtmosphericScatteringSky_shader.js +312 -0
  214. package/dist/src/assets/shader/sky/CubeSky_Shader.d.ts +7 -0
  215. package/dist/src/assets/shader/sky/CubeSky_Shader.js +122 -0
  216. package/dist/src/assets/shader/utils/BitUtil.d.ts +1 -0
  217. package/dist/src/assets/shader/utils/BitUtil.js +108 -0
  218. package/dist/src/assets/shader/utils/ColorUtil.d.ts +1 -0
  219. package/dist/src/assets/shader/utils/ColorUtil.js +144 -0
  220. package/dist/src/assets/shader/utils/GenerayRandomDir.d.ts +1 -0
  221. package/dist/src/assets/shader/utils/GenerayRandomDir.js +22 -0
  222. package/dist/src/components/AtmosphericComponent.d.ts +28 -0
  223. package/dist/src/components/AtmosphericComponent.js +141 -0
  224. package/dist/src/components/BillboardComponent.d.ts +13 -0
  225. package/dist/src/components/BillboardComponent.js +30 -0
  226. package/dist/src/components/ColliderComponent.d.ts +15 -0
  227. package/dist/src/components/ColliderComponent.js +39 -0
  228. package/dist/src/components/ComponentBase.d.ts +43 -0
  229. package/dist/src/components/ComponentBase.js +141 -0
  230. package/dist/src/components/IComponent.d.ts +27 -0
  231. package/dist/src/components/IComponent.js +1 -0
  232. package/dist/src/components/SkeletonAnimationComponent.d.ts +52 -0
  233. package/dist/src/components/SkeletonAnimationComponent.js +225 -0
  234. package/dist/src/components/Transform.d.ts +119 -0
  235. package/dist/src/components/Transform.js +523 -0
  236. package/dist/src/components/anim/AnimatorComponent.d.ts +67 -0
  237. package/dist/src/components/anim/AnimatorComponent.js +411 -0
  238. package/dist/src/components/anim/OAnimationEvent.d.ts +6 -0
  239. package/dist/src/components/anim/OAnimationEvent.js +8 -0
  240. package/dist/src/components/anim/curveAnim/AnimationMonitor.d.ts +29 -0
  241. package/dist/src/components/anim/curveAnim/AnimationMonitor.js +159 -0
  242. package/dist/src/components/anim/curveAnim/AttributeAnimCurve.d.ts +8 -0
  243. package/dist/src/components/anim/curveAnim/AttributeAnimCurve.js +15 -0
  244. package/dist/src/components/anim/curveAnim/PropertyAnimClip.d.ts +29 -0
  245. package/dist/src/components/anim/curveAnim/PropertyAnimClip.js +54 -0
  246. package/dist/src/components/anim/curveAnim/PropertyAnimation.d.ts +31 -0
  247. package/dist/src/components/anim/curveAnim/PropertyAnimation.js +107 -0
  248. package/dist/src/components/anim/curveAnim/PropertyAnimationEvent.d.ts +14 -0
  249. package/dist/src/components/anim/curveAnim/PropertyAnimationEvent.js +11 -0
  250. package/dist/src/components/anim/curveAnim/PropertyHelp.d.ts +13 -0
  251. package/dist/src/components/anim/curveAnim/PropertyHelp.js +96 -0
  252. package/dist/src/components/anim/morphAnim/MorphTargetBlender.d.ts +18 -0
  253. package/dist/src/components/anim/morphAnim/MorphTargetBlender.js +81 -0
  254. package/dist/src/components/anim/morphAnim/MorphTargetData.d.ts +52 -0
  255. package/dist/src/components/anim/morphAnim/MorphTargetData.js +183 -0
  256. package/dist/src/components/anim/morphAnim/MorphTargetFrame.d.ts +68 -0
  257. package/dist/src/components/anim/morphAnim/MorphTargetFrame.js +4 -0
  258. package/dist/src/components/anim/morphAnim/MorphTargetKey.d.ts +58 -0
  259. package/dist/src/components/anim/morphAnim/MorphTargetKey.js +55 -0
  260. package/dist/src/components/anim/morphAnim/MorphTarget_shader.d.ts +8 -0
  261. package/dist/src/components/anim/morphAnim/MorphTarget_shader.js +101 -0
  262. package/dist/src/components/anim/skeletonAnim/Joint.d.ts +12 -0
  263. package/dist/src/components/anim/skeletonAnim/Joint.js +14 -0
  264. package/dist/src/components/anim/skeletonAnim/JointPose.d.ts +6 -0
  265. package/dist/src/components/anim/skeletonAnim/JointPose.js +7 -0
  266. package/dist/src/components/anim/skeletonAnim/Skeleton.d.ts +10 -0
  267. package/dist/src/components/anim/skeletonAnim/Skeleton.js +26 -0
  268. package/dist/src/components/anim/skeletonAnim/SkeletonAnimationClip.d.ts +22 -0
  269. package/dist/src/components/anim/skeletonAnim/SkeletonAnimationClip.js +70 -0
  270. package/dist/src/components/anim/skeletonAnim/SkeletonAnimationClipState.d.ts +21 -0
  271. package/dist/src/components/anim/skeletonAnim/SkeletonAnimationClipState.js +80 -0
  272. package/dist/src/components/anim/skeletonAnim/SkeletonAnimationCompute.d.ts +6 -0
  273. package/dist/src/components/anim/skeletonAnim/SkeletonAnimationCompute.js +27 -0
  274. package/dist/src/components/anim/skeletonAnim/SkeletonPose.d.ts +16 -0
  275. package/dist/src/components/anim/skeletonAnim/SkeletonPose.js +79 -0
  276. package/dist/src/components/anim/skeletonAnim/buffer/SkeletonBlendComputeArgs.d.ts +23 -0
  277. package/dist/src/components/anim/skeletonAnim/buffer/SkeletonBlendComputeArgs.js +61 -0
  278. package/dist/src/components/anim/skeletonAnim/buffer/SkeletonTransformComputeArgs.d.ts +23 -0
  279. package/dist/src/components/anim/skeletonAnim/buffer/SkeletonTransformComputeArgs.js +59 -0
  280. package/dist/src/components/controller/CameraControllerBase.d.ts +17 -0
  281. package/dist/src/components/controller/CameraControllerBase.js +33 -0
  282. package/dist/src/components/controller/FirstPersonCameraController.d.ts +15 -0
  283. package/dist/src/components/controller/FirstPersonCameraController.js +52 -0
  284. package/dist/src/components/controller/FlyCameraController.d.ts +36 -0
  285. package/dist/src/components/controller/FlyCameraController.js +180 -0
  286. package/dist/src/components/controller/HoverCameraController.d.ts +52 -0
  287. package/dist/src/components/controller/HoverCameraController.js +183 -0
  288. package/dist/src/components/controller/OrbitController.d.ts +170 -0
  289. package/dist/src/components/controller/OrbitController.js +339 -0
  290. package/dist/src/components/controller/ThirdPersonCameraController.d.ts +16 -0
  291. package/dist/src/components/controller/ThirdPersonCameraController.js +51 -0
  292. package/dist/src/components/gui/GUIConfig.d.ts +23 -0
  293. package/dist/src/components/gui/GUIConfig.js +26 -0
  294. package/dist/src/components/gui/GUIExtension.d.ts +5 -0
  295. package/dist/src/components/gui/GUIExtension.js +61 -0
  296. package/dist/src/components/gui/GUIPick.d.ts +36 -0
  297. package/dist/src/components/gui/GUIPick.js +178 -0
  298. package/dist/src/components/gui/GUIPickHelper.d.ts +25 -0
  299. package/dist/src/components/gui/GUIPickHelper.js +119 -0
  300. package/dist/src/components/gui/core/GUIAtlasTexture.d.ts +16 -0
  301. package/dist/src/components/gui/core/GUIAtlasTexture.js +22 -0
  302. package/dist/src/components/gui/core/GUICanvas.d.ts +21 -0
  303. package/dist/src/components/gui/core/GUICanvas.js +35 -0
  304. package/dist/src/components/gui/core/GUIDefine.d.ts +7 -0
  305. package/dist/src/components/gui/core/GUIDefine.js +8 -0
  306. package/dist/src/components/gui/core/GUIGeometry.d.ts +36 -0
  307. package/dist/src/components/gui/core/GUIGeometry.js +215 -0
  308. package/dist/src/components/gui/core/GUIGeometryRebuild.d.ts +21 -0
  309. package/dist/src/components/gui/core/GUIGeometryRebuild.js +105 -0
  310. package/dist/src/components/gui/core/GUIMaterial.d.ts +29 -0
  311. package/dist/src/components/gui/core/GUIMaterial.js +111 -0
  312. package/dist/src/components/gui/core/GUIQuad.d.ts +52 -0
  313. package/dist/src/components/gui/core/GUIQuad.js +154 -0
  314. package/dist/src/components/gui/core/GUIRenderer.d.ts +15 -0
  315. package/dist/src/components/gui/core/GUIRenderer.js +42 -0
  316. package/dist/src/components/gui/core/GUIShader.d.ts +8 -0
  317. package/dist/src/components/gui/core/GUIShader.js +267 -0
  318. package/dist/src/components/gui/core/GUISprite.d.ts +19 -0
  319. package/dist/src/components/gui/core/GUISprite.js +19 -0
  320. package/dist/src/components/gui/core/GUITexture.d.ts +12 -0
  321. package/dist/src/components/gui/core/GUITexture.js +25 -0
  322. package/dist/src/components/gui/uiComponents/IUIInteractive.d.ts +25 -0
  323. package/dist/src/components/gui/uiComponents/IUIInteractive.js +7 -0
  324. package/dist/src/components/gui/uiComponents/TextFieldLayout.d.ts +34 -0
  325. package/dist/src/components/gui/uiComponents/TextFieldLayout.js +265 -0
  326. package/dist/src/components/gui/uiComponents/UIButton.d.ts +45 -0
  327. package/dist/src/components/gui/uiComponents/UIButton.js +140 -0
  328. package/dist/src/components/gui/uiComponents/UIComponentBase.d.ts +15 -0
  329. package/dist/src/components/gui/uiComponents/UIComponentBase.js +33 -0
  330. package/dist/src/components/gui/uiComponents/UIImage.d.ts +21 -0
  331. package/dist/src/components/gui/uiComponents/UIImage.js +72 -0
  332. package/dist/src/components/gui/uiComponents/UIImageGroup.d.ts +31 -0
  333. package/dist/src/components/gui/uiComponents/UIImageGroup.js +87 -0
  334. package/dist/src/components/gui/uiComponents/UIInteractive.d.ts +25 -0
  335. package/dist/src/components/gui/uiComponents/UIInteractive.js +50 -0
  336. package/dist/src/components/gui/uiComponents/UIPanel.d.ts +38 -0
  337. package/dist/src/components/gui/uiComponents/UIPanel.js +173 -0
  338. package/dist/src/components/gui/uiComponents/UIRenderAble.d.ts +27 -0
  339. package/dist/src/components/gui/uiComponents/UIRenderAble.js +106 -0
  340. package/dist/src/components/gui/uiComponents/UIShadow.d.ts +31 -0
  341. package/dist/src/components/gui/uiComponents/UIShadow.js +117 -0
  342. package/dist/src/components/gui/uiComponents/UITextField.d.ts +36 -0
  343. package/dist/src/components/gui/uiComponents/UITextField.js +122 -0
  344. package/dist/src/components/gui/uiComponents/UITransform.d.ts +60 -0
  345. package/dist/src/components/gui/uiComponents/UITransform.js +243 -0
  346. package/dist/src/components/gui/uiComponents/ViewPanel.d.ts +9 -0
  347. package/dist/src/components/gui/uiComponents/ViewPanel.js +13 -0
  348. package/dist/src/components/gui/uiComponents/WorldPanel.d.ts +13 -0
  349. package/dist/src/components/gui/uiComponents/WorldPanel.js +34 -0
  350. package/dist/src/components/lights/DirectLight.d.ts +13 -0
  351. package/dist/src/components/lights/DirectLight.js +52 -0
  352. package/dist/src/components/lights/GILighting.d.ts +6 -0
  353. package/dist/src/components/lights/GILighting.js +15 -0
  354. package/dist/src/components/lights/IESProfiles.d.ts +14 -0
  355. package/dist/src/components/lights/IESProfiles.js +33 -0
  356. package/dist/src/components/lights/ILight.d.ts +12 -0
  357. package/dist/src/components/lights/ILight.js +1 -0
  358. package/dist/src/components/lights/Light.d.ts +32 -0
  359. package/dist/src/components/lights/Light.js +90 -0
  360. package/dist/src/components/lights/LightBase.d.ts +127 -0
  361. package/dist/src/components/lights/LightBase.js +238 -0
  362. package/dist/src/components/lights/LightData.d.ts +29 -0
  363. package/dist/src/components/lights/LightData.js +33 -0
  364. package/dist/src/components/lights/PointLight.d.ts +19 -0
  365. package/dist/src/components/lights/PointLight.js +67 -0
  366. package/dist/src/components/lights/SpotLight.d.ts +21 -0
  367. package/dist/src/components/lights/SpotLight.js +79 -0
  368. package/dist/src/components/post/PostProcessingComponent.d.ts +16 -0
  369. package/dist/src/components/post/PostProcessingComponent.js +52 -0
  370. package/dist/src/components/renderer/GlobalIlluminationComponent.d.ts +22 -0
  371. package/dist/src/components/renderer/GlobalIlluminationComponent.js +118 -0
  372. package/dist/src/components/renderer/InstanceDrawComponent.d.ts +19 -0
  373. package/dist/src/components/renderer/InstanceDrawComponent.js +120 -0
  374. package/dist/src/components/renderer/MeshFilter.d.ts +9 -0
  375. package/dist/src/components/renderer/MeshFilter.js +37 -0
  376. package/dist/src/components/renderer/MeshRenderer.d.ts +51 -0
  377. package/dist/src/components/renderer/MeshRenderer.js +156 -0
  378. package/dist/src/components/renderer/Reflection.d.ts +15 -0
  379. package/dist/src/components/renderer/Reflection.js +33 -0
  380. package/dist/src/components/renderer/RenderNode.d.ts +85 -0
  381. package/dist/src/components/renderer/RenderNode.js +518 -0
  382. package/dist/src/components/renderer/SkinnedMeshRenderer.d.ts +26 -0
  383. package/dist/src/components/renderer/SkinnedMeshRenderer.js +111 -0
  384. package/dist/src/components/renderer/SkinnedMeshRenderer2.d.ts +37 -0
  385. package/dist/src/components/renderer/SkinnedMeshRenderer2.js +138 -0
  386. package/dist/src/components/renderer/SkyRenderer.d.ts +36 -0
  387. package/dist/src/components/renderer/SkyRenderer.js +94 -0
  388. package/dist/src/components/renderer/SphereReflection.d.ts +12 -0
  389. package/dist/src/components/renderer/SphereReflection.js +45 -0
  390. package/dist/src/components/shape/BoxColliderShape.d.ts +9 -0
  391. package/dist/src/components/shape/BoxColliderShape.js +28 -0
  392. package/dist/src/components/shape/CapsuleColliderShape.d.ts +6 -0
  393. package/dist/src/components/shape/CapsuleColliderShape.js +9 -0
  394. package/dist/src/components/shape/ColliderShape.d.ts +35 -0
  395. package/dist/src/components/shape/ColliderShape.js +49 -0
  396. package/dist/src/components/shape/MeshColliderShape.d.ts +8 -0
  397. package/dist/src/components/shape/MeshColliderShape.js +55 -0
  398. package/dist/src/components/shape/SphereColliderShape.d.ts +26 -0
  399. package/dist/src/components/shape/SphereColliderShape.js +47 -0
  400. package/dist/src/core/Camera3D.d.ts +308 -0
  401. package/dist/src/core/Camera3D.js +534 -0
  402. package/dist/src/core/CameraType.d.ts +5 -0
  403. package/dist/src/core/CameraType.js +6 -0
  404. package/dist/src/core/CubeCamera.d.ts +18 -0
  405. package/dist/src/core/CubeCamera.js +67 -0
  406. package/dist/src/core/PointShadowCubeCamera.d.ts +13 -0
  407. package/dist/src/core/PointShadowCubeCamera.js +59 -0
  408. package/dist/src/core/Scene3D.d.ts +66 -0
  409. package/dist/src/core/Scene3D.js +88 -0
  410. package/dist/src/core/View3D.d.ts +85 -0
  411. package/dist/src/core/View3D.js +113 -0
  412. package/dist/src/core/ViewQuad.d.ts +19 -0
  413. package/dist/src/core/ViewQuad.js +84 -0
  414. package/dist/src/core/bound/BoundingBox.d.ts +34 -0
  415. package/dist/src/core/bound/BoundingBox.js +155 -0
  416. package/dist/src/core/bound/BoundingSphere.d.ts +34 -0
  417. package/dist/src/core/bound/BoundingSphere.js +71 -0
  418. package/dist/src/core/bound/Frustum.d.ts +17 -0
  419. package/dist/src/core/bound/Frustum.js +184 -0
  420. package/dist/src/core/bound/IBound.d.ts +19 -0
  421. package/dist/src/core/bound/IBound.js +1 -0
  422. package/dist/src/core/csm/CSM.d.ts +3 -0
  423. package/dist/src/core/csm/CSM.js +3 -0
  424. package/dist/src/core/csm/FrustumCSM.d.ts +32 -0
  425. package/dist/src/core/csm/FrustumCSM.js +106 -0
  426. package/dist/src/core/entities/Entity.d.ts +43 -0
  427. package/dist/src/core/entities/Entity.js +200 -0
  428. package/dist/src/core/entities/InstancedMesh.d.ts +11 -0
  429. package/dist/src/core/entities/InstancedMesh.js +32 -0
  430. package/dist/src/core/entities/Object3D.d.ts +66 -0
  431. package/dist/src/core/entities/Object3D.js +284 -0
  432. package/dist/src/core/geometry/ExtrudeGeometry.d.ts +31 -0
  433. package/dist/src/core/geometry/ExtrudeGeometry.js +156 -0
  434. package/dist/src/core/geometry/GeometryBase.d.ts +70 -0
  435. package/dist/src/core/geometry/GeometryBase.js +248 -0
  436. package/dist/src/core/geometry/GeometryIndicesBuffer.d.ts +15 -0
  437. package/dist/src/core/geometry/GeometryIndicesBuffer.js +33 -0
  438. package/dist/src/core/geometry/GeometryVertexBuffer.d.ts +23 -0
  439. package/dist/src/core/geometry/GeometryVertexBuffer.js +243 -0
  440. package/dist/src/core/geometry/GeometryVertexType.d.ts +5 -0
  441. package/dist/src/core/geometry/GeometryVertexType.js +6 -0
  442. package/dist/src/core/geometry/VertexAttribute.d.ts +15 -0
  443. package/dist/src/core/geometry/VertexAttribute.js +4 -0
  444. package/dist/src/core/geometry/VertexAttributeData.d.ts +5 -0
  445. package/dist/src/core/geometry/VertexAttributeData.js +1 -0
  446. package/dist/src/core/geometry/VertexAttributeName.d.ts +23 -0
  447. package/dist/src/core/geometry/VertexAttributeName.js +24 -0
  448. package/dist/src/core/geometry/VertexAttributeSize.d.ts +11 -0
  449. package/dist/src/core/geometry/VertexAttributeSize.js +12 -0
  450. package/dist/src/core/geometry/VertexAttributeStride.d.ts +15 -0
  451. package/dist/src/core/geometry/VertexAttributeStride.js +16 -0
  452. package/dist/src/core/geometry/VertexFormat.d.ts +1 -0
  453. package/dist/src/core/geometry/VertexFormat.js +8 -0
  454. package/dist/src/core/pool/ObjectPool.d.ts +11 -0
  455. package/dist/src/core/pool/ObjectPool.js +33 -0
  456. package/dist/src/core/pool/memory/MemoryDO.d.ts +14 -0
  457. package/dist/src/core/pool/memory/MemoryDO.js +48 -0
  458. package/dist/src/core/pool/memory/MemoryInfo.d.ts +83 -0
  459. package/dist/src/core/pool/memory/MemoryInfo.js +316 -0
  460. package/dist/src/core/tree/kdTree/IKDTreeUserData.d.ts +10 -0
  461. package/dist/src/core/tree/kdTree/IKDTreeUserData.js +9 -0
  462. package/dist/src/core/tree/kdTree/KDTreeEntity.d.ts +27 -0
  463. package/dist/src/core/tree/kdTree/KDTreeEntity.js +48 -0
  464. package/dist/src/core/tree/kdTree/KDTreeNode.d.ts +68 -0
  465. package/dist/src/core/tree/kdTree/KDTreeNode.js +257 -0
  466. package/dist/src/core/tree/kdTree/KDTreeSpace.d.ts +26 -0
  467. package/dist/src/core/tree/kdTree/KDTreeSpace.js +66 -0
  468. package/dist/src/core/tree/octree/Octree.d.ts +28 -0
  469. package/dist/src/core/tree/octree/Octree.js +133 -0
  470. package/dist/src/core/tree/octree/OctreeEntity.d.ts +11 -0
  471. package/dist/src/core/tree/octree/OctreeEntity.js +25 -0
  472. package/dist/src/core/tree/quad/IQuadNode.d.ts +9 -0
  473. package/dist/src/core/tree/quad/IQuadNode.js +1 -0
  474. package/dist/src/core/tree/quad/QuadAABB.d.ts +26 -0
  475. package/dist/src/core/tree/quad/QuadAABB.js +116 -0
  476. package/dist/src/core/tree/quad/QuadRoot.d.ts +14 -0
  477. package/dist/src/core/tree/quad/QuadRoot.js +67 -0
  478. package/dist/src/core/tree/quad/QuadTree.d.ts +22 -0
  479. package/dist/src/core/tree/quad/QuadTree.js +250 -0
  480. package/dist/src/core/tree/quad/QuadTreeCell.d.ts +23 -0
  481. package/dist/src/core/tree/quad/QuadTreeCell.js +36 -0
  482. package/dist/src/event/CEvent.d.ts +27 -0
  483. package/dist/src/event/CEvent.js +19 -0
  484. package/dist/src/event/CEventDispatcher.d.ts +13 -0
  485. package/dist/src/event/CEventDispatcher.js +129 -0
  486. package/dist/src/event/CEventListener.d.ts +13 -0
  487. package/dist/src/event/CEventListener.js +26 -0
  488. package/dist/src/event/CResizeEvent.d.ts +4 -0
  489. package/dist/src/event/CResizeEvent.js +4 -0
  490. package/dist/src/event/KeyCode.d.ts +110 -0
  491. package/dist/src/event/KeyCode.js +111 -0
  492. package/dist/src/event/MouseCode.d.ts +5 -0
  493. package/dist/src/event/MouseCode.js +6 -0
  494. package/dist/src/event/eventConst/KeyEvent.d.ts +6 -0
  495. package/dist/src/event/eventConst/KeyEvent.js +9 -0
  496. package/dist/src/event/eventConst/LoaderEvent.d.ts +5 -0
  497. package/dist/src/event/eventConst/LoaderEvent.js +5 -0
  498. package/dist/src/event/eventConst/Object3DEvent.d.ts +7 -0
  499. package/dist/src/event/eventConst/Object3DEvent.js +7 -0
  500. package/dist/src/event/eventConst/PointerEvent3D.d.ts +63 -0
  501. package/dist/src/event/eventConst/PointerEvent3D.js +54 -0
  502. package/dist/src/event/eventConst/UIEvent.d.ts +6 -0
  503. package/dist/src/event/eventConst/UIEvent.js +6 -0
  504. package/dist/src/gfx/generate/BrdfLUTGenerate.d.ts +7 -0
  505. package/dist/src/gfx/generate/BrdfLUTGenerate.js +20 -0
  506. package/dist/src/gfx/generate/PassGenerate.d.ts +9 -0
  507. package/dist/src/gfx/generate/PassGenerate.js +181 -0
  508. package/dist/src/gfx/generate/convert/BlurEffectCreator.d.ts +7 -0
  509. package/dist/src/gfx/generate/convert/BlurEffectCreator.js +79 -0
  510. package/dist/src/gfx/generate/convert/ErpImage2CubeMap.d.ts +9 -0
  511. package/dist/src/gfx/generate/convert/ErpImage2CubeMap.js +144 -0
  512. package/dist/src/gfx/generate/convert/IBLEnvMapCreator.d.ts +12 -0
  513. package/dist/src/gfx/generate/convert/IBLEnvMapCreator.js +109 -0
  514. package/dist/src/gfx/generate/convert/MergeRGBACreator.d.ts +5 -0
  515. package/dist/src/gfx/generate/convert/MergeRGBACreator.js +32 -0
  516. package/dist/src/gfx/generate/convert/TextureCubeStdCreator.d.ts +9 -0
  517. package/dist/src/gfx/generate/convert/TextureCubeStdCreator.js +117 -0
  518. package/dist/src/gfx/generate/convert/TextureCubeUtils.d.ts +12 -0
  519. package/dist/src/gfx/generate/convert/TextureCubeUtils.js +47 -0
  520. package/dist/src/gfx/generate/convert/TextureScaleCompute.d.ts +6 -0
  521. package/dist/src/gfx/generate/convert/TextureScaleCompute.js +18 -0
  522. package/dist/src/gfx/graphics/webGpu/CanvasConfig.d.ts +7 -0
  523. package/dist/src/gfx/graphics/webGpu/CanvasConfig.js +1 -0
  524. package/dist/src/gfx/graphics/webGpu/Context3D.d.ts +20 -0
  525. package/dist/src/gfx/graphics/webGpu/Context3D.js +112 -0
  526. package/dist/src/gfx/graphics/webGpu/PipelinePool.d.ts +5 -0
  527. package/dist/src/gfx/graphics/webGpu/PipelinePool.js +15 -0
  528. package/dist/src/gfx/graphics/webGpu/WebGPUConst.d.ts +154 -0
  529. package/dist/src/gfx/graphics/webGpu/WebGPUConst.js +154 -0
  530. package/dist/src/gfx/graphics/webGpu/compute/PreIntegratedLutCompute.d.ts +8 -0
  531. package/dist/src/gfx/graphics/webGpu/compute/PreIntegratedLutCompute.js +23 -0
  532. package/dist/src/gfx/graphics/webGpu/compute/RenderShaderCompute.d.ts +12 -0
  533. package/dist/src/gfx/graphics/webGpu/compute/RenderShaderCompute.js +19 -0
  534. package/dist/src/gfx/graphics/webGpu/core/bindGroups/GlobalBindGroup.d.ts +18 -0
  535. package/dist/src/gfx/graphics/webGpu/core/bindGroups/GlobalBindGroup.js +64 -0
  536. package/dist/src/gfx/graphics/webGpu/core/bindGroups/GlobalBindGroupLayout.d.ts +4 -0
  537. package/dist/src/gfx/graphics/webGpu/core/bindGroups/GlobalBindGroupLayout.js +29 -0
  538. package/dist/src/gfx/graphics/webGpu/core/bindGroups/GlobalUniformGroup.d.ts +25 -0
  539. package/dist/src/gfx/graphics/webGpu/core/bindGroups/GlobalUniformGroup.js +179 -0
  540. package/dist/src/gfx/graphics/webGpu/core/bindGroups/MatrixBindGroup.d.ts +11 -0
  541. package/dist/src/gfx/graphics/webGpu/core/bindGroups/MatrixBindGroup.js +22 -0
  542. package/dist/src/gfx/graphics/webGpu/core/bindGroups/groups/LightEntries.d.ts +11 -0
  543. package/dist/src/gfx/graphics/webGpu/core/bindGroups/groups/LightEntries.js +48 -0
  544. package/dist/src/gfx/graphics/webGpu/core/bindGroups/groups/ProbeEntries.d.ts +10 -0
  545. package/dist/src/gfx/graphics/webGpu/core/bindGroups/groups/ProbeEntries.js +41 -0
  546. package/dist/src/gfx/graphics/webGpu/core/bindGroups/groups/ReflectionEntries.d.ts +12 -0
  547. package/dist/src/gfx/graphics/webGpu/core/bindGroups/groups/ReflectionEntries.js +21 -0
  548. package/dist/src/gfx/graphics/webGpu/core/buffer/ArrayBufferData.d.ts +1 -0
  549. package/dist/src/gfx/graphics/webGpu/core/buffer/ArrayBufferData.js +1 -0
  550. package/dist/src/gfx/graphics/webGpu/core/buffer/ComputeGPUBuffer.d.ts +4 -0
  551. package/dist/src/gfx/graphics/webGpu/core/buffer/ComputeGPUBuffer.js +11 -0
  552. package/dist/src/gfx/graphics/webGpu/core/buffer/GPUBufferBase.d.ts +84 -0
  553. package/dist/src/gfx/graphics/webGpu/core/buffer/GPUBufferBase.js +493 -0
  554. package/dist/src/gfx/graphics/webGpu/core/buffer/GPUBufferType.d.ts +9 -0
  555. package/dist/src/gfx/graphics/webGpu/core/buffer/GPUBufferType.js +10 -0
  556. package/dist/src/gfx/graphics/webGpu/core/buffer/IndicesGPUBuffer.d.ts +14 -0
  557. package/dist/src/gfx/graphics/webGpu/core/buffer/IndicesGPUBuffer.js +44 -0
  558. package/dist/src/gfx/graphics/webGpu/core/buffer/MaterialDataUniformGPUBuffer.d.ts +10 -0
  559. package/dist/src/gfx/graphics/webGpu/core/buffer/MaterialDataUniformGPUBuffer.js +46 -0
  560. package/dist/src/gfx/graphics/webGpu/core/buffer/MatrixGPUBuffer.d.ts +8 -0
  561. package/dist/src/gfx/graphics/webGpu/core/buffer/MatrixGPUBuffer.js +57 -0
  562. package/dist/src/gfx/graphics/webGpu/core/buffer/StorageGPUBuffer.d.ts +11 -0
  563. package/dist/src/gfx/graphics/webGpu/core/buffer/StorageGPUBuffer.js +16 -0
  564. package/dist/src/gfx/graphics/webGpu/core/buffer/StructStorageGPUBuffer.d.ts +7 -0
  565. package/dist/src/gfx/graphics/webGpu/core/buffer/StructStorageGPUBuffer.js +9 -0
  566. package/dist/src/gfx/graphics/webGpu/core/buffer/UniformGPUBuffer.d.ts +11 -0
  567. package/dist/src/gfx/graphics/webGpu/core/buffer/UniformGPUBuffer.js +17 -0
  568. package/dist/src/gfx/graphics/webGpu/core/buffer/VertexGPUBuffer.d.ts +7 -0
  569. package/dist/src/gfx/graphics/webGpu/core/buffer/VertexGPUBuffer.js +29 -0
  570. package/dist/src/gfx/graphics/webGpu/core/texture/ITexture.d.ts +18 -0
  571. package/dist/src/gfx/graphics/webGpu/core/texture/ITexture.js +1 -0
  572. package/dist/src/gfx/graphics/webGpu/core/texture/Texture.d.ts +79 -0
  573. package/dist/src/gfx/graphics/webGpu/core/texture/Texture.js +307 -0
  574. package/dist/src/gfx/graphics/webGpu/core/texture/TextureCube.d.ts +11 -0
  575. package/dist/src/gfx/graphics/webGpu/core/texture/TextureCube.js +51 -0
  576. package/dist/src/gfx/graphics/webGpu/core/texture/TextureMipmapCompute.d.ts +9 -0
  577. package/dist/src/gfx/graphics/webGpu/core/texture/TextureMipmapCompute.js +134 -0
  578. package/dist/src/gfx/graphics/webGpu/core/texture/TextureMipmapGenerator.d.ts +9 -0
  579. package/dist/src/gfx/graphics/webGpu/core/texture/TextureMipmapGenerator.js +163 -0
  580. package/dist/src/gfx/graphics/webGpu/core/uniforms/UniformNode.d.ts +34 -0
  581. package/dist/src/gfx/graphics/webGpu/core/uniforms/UniformNode.js +176 -0
  582. package/dist/src/gfx/graphics/webGpu/descriptor/RTDescriptor.d.ts +5 -0
  583. package/dist/src/gfx/graphics/webGpu/descriptor/RTDescriptor.js +7 -0
  584. package/dist/src/gfx/graphics/webGpu/descriptor/WebGPUDescriptorCreator.d.ts +8 -0
  585. package/dist/src/gfx/graphics/webGpu/descriptor/WebGPUDescriptorCreator.js +174 -0
  586. package/dist/src/gfx/graphics/webGpu/shader/ComputeShader.d.ts +28 -0
  587. package/dist/src/gfx/graphics/webGpu/shader/ComputeShader.js +219 -0
  588. package/dist/src/gfx/graphics/webGpu/shader/RenderShaderPass.d.ts +206 -0
  589. package/dist/src/gfx/graphics/webGpu/shader/RenderShaderPass.js +888 -0
  590. package/dist/src/gfx/graphics/webGpu/shader/Shader.d.ts +53 -0
  591. package/dist/src/gfx/graphics/webGpu/shader/Shader.js +205 -0
  592. package/dist/src/gfx/graphics/webGpu/shader/ShaderPassBase.d.ts +60 -0
  593. package/dist/src/gfx/graphics/webGpu/shader/ShaderPassBase.js +150 -0
  594. package/dist/src/gfx/graphics/webGpu/shader/ShaderStage.d.ts +5 -0
  595. package/dist/src/gfx/graphics/webGpu/shader/ShaderStage.js +6 -0
  596. package/dist/src/gfx/graphics/webGpu/shader/converter/GLSLLexer.d.ts +16 -0
  597. package/dist/src/gfx/graphics/webGpu/shader/converter/GLSLLexer.js +422 -0
  598. package/dist/src/gfx/graphics/webGpu/shader/converter/GLSLLexerToken.d.ts +174 -0
  599. package/dist/src/gfx/graphics/webGpu/shader/converter/GLSLLexerToken.js +388 -0
  600. package/dist/src/gfx/graphics/webGpu/shader/converter/GLSLPreprocessor.d.ts +10 -0
  601. package/dist/src/gfx/graphics/webGpu/shader/converter/GLSLPreprocessor.js +198 -0
  602. package/dist/src/gfx/graphics/webGpu/shader/converter/GLSLSyntax.d.ts +14 -0
  603. package/dist/src/gfx/graphics/webGpu/shader/converter/GLSLSyntax.js +106 -0
  604. package/dist/src/gfx/graphics/webGpu/shader/converter/Reader.d.ts +30 -0
  605. package/dist/src/gfx/graphics/webGpu/shader/converter/Reader.js +136 -0
  606. package/dist/src/gfx/graphics/webGpu/shader/converter/ShaderConverter.d.ts +47 -0
  607. package/dist/src/gfx/graphics/webGpu/shader/converter/ShaderConverter.js +69 -0
  608. package/dist/src/gfx/graphics/webGpu/shader/converter/StatementNode.d.ts +309 -0
  609. package/dist/src/gfx/graphics/webGpu/shader/converter/StatementNode.js +1804 -0
  610. package/dist/src/gfx/graphics/webGpu/shader/converter/WGSLTranslator.d.ts +50 -0
  611. package/dist/src/gfx/graphics/webGpu/shader/converter/WGSLTranslator.js +272 -0
  612. package/dist/src/gfx/graphics/webGpu/shader/util/MorePassParser.d.ts +25 -0
  613. package/dist/src/gfx/graphics/webGpu/shader/util/MorePassParser.js +134 -0
  614. package/dist/src/gfx/graphics/webGpu/shader/util/Preprocessor.d.ts +28 -0
  615. package/dist/src/gfx/graphics/webGpu/shader/util/Preprocessor.js +304 -0
  616. package/dist/src/gfx/graphics/webGpu/shader/util/ShaderUtil.d.ts +23 -0
  617. package/dist/src/gfx/graphics/webGpu/shader/util/ShaderUtil.js +6 -0
  618. package/dist/src/gfx/graphics/webGpu/shader/value/ConstValue.d.ts +1 -0
  619. package/dist/src/gfx/graphics/webGpu/shader/value/ConstValue.js +1 -0
  620. package/dist/src/gfx/graphics/webGpu/shader/value/DefineValue.d.ts +4 -0
  621. package/dist/src/gfx/graphics/webGpu/shader/value/DefineValue.js +1 -0
  622. package/dist/src/gfx/graphics/webGpu/shader/value/ShaderReflectionInfo.d.ts +57 -0
  623. package/dist/src/gfx/graphics/webGpu/shader/value/ShaderReflectionInfo.js +421 -0
  624. package/dist/src/gfx/graphics/webGpu/shader/value/ShaderState.d.ts +30 -0
  625. package/dist/src/gfx/graphics/webGpu/shader/value/ShaderState.js +113 -0
  626. package/dist/src/gfx/graphics/webGpu/shader/value/ShaderValue.d.ts +32 -0
  627. package/dist/src/gfx/graphics/webGpu/shader/value/ShaderValue.js +1 -0
  628. package/dist/src/gfx/graphics/webGpu/shader/value/UniformValue.d.ts +13 -0
  629. package/dist/src/gfx/graphics/webGpu/shader/value/UniformValue.js +9 -0
  630. package/dist/src/gfx/renderJob/GPUContext.d.ts +32 -0
  631. package/dist/src/gfx/renderJob/GPUContext.js +152 -0
  632. package/dist/src/gfx/renderJob/collect/CollectInfo.d.ts +7 -0
  633. package/dist/src/gfx/renderJob/collect/CollectInfo.js +10 -0
  634. package/dist/src/gfx/renderJob/collect/ComponentCollect.d.ts +29 -0
  635. package/dist/src/gfx/renderJob/collect/ComponentCollect.js +134 -0
  636. package/dist/src/gfx/renderJob/collect/EntityBatchCollect.d.ts +7 -0
  637. package/dist/src/gfx/renderJob/collect/EntityBatchCollect.js +24 -0
  638. package/dist/src/gfx/renderJob/collect/EntityCollect.d.ts +48 -0
  639. package/dist/src/gfx/renderJob/collect/EntityCollect.js +260 -0
  640. package/dist/src/gfx/renderJob/collect/RenderGroup.d.ts +7 -0
  641. package/dist/src/gfx/renderJob/collect/RenderGroup.js +1 -0
  642. package/dist/src/gfx/renderJob/collect/RenderShaderCollect.d.ts +9 -0
  643. package/dist/src/gfx/renderJob/collect/RenderShaderCollect.js +51 -0
  644. package/dist/src/gfx/renderJob/collect/ShadowLightsCollect.d.ts +20 -0
  645. package/dist/src/gfx/renderJob/collect/ShadowLightsCollect.js +182 -0
  646. package/dist/src/gfx/renderJob/config/RTResourceConfig.d.ts +10 -0
  647. package/dist/src/gfx/renderJob/config/RTResourceConfig.js +10 -0
  648. package/dist/src/gfx/renderJob/config/RenderLayer.d.ts +11 -0
  649. package/dist/src/gfx/renderJob/config/RenderLayer.js +20 -0
  650. package/dist/src/gfx/renderJob/frame/GBufferFrame.d.ts +19 -0
  651. package/dist/src/gfx/renderJob/frame/GBufferFrame.js +74 -0
  652. package/dist/src/gfx/renderJob/frame/ProbeGBufferFrame.d.ts +5 -0
  653. package/dist/src/gfx/renderJob/frame/ProbeGBufferFrame.js +37 -0
  654. package/dist/src/gfx/renderJob/frame/RTFrame.d.ts +17 -0
  655. package/dist/src/gfx/renderJob/frame/RTFrame.js +34 -0
  656. package/dist/src/gfx/renderJob/frame/RTResourceMap.d.ts +13 -0
  657. package/dist/src/gfx/renderJob/frame/RTResourceMap.js +71 -0
  658. package/dist/src/gfx/renderJob/jobs/ForwardRenderJob.d.ts +7 -0
  659. package/dist/src/gfx/renderJob/jobs/ForwardRenderJob.js +45 -0
  660. package/dist/src/gfx/renderJob/jobs/RenderMap.d.ts +12 -0
  661. package/dist/src/gfx/renderJob/jobs/RenderMap.js +29 -0
  662. package/dist/src/gfx/renderJob/jobs/RendererJob.d.ts +43 -0
  663. package/dist/src/gfx/renderJob/jobs/RendererJob.js +123 -0
  664. package/dist/src/gfx/renderJob/occlusion/OcclusionSystem.d.ts +16 -0
  665. package/dist/src/gfx/renderJob/occlusion/OcclusionSystem.js +30 -0
  666. package/dist/src/gfx/renderJob/passRenderer/RenderContext.d.ts +20 -0
  667. package/dist/src/gfx/renderJob/passRenderer/RenderContext.js +68 -0
  668. package/dist/src/gfx/renderJob/passRenderer/RendererBase.d.ts +40 -0
  669. package/dist/src/gfx/renderJob/passRenderer/RendererBase.js +155 -0
  670. package/dist/src/gfx/renderJob/passRenderer/cluster/ClusterConfig.d.ts +5 -0
  671. package/dist/src/gfx/renderJob/passRenderer/cluster/ClusterConfig.js +5 -0
  672. package/dist/src/gfx/renderJob/passRenderer/cluster/ClusterLightingBuffer.d.ts +10 -0
  673. package/dist/src/gfx/renderJob/passRenderer/cluster/ClusterLightingBuffer.js +29 -0
  674. package/dist/src/gfx/renderJob/passRenderer/cluster/ClusterLightingRender.d.ts +20 -0
  675. package/dist/src/gfx/renderJob/passRenderer/cluster/ClusterLightingRender.js +74 -0
  676. package/dist/src/gfx/renderJob/passRenderer/color/ColorPassRenderer.d.ts +12 -0
  677. package/dist/src/gfx/renderJob/passRenderer/color/ColorPassRenderer.js +97 -0
  678. package/dist/src/gfx/renderJob/passRenderer/color/GUIPassRenderer.d.ts +13 -0
  679. package/dist/src/gfx/renderJob/passRenderer/color/GUIPassRenderer.js +79 -0
  680. package/dist/src/gfx/renderJob/passRenderer/cubeRenderer/ReflectionRenderer.d.ts +36 -0
  681. package/dist/src/gfx/renderJob/passRenderer/cubeRenderer/ReflectionRenderer.js +172 -0
  682. package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIIrradianceComputePass.d.ts +18 -0
  683. package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIIrradianceComputePass.js +52 -0
  684. package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIIrradianceGPUBufferReader.d.ts +22 -0
  685. package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIIrradianceGPUBufferReader.js +68 -0
  686. package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIIrradianceVolume.d.ts +32 -0
  687. package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIIrradianceVolume.js +113 -0
  688. package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGILightingPass.d.ts +17 -0
  689. package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGILightingPass.js +47 -0
  690. package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIMultiBouncePass.d.ts +13 -0
  691. package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIMultiBouncePass.js +40 -0
  692. package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIProbeRenderer.d.ts +46 -0
  693. package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIProbeRenderer.js +292 -0
  694. package/dist/src/gfx/renderJob/passRenderer/ddgi/Probe.d.ts +6 -0
  695. package/dist/src/gfx/renderJob/passRenderer/ddgi/Probe.js +8 -0
  696. package/dist/src/gfx/renderJob/passRenderer/post/PostRenderer.d.ts +19 -0
  697. package/dist/src/gfx/renderJob/passRenderer/post/PostRenderer.js +61 -0
  698. package/dist/src/gfx/renderJob/passRenderer/preDepth/PreDepthPassRenderer.d.ts +16 -0
  699. package/dist/src/gfx/renderJob/passRenderer/preDepth/PreDepthPassRenderer.js +80 -0
  700. package/dist/src/gfx/renderJob/passRenderer/preDepth/ZCullingCompute.d.ts +12 -0
  701. package/dist/src/gfx/renderJob/passRenderer/preDepth/ZCullingCompute.js +26 -0
  702. package/dist/src/gfx/renderJob/passRenderer/shadow/PointLightShadowRenderer.d.ts +32 -0
  703. package/dist/src/gfx/renderJob/passRenderer/shadow/PointLightShadowRenderer.js +193 -0
  704. package/dist/src/gfx/renderJob/passRenderer/shadow/ShadowMapPassRenderer.d.ts +27 -0
  705. package/dist/src/gfx/renderJob/passRenderer/shadow/ShadowMapPassRenderer.js +224 -0
  706. package/dist/src/gfx/renderJob/passRenderer/state/PassType.d.ts +13 -0
  707. package/dist/src/gfx/renderJob/passRenderer/state/PassType.js +14 -0
  708. package/dist/src/gfx/renderJob/passRenderer/state/RendererMask.d.ts +18 -0
  709. package/dist/src/gfx/renderJob/passRenderer/state/RendererMask.js +27 -0
  710. package/dist/src/gfx/renderJob/passRenderer/state/RendererPassState.d.ts +27 -0
  711. package/dist/src/gfx/renderJob/passRenderer/state/RendererPassState.js +24 -0
  712. package/dist/src/gfx/renderJob/post/BloomPost.d.ts +45 -0
  713. package/dist/src/gfx/renderJob/post/BloomPost.js +245 -0
  714. package/dist/src/gfx/renderJob/post/DepthOfFieldPost.d.ts +56 -0
  715. package/dist/src/gfx/renderJob/post/DepthOfFieldPost.js +146 -0
  716. package/dist/src/gfx/renderJob/post/FXAAPost.d.ts +18 -0
  717. package/dist/src/gfx/renderJob/post/FXAAPost.js +34 -0
  718. package/dist/src/gfx/renderJob/post/GBufferPost.d.ts +35 -0
  719. package/dist/src/gfx/renderJob/post/GBufferPost.js +107 -0
  720. package/dist/src/gfx/renderJob/post/GTAOPost.d.ts +67 -0
  721. package/dist/src/gfx/renderJob/post/GTAOPost.js +167 -0
  722. package/dist/src/gfx/renderJob/post/GlobalFog.d.ts +69 -0
  723. package/dist/src/gfx/renderJob/post/GlobalFog.js +208 -0
  724. package/dist/src/gfx/renderJob/post/GodRayPost.d.ts +56 -0
  725. package/dist/src/gfx/renderJob/post/GodRayPost.js +126 -0
  726. package/dist/src/gfx/renderJob/post/OutlinePost.d.ts +93 -0
  727. package/dist/src/gfx/renderJob/post/OutlinePost.js +212 -0
  728. package/dist/src/gfx/renderJob/post/PostBase.d.ts +35 -0
  729. package/dist/src/gfx/renderJob/post/PostBase.js +78 -0
  730. package/dist/src/gfx/renderJob/post/SSGIPost.d.ts +67 -0
  731. package/dist/src/gfx/renderJob/post/SSGIPost.js +210 -0
  732. package/dist/src/gfx/renderJob/post/SSRPost.d.ts +76 -0
  733. package/dist/src/gfx/renderJob/post/SSRPost.js +238 -0
  734. package/dist/src/gfx/renderJob/post/TAAPost.d.ts +40 -0
  735. package/dist/src/gfx/renderJob/post/TAAPost.js +183 -0
  736. package/dist/src/index.d.ts +571 -0
  737. package/dist/src/index.js +571 -0
  738. package/dist/src/io/InputSystem.d.ts +49 -0
  739. package/dist/src/io/InputSystem.js +382 -0
  740. package/dist/src/io/OutlineManager.d.ts +11 -0
  741. package/dist/src/io/OutlineManager.js +39 -0
  742. package/dist/src/io/OutlinePostData.d.ts +22 -0
  743. package/dist/src/io/OutlinePostData.js +54 -0
  744. package/dist/src/io/PickFire.d.ts +32 -0
  745. package/dist/src/io/PickFire.js +195 -0
  746. package/dist/src/io/PickResult.d.ts +59 -0
  747. package/dist/src/io/PickResult.js +29 -0
  748. package/dist/src/io/RayCastMeshDetail.d.ts +32 -0
  749. package/dist/src/io/RayCastMeshDetail.js +119 -0
  750. package/dist/src/io/TouchData.d.ts +12 -0
  751. package/dist/src/io/TouchData.js +13 -0
  752. package/dist/src/io/picker/PickCompute.d.ts +14 -0
  753. package/dist/src/io/picker/PickCompute.js +53 -0
  754. package/dist/src/loader/FileLoader.d.ts +7 -0
  755. package/dist/src/loader/FileLoader.js +70 -0
  756. package/dist/src/loader/LoaderBase.d.ts +30 -0
  757. package/dist/src/loader/LoaderBase.js +156 -0
  758. package/dist/src/loader/LoaderFunctions.d.ts +7 -0
  759. package/dist/src/loader/LoaderFunctions.js +1 -0
  760. package/dist/src/loader/LoaderManager.d.ts +36 -0
  761. package/dist/src/loader/LoaderManager.js +83 -0
  762. package/dist/src/loader/parser/AtlasParser.d.ts +10 -0
  763. package/dist/src/loader/parser/AtlasParser.js +31 -0
  764. package/dist/src/loader/parser/B3DMParser.d.ts +24 -0
  765. package/dist/src/loader/parser/B3DMParser.js +108 -0
  766. package/dist/src/loader/parser/FontParser.d.ts +54 -0
  767. package/dist/src/loader/parser/FontParser.js +171 -0
  768. package/dist/src/loader/parser/I3DMParser.d.ts +7 -0
  769. package/dist/src/loader/parser/I3DMParser.js +17 -0
  770. package/dist/src/loader/parser/OBJParser.d.ts +72 -0
  771. package/dist/src/loader/parser/OBJParser.js +289 -0
  772. package/dist/src/loader/parser/ParserBase.d.ts +18 -0
  773. package/dist/src/loader/parser/ParserBase.js +17 -0
  774. package/dist/src/loader/parser/ParserFormat.d.ts +5 -0
  775. package/dist/src/loader/parser/ParserFormat.js +6 -0
  776. package/dist/src/loader/parser/RGBEParser.d.ts +40 -0
  777. package/dist/src/loader/parser/RGBEParser.js +248 -0
  778. package/dist/src/loader/parser/b3dm/B3DMLoader.d.ts +10 -0
  779. package/dist/src/loader/parser/b3dm/B3DMLoader.js +56 -0
  780. package/dist/src/loader/parser/b3dm/B3DMLoaderBase.d.ts +9 -0
  781. package/dist/src/loader/parser/b3dm/B3DMLoaderBase.js +31 -0
  782. package/dist/src/loader/parser/b3dm/FeatureTable.d.ts +14 -0
  783. package/dist/src/loader/parser/b3dm/FeatureTable.js +104 -0
  784. package/dist/src/loader/parser/b3dm/arrayToString.d.ts +1 -0
  785. package/dist/src/loader/parser/b3dm/arrayToString.js +4 -0
  786. package/dist/src/loader/parser/b3dm/readMagicBytes.d.ts +1 -0
  787. package/dist/src/loader/parser/b3dm/readMagicBytes.js +17 -0
  788. package/dist/src/loader/parser/gis/GeoJsonParser.d.ts +29 -0
  789. package/dist/src/loader/parser/gis/GeoJsonParser.js +15 -0
  790. package/dist/src/loader/parser/gis/GeoJsonUtil.d.ts +5 -0
  791. package/dist/src/loader/parser/gis/GeoJsonUtil.js +30 -0
  792. package/dist/src/loader/parser/gltf/GLBParser.d.ts +21 -0
  793. package/dist/src/loader/parser/gltf/GLBParser.js +133 -0
  794. package/dist/src/loader/parser/gltf/GLTFInfo.d.ts +137 -0
  795. package/dist/src/loader/parser/gltf/GLTFInfo.js +20 -0
  796. package/dist/src/loader/parser/gltf/GLTFMaterial.d.ts +24 -0
  797. package/dist/src/loader/parser/gltf/GLTFMaterial.js +2 -0
  798. package/dist/src/loader/parser/gltf/GLTFParser.d.ts +45 -0
  799. package/dist/src/loader/parser/gltf/GLTFParser.js +153 -0
  800. package/dist/src/loader/parser/gltf/GLTFSubParser.d.ts +47 -0
  801. package/dist/src/loader/parser/gltf/GLTFSubParser.js +366 -0
  802. package/dist/src/loader/parser/gltf/GLTFSubParserCamera.d.ts +7 -0
  803. package/dist/src/loader/parser/gltf/GLTFSubParserCamera.js +41 -0
  804. package/dist/src/loader/parser/gltf/GLTFSubParserConverter.d.ts +17 -0
  805. package/dist/src/loader/parser/gltf/GLTFSubParserConverter.js +416 -0
  806. package/dist/src/loader/parser/gltf/GLTFSubParserMaterial.d.ts +10 -0
  807. package/dist/src/loader/parser/gltf/GLTFSubParserMaterial.js +182 -0
  808. package/dist/src/loader/parser/gltf/GLTFSubParserMesh.d.ts +11 -0
  809. package/dist/src/loader/parser/gltf/GLTFSubParserMesh.js +170 -0
  810. package/dist/src/loader/parser/gltf/GLTFSubParserSkeleton.d.ts +15 -0
  811. package/dist/src/loader/parser/gltf/GLTFSubParserSkeleton.js +313 -0
  812. package/dist/src/loader/parser/gltf/GLTFSubParserSkin.d.ts +10 -0
  813. package/dist/src/loader/parser/gltf/GLTFSubParserSkin.js +66 -0
  814. package/dist/src/loader/parser/gltf/GLTFType.d.ts +22 -0
  815. package/dist/src/loader/parser/gltf/GLTFType.js +21 -0
  816. package/dist/src/loader/parser/gltf/TypeArray.d.ts +4 -0
  817. package/dist/src/loader/parser/gltf/TypeArray.js +98 -0
  818. package/dist/src/loader/parser/gltf/extends/KHR_draco_mesh_compression.d.ts +9 -0
  819. package/dist/src/loader/parser/gltf/extends/KHR_draco_mesh_compression.js +157 -0
  820. package/dist/src/loader/parser/gltf/extends/KHR_lights_punctual.d.ts +2 -0
  821. package/dist/src/loader/parser/gltf/extends/KHR_lights_punctual.js +2 -0
  822. package/dist/src/loader/parser/gltf/extends/KHR_materials_clearcoat.d.ts +7 -0
  823. package/dist/src/loader/parser/gltf/extends/KHR_materials_clearcoat.js +26 -0
  824. package/dist/src/loader/parser/gltf/extends/KHR_materials_emissive_strength.d.ts +3 -0
  825. package/dist/src/loader/parser/gltf/extends/KHR_materials_emissive_strength.js +17 -0
  826. package/dist/src/loader/parser/gltf/extends/KHR_materials_ior.d.ts +2 -0
  827. package/dist/src/loader/parser/gltf/extends/KHR_materials_ior.js +2 -0
  828. package/dist/src/loader/parser/gltf/extends/KHR_materials_unlit.d.ts +3 -0
  829. package/dist/src/loader/parser/gltf/extends/KHR_materials_unlit.js +12 -0
  830. package/dist/src/loader/parser/i3dm/I3DMLoader.d.ts +17 -0
  831. package/dist/src/loader/parser/i3dm/I3DMLoader.js +97 -0
  832. package/dist/src/loader/parser/i3dm/I3DMLoaderBase.d.ts +9 -0
  833. package/dist/src/loader/parser/i3dm/I3DMLoaderBase.js +40 -0
  834. package/dist/src/loader/parser/prefab/PrefabAvatarParser.d.ts +9 -0
  835. package/dist/src/loader/parser/prefab/PrefabAvatarParser.js +38 -0
  836. package/dist/src/loader/parser/prefab/PrefabMaterialParser.d.ts +9 -0
  837. package/dist/src/loader/parser/prefab/PrefabMaterialParser.js +115 -0
  838. package/dist/src/loader/parser/prefab/PrefabMeshParser.d.ts +10 -0
  839. package/dist/src/loader/parser/prefab/PrefabMeshParser.js +133 -0
  840. package/dist/src/loader/parser/prefab/PrefabParser.d.ts +16 -0
  841. package/dist/src/loader/parser/prefab/PrefabParser.js +72 -0
  842. package/dist/src/loader/parser/prefab/PrefabStringUtil.d.ts +12 -0
  843. package/dist/src/loader/parser/prefab/PrefabStringUtil.js +41 -0
  844. package/dist/src/loader/parser/prefab/PrefabTextureParser.d.ts +10 -0
  845. package/dist/src/loader/parser/prefab/PrefabTextureParser.js +32 -0
  846. package/dist/src/loader/parser/prefab/mats/MaterialUtilities.d.ts +8 -0
  847. package/dist/src/loader/parser/prefab/mats/MaterialUtilities.js +138 -0
  848. package/dist/src/loader/parser/prefab/mats/shader/LitSSSShader.d.ts +24 -0
  849. package/dist/src/loader/parser/prefab/mats/shader/LitSSSShader.js +139 -0
  850. package/dist/src/loader/parser/prefab/mats/shader/LitShader.d.ts +19 -0
  851. package/dist/src/loader/parser/prefab/mats/shader/LitShader.js +117 -0
  852. package/dist/src/loader/parser/prefab/mats/shader/QuadShader.d.ts +4 -0
  853. package/dist/src/loader/parser/prefab/mats/shader/QuadShader.js +39 -0
  854. package/dist/src/loader/parser/prefab/mats/shader/ReflectionShader.d.ts +19 -0
  855. package/dist/src/loader/parser/prefab/mats/shader/ReflectionShader.js +79 -0
  856. package/dist/src/loader/parser/prefab/mats/shader/SkyShader.d.ts +4 -0
  857. package/dist/src/loader/parser/prefab/mats/shader/SkyShader.js +35 -0
  858. package/dist/src/loader/parser/prefab/mats/shader/StandShader.d.ts +220 -0
  859. package/dist/src/loader/parser/prefab/mats/shader/StandShader.js +420 -0
  860. package/dist/src/loader/parser/prefab/mats/shader/UnLitShader.d.ts +19 -0
  861. package/dist/src/loader/parser/prefab/mats/shader/UnLitShader.js +95 -0
  862. package/dist/src/loader/parser/prefab/mats/shader/UnLitTexArrayShader.d.ts +19 -0
  863. package/dist/src/loader/parser/prefab/mats/shader/UnLitTexArrayShader.js +100 -0
  864. package/dist/src/loader/parser/prefab/prefabData/BlendShapeData.d.ts +11 -0
  865. package/dist/src/loader/parser/prefab/prefabData/BlendShapeData.js +19 -0
  866. package/dist/src/loader/parser/prefab/prefabData/BlendShapePropertyData.d.ts +9 -0
  867. package/dist/src/loader/parser/prefab/prefabData/BlendShapePropertyData.js +17 -0
  868. package/dist/src/loader/parser/prefab/prefabData/KVData.d.ts +9 -0
  869. package/dist/src/loader/parser/prefab/prefabData/KVData.js +12 -0
  870. package/dist/src/loader/parser/prefab/prefabData/PrefabAvatarData.d.ts +9 -0
  871. package/dist/src/loader/parser/prefab/prefabData/PrefabAvatarData.js +15 -0
  872. package/dist/src/loader/parser/prefab/prefabData/PrefabBoneData.d.ts +16 -0
  873. package/dist/src/loader/parser/prefab/prefabData/PrefabBoneData.js +14 -0
  874. package/dist/src/loader/parser/prefab/prefabData/PrefabMeshData.d.ts +19 -0
  875. package/dist/src/loader/parser/prefab/prefabData/PrefabMeshData.js +2 -0
  876. package/dist/src/loader/parser/prefab/prefabData/PrefabNode.d.ts +19 -0
  877. package/dist/src/loader/parser/prefab/prefabData/PrefabNode.js +40 -0
  878. package/dist/src/loader/parser/prefab/prefabData/PrefabTextureData.d.ts +14 -0
  879. package/dist/src/loader/parser/prefab/prefabData/PrefabTextureData.js +2 -0
  880. package/dist/src/loader/parser/prefab/prefabData/ValueParser.d.ts +16 -0
  881. package/dist/src/loader/parser/prefab/prefabData/ValueParser.js +117 -0
  882. package/dist/src/loader/parser/prefab/prefabData/ValueType.d.ts +35 -0
  883. package/dist/src/loader/parser/prefab/prefabData/ValueType.js +36 -0
  884. package/dist/src/loader/parser/tileRenderer/TileSet.d.ts +45 -0
  885. package/dist/src/loader/parser/tileRenderer/TileSet.js +10 -0
  886. package/dist/src/loader/parser/tileRenderer/TilesRenderer.d.ts +12 -0
  887. package/dist/src/loader/parser/tileRenderer/TilesRenderer.js +88 -0
  888. package/dist/src/materials/BlendMode.d.ts +58 -0
  889. package/dist/src/materials/BlendMode.js +132 -0
  890. package/dist/src/materials/ColorLitMaterial.d.ts +14 -0
  891. package/dist/src/materials/ColorLitMaterial.js +45 -0
  892. package/dist/src/materials/GIProbeMaterial.d.ts +15 -0
  893. package/dist/src/materials/GIProbeMaterial.js +42 -0
  894. package/dist/src/materials/LambertMaterial.d.ts +39 -0
  895. package/dist/src/materials/LambertMaterial.js +71 -0
  896. package/dist/src/materials/LitMaterial.d.ts +49 -0
  897. package/dist/src/materials/LitMaterial.js +170 -0
  898. package/dist/src/materials/Material.d.ts +88 -0
  899. package/dist/src/materials/Material.js +194 -0
  900. package/dist/src/materials/MaterialRegister.d.ts +9 -0
  901. package/dist/src/materials/MaterialRegister.js +1 -0
  902. package/dist/src/materials/ReflectionMaterial.d.ts +13 -0
  903. package/dist/src/materials/ReflectionMaterial.js +29 -0
  904. package/dist/src/materials/SkyMaterial.d.ts +23 -0
  905. package/dist/src/materials/SkyMaterial.js +56 -0
  906. package/dist/src/materials/UnLitMaterial.d.ts +33 -0
  907. package/dist/src/materials/UnLitMaterial.js +45 -0
  908. package/dist/src/materials/UnLitTexArrayMaterial.d.ts +20 -0
  909. package/dist/src/materials/UnLitTexArrayMaterial.js +32 -0
  910. package/dist/src/materials/multiPass/CastPointShadowMaterialPass.d.ts +4 -0
  911. package/dist/src/materials/multiPass/CastPointShadowMaterialPass.js +16 -0
  912. package/dist/src/materials/multiPass/CastShadowMaterialPass.d.ts +4 -0
  913. package/dist/src/materials/multiPass/CastShadowMaterialPass.js +16 -0
  914. package/dist/src/materials/multiPass/DepthMaterialPass.d.ts +4 -0
  915. package/dist/src/materials/multiPass/DepthMaterialPass.js +11 -0
  916. package/dist/src/materials/multiPass/GBufferPass.d.ts +5 -0
  917. package/dist/src/materials/multiPass/GBufferPass.js +19 -0
  918. package/dist/src/materials/multiPass/SkyGBufferPass.d.ts +4 -0
  919. package/dist/src/materials/multiPass/SkyGBufferPass.js +18 -0
  920. package/dist/src/math/AnimationCurve.d.ts +42 -0
  921. package/dist/src/math/AnimationCurve.js +191 -0
  922. package/dist/src/math/AnimationCurveClip.d.ts +15 -0
  923. package/dist/src/math/AnimationCurveClip.js +46 -0
  924. package/dist/src/math/AnimationCurveT.d.ts +24 -0
  925. package/dist/src/math/AnimationCurveT.js +105 -0
  926. package/dist/src/math/BiMap.d.ts +9 -0
  927. package/dist/src/math/BiMap.js +37 -0
  928. package/dist/src/math/Color.d.ts +249 -0
  929. package/dist/src/math/Color.js +381 -0
  930. package/dist/src/math/ColorGradient.d.ts +6 -0
  931. package/dist/src/math/ColorGradient.js +14 -0
  932. package/dist/src/math/CubicBezierCurve.d.ts +47 -0
  933. package/dist/src/math/CubicBezierCurve.js +100 -0
  934. package/dist/src/math/CubicBezierPath.d.ts +37 -0
  935. package/dist/src/math/CubicBezierPath.js +234 -0
  936. package/dist/src/math/HaltonSeq.d.ts +13 -0
  937. package/dist/src/math/HaltonSeq.js +45 -0
  938. package/dist/src/math/Line.d.ts +39 -0
  939. package/dist/src/math/Line.js +240 -0
  940. package/dist/src/math/MathUtil.d.ts +86 -0
  941. package/dist/src/math/MathUtil.js +480 -0
  942. package/dist/src/math/Matrix3.d.ts +183 -0
  943. package/dist/src/math/Matrix3.js +511 -0
  944. package/dist/src/math/Matrix4.d.ts +557 -0
  945. package/dist/src/math/Matrix4.js +2571 -0
  946. package/dist/src/math/OrderMap.d.ts +11 -0
  947. package/dist/src/math/OrderMap.js +56 -0
  948. package/dist/src/math/Orientation3D.d.ts +5 -0
  949. package/dist/src/math/Orientation3D.js +5 -0
  950. package/dist/src/math/ParticleMath.d.ts +22 -0
  951. package/dist/src/math/ParticleMath.js +26 -0
  952. package/dist/src/math/ParticleSystemCurves.d.ts +85 -0
  953. package/dist/src/math/ParticleSystemCurves.js +184 -0
  954. package/dist/src/math/Plane3D.d.ts +173 -0
  955. package/dist/src/math/Plane3D.js +191 -0
  956. package/dist/src/math/PlaneClassification.d.ts +32 -0
  957. package/dist/src/math/PlaneClassification.js +32 -0
  958. package/dist/src/math/PolynomialCurve.d.ts +43 -0
  959. package/dist/src/math/PolynomialCurve.js +236 -0
  960. package/dist/src/math/Polynomials.d.ts +12 -0
  961. package/dist/src/math/Polynomials.js +73 -0
  962. package/dist/src/math/Quaternion.d.ts +42 -0
  963. package/dist/src/math/Quaternion.js +406 -0
  964. package/dist/src/math/Rand.d.ts +15 -0
  965. package/dist/src/math/Rand.js +48 -0
  966. package/dist/src/math/Random.d.ts +67 -0
  967. package/dist/src/math/Random.js +543 -0
  968. package/dist/src/math/Ray.d.ts +41 -0
  969. package/dist/src/math/Ray.js +304 -0
  970. package/dist/src/math/Rect.d.ts +21 -0
  971. package/dist/src/math/Rect.js +108 -0
  972. package/dist/src/math/TimeInterpolator.d.ts +179 -0
  973. package/dist/src/math/TimeInterpolator.js +334 -0
  974. package/dist/src/math/Triangle.d.ts +33 -0
  975. package/dist/src/math/Triangle.js +113 -0
  976. package/dist/src/math/UV.d.ts +10 -0
  977. package/dist/src/math/UV.js +21 -0
  978. package/dist/src/math/Vector2.d.ts +38 -0
  979. package/dist/src/math/Vector2.js +166 -0
  980. package/dist/src/math/Vector3.d.ts +107 -0
  981. package/dist/src/math/Vector3.js +561 -0
  982. package/dist/src/math/Vector4.d.ts +34 -0
  983. package/dist/src/math/Vector4.js +77 -0
  984. package/dist/src/math/enum/FrameCache.d.ts +6 -0
  985. package/dist/src/math/enum/FrameCache.js +5 -0
  986. package/dist/src/math/enum/Keyframe.d.ts +14 -0
  987. package/dist/src/math/enum/Keyframe.js +27 -0
  988. package/dist/src/math/enum/T/KeyframeT.d.ts +18 -0
  989. package/dist/src/math/enum/T/KeyframeT.js +113 -0
  990. package/dist/src/math/enum/T/ValueOp.d.ts +4 -0
  991. package/dist/src/math/enum/T/ValueOp.js +32 -0
  992. package/dist/src/math/enum/WrapTimeMode.d.ts +5 -0
  993. package/dist/src/math/enum/WrapTimeMode.js +6 -0
  994. package/dist/src/math/navigation/DoubleArray.d.ts +11 -0
  995. package/dist/src/math/navigation/DoubleArray.js +44 -0
  996. package/dist/src/math/navigation/Navi3DAstar.d.ts +16 -0
  997. package/dist/src/math/navigation/Navi3DAstar.js +82 -0
  998. package/dist/src/math/navigation/Navi3DConst.d.ts +5 -0
  999. package/dist/src/math/navigation/Navi3DConst.js +8 -0
  1000. package/dist/src/math/navigation/Navi3DEdge.d.ts +33 -0
  1001. package/dist/src/math/navigation/Navi3DEdge.js +109 -0
  1002. package/dist/src/math/navigation/Navi3DFunnel.d.ts +19 -0
  1003. package/dist/src/math/navigation/Navi3DFunnel.js +254 -0
  1004. package/dist/src/math/navigation/Navi3DMaskType.d.ts +3 -0
  1005. package/dist/src/math/navigation/Navi3DMaskType.js +3 -0
  1006. package/dist/src/math/navigation/Navi3DMesh.d.ts +27 -0
  1007. package/dist/src/math/navigation/Navi3DMesh.js +122 -0
  1008. package/dist/src/math/navigation/Navi3DPoint.d.ts +13 -0
  1009. package/dist/src/math/navigation/Navi3DPoint.js +27 -0
  1010. package/dist/src/math/navigation/Navi3DPoint2D.d.ts +10 -0
  1011. package/dist/src/math/navigation/Navi3DPoint2D.js +26 -0
  1012. package/dist/src/math/navigation/Navi3DPointFat.d.ts +11 -0
  1013. package/dist/src/math/navigation/Navi3DPointFat.js +24 -0
  1014. package/dist/src/math/navigation/Navi3DRouter.d.ts +29 -0
  1015. package/dist/src/math/navigation/Navi3DRouter.js +173 -0
  1016. package/dist/src/math/navigation/Navi3DTriangle.d.ts +44 -0
  1017. package/dist/src/math/navigation/Navi3DTriangle.js +167 -0
  1018. package/dist/src/setting/EngineSetting.d.ts +23 -0
  1019. package/dist/src/setting/EngineSetting.js +1 -0
  1020. package/dist/src/setting/GlobalIlluminationSetting.d.ts +115 -0
  1021. package/dist/src/setting/GlobalIlluminationSetting.js +1 -0
  1022. package/dist/src/setting/LightSetting.d.ts +3 -0
  1023. package/dist/src/setting/LightSetting.js +1 -0
  1024. package/dist/src/setting/LoaderSetting.d.ts +3 -0
  1025. package/dist/src/setting/LoaderSetting.js +1 -0
  1026. package/dist/src/setting/MaterialSetting.d.ts +5 -0
  1027. package/dist/src/setting/MaterialSetting.js +1 -0
  1028. package/dist/src/setting/OcclusionQuerySetting.d.ts +12 -0
  1029. package/dist/src/setting/OcclusionQuerySetting.js +1 -0
  1030. package/dist/src/setting/PickSetting.d.ts +5 -0
  1031. package/dist/src/setting/PickSetting.js +1 -0
  1032. package/dist/src/setting/ReflectionSetting.d.ts +7 -0
  1033. package/dist/src/setting/ReflectionSetting.js +1 -0
  1034. package/dist/src/setting/RenderSetting.d.ts +51 -0
  1035. package/dist/src/setting/RenderSetting.js +1 -0
  1036. package/dist/src/setting/ShadowSetting.d.ts +17 -0
  1037. package/dist/src/setting/ShadowSetting.js +1 -0
  1038. package/dist/src/setting/SkySetting.d.ts +8 -0
  1039. package/dist/src/setting/SkySetting.js +1 -0
  1040. package/dist/src/setting/post/BloomSetting.d.ts +11 -0
  1041. package/dist/src/setting/post/BloomSetting.js +1 -0
  1042. package/dist/src/setting/post/DepthOfViewSetting.d.ts +7 -0
  1043. package/dist/src/setting/post/DepthOfViewSetting.js +1 -0
  1044. package/dist/src/setting/post/GTAOSetting.d.ts +11 -0
  1045. package/dist/src/setting/post/GTAOSetting.js +1 -0
  1046. package/dist/src/setting/post/GlobalFogSetting.d.ts +19 -0
  1047. package/dist/src/setting/post/GlobalFogSetting.js +1 -0
  1048. package/dist/src/setting/post/GodRaySetting.d.ts +7 -0
  1049. package/dist/src/setting/post/GodRaySetting.js +1 -0
  1050. package/dist/src/setting/post/OutlineSetting.d.ts +10 -0
  1051. package/dist/src/setting/post/OutlineSetting.js +1 -0
  1052. package/dist/src/setting/post/SSRSetting.d.ts +12 -0
  1053. package/dist/src/setting/post/SSRSetting.js +1 -0
  1054. package/dist/src/setting/post/TAASetting.d.ts +9 -0
  1055. package/dist/src/setting/post/TAASetting.js +1 -0
  1056. package/dist/src/shape/BoxGeometry.d.ts +28 -0
  1057. package/dist/src/shape/BoxGeometry.js +184 -0
  1058. package/dist/src/shape/CylinderGeometry.d.ts +60 -0
  1059. package/dist/src/shape/CylinderGeometry.js +171 -0
  1060. package/dist/src/shape/PlaneGeometry.d.ts +11 -0
  1061. package/dist/src/shape/PlaneGeometry.js +105 -0
  1062. package/dist/src/shape/SphereGeometry.d.ts +25 -0
  1063. package/dist/src/shape/SphereGeometry.js +102 -0
  1064. package/dist/src/shape/TorusGeometry.d.ts +33 -0
  1065. package/dist/src/shape/TorusGeometry.js +88 -0
  1066. package/dist/src/shape/TrailGeometry.d.ts +18 -0
  1067. package/dist/src/shape/TrailGeometry.js +68 -0
  1068. package/dist/src/shape/TriGeometry.d.ts +13 -0
  1069. package/dist/src/shape/TriGeometry.js +47 -0
  1070. package/dist/src/textures/AtmosphericScatteringSky.d.ts +42 -0
  1071. package/dist/src/textures/AtmosphericScatteringSky.js +97 -0
  1072. package/dist/src/textures/BitmapTexture2D.d.ts +12 -0
  1073. package/dist/src/textures/BitmapTexture2D.js +94 -0
  1074. package/dist/src/textures/BitmapTexture2DArray.d.ts +15 -0
  1075. package/dist/src/textures/BitmapTexture2DArray.js +87 -0
  1076. package/dist/src/textures/BitmapTextureCube.d.ts +14 -0
  1077. package/dist/src/textures/BitmapTextureCube.js +181 -0
  1078. package/dist/src/textures/Depth2DTextureArray.d.ts +9 -0
  1079. package/dist/src/textures/Depth2DTextureArray.js +43 -0
  1080. package/dist/src/textures/DepthCubeArrayTexture.d.ts +9 -0
  1081. package/dist/src/textures/DepthCubeArrayTexture.js +46 -0
  1082. package/dist/src/textures/Float16ArrayTexture.d.ts +28 -0
  1083. package/dist/src/textures/Float16ArrayTexture.js +84 -0
  1084. package/dist/src/textures/Float32ArrayTexture.d.ts +5 -0
  1085. package/dist/src/textures/Float32ArrayTexture.js +61 -0
  1086. package/dist/src/textures/HDRTexture.d.ts +7 -0
  1087. package/dist/src/textures/HDRTexture.js +52 -0
  1088. package/dist/src/textures/HDRTextureCube.d.ts +16 -0
  1089. package/dist/src/textures/HDRTextureCube.js +50 -0
  1090. package/dist/src/textures/LDRTextureCube.d.ts +13 -0
  1091. package/dist/src/textures/LDRTextureCube.js +49 -0
  1092. package/dist/src/textures/RenderTexture.d.ts +12 -0
  1093. package/dist/src/textures/RenderTexture.js +140 -0
  1094. package/dist/src/textures/SolidColorSky.d.ts +11 -0
  1095. package/dist/src/textures/SolidColorSky.js +29 -0
  1096. package/dist/src/textures/TextureCubeFaceData.d.ts +19 -0
  1097. package/dist/src/textures/TextureCubeFaceData.js +55 -0
  1098. package/dist/src/textures/Uint8ArrayTexture.d.ts +6 -0
  1099. package/dist/src/textures/Uint8ArrayTexture.js +63 -0
  1100. package/dist/src/textures/VirtualTexture.d.ts +29 -0
  1101. package/dist/src/textures/VirtualTexture.js +152 -0
  1102. package/dist/src/util/AxisObject.d.ts +11 -0
  1103. package/dist/src/util/AxisObject.js +52 -0
  1104. package/dist/src/util/BoundUtil.d.ts +12 -0
  1105. package/dist/src/util/BoundUtil.js +73 -0
  1106. package/dist/src/util/BytesArray.d.ts +49 -0
  1107. package/dist/src/util/BytesArray.js +257 -0
  1108. package/dist/src/util/CameraUtil.d.ts +10 -0
  1109. package/dist/src/util/CameraUtil.js +62 -0
  1110. package/dist/src/util/Convert.d.ts +1 -0
  1111. package/dist/src/util/Convert.js +24 -0
  1112. package/dist/src/util/GeometryUtil.d.ts +12 -0
  1113. package/dist/src/util/GeometryUtil.js +55 -0
  1114. package/dist/src/util/Global.d.ts +15 -0
  1115. package/dist/src/util/Global.js +57 -0
  1116. package/dist/src/util/GridObject.d.ts +12 -0
  1117. package/dist/src/util/GridObject.js +94 -0
  1118. package/dist/src/util/KelvinUtil.d.ts +40 -0
  1119. package/dist/src/util/KelvinUtil.js +79 -0
  1120. package/dist/src/util/Object3DUtil.d.ts +25 -0
  1121. package/dist/src/util/Object3DUtil.js +121 -0
  1122. package/dist/src/util/ProfilerUtil.d.ts +49 -0
  1123. package/dist/src/util/ProfilerUtil.js +141 -0
  1124. package/dist/src/util/Reference.d.ts +37 -0
  1125. package/dist/src/util/Reference.js +67 -0
  1126. package/dist/src/util/SerializeDecoration.d.ts +9 -0
  1127. package/dist/src/util/SerializeDecoration.js +95 -0
  1128. package/dist/src/util/StringUtil.d.ts +23 -0
  1129. package/dist/src/util/StringUtil.js +250 -0
  1130. package/dist/src/util/Time.d.ts +9 -0
  1131. package/dist/src/util/Time.js +14 -0
  1132. package/dist/src/util/Vector3Ex.d.ts +16 -0
  1133. package/dist/src/util/Vector3Ex.js +84 -0
  1134. package/dist/src/util/ZSorterUtil.d.ts +13 -0
  1135. package/dist/src/util/ZSorterUtil.js +51 -0
  1136. package/dist/src/util/struct/Struct.d.ts +17 -0
  1137. package/dist/src/util/struct/Struct.js +101 -0
  1138. package/dist/src/util/transformUtil/Object3DTransformTools.d.ts +37 -0
  1139. package/dist/src/util/transformUtil/Object3DTransformTools.js +136 -0
  1140. package/dist/src/util/transformUtil/RotationControlComponents.d.ts +21 -0
  1141. package/dist/src/util/transformUtil/RotationControlComponents.js +198 -0
  1142. package/dist/src/util/transformUtil/ScaleControlComponents.d.ts +11 -0
  1143. package/dist/src/util/transformUtil/ScaleControlComponents.js +132 -0
  1144. package/dist/src/util/transformUtil/TransformAxisEnum.d.ts +11 -0
  1145. package/dist/src/util/transformUtil/TransformAxisEnum.js +12 -0
  1146. package/dist/src/util/transformUtil/TransformControllerBaseComponent.d.ts +48 -0
  1147. package/dist/src/util/transformUtil/TransformControllerBaseComponent.js +283 -0
  1148. package/dist/src/util/transformUtil/TransformMode.d.ts +6 -0
  1149. package/dist/src/util/transformUtil/TransformMode.js +7 -0
  1150. package/dist/src/util/transformUtil/TransformSpaceMode.d.ts +4 -0
  1151. package/dist/src/util/transformUtil/TransformSpaceMode.js +5 -0
  1152. package/dist/src/util/transformUtil/TranslationControlComponents.d.ts +12 -0
  1153. package/dist/src/util/transformUtil/TranslationControlComponents.js +164 -0
  1154. package/package.json +1 -1
@@ -3993,511 +3993,559 @@ let ClusterDebug_frag = `
3993
3993
  `;
3994
3994
 
3995
3995
  class CubeSky_Shader {
3996
- static sky_vs_frag_wgsl = `
3997
- #include "WorldMatrixUniform"
3998
- #include "GlobalUniform"
3996
+ static sky_vs_frag_wgsl = (
3997
+ /* wgsl */
3998
+ `
3999
+ #include "WorldMatrixUniform"
4000
+ #include "GlobalUniform"
3999
4001
 
4000
- struct VertexOutput {
4001
- @location(auto) fragUV: vec2<f32>,
4002
- @location(auto) vClipPos: vec4<f32>,
4003
- @location(auto) vWorldPos: vec4<f32>,
4004
- @location(auto) vWorldNormal: vec3<f32>,
4005
- @builtin(position) member: vec4<f32>
4006
- };
4002
+ struct VertexOutput {
4003
+ @location(auto) fragUV: vec2<f32>,
4004
+ @location(auto) vClipPos: vec4<f32>,
4005
+ @location(auto) vWorldPos: vec4<f32>,
4006
+ @location(auto) vWorldNormal: vec3<f32>,
4007
+ @builtin(position) member: vec4<f32>
4008
+ };
4007
4009
 
4008
- var<private> ORI_VertexOut: VertexOutput;
4010
+ var<private> ORI_VertexOut: VertexOutput ;
4009
4011
 
4010
- @vertex
4011
- fn main {
4012
- @builtin(instance_index) index: u32,
4013
- @location(auto) position: vec3<f32>,
4014
- @location(auto) normal: vec3<f32>,
4015
- @location(auto) uv: vec2<f32>
4016
- } -> VertexOutput {
4017
- ORI_VertexOut.fragUV = uv;
4018
- let modelMat = models.matrix[u32(index)];
4019
- let vm = modelMat;
4020
- let normalMatrix = mat3x3<f32>(vm[0].xyz,vm[1].xyz,vm[2].xyz);
4021
- ORI_VertexOut.vWorldNormal = normalize(normalMatrix * normal);
4022
- ORI_VertexOut.vWorldPos = modelMat * vec4<f32>(position.xyz, 1.0);
4023
-
4024
- var fixProjMat = globalUniform.projMat;
4025
- fixProjMat[2].z = 1.0;
4026
- fixProjMat[3].z = -1.0;
4012
+ @vertex
4013
+ fn main(
4014
+ @builtin(instance_index) index : u32,
4015
+ @location(auto) position: vec3<f32>,
4016
+ @location(auto) normal: vec3<f32>,
4017
+ @location(auto) uv: vec2<f32>
4018
+ ) -> VertexOutput {
4019
+ ORI_VertexOut.fragUV = uv;
4020
+ let modelMat = models.matrix[u32(index)];
4021
+ let vm = modelMat;
4022
+ let normalMatrix = mat3x3<f32>(vm[0].xyz,vm[1].xyz,vm[2].xyz);
4023
+ ORI_VertexOut.vWorldNormal = normalize( normalMatrix * normal );
4024
+ ORI_VertexOut.vWorldPos = modelMat * vec4<f32>(position.xyz,1.0) ;
4025
+
4026
+ var fixProjMat = globalUniform.projMat ;
4027
+ fixProjMat[2].z = 1.0 ;//99999.0 / (99999.0 - 1.0) ;
4028
+ fixProjMat[3].z = -1.0 ;//(-1.0 * 99999.0) / (99999.0 - 1.0) ;
4027
4029
 
4028
- var fixViewMat = globalUniform.viewMat;
4029
- fixViewMat[3].x = 0.0;
4030
- fixViewMat[3].y = 0.0;
4031
- fixViewMat[3].z = 0.0;
4030
+ var fixViewMat = globalUniform.viewMat ;
4031
+ fixViewMat[3].x = 0.0 ;
4032
+ fixViewMat[3].y = 0.0 ;
4033
+ fixViewMat[3].z = 0.0 ;
4032
4034
 
4033
- var clipPos = fixProjMat * fixViewMat * ORI_VertexOut.vWorldPos;
4034
- ORI_VertexOut.vClipPos = clipPos;
4035
- ORI_VertexOut.member = clipPos;
4036
- return ORI_VertexOut;
4037
- }
4038
- `;
4039
- static sky_fs_frag_wgsl = `
4040
- #include "GlobalUniform"
4041
- #include "MathShader"
4042
- #include "BitUtil"
4043
- #include "ColorUtil_frag"
4044
- #include "FragmentOutput"
4035
+ var clipPos = fixProjMat * fixViewMat * ORI_VertexOut.vWorldPos;
4036
+ ORI_VertexOut.vClipPos = clipPos ;
4037
+ ORI_VertexOut.member = clipPos;
4038
+ return ORI_VertexOut;
4039
+ }
4040
+ `
4041
+ );
4042
+ static sky_fs_frag_wgsl = (
4043
+ /* wgsl */
4044
+ `
4045
+ #include "GlobalUniform"
4046
+ #include "MathShader"
4047
+ #include "BitUtil"
4048
+ #include "ColorUtil_frag"
4049
+ #include "FragmentOutput"
4045
4050
 
4046
- struct uniformData {
4047
- exposure: f32,
4048
- roughness: f32
4049
- }
4051
+ struct uniformData {
4052
+ exposure: f32,
4053
+ roughness: f32
4054
+ };
4050
4055
 
4051
- @group(1) @binding(0)
4052
- var baseMapSampler: sampler;
4053
- @group(1) @binding(1)
4054
- var baseMap: texture_cube<f32>;
4056
+ @group(1) @binding(0)
4057
+ var baseMapSampler: sampler;
4058
+ @group(1) @binding(1)
4059
+ var baseMap: texture_cube<f32>;
4055
4060
 
4056
- @group(2) @binding(0)
4057
- var<uniform> global: uniformData;
4061
+ @group(2) @binding(0)
4062
+ var<uniform> global: uniformData;
4058
4063
 
4059
- @fragment
4060
- fn main(@location(auto) fragUV: vec2<f32>,@location(auto) vClipPos: vec4<f32>, @location(auto) vWorldPos: vec4<f32>, @location(auto) vWorldNormal: vec3<f32>, @builtin(position) fragCoord: vec4<f32>) ->FragmentOutPut {
4061
- let maxLevel: u32 = textureNumLevels(baseMap);
4062
- let dir = normalize(vWorldPos.xyz);
4063
- var textureColor: vec3<f32> = textureSampleLevel(baseMap, baseMapSampler, normalize(dir.xyz), global.roughness * f32(maxLevel)).xyz;
4064
- #if IS_HDR_SKY
4065
- textureColor = LinearToGammaSpace(textureColor);
4066
- #endif
4064
+ @fragment
4065
+ fn main(@location(auto) fragUV: vec2<f32>,@location(auto) vClipPos: vec4<f32>, @location(auto) vWorldPos: vec4<f32>, @location(auto) vWorldNormal: vec3<f32> , @builtin(position) fragCoord : vec4<f32> ) -> FragmentOutput {
4066
+ let maxLevel: u32 = textureNumLevels(baseMap);
4067
+ let dir = normalize(vWorldPos.xyz);
4068
+ var textureColor:vec3<f32> = textureSampleLevel(baseMap, baseMapSampler, normalize(dir.xyz), global.roughness * f32(maxLevel) ).xyz;
4069
+ #if IS_HDR_SKY
4070
+ textureColor = LinearToGammaSpace(textureColor);
4071
+ #endif
4072
+
4073
+ // let o_Target: vec4<f32> = globalUniform.hdrExposure * vec4<f32>(textureColor, 1.0) * globalUniform.skyExposure ;
4074
+ let o_Target: vec4<f32> = vec4<f32>(textureColor, 1.0) * globalUniform.skyExposure;
4075
+ let finalMatrix = globalUniform.projMat * globalUniform.viewMat ;
4076
+ let nMat = mat3x3<f32>(finalMatrix[0].xyz,finalMatrix[1].xyz,finalMatrix[2].xyz) ;
4077
+ let ORI_NORMALMATRIX = transpose(inverse( nMat ));
4078
+
4079
+ var vNormal = (ORI_NORMALMATRIX * -vWorldNormal );
4080
+ var gBuffer = packGBuffer(
4081
+ -globalUniform.far,
4082
+ vec3f(0.0),
4083
+ o_Target.rgb,
4084
+ vec3f(0.0),
4085
+ vNormal
4086
+ ) ;
4087
+ var fragmentOutput:FragmentOutput;
4088
+ #if USE_CASTREFLECTION
4089
+ fragmentOutput.gBuffer = gBuffer ;
4090
+ #else
4091
+ fragmentOutput.color = o_Target ;
4092
+ fragmentOutput.gBuffer = gBuffer ;
4093
+ #endif
4094
+ return fragmentOutput;
4095
+ }
4067
4096
 
4068
- let o_Target: vec4<f32> = vec4<f32>(textureColor, 1.0) * globalUniform.skyExposure;
4069
- let finalMatrix = globalUniform.projMat * globalUniform.viewMat;
4070
- let nMat = mat3x3<f32>(finalMatrix[0].xyz, finalMatrix[1].xyz, finalMatrix[2].xyz);
4071
- let ORI_NORMALMATRIX = transpose(inverse(nMat));
4097
+ fn packGBuffer(depth:f32, albedo:vec3f,hdrLighting:vec3f,rmao:vec3f,normal:vec3f) -> vec4f{
4098
+ var gBuffer : vec4f ;
4099
+ var octUVNormal = (octEncode(normalize(normal)) + 1.0) * 0.5 ;
4072
4100
 
4073
- var vNormal = (ORI_NORMALMATRIX - vWorldNormal);
4074
- var gBuffer = packGBuffer(
4075
- -globalUniform.far,
4076
- vec3f(0.0),
4077
- o_Target.rgb,
4078
- vec3f(0.0),
4079
- vNormal
4080
- );
4101
+ var yc = f32(r11g11b9_to_float(vec3f(octUVNormal,0.0))) ;
4102
+ #if USE_CASTREFLECTION
4103
+ var rgbm = EncodeRGBM(hdrLighting);
4104
+ var zc = f32(pack4x8unorm(vec4f(rgbm.rgb,0.0))) ;
4105
+ var wc = f32(pack4x8unorm(vec4f(rmao.rg,rgbm.a,0.0)));
4106
+ #else
4107
+ var zc = f32(vec4fToFloat_7bits(vec4f(albedo.rgb,0.0)));
4108
+ var wc = f32(r22g8_to_float(vec2f(f32(0.0),rmao.g)));
4109
+ #endif
4110
+
4111
+ gBuffer.x = depth ;
4112
+ gBuffer.y = yc ;
4113
+ gBuffer.z = zc ;
4114
+ gBuffer.w = wc ;
4115
+ return gBuffer ;
4116
+ }
4117
+ `
4118
+ );
4119
+ }
4081
4120
 
4082
- var fragmentOutput: FragmentOutput;
4083
- #if USE_CASTREFLECTION
4084
- fragmentOutput.gBuffer = gBuffer;
4085
- #else
4086
- fragmentOutput.color = o_Target;
4087
- fragmentOutput.gBuffer = gBuffer;
4088
- #endif
4089
- return fragmentOutput;
4090
- }
4121
+ let LightingFunction_frag = (
4122
+ /*wgsl*/
4123
+ `
4124
+ #include "BRDF_frag"
4125
+ #include "ClusterLight"
4126
+ #include "ShadowMapping_frag"
4091
4127
 
4092
- fn packGBuffer(depth:f32, albedo:vec3f, hdrLighting:vec3f, ramo:vec3f, normal:vec3f) -> vec4f{
4093
- var gBuffer: vec4f;
4094
- var octUVNormal = (octEncode(normalize(normal)) + 1.0) * 0.5;
4095
- var yc = f32(r11g11b9_to_float(vec3f(octUVNormal,0.0)));
4096
-
4097
- #if USE_CASTREFLECTION
4098
- var rgbm = EncodeRGBM(hdrLighting);
4099
- var zc = f32(pack4x8unorm(vec4f(rgbm.rgb,0.0)));
4100
- var wc = f32(pack4x8unorm(vec4f(rmao.rg,rgbm.a,0.0)));
4101
- #else
4102
- var zc = f32(vec4ToFloat_7bits(vec4f(albedo.rgb,0.0)));
4103
- var wc = f32(r22g8_to_float(vec2f(f32(0.0),rmao.g)))
4104
- #endif
4128
+ #if USE_IES_PROFILE
4129
+ #include "IESProfiles_frag"
4130
+ #endif
4105
4131
 
4106
- gBuffer.x = depth;
4107
- gBuffer.y = yc;
4108
- gBuffer.z = zc;
4109
- gBuffer.w = wc;
4110
- return gBuffer;
4111
- }
4112
- `;
4113
- }
4132
+ const PI2 = 3.1415926 * 3.1415926 ;
4114
4133
 
4115
- let LightingFunction_frag = `
4116
- #include "BRDF_frag"
4117
- #include "ClusterLight"
4118
- #include "ShadowMapping_frag"
4134
+ fn sampleLighting(light:LightData,direction:vec3f,iblSpecularResult:vec3f , intensity :f32 , shadow:f32 ) -> vec3f{
4135
+ var ret = vec3f(0.0);
4136
+ var normalDir = fragData.N;
4137
+ var viewDir = fragData.V;
4119
4138
 
4120
- #if USE_IES_PROFILE
4121
- #include "IESProfiles_frag"
4122
- #endif
4139
+ var lightDir = normalize(-direction.xyz);
4140
+ var halfDir = normalize(lightDir + viewDir);
4141
+ var reflectDir = normalize(reflect(-viewDir,normalDir));
4123
4142
 
4124
- const PI2 = 3.1415926 * 3.1415926;
4125
-
4126
- fn sampleLighting(light:LightData, direction:vec3f, iblSpecularResult:vec3f, intensity: f32, shadow: f32) -> vec3f {
4127
- var ret = vec3f(0.0);
4128
- var normalDir = fragData.N;
4129
- var viewDir = fragData.V;
4130
- var lightDir = normalize(-direction.xyz);
4131
- var halfDir = normalize(lightDir + viewDir);
4132
- var reflectDir = normalize(reflect(-viewDir,normalDir));
4133
- var NdotH = max(0.00001,dot(normalDir,halfDir));
4134
- var NdotL = max(0.00001,dot(normalDir,lightDir));
4135
- var NdotV = max(0.00001,dot(normalDir,viewDir));
4136
- var HdotL = max(0.00001,dot(halfDir,lightDir));
4137
- var baseColor = fragData.Albedo.rgb ;
4138
- var metallic = fragData.Metallic;
4139
- var roughness = fragData.Roughness;
4140
- var lightColor = getHDRColor( light.lightColor.rgb , light.linear ) ;
4141
- var att = max(0.0,intensity);
4142
- var lighting:vec3f = lightContribution(NdotH,NdotL,NdotV,HdotL,fragData.Roughness,fragData.Albedo.rgb / 3.14, metallic ,shadow,fragData.F0,lightColor.rgb);
4143
- lighting = ACESToneMapping(lighting,att);
4144
- return lighting;
4145
- }
4146
-
4147
- fn directLighting(light: LightData, ibSpecularResult: vec3f) -> vec3f<f32> {
4148
- var color = vec3<f32>(0.0);
4149
- #if USE_LIGHT
4150
- var L = normalize(light.direction.xyz);
4151
- #if USE_BRDF
4152
- var shadow = directShadowVisibility[(light.castShadow)];
4153
- var att = light.intensity;
4154
- color = sampleLighting(light,L,iblSpecularResult,att,shadow);
4155
- #endif
4143
+ var NdotH = max(0.00001,dot(normalDir,halfDir));
4144
+ var NdotL = max(0.00001,dot(normalDir,lightDir));
4145
+ var NdotV = max(0.00001,dot(normalDir,viewDir));
4146
+ var HdotL = max(0.00001,dot(halfDir,lightDir));
4147
+
4148
+ var baseColor = fragData.Albedo.rgb ;
4149
+ var metallic = fragData.Metallic ;
4150
+ var roughness = fragData.Roughness ;
4151
+
4152
+ var lightColor = getHDRColor( light.lightColor.rgb , light.linear ) ;
4153
+ var att = max(0.0,intensity);
4154
+
4155
+ var lighting:vec3f = lightContribution(NdotH,NdotL,NdotV,HdotL,fragData.Roughness,fragData.Albedo.rgb / 3.14, metallic ,shadow,fragData.F0,lightColor.rgb);
4156
+
4157
+ lighting = ACESToneMapping(lighting,att);
4158
+ return lighting ;
4159
+ }
4160
+
4161
+ fn directLighting( light:LightData , iblSpecularResult : vec3f) -> vec3<f32> {
4162
+ var color = vec3<f32>(0.0) ;
4163
+ #if USE_LIGHT
4164
+ var L = normalize(light.direction.xyz) ;
4165
+ #if USE_BRDF
4166
+ var shadow = directShadowVisibility[(light.castShadow)] ;
4167
+ var att = light.intensity;
4168
+ color = sampleLighting(light,L,iblSpecularResult,att, shadow);
4169
+ #endif
4170
+ #endif
4171
+ return color;
4172
+ }
4173
+
4174
+ fn directDulLighting( albedo:vec3<f32>, N:vec3<f32>, V:vec3<f32>, roughness:f32 , metallic:f32 , light:LightData , shadowBias:f32 ) -> vec3<f32> {
4175
+ var color = vec3<f32>(0.0) ;
4176
+ #if USE_LIGHT
4177
+ var L = -normalize(light.direction.xyz) ;
4178
+ let lightCC = pow( light.lightColor.rgb,vec3<f32>(2.2));
4179
+ var lightColor = getHDRColor( lightCC.rgb , light.linear ) ;
4180
+ var att = light.intensity;
4181
+ if(light.castShadow>=0){
4182
+ #if USE_SHADOWMAPING
4183
+ for (var j: i32 = 0; j < 8; j += 1) {
4184
+ if(j == light.castShadow){
4185
+ att *= directShadowVisibility[j] ;
4186
+ }
4187
+ }
4156
4188
  #endif
4157
- return color;
4158
4189
  }
4190
+ #if USE_LAMBERT
4191
+ color = vec3<f32>(1.0,1.0,1.0) ;
4192
+ #endif
4193
+
4194
+ #if USE_BRDF
4195
+ color = 0.85 * simpleBRDF(albedo,N,V,L,att,lightColor,0.85 * roughness,metallic) ;
4196
+ color += 0.15 * simpleBRDF(albedo,N,V,L,att,lightColor,0.15 * roughness,metallic) ;
4197
+ #endif
4198
+ #endif
4199
+ return color;
4200
+ }
4159
4201
 
4160
- fn directDulLighting(albedo:vec3<f32>, N:vec3<f32>, V:vec3<f32>, roughness:f32 , metallic:f32 , light:LightData , shadowBias:f32) -> vec3<f32> {
4161
- var color = vec3<f32>(0.0);
4162
- #if USE_LIGHT
4163
- var L = -normalize(light.direction.xyz);
4164
- let lightCC = pow(light.lightColor.rgb, vec3<f32>(2.2));
4165
- var lightColor = getHDRColor(lightCC.rgb, light.linear);
4166
- var att = light.intensity;
4167
- if(light.castShadow>=0){
4168
- #if USE_SHADOWMAPING
4169
- for(var j: i32 = 0; j < 8; j+=1){
4170
- if(j == light.castShadow){
4171
- att *= directShadowVisibility[j];
4172
- }
4173
- }
4174
- #endif
4175
- }
4176
- #if USE_LAMBERT
4177
- color = vec3<f32>(1.0,1.0,1.0);
4202
+ fn directHairLighting( albedo:vec3<f32>, N:vec3<f32>, V:vec3<f32>, roughness:f32 , metallic:f32 , light:LightData , shadowBias:f32 ) -> vec3<f32> {
4203
+ var color = vec3<f32>(0.0) ;
4204
+ #if USE_LIGHT
4205
+ var L = -normalize(light.direction.xyz) ;
4206
+ let lightCC = pow( light.lightColor.rgb,vec3<f32>(2.2));
4207
+ var lightColor = getHDRColor( lightCC.rgb , light.linear ) ;
4208
+ var att = light.intensity;
4209
+ if(light.castShadow>=0){
4210
+ #if USE_SHADOWMAPING
4211
+ for (var j: i32 = 0; j < 8; j += 1) {
4212
+ if(j == light.castShadow){
4213
+ att *= directShadowVisibility[j] ;
4214
+ }
4215
+ }
4178
4216
  #endif
4217
+ }
4218
+ #if USE_LAMBERT
4219
+ color = vec3<f32>(1.0,1.0,1.0) ;
4220
+ #endif
4221
+
4222
+ #if USE_BRDF
4223
+ color = 0.5 * simpleBRDF(albedo,N,V,L,att,lightColor,0.85 ,metallic) ;
4224
+ color += 0.5 * simpleBRDF(albedo,N,V,L,att,lightColor,0.15 ,metallic) ;
4225
+ #endif
4226
+ #endif
4227
+ return color;
4228
+ }
4179
4229
 
4180
- #if USE_BRDF
4181
- color = 0.85 * simpleBRDF(albedo,N,V,L,att,lightColor,0.85 * roughness,metallic);
4182
- color += 0.15 * simpleBRDF(albedo,N,V,L,att,lightColor,0.15 * roughness,metallic);
4183
- #endif
4184
- #endif
4185
- return color;
4230
+
4231
+ fn pointLighting( WP:vec3<f32>, light:LightData , iblSpecularResult : vec3f ) -> vec3<f32> {
4232
+ var color = vec3<f32>(0.0) ;
4233
+ let lightPos = light.position.xyz;
4234
+ var dir = lightPos.xyz - WP ;
4235
+ let dist = length(dir);
4236
+ if(dist != 0.0){
4237
+ dir *= 1.0 / dist ;
4186
4238
  }
4239
+ if( abs(dist) < light.range ){
4240
+ var L = dir ;
4241
+ var atten = 1.0 ;
4242
+ atten = 1.0 - smoothstep(0.0,light.range,dist) ;
4243
+ atten *= 1.0 / max(light.radius,0.001) ;
4187
4244
 
4188
- fn directHairLighting ( albedo:vec3<f32>, N:vec3<f32>, V:vec3<f32>, roughness:f32 , metallic:f32 , light:LightData , shadowBias:f32 ) -> vec3<f32> {
4189
- var color = vec3<f32>(0.0);
4190
- #if USE_LIGHT
4191
- var L = -normalize(light.direction.xyz);
4192
- let lightCC = pow( light.lightColor.rgb, vec3<f32>(2.2) );
4193
- var lightColor = getHDRColor(lightCC.rgb, light.linear);
4194
- var att = light.intensity;
4195
- if(light.castShadow>=0){
4196
- #if USE_SHADOWMAPING
4197
- for (var j: i32 = 0; j < 8; j += 1) {
4198
- if(j == light.castShadow){
4199
- att *= directShadowVisibility[j];
4200
- }
4201
- }
4202
- #endif
4203
- }
4204
- #if USE_LAMBERT
4205
- color = vec3<f32>(1.0,1.0,1.0) ;
4245
+ var shadow = pointShadows[i32(light.castShadow)] ;
4246
+
4247
+ #if USE_IES_PROFILE
4248
+ atten *= getLightIESProfileAtt(WP,light);
4206
4249
  #endif
4207
4250
 
4208
- #if USE_BRDF
4209
- color = 0.5 * simpleBRDF(albedo,N,V,L,att,lightColor,0.85 ,metallic) ;
4210
- color += 0.5 * simpleBRDF(albedo,N,V,L,att,lightColor,0.15 ,metallic) ;
4211
- #endif
4212
- #endif
4213
- return color
4214
- }
4251
+ atten *= sphere_unit(light.range,light.intensity) ;
4215
4252
 
4216
- fn pointLighting ( WP: vec3<f32>, light: LightData, iblSpecularResult: vec3f ) -> vec3f<f32> {
4217
- var color = vec3<f32>(0.0);
4218
- let lightPos = light.position.xyz;
4219
- var dir = lightPos.xyz - WP;
4220
- let dist = length(dir);
4221
- if(dist != 0.0){
4222
- dir *= 1.0 / dist;
4223
- }
4224
- if(abs(dist) < light.range){
4225
- var L = dir;
4226
- var atten = 1.0;
4227
- atten = 1.0 - smoothstep(0.0, light.range, dist);
4228
- atten *= 1.0 / max(light.radius, 0.001);
4229
- var shadow = pointShadows[i32(light.castShadow)];
4230
-
4231
- #if USE_IES_PROFILE
4232
- atten *= getLightIESProfileAtt(WP, light);
4233
- #endif
4253
+ color = sampleLighting(light,-L,iblSpecularResult,atten,shadow);
4254
+ }
4255
+ return color ;
4256
+ }
4234
4257
 
4235
- atten *= sphere_unit(light.range, light.intensity);
4236
- color = sampleLighting(light, -L, iblSpecularResult, atten, shadow);
4237
- }
4238
- return color;
4239
- }
4258
+ fn pointAtt( WP:vec3<f32>, light:LightData ) -> f32 {
4259
+ var atten = 0.0 ;
4260
+ let lightPos = light.position.xyz;
4261
+ var dir = lightPos.xyz - WP ;
4262
+ let dist = length(dir);
4263
+ if(dist != 0.0){
4264
+ dir *= 1.0 / dist ;
4265
+ }
4266
+ if( abs(dist) < light.range ){
4267
+ var L = dir ;
4268
+ atten = 1.0 - smoothstep(0.0,light.range,dist) ;
4269
+ atten *= 1.0 / max(light.radius,0.001) ;
4270
+ var shadow = pointShadows[i32(light.castShadow)] ;
4271
+ #if USE_IES_PROFILE
4272
+ atten *= getLightIESProfileAtt(WP,light);
4273
+ #endif
4274
+ atten *= sphere_unit(light.range,light.intensity) ;
4275
+ }
4276
+ return atten ;
4277
+ }
4240
4278
 
4241
- fn pointAtt(WP:vec3<f32>, light:LightData) -> f32 {
4242
- var atten = 0.0;
4243
- let lightPos = light.position.xyz;
4244
- var dir = lightPos.xyz - WP;
4245
- let dist = length(dir);
4246
- if(dist != 0.0){
4247
- dir *= 1.0 / dist;
4248
- }
4249
- if(abs(dist) < light.range){
4250
- var L = dir;
4251
- atten = 1.0 - smoothstep(0.0, light.range, dist);
4252
- atten *= 1.0 / max(light.radius, 0.001);
4253
- var shadow = pointShadows[i32(light.castShadow)];
4254
- #if USE_IES_PROFILE
4255
- atten *= getLightIESProfileAtt(WP, light);
4256
- #endif
4257
- atten *= sphere_unit(light.range, light.intensity);
4258
- }
4259
- return atten;
4260
- }
4279
+ fn getDistanceAtten( light:LightData , dist : f32 ) -> f32 {
4280
+ return 1.0 - smoothstep(0.0,light.range,dist) ;
4281
+ }
4261
4282
 
4262
- fn getDistanceAtten(light:LightData, dist:f32) -> f32 {
4263
- return 1.0 - smoothstep(0.0, light.range, dist);
4283
+ fn spotLighting( WP:vec3<f32>, light:LightData , iblSpecularResult : vec3f) -> vec3<f32> {
4284
+ let lightPos = light.position.xyz;
4285
+ var dir = lightPos.xyz - WP ;
4286
+ let dist = length(dir) ;
4287
+ if(dist != 0.0){
4288
+ dir *= 1.0 / dist ;
4264
4289
  }
4265
4290
 
4266
- fn spotLighting(WP:vec3<f32>, light:LightData, iblSpecularResult: vec3f) -> vec3f<f32> {
4267
- let lightPos = light.position.xyz;
4268
- var dir = lightPos.xyz - WP;
4269
- let dist = length(dir);
4270
- if(dist != 0.0){
4271
- dir *= 1.0 / dist
4291
+ var color = vec3<f32>(0.0) ;
4292
+ if( abs(dist) < light.range * 2.0 ){
4293
+ var L = dir ;
4294
+ let theta = dot(-L, normalize(light.direction));
4295
+ let angle = acos(theta) ;
4296
+ var atten = 1.0 ;
4297
+ var lightColor = light.lightColor.rgb ;
4298
+
4299
+ atten = 1.0 - smoothstep(0.0,light.range,dist) ;
4300
+ atten *= 1.0 / max(light.radius,0.001) ;
4301
+ if(angle < light.outerCutOff){
4302
+ if(angle > light.innerCutOff){
4303
+ atten *= 1.0 - smoothstep(light.innerCutOff, light.outerCutOff, angle) ;
4304
+ }
4305
+ }else{
4306
+ atten = 0.0 ;
4272
4307
  }
4273
4308
 
4274
- var color = vec3<f32>(0.0);
4275
- if(abs(dist) < light.range * 2.0){
4276
- var L = dir;
4277
- let theta = dot(-L, normalize(light.direction));
4278
- let angle = acos(theta);
4279
- var atten = 1.0;
4280
- var lightColor = light.lightColor.rgb;
4281
-
4282
- atten = 1.0 - smoothstep(0.0, light.range, dist);
4283
- atten *= 1.0 / max(light.radius, 0.001);
4284
- if(angle < light.outerCutOff){
4285
- if(angle > light.innerCutOff){
4286
- atten *= 1.0 - smoothstep(light.innerCutOff, light.outerCutOff, angle);
4287
- }
4288
- }else{
4289
- atten = 0.0;
4290
- }
4309
+ var shadow = pointShadows[i32(light.castShadow)] ;
4291
4310
 
4292
- var shadow = pointShadows[i32(light.castShadow)];
4311
+ #if USE_IES_PROFILE
4312
+ atten *= getLightIESProfileAtt(WP,light);
4313
+ #endif
4293
4314
 
4294
- #if USE_IES_PROFILE
4295
- atten *= getLightIESProfileAtt(WP, light);
4296
- #endif
4315
+ atten *= sphere_unit(light.range, light.intensity) ;
4297
4316
 
4298
- atten *= sphere_unit(light.range, light.intensity);
4299
- color = sampleLighting(light, -L, iblSpecularResult, atten, shadow);
4300
- }
4301
- return color;
4317
+ color = sampleLighting(light,-L,iblSpecularResult,atten,shadow);
4302
4318
  }
4319
+ return color ;
4320
+ }
4303
4321
 
4304
- fn sphere_unit( radius:f32, intensity: f32 ) -> f32 {
4305
- return intensity / (4.0 * PI2 * radius * radius);
4306
- }
4307
- `;
4322
+ fn sphere_unit( radius:f32 , intensity:f32 ) -> f32 {
4323
+ return intensity / (4.0 * PI2 * radius * radius) ;
4324
+ }
4325
+ `
4326
+ );
4308
4327
 
4309
- let MathShader = `
4310
- #include 'BitUtil'
4328
+ let MathShader = (
4329
+ /* wgsl */
4330
+ `
4331
+ #include 'BitUtil'
4311
4332
 
4312
- struct TBN_ret{
4313
- tan:vec3f,
4314
- bit:vec3f,
4333
+ struct TBN_ret{
4334
+ tan:vec3f,
4335
+ bit:vec3f,
4336
+ }
4337
+
4338
+ fn TBN( N:vec3f) -> mat3x3<f32>{
4339
+ //Returns the simple tangent space matrix
4340
+ var Nb : vec3f;
4341
+ var Nt : vec3f;
4342
+ if (abs(N.y)>0.999) {
4343
+ Nb = vec3f(1.0,0.0,0.0);
4344
+ Nt = vec3f(0.0,0.0,1.0);
4345
+ } else {
4346
+ Nb = normalize(cross(N,vec3f(0.0,1.0,0.0)));
4347
+ Nt = normalize(cross(Nb,N));
4315
4348
  }
4316
4349
 
4317
- fn TBN(N:vec3f) -> mat3x3<f32>{
4318
- var Nb: vec3f;
4319
- var Nt: vec3f;
4320
- if(abs(N.y)>0.999){
4321
- Nb = vec3f(1.0,0.0,0.0);
4322
- Nt = vec3f(0.0,0.0,1.0)
4323
- }else{
4324
- Nb = normalize(cross(N,vec3f(0.0,1.0,0.0)));
4325
- Nt = normalize(cross(Nb,N));
4326
- }
4350
+ var mat3 = mat3x3<f32>(
4351
+ Nb.x,Nt.x,N.x,
4352
+ Nb.y,Nt.y,N.y,
4353
+ Nb.z,Nt.z,N.z
4354
+ );
4327
4355
 
4328
- var mat3 = mat3x3<f32>(
4329
- Nb.x,Nt.x,N.x,
4330
- Nb.y,Nt.y,N.y,
4331
- Nb.z,Nt.z,N.z
4332
- );
4356
+ return mat3;
4357
+ }
4333
4358
 
4334
- return mat3;
4335
- }
4359
+ fn TBN_out( N : vec3f ) -> TBN_ret {
4360
+ var tbn_ret : TBN_ret;
4361
+ //Returns the simple tangent space directions
4362
+ if (abs(N.y)>0.999) {
4363
+ tbn_ret.tan = vec3f(1.0,0.0,0.0);
4364
+ tbn_ret.bit = vec3f(0.0,0.0,1.0);
4365
+ } else {
4366
+ tbn_ret.tan = normalize(cross(N,vec3f(0.0,1.0,0.0)));
4367
+ tbn_ret.bit = normalize(cross(tbn_ret.tan,N));
4368
+ }
4336
4369
 
4337
- fn TBN_out(N:vec3f) -> TBN_ret {
4338
- var tbn_ret: TBN_ret;
4339
- if(abs(N.y)>0.999) {
4340
- tbn_ret.tan = vec3f(1.0,0.0,0.0);
4341
- tbn_ret.bit = vec3f(0.0,0.0,1.0);
4342
- }else{
4343
- tbn_ret.tan = normalize(cross(N,vec3f(0.0,1.0,0.0)));
4344
- tbn_ret.bit = normalize(cross(tbn_ret.tan,N));
4345
- }
4370
+ return tbn_ret;
4371
+ }
4346
4372
 
4347
- return tbn_ret;
4348
- }
4349
4373
 
4350
- fn ARand21(uv:vec2f) -> f32 {
4351
- return fract(sin(uv.x*uv.y)*403.125+cos(dot(uv,vec2f(13.18273,51.2134)))*173.137);
4352
- }
4374
+ fn ARand21( uv: vec2f) -> f32 {
4375
+ //Returns 1D noise from 2D
4376
+ return fract(sin(uv.x*uv.y)*403.125+cos(dot(uv,vec2f(13.18273,51.2134)))*173.137);
4377
+ }
4353
4378
 
4354
- fn applyQuaternion(position:vec3<f32>,q:vec4<f32>) -> vec3<f32>{
4355
- let x:f32 = position.x;
4356
- let y:f32 = position.y;
4357
- let z:f32 = position.z;
4379
+ fn applyQuaternion(position:vec3<f32>, q:vec4<f32>) -> vec3<f32>{
4380
+ let x:f32 = position.x;
4381
+ let y:f32 = position.y;
4382
+ let z:f32 = position.z;
4358
4383
 
4359
- let qx:f32 = q.x;
4360
- let qy:f32 = q.y;
4361
- let qz:f32 = q.z;
4362
- let qw:f32 = q.w;
4384
+ let qx:f32 = q.x;
4385
+ let qy:f32 = q.y;
4386
+ let qz:f32 = q.z;
4387
+ let qw:f32 = q.w;
4363
4388
 
4364
- let ix:f32 = qw*x + qy*z - qz*y;
4365
- let iy:f32 = qw*y + qz*x - qx*z;
4366
- let iz:f32 = qw*z + qx*y - qy*x;
4367
- let iw:f32 = -qx*x - qy*y - qz*z;
4389
+ let ix:f32 = qw * x + qy * z - qz * y;
4390
+ let iy:f32 = qw * y + qz * x - qx * z;
4391
+ let iz:f32 = qw * z + qx * y - qy * x;
4392
+ let iw:f32 = -qx * x - qy * y - qz * z;
4368
4393
 
4369
- var ret: vec3<f32>;
4370
- ret.x = ix*qw + iw*-qx + iy*-qz - iz*-qy;
4371
- ret.y = iy*qw + iw*-qy + iz*-qx - ix*-qz;
4372
- ret.z = iz*qw + iw*-qz + ix*-qy - iy*-qx;
4394
+ var ret: vec3<f32>;
4395
+ ret.x = ix * qw + iw * -qx + iy * -qz - iz * -qy;
4396
+ ret.y = iy * qw + iw * -qy + iz * -qx - ix * -qz;
4397
+ ret.z = iz * qw + iw * -qz + ix * -qy - iy * -qx;
4373
4398
 
4374
- return ret;
4375
- }
4399
+ return ret;
4400
+ }
4376
4401
 
4377
- fn inverse(m:mat3x3<f32>) -> mat3*3<f32>{
4378
- var a00 = m[0][0];
4379
- var a01 = m[0][1];
4380
- var a02 = m[0][2];
4381
- var a10 = m[1][0];
4382
- var a11 = m[1][1];
4383
- var a12 = m[1][2];
4384
- var a20 = m[2][0];
4385
- var a21 = m[2][1];
4386
- var a22 = m[2][2];
4387
-
4388
- var b01 = a22*a11 - a12*a21;
4389
- var b11 = -a22*a10 + a12*a20;
4390
- var b21 = a21*a10 - a11*a20;
4391
-
4392
- var det =a00*b01 + a01*b11 + a02*b21;
4393
- return mat3x3<f32>(
4394
- vec3<f32>(b01/ det, (-a22 * a01 + a02 * a21)/ det, (a12 * a01 - a02 * a11)/ det),
4395
- vec3<f32>(b11/ det, (a22 * a00 - a02 * a20)/ det, (-a12 * a00 + a02 * a10)/ det),
4396
- vec3<f32>(b21/ det, (-a21 * a00 + a01 * a20)/ det, (a11 * a00 - a01 * a10)/ det)
4397
- );
4398
- }
4402
+ fn inverse( m:mat3x3<f32>) -> mat3x3<f32>{
4403
+ var a00 = m[0][0];
4404
+ var a01 = m[0][1];
4405
+ var a02 = m[0][2];
4406
+ var a10 = m[1][0];
4407
+ var a11 = m[1][1];
4408
+ var a12 = m[1][2];
4409
+ var a20 = m[2][0];
4410
+ var a21 = m[2][1];
4411
+ var a22 = m[2][2];
4399
4412
 
4400
- fn dir_to_faceId(pt:vec3<f32>) -> i32 {
4401
- var abs_x = abs(pt.x);
4402
- var abs_y = abs(pt.y);
4403
- var abs_z = abs(pt.z);
4404
- var coord = max(max(abs_x, abs_y),abs_z);
4405
- if(coord == -pt.x){
4406
- return 0;
4407
- }
4408
- if(coord == pt.x){
4409
- return 1;
4410
- }
4411
- if(coord == -pt.y){
4412
- return 2;
4413
- }
4414
- if(coord == pt.y){
4415
- return 3;
4416
- }
4417
- if(coord == -pt.z){
4418
- return 4;
4419
- }
4420
- return 5;
4421
- }
4413
+ var b01 = a22 * a11 - a12 * a21;
4414
+ var b11 = -a22 * a10 + a12 * a20;
4415
+ var b21 = a21 * a10 - a11 * a20;
4422
4416
 
4423
- const us = 1.0/6.0;
4424
- fn uv_2_xyz(u:f32,v:f32) -> vec3f{
4425
- let face = floor(u/us);
4426
- var uu = (u - face*us)/us;
4427
- var uc = 2.0*uu - 1.0;
4428
- var vc = 2.0*v - 1.0;
4429
- var xyz = vec3f(0,0,0);
4430
- if(face == 0.0){
4431
- xyz = vec3f(1.0,-vc,uc);
4432
- }else if(face == 1.0){
4433
- xyz = vec3f(-1.0,-vc,-uc);
4434
- }else if(face == 2.0){
4435
- xyz = vec3f(uc,1.0,-vc);
4436
- }else if(face == 3.0){
4437
- xyz = vec3f(uc,-1.0,vc);
4438
- }else if(face == 4.0){
4439
- xyz = vec3f(-uc,-vc,1.0);
4440
- }else if(face == 5.0){
4441
- xyz = vec3f(uc,-vc,-1.0);
4442
- }
4443
- return xyz;
4444
- }
4445
-
4446
- fn convert_xyz_to_cube_uv(x:f32, y:f32, z:f32) -> vec2f{
4447
- var dir = vec3f(x,y,z);
4448
- var absX = abs(dir.x);
4449
- var absY = abs(dir.y);
4450
- var absZ = abs(dir.z);
4451
-
4452
- var isXPositive = 0;
4453
- if(dir.x > 0.0){isXPositive=1};
4454
- var isYPositive = 0;
4455
- if(dir.y > 0.0){isXPositive=1};
4456
- var isZPositive = 0;
4457
- if(dir.z > 0.0){isZPositive=1};
4458
-
4459
- var maxAxis:f32 = 0.0;
4460
- var uc:f32 = 0.0;
4461
- var vc:f32 = 0.0;
4462
-
4463
- if(isXPositive == 1 && absX >= absY && absX >= absZ){
4464
- maxAxis = absX;
4465
- uc = -z;
4466
- vc = y;
4467
- }
4468
- if(isXPositive == 0 && absX >= absY && absX >= absZ){
4469
- maxAxis = absX;
4470
- uc = z;
4471
- vc = y;
4472
- }
4473
- if(isYPositive == 1 && absY >= absX && absY >= absZ){
4474
- maxAxis = absY;
4475
- uc = x;
4476
- vc = -z;
4477
- }
4478
- if(isYPositive == 0 && absY >= absX && absY >= absZ){
4479
- maxAxis = absY;
4480
- uc = x;
4481
- vc = z;
4482
- }
4483
- if (isZPositive == 1 && absZ >= absX && absZ >= absY) {
4484
- maxAxis = absZ;
4485
- uc = x;
4486
- vc = y;
4487
- }
4488
- if (isZPositive ==0 && absZ >= absX && absZ >= absY) {
4489
- maxAxis = absZ;
4490
- uc = -x;
4491
- vc = y;
4492
- }
4493
-
4494
- var u = 0.5f*(uc / maxAxis + 1.0f);
4495
- var v = 0.5f*(vc / maxAxis + 1.0f);
4496
-
4497
- return vec2f(u, v);
4498
- }
4499
-
4500
- fn signNotZero(v1:vec2<f32>) -> vec2<f32>{
4417
+ var det = a00 * b01 + a01 * b11 + a02 * b21 ;
4418
+ return mat3x3<f32>(
4419
+ vec3<f32>(b01/ det, (-a22 * a01 + a02 * a21)/ det, (a12 * a01 - a02 * a11)/ det),
4420
+ vec3<f32>(b11/ det, (a22 * a00 - a02 * a20)/ det, (-a12 * a00 + a02 * a10)/ det),
4421
+ vec3<f32>(b21/ det, (-a21 * a00 + a01 * a20)/ det, (a11 * a00 - a01 * a10)/ det)
4422
+ );
4423
+ }
4424
+
4425
+ fn dir_to_faceId(pt:vec3<f32>) -> i32 {
4426
+ //**** nx px ny py nz pz
4427
+ var abs_x = abs(pt.x);
4428
+ var abs_y = abs(pt.y);
4429
+ var abs_z = abs(pt.z);
4430
+ var coord = max(max(abs_x, abs_y), abs_z);
4431
+ if(coord == -pt.x){ return 0;}
4432
+ if(coord == pt.x) { return 1;}
4433
+
4434
+ if(coord == -pt.y){ return 2;}
4435
+ if(coord == pt.y) { return 3;}
4436
+
4437
+ if(coord == -pt.z) { return 4;}
4438
+ return 5;
4439
+ }
4440
+
4441
+ const us = 1.0 /6.0 ;
4442
+ fn uv_2_xyz(u:f32,v:f32) -> vec3f
4443
+ {
4444
+ let face = floor(u / us);
4445
+ var uu = (u - face * us) / us ;
4446
+
4447
+ var uc = 2.0 * uu - 1.0;
4448
+ var vc = 2.0 * v - 1.0;
4449
+ var xyz = vec3f(0,0,0);
4450
+
4451
+ if(face == 0.0){
4452
+ // x,y,z = 1.0,vc,-uc
4453
+ xyz = vec3f(1.0,-vc,uc);
4454
+ }else if(face == 1.0){
4455
+ // x,y,z = -1.0,vc,uc
4456
+ xyz = vec3f(-1.0,-vc,-uc);
4457
+ }else if(face == 2.0){
4458
+ // x,y,z = uc,1.0,-vc
4459
+ xyz = vec3f(uc,1.0,-vc);
4460
+ }else if(face == 3.0){
4461
+ // x,y,z = uc,-1.0,vc
4462
+ xyz = vec3f(uc,-1.0,vc);
4463
+ }else if(face == 4.0){
4464
+ // x,y,z = uc,vc,1.0
4465
+ xyz = vec3f(-uc,-vc,1.0);
4466
+ }else if(face == 5.0){
4467
+ // x,y,z = -uc,vc,-1.0
4468
+ xyz = vec3f(uc,-vc,-1.0);
4469
+ }
4470
+ return xyz ;
4471
+ }
4472
+
4473
+ fn convert_xyz_to_cube_uv(x:f32, y:f32, z:f32 ) -> vec2f
4474
+ {
4475
+ var dir = vec3f(x, y, z);
4476
+ var absX = abs(dir.x);
4477
+ var absY = abs(dir.y);
4478
+ var absZ = abs(dir.z);
4479
+
4480
+ var isXPositive = 0;
4481
+ if(dir.x > 0.0){isXPositive = 1;}
4482
+ var isYPositive = 0;
4483
+ if(dir.y > 0.0){isYPositive = 1;}
4484
+ var isZPositive = 0;
4485
+ if(dir.z > 0.0){isZPositive = 1;}
4486
+
4487
+ var maxAxis:f32 = 0.0;
4488
+ var uc:f32 = 0.0;
4489
+ var vc:f32 = 0.0;
4490
+
4491
+ // POSITIVE X
4492
+ if (isXPositive == 1 && absX >= absY && absX >= absZ) {
4493
+ // u (0 to 1) goes from +z to -z
4494
+ // v (0 to 1) goes from -y to +y
4495
+ maxAxis = absX;
4496
+ uc = -z;
4497
+ vc = y;
4498
+ }
4499
+ // NEGATIVE X
4500
+ if (isXPositive ==0 && absX >= absY && absX >= absZ) {
4501
+ // u (0 to 1) goes from -z to +z
4502
+ // v (0 to 1) goes from -y to +y
4503
+ maxAxis = absX;
4504
+ uc = z;
4505
+ vc = y;
4506
+ }
4507
+ // POSITIVE Y
4508
+ if (isYPositive==1 && absY >= absX && absY >= absZ) {
4509
+ // u (0 to 1) goes from -x to +x
4510
+ // v (0 to 1) goes from +z to -z
4511
+ maxAxis = absY;
4512
+ uc = x;
4513
+ vc = -z;
4514
+ }
4515
+ // NEGATIVE Y
4516
+ if (isYPositive ==0 && absY >= absX && absY >= absZ) {
4517
+ // u (0 to 1) goes from -x to +x
4518
+ // v (0 to 1) goes from -z to +z
4519
+ maxAxis = absY;
4520
+ uc = x;
4521
+ vc = z;
4522
+ }
4523
+ // POSITIVE Z
4524
+ if (isZPositive == 1&& absZ >= absX && absZ >= absY) {
4525
+ // u (0 to 1) goes from -x to +x
4526
+ // v (0 to 1) goes from -y to +y
4527
+ maxAxis = absZ;
4528
+ uc = x;
4529
+ vc = y;
4530
+ }
4531
+ // NEGATIVE Z
4532
+ if (isZPositive ==0 && absZ >= absX && absZ >= absY) {
4533
+ // u (0 to 1) goes from +x to -x
4534
+ // v (0 to 1) goes from -y to +y
4535
+ maxAxis = absZ;
4536
+ uc = -x;
4537
+ vc = y;
4538
+ }
4539
+
4540
+ // Convert range from -1 to 1 to 0 to 1
4541
+ var u = 0.5f * (uc / maxAxis + 1.0f);
4542
+ var v = 0.5f * (vc / maxAxis + 1.0f);
4543
+
4544
+ return vec2f(u, v);
4545
+ }
4546
+
4547
+ // Returns ±1
4548
+ fn signNotZero( v1:vec2<f32>) -> vec2<f32> {
4501
4549
  var v:vec2<f32> = v1;
4502
4550
  if(v.x >= 0.0){
4503
4551
  v.x = 1.0;
@@ -4507,118 +4555,123 @@ let MathShader = `
4507
4555
  if(v.y >= 0.0){
4508
4556
  v.y = 1.0;
4509
4557
  }else{
4510
- v.y = -1.0;
4558
+ v.y= -1.0;
4511
4559
  }
4512
4560
  return v;
4513
4561
  }
4514
4562
 
4515
- fn octEncode(v:vec3<f32>) -> vec2<f32> {
4563
+ fn octEncode( v:vec3<f32> ) -> vec2<f32> {
4516
4564
  var l1norm = abs(v.x) + abs(v.y) + abs(v.z);
4517
4565
  var result = v.xy * (1.0 / l1norm);
4518
- if(v.z < 0.0){
4566
+ if (v.z < 0.0) {
4519
4567
  result = (1.0 - abs(result.yx)) * signNotZero(result.xy);
4520
4568
  }
4521
4569
  return result;
4522
4570
  }
4523
4571
 
4524
- fn octDecode(o:vec2<f32>) -> vec3<f32> {
4572
+ // Returns a unit vector. Argument o is an octahedral vector packed via octEncode,on the [-1, +1] square*/
4573
+ fn octDecode( o:vec2<f32> ) -> vec3<f32> {
4525
4574
  var v = vec3<f32>(o.x, o.y, 1.0 - abs(o.x) - abs(o.y));
4526
- if(v.z < 0.0) {
4527
- var tmp = (1.0 -abs(v.yx))*signNotZero(v.xy);
4575
+ if (v.z < 0.0) {
4576
+ var tmp = (1.0 - abs(v.yx)) * signNotZero(v.xy);
4528
4577
  v.x = tmp.x;
4529
4578
  v.y = tmp.y;
4530
4579
  }
4531
4580
  return normalize(v);
4532
4581
  }
4533
4582
 
4534
- fn Linear01Depth(z:f32,near:f32,far:f32) -> f32{
4535
- let ZBufferZ = (-1.0+(far/near))/far;
4536
- let ZBufferW = near/far;
4537
- return 1.0 / (ZBufferZ * z + ZBufferW);
4583
+ fn Linear01Depth(z:f32,near:f32,far:f32)-> f32{
4584
+ let ZBufferZ = (-1.0+(far/near)) / far;
4585
+ let ZBufferW = near /far ;
4586
+ return 1.0 / (ZBufferZ * z + ZBufferW) ;
4538
4587
  }
4539
4588
 
4540
- fn LinearizeDepth(depth:f32, nearPlane:f32, farPlane:f32) -> f32 {
4541
- var z = depth * 2.0 - 1.0;
4542
- return (2.0 * nearPlane * farPlane) / (farPlane + nearPlane - z * (farPlane - nearPlane));
4589
+
4590
+ fn LinearizeDepth( depth:f32 , nearPlane:f32 , farPlane:f32 )-> f32 {
4591
+ var z = depth * 2.0 - 1.0;
4592
+ return (2.0 * nearPlane * farPlane) / (farPlane + nearPlane - z * (farPlane - nearPlane));
4543
4593
  }
4544
4594
 
4545
- fn logDepth(depth:f32, far:f32) -> f32 {
4546
- return log2(depth + 1.0) * 2.0 / (log(far + 1.0) / 0.6931471805599453) * 0.5;
4595
+ fn logDepth(depth : f32, far:f32) -> f32 {
4596
+ return log2(depth + 1.0) * 2.0 / (log(far + 1.0) / 0.6931471805599453) * 0.5;
4547
4597
  }
4548
4598
 
4549
4599
  fn log2Depth(depth:f32, near:f32, far:f32) -> f32 {
4550
- let Fcoef:f32 = 2.0 / log2(far + 1.0);
4551
- var result:f32 = (log2(max(1e-6, 1.0 + depth)) * Fcoef - 1.0);
4552
- result = (1.0 + result) / 2.0;
4553
- return result * depth;
4600
+ let Fcoef:f32 = 2.0 / log2(far + 1.0);
4601
+ var result:f32 = (log2(max(1e-6, 1.0 + depth)) * Fcoef - 1.0);
4602
+ result = (1.0 + result) / 2.0;
4603
+ return result * depth;
4554
4604
  }
4555
4605
 
4556
4606
  fn log2DepthFixPersp(depth:f32, near:f32, far:f32) -> f32 {
4557
- let flogz:f32 = 1.0 + depth;
4558
- let Fcoef_half:f32 = (2.0 / log2(far + 1.0)) * 0.5;
4559
- var result:f32 = log2(flogz) * Fcoef_half;
4560
- result = (1.0 + result) / 2.0;
4561
- return result;
4607
+ let flogz:f32 = 1.0 + depth;
4608
+ let Fcoef_half:f32 = (2.0 / log2(far + 1.0)) * 0.5;
4609
+ var result:f32 = log2(flogz) * Fcoef_half;
4610
+ result = (1.0 + result) / 2.0;
4611
+ return result;
4562
4612
  }
4563
4613
 
4564
- fn QuaternionToMatrix(q:vec4<f32>) -> mat4x4<f32> {
4565
- var result: mat4x4<f32>;
4566
-
4567
- let x = q.x * 2.0;
4568
- let y = q.y * 2.0;
4569
- let z = q.z * 2.0;
4570
- let xx = q.x * x;
4571
- let yy = q.y * y;
4572
- let zz = q.z * z;
4573
- let xy = q.x * y;
4574
- let xz = q.x * z;
4575
- let yz = q.y * z;
4576
- let wx = q.w * x;
4577
- let wy = q.w * y;
4578
- let wz = q.w * z;
4579
-
4580
- result[0][0] = 1.0 - (yy + zz);
4581
- result[0][1] = xy + wz;
4582
- result[0][2] = xz - wy;
4583
- result[0][3] = 0.0;
4584
-
4585
- result[1][0] = xy - wz;
4586
- result[1][1] = 1.0 - (xx + zz);
4587
- result[1][2] = yz + wx;
4588
- result[1][3] = 0.0;
4589
-
4590
- result[2][0] = xz + wy;
4591
- result[2][1] = yz - wx;
4592
- result[2][2] = 1.0 - (xx + yy);
4593
- result[2][3] = 0.0;
4594
-
4595
- result[3][0] = 0.0;
4596
- result[3][1] = 0.0;
4597
- result[3][2] = 0.0;
4598
- result[3][3] = 1.0;
4599
4614
 
4600
- return result;
4615
+ fn QuaternionToMatrix(q: vec4<f32>) -> mat4x4<f32> {
4616
+ var result: mat4x4<f32>;
4617
+
4618
+ // Precalculate coordinate products
4619
+ let x = q.x * 2.0;
4620
+ let y = q.y * 2.0;
4621
+ let z = q.z * 2.0;
4622
+ let xx = q.x * x;
4623
+ let yy = q.y * y;
4624
+ let zz = q.z * z;
4625
+ let xy = q.x * y;
4626
+ let xz = q.x * z;
4627
+ let yz = q.y * z;
4628
+ let wx = q.w * x;
4629
+ let wy = q.w * y;
4630
+ let wz = q.w * z;
4631
+
4632
+ // Calculate 3x3 matrix from orthonormal basis
4633
+ result[0][0] = 1.0 - (yy + zz);
4634
+ result[0][1] = xy + wz;
4635
+ result[0][2] = xz - wy;
4636
+ result[0][3] = 0.0;
4637
+
4638
+ result[1][0] = xy - wz;
4639
+ result[1][1] = 1.0 - (xx + zz);
4640
+ result[1][2] = yz + wx;
4641
+ result[1][3] = 0.0;
4642
+
4643
+ result[2][0] = xz + wy;
4644
+ result[2][1] = yz - wx;
4645
+ result[2][2] = 1.0 - (xx + yy);
4646
+ result[2][3] = 0.0;
4647
+
4648
+ result[3][0] = 0.0;
4649
+ result[3][1] = 0.0;
4650
+ result[3][2] = 0.0;
4651
+ result[3][3] = 1.0;
4652
+
4653
+ return result;
4601
4654
  }
4602
4655
 
4603
4656
  fn MakeScaleMatrix(scale: vec3<f32>) -> mat4x4<f32> {
4604
4657
  return mat4x4<f32>(
4605
- scale.x, 0.0, 0.0, 0.0,
4606
- 0.0, scale.y, 0.0, 0.0,
4607
- 0.0, 0.0, scale.z, 0.0,
4608
- 0.0, 0.0, 0.0, 1.0,
4658
+ scale.x, 0.0, 0.0, 0.0,
4659
+ 0.0, scale.y, 0.0, 0.0,
4660
+ 0.0, 0.0, scale.z, 0.0,
4661
+ 0.0, 0.0, 0.0, 1.0,
4609
4662
  );
4610
4663
  }
4611
-
4664
+
4612
4665
  fn MakeRotationMatrix(rotationQuaternion: vec4<f32>) -> mat4x4<f32> {
4613
- return QuaternionToMatrix(rotationQuaternion);
4666
+ return QuaternionToMatrix(rotationQuaternion);
4614
4667
  }
4615
4668
 
4616
4669
  fn MakeTranslationMatrix(translation: vec3<f32>) -> mat4x4<f32> {
4617
4670
  return mat4x4<f32>(
4618
- 1.0, 0.0, 0.0, 0.0,
4619
- 0.0, 1.0, 0.0, 0.0,
4620
- 0.0, 0.0, 1.0, 0.0,
4621
- translation.x, translation.y, translation.z, 1.0,
4671
+ 1.0, 0.0, 0.0, 0.0,
4672
+ 0.0, 1.0, 0.0, 0.0,
4673
+ 0.0, 0.0, 1.0, 0.0,
4674
+ translation.x, translation.y, translation.z, 1.0,
4622
4675
  );
4623
4676
  }
4624
4677
 
@@ -4630,191 +4683,206 @@ let MathShader = `
4630
4683
  }
4631
4684
 
4632
4685
  fn mixMatrix4x4(a: mat4x4<f32>, b: mat4x4<f32>, t:f32) -> mat4x4<f32> {
4633
- return a * (1.0 - t) + b * t;
4686
+ return a * (1.0 - t) + b * t;
4634
4687
  }
4635
4688
 
4636
- fn decodeDepth(color:vec4<f32>) -> f32{
4637
- var depth = 0.0;
4638
- const bitShifts = vec4f<f32>(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);
4639
- depth = dot(color, bitShifts);
4640
- return depth;
4689
+ fn decodeDepth( color:vec4<f32> ) -> f32{
4690
+ var depth = 0.0 ;
4691
+ const bitShifts = vec4<f32>(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);
4692
+ depth = dot(color, bitShifts);
4693
+ return depth;
4641
4694
  }
4642
4695
 
4643
- fn encodeDepth(depth:f32) -> vec4<f32>{
4644
- const bitSh = vec4<f32>(256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0);
4645
- const bitMsk = vec4<f32>(0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0);
4646
- var comp: vec4<f32>;
4647
- comp = depth * bitSh;
4648
- comp = fract(comp);
4649
- comp -= comp.xxyz * bitMsk;
4650
- return comp;
4696
+ fn encodeDepth( depth:f32 ) -> vec4<f32>{
4697
+ const bitSh = vec4<f32>(256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0);
4698
+ const bitMsk = vec4<f32>(0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0);
4699
+ var comp:vec4<f32>;
4700
+ comp = depth * bitSh;
4701
+ comp = fract(comp);
4702
+ comp -= comp.xxyz * bitMsk;
4703
+ return comp;
4651
4704
  }
4652
4705
 
4653
- fn calculateBillboardMatrix2(eye:vec3f, pos:vec3f, up:vec3f) -> mat3x3<f32> {
4654
- let zAxis: vec3f = -normalize(pos.xyz - eye);
4655
- var xAxis: vec3f = cross(up, zAxis);
4656
- xAxis = normalize(cross(zAxis, xAxis));
4657
- let yAxis = normalize(cross(zAxis, xAxis));
4658
- return mat3x3<f32>(xAxis, yAxis, zAxis);
4706
+ fn calculateBillboardMatrix2(eye:vec3f,pos:vec3f,up:vec3f) -> mat3x3<f32> {
4707
+
4708
+ let zAxis: vec3f = -normalize(pos.xyz - eye);
4709
+ var xAxis: vec3f = cross(up,zAxis);
4710
+ xAxis = normalize(cross(zAxis,xAxis));
4711
+ let yAxis = normalize(cross(zAxis, xAxis));
4712
+ return mat3x3<f32>(xAxis, yAxis, zAxis);
4659
4713
  }
4660
4714
 
4661
- struct SH9Struct {
4662
- SHAr:vec4f,
4663
- SHAg:vec4f,
4664
- SHAb:vec4f,
4665
- SHBr:vec4f,
4666
- SHBg:vec4f,
4667
- SHBb:vec4f,
4668
- SHC:vec4f,
4715
+ struct SH9Struct{
4716
+ SHAr:vec4f,
4717
+ SHAg:vec4f,
4718
+ SHAb:vec4f,
4719
+ SHBr:vec4f,
4720
+ SHBg:vec4f,
4721
+ SHBb:vec4f,
4722
+ SHC:vec4f,
4669
4723
  }
4670
4724
 
4671
- fn ShadeSH9(normal: vec4f, sh9: SH9Struct) -> vec3f {
4672
- var x1:vec3f = vec3f(0.0);
4673
- var x2:vec3f = vec3f(0.0);
4674
- var x3:vec3f = vec3f(0.0);
4675
-
4676
- x1.r = dot(sh9.SHAr,normal);
4677
- x1.g = dot(sh9.SHAg,normal);
4678
- x1.b = dot(sh9.SHAb,normal);
4679
-
4680
- var vB = normal.xyzz * normal.yzzx;
4681
- x2.r = dot(sh9.SHBr,vB);
4682
- x2.g = dot(sh9.SHBg,vB);
4683
- x2.b = dot(sh9.SHBb,vB);
4684
-
4685
- var vC = normal.x*normal.x - normal.y*normal.y;
4686
- x3 = sh9.SHC.rgb * vC;
4687
- return x1 + x2 + x3;
4688
- }
4725
+ fn ShadeSH9 ( normal:vec4f , sh9:SH9Struct) -> vec3f
4726
+ {
4727
+ var x1:vec3f = vec3f(0.0);
4728
+ var x2:vec3f = vec3f(0.0);
4729
+ var x3:vec3f = vec3f(0.0);
4730
+
4731
+ // Linear + constant polynomial terms
4732
+ x1.r = dot(sh9.SHAr,normal);
4733
+ x1.g = dot(sh9.SHAg,normal);
4734
+ x1.b = dot(sh9.SHAb,normal);
4735
+
4736
+ // 4 of the quadratic polynomials
4737
+ var vB = normal.xyzz * normal.yzzx;
4738
+ x2.r = dot(sh9.SHBr,vB);
4739
+ x2.g = dot(sh9.SHBg,vB);
4740
+ x2.b = dot(sh9.SHBb,vB);
4741
+
4742
+ // Final quadratic polynomial
4743
+ var vC = normal.x*normal.x - normal.y*normal.y;
4744
+ x3 = sh9.SHC.rgb * vC;
4745
+ return x1 + x2 + x3;
4746
+ }
4689
4747
 
4690
- fn clipViewUV(viewRectangle:vec4f, size:vec2f, fragCoord:vec2f) -> vec2u {
4691
- let subViewUV = (fragCoord - viewRectangle.xy) / viewRectangle.zw;
4692
- return vec2u(subViewUV*size);
4748
+ fn clipViewUV(viewRectangle:vec4f,size:vec2f,fragCoord:vec2f) -> vec2u {
4749
+ let subViewUV = (fragCoord - viewRectangle.xy) / viewRectangle.zw ;
4750
+ return vec2u(subViewUV*size) ;
4693
4751
  }
4694
4752
 
4695
- fn insideRectangle(point:vec2f, rec:vec4f) -> bool {
4696
- if( point.x > rec.x && point.y > rec.y && point.x < (rec.x + rec.z ) && point.y < (rec.y + rec.w ) ){
4697
- return true ;
4698
- }
4699
- return false;
4753
+ fn insideRectangle( point:vec2f , rec:vec4f) -> bool {
4754
+ if( point.x > rec.x && point.y > rec.y && point.x < (rec.x + rec.z ) && point.y < (rec.y + rec.w ) ){
4755
+ return true ;
4756
+ }
4757
+ return false;
4700
4758
  }
4701
4759
 
4702
- fn convert_cube_uv_to_xyz(index:i32, u:f32, v:f32) -> vec3f {
4703
- var ret: vec3f;
4704
- var uc = 2.0f * u - 1.0f;
4705
- var vc = 2.0f * v - 1.0f;
4706
- switch(index){
4707
- case 0: {
4708
- ret.x = 1.0f;
4709
- ret.y = vc;
4710
- ret.z = -uc;
4711
- break;
4712
- }
4713
- case 1: {
4714
- ret.x = -1.0f;
4715
- ret.y = vc;
4716
- ret.z = uc;
4717
- break;
4718
- }
4719
- case 2: {
4720
- ret.x = uc;
4721
- ret.y = 1.0f;
4722
- ret.z = -vc;
4723
- break;
4724
- }
4725
- case 3: {
4726
- ret.x = uc;
4727
- ret.y = -1.0f;
4728
- ret.z = vc;
4729
- break;
4730
- }
4731
- case 4: {
4732
- ret.x = uc;
4733
- ret.y = vc;
4734
- ret.z = 1.0f;
4735
- break;
4736
- }
4737
- case 5: {
4738
- ret.x = -uc;
4739
- ret.y = vc;
4740
- ret.z = -1.0f;
4741
- break;
4742
- }
4743
- default: {
4744
- ret = vec3f(0.0);
4745
- }
4760
+ fn convert_cube_uv_to_xyz( index:i32, u:f32, v:f32) -> vec3f
4761
+ {
4762
+ var ret : vec3f ;
4763
+ // convert range 0 to 1 to -1 to 1
4764
+ var uc = 2.0f * u - 1.0f;
4765
+ var vc = 2.0f * v - 1.0f;
4766
+ switch (index)
4767
+ {
4768
+ case 0: {
4769
+ ret.x = 1.0f;
4770
+ ret.y = vc;
4771
+ ret.z = -uc;
4772
+ break;
4773
+ } // POSITIVE X
4774
+ case 1: {
4775
+ ret.x = -1.0f;
4776
+ ret.y = vc;
4777
+ ret.z = uc;
4778
+ break;
4779
+ } // NEGATIVE X
4780
+ case 2: {
4781
+ ret.x = uc;
4782
+ ret.y = 1.0f;
4783
+ ret.z = -vc;
4784
+ break;
4785
+ } // POSITIVE Y
4786
+ case 3: {
4787
+ ret.x = uc;
4788
+ ret.y = -1.0f;
4789
+ ret.z = vc;
4790
+ break;
4791
+ } // NEGATIVE Y
4792
+ case 4: {
4793
+ ret.x = uc;
4794
+ ret.y = vc;
4795
+ ret.z = 1.0f;
4796
+ break;
4797
+ } // POSITIVE Z
4798
+ case 5: {
4799
+ ret.x = -uc;
4800
+ ret.y = vc;
4801
+ ret.z = -1.0f;
4802
+ break;
4803
+ } // NEGATIVE Z
4804
+ default:{
4805
+ ret = vec3f(0.0);
4746
4806
  }
4747
- return ret;
4807
+ }
4808
+ return ret ;
4748
4809
  }
4749
4810
 
4750
- fn convert_cube_uv_to_normal(index:i32, u:f32, v:f32) -> vec3f{
4751
- var ret: vec3f;
4752
- var uc = 2.0f * u - 1.0f;
4753
- var vc = 2.0f * v - 1.0f;
4754
- switch(index){
4755
- case 0: {
4756
- ret.x = 1.0f;
4757
- ret.y = vc;
4758
- ret.z = -uc;
4759
- break;
4760
- } // POSITIVE X
4761
- case 1: {
4762
- ret.x = -1.0f;
4763
- ret.y = vc;
4764
- ret.z = uc;
4765
- break;
4766
- } // NEGATIVE X
4767
- case 2: {
4768
- ret.x = uc;
4769
- ret.y = 1.0f;
4770
- ret.z = -vc;
4771
- break;
4772
- } // POSITIVE Y
4773
- case 3: {
4774
- ret.x = uc;
4775
- ret.y = -1.0f;
4776
- ret.z = vc;
4777
- break;
4778
- } // NEGATIVE Y
4779
- case 4: {
4780
- ret.x = uc;
4781
- ret.y = vc;
4782
- ret.z = 1.0f;
4783
- break;
4784
- } // POSITIVE Z
4785
- case 5: {
4786
- ret.x = -uc;
4787
- ret.y = vc;
4788
- ret.z = -1.0f;
4789
- break;
4790
- } // NEGATIVE Z
4791
- default:{
4792
- ret = vec3f(0.0);
4793
- }
4811
+ fn convert_cube_uv_to_normal( index:i32, u:f32, v:f32) -> vec3f
4812
+ {
4813
+ var ret : vec3f ;
4814
+ // convert range 0 to 1 to -1 to 1
4815
+ var uc = 2.0f * u - 1.0f;
4816
+ var vc = 2.0f * v - 1.0f;
4817
+ switch (index)
4818
+ {
4819
+ case 0: {
4820
+ ret.x = 1.0f;
4821
+ ret.y = vc;
4822
+ ret.z = -uc;
4823
+ break;
4824
+ } // POSITIVE X
4825
+ case 1: {
4826
+ ret.x = -1.0f;
4827
+ ret.y = vc;
4828
+ ret.z = uc;
4829
+ break;
4830
+ } // NEGATIVE X
4831
+ case 2: {
4832
+ ret.x = uc;
4833
+ ret.y = 1.0f;
4834
+ ret.z = -vc;
4835
+ break;
4836
+ } // POSITIVE Y
4837
+ case 3: {
4838
+ ret.x = uc;
4839
+ ret.y = -1.0f;
4840
+ ret.z = vc;
4841
+ break;
4842
+ } // NEGATIVE Y
4843
+ case 4: {
4844
+ ret.x = uc;
4845
+ ret.y = vc;
4846
+ ret.z = 1.0f;
4847
+ break;
4848
+ } // POSITIVE Z
4849
+ case 5: {
4850
+ ret.x = -uc;
4851
+ ret.y = vc;
4852
+ ret.z = -1.0f;
4853
+ break;
4854
+ } // NEGATIVE Z
4855
+ default:{
4856
+ ret = vec3f(0.0);
4794
4857
  }
4795
- return ret;
4858
+ }
4859
+ return ret ;
4796
4860
  }
4797
4861
 
4798
- fn UvToDir(uv1:vec2f) -> vec3f{
4799
- var uv = uv1;
4800
- uv *= vec2f(2.0*3.1415926535897932384626433832795, 3.1415926535897932384626433832795);
4801
- var theta = uv.y;
4802
- var phi = uv.x + 3.1415926535897932384626433832795 * 0.5 ;
4803
- var dir = vec3f(0.0,0.0,0.0);
4804
- dir.x = sin(phi) * sin(theta) * -1;
4805
- dir.y = cos(theta) * -1;
4806
- dir.z = cos(phi) * sin(theta);
4807
- return dir;
4862
+ fn UvToDir( uv1:vec2f) -> vec3f{
4863
+ var uv = uv1 ;
4864
+ uv *= vec2f(2.0*3.1415926535897932384626433832795, 3.1415926535897932384626433832795);
4865
+ var theta = uv.y;
4866
+ var phi = uv.x + 3.1415926535897932384626433832795 * 0.5 ;
4867
+ // var phi = uv.x ;
4868
+ var dir = vec3f(0.0,0.0,0.0);
4869
+ dir.x = sin(phi) * sin(theta) * -1;
4870
+ dir.y = cos(theta) * -1;
4871
+ dir.z = cos(phi) * sin(theta);
4872
+ return dir;
4808
4873
  }
4809
4874
 
4810
- fn DirTOUV(a_coords:vec3f) -> vec2f {
4811
- var coords = normalize(a_coords);
4812
- var lon = atan2(coords.z, coords.x);
4813
- var lat = acos(coords.y);
4814
- var sphereCoords = vec2f(lon, lat) * (1.0 / 3.1415926535897932384626433832795);
4815
- return vec2f(sphereCoords.x * 0.5 + 0.5, 1.0 - sphereCoords.y);
4875
+ fn DirTOUV( a_coords:vec3f ) ->vec2f
4876
+ {
4877
+ var coords = normalize(a_coords);
4878
+ var lon = atan2(coords.z, coords.x);
4879
+ var lat = acos(coords.y);
4880
+ var sphereCoords = vec2f(lon, lat) * (1.0 / 3.1415926535897932384626433832795);
4881
+ return vec2f(sphereCoords.x * 0.5 + 0.5 , 1.0 - sphereCoords.y);
4816
4882
  }
4817
- `;
4883
+
4884
+ `
4885
+ );
4818
4886
 
4819
4887
  let PhysicMaterialUniform_frag = `
4820
4888
  #if USE_CUSTOMUNIFORM
@@ -5165,7 +5233,9 @@ let IrradianceVolumeData_frag = `
5165
5233
  }
5166
5234
  `;
5167
5235
 
5168
- let Inline_vert = `
5236
+ let Inline_vert = (
5237
+ /*wgsl*/
5238
+ `
5169
5239
  #include "MathShader"
5170
5240
  #include "FastMathShader"
5171
5241
  #include "InstanceUniform"
@@ -5186,35 +5256,35 @@ let Inline_vert = `
5186
5256
  }
5187
5257
 
5188
5258
  fn TIME_frame() -> f32 {
5189
- return globalUniform.frame;
5259
+ return globalUniform.frame ;
5190
5260
  }
5191
5261
 
5192
5262
  fn TIME_time() -> f32 {
5193
- return globalUniform.time;
5263
+ return globalUniform.time ;
5194
5264
  }
5195
5265
 
5196
5266
  fn TIME_delta() -> f32 {
5197
- return globalUniform.delta;
5267
+ return globalUniform.delta ;
5198
5268
  }
5199
5269
 
5200
5270
  fn MOUSE() -> vec2f {
5201
- return vec2f( globalUniform.mouseX, globalUniform.mouseY);
5271
+ return vec2f( globalUniform.mouseX, globalUniform.mouseY) ;
5202
5272
  }
5203
5273
 
5204
5274
  fn SCREEN() -> vec2f {
5205
- return vec2f( globalUniform.windowWidth, globalUniform.windowHeight);
5275
+ return vec2f( globalUniform.windowWidth, globalUniform.windowHeight) ;
5206
5276
  }
5207
5277
 
5208
5278
  fn ProjectionParams() -> vec3f {
5209
- return vec3f( globalUniform.near, globalUniform.far,1.0 + 1.0 / globalUniform.far);
5279
+ return vec3f( globalUniform.near, globalUniform.far,1.0 + 1.0 / globalUniform.far) ;
5210
5280
  }
5211
5281
 
5212
5282
  fn vertex_inline(vertex:VertexAttributes){
5213
- ORI_MATRIX_P = globalUniform.projMat;
5214
- ORI_MATRIX_V = globalUniform.viewMat;
5215
- ORI_MATRIX_PV = ORI_MATRIX_P * ORI_MATRIX_V;
5216
- ORI_MATRIX_PVInv = globalUniform.pvMatrixInv;
5217
- ORI_CAMERAMATRIX = globalUniform.cameraWorldMatrix;
5283
+ ORI_MATRIX_P = globalUniform.projMat ;
5284
+ ORI_MATRIX_V = globalUniform.viewMat ;
5285
+ ORI_MATRIX_PV = ORI_MATRIX_P * ORI_MATRIX_V ;
5286
+ ORI_MATRIX_PVInv = globalUniform.pvMatrixInv ;
5287
+ ORI_CAMERAMATRIX = globalUniform.cameraWorldMatrix ;
5218
5288
 
5219
5289
  ORI_MATRIX_M = models.matrix[u32(vertex.index)];
5220
5290
 
@@ -5223,7 +5293,8 @@ let Inline_vert = `
5223
5293
  ORI_MATRIX_M = models.matrix[modelID];
5224
5294
  #endif
5225
5295
  }
5226
- `;
5296
+ `
5297
+ );
5227
5298
 
5228
5299
  let Common_frag = `
5229
5300
  #include "GlobalUniform"
@@ -5288,7 +5359,9 @@ let Common_frag = `
5288
5359
  }
5289
5360
  `;
5290
5361
 
5291
- let Common_vert = `
5362
+ let Common_vert = (
5363
+ /*wgsl*/
5364
+ `
5292
5365
  #include "WorldMatrixUniform"
5293
5366
  #include "VertexAttributes_vert"
5294
5367
  #include "GlobalUniform"
@@ -5297,9 +5370,10 @@ let Common_vert = `
5297
5370
  fn VertMain( vertex:VertexAttributes ) -> VertexOutput {
5298
5371
  vertex_inline(vertex);
5299
5372
  vert(vertex);
5300
- return ORI_VertexOut;
5373
+ return ORI_VertexOut ;
5301
5374
  }
5302
- `;
5375
+ `
5376
+ );
5303
5377
 
5304
5378
  let BrdfLut_frag = (
5305
5379
  /*wgsl*/
@@ -5329,103 +5403,122 @@ class CSM {
5329
5403
  static Cascades = 4;
5330
5404
  }
5331
5405
 
5332
- let GlobalUniform = `
5406
+ let GlobalUniform = (
5407
+ /*wgsl*/
5408
+ `
5333
5409
 
5334
- #include "MathShader"
5410
+ #include "MathShader"
5335
5411
 
5336
- struct GlobalUniform {
5337
-
5338
- projMat: mat4x4<f32>,
5339
- viewMat: mat4x4<f32>,
5340
- cameraWorldMatrix: mat4x4<f32>,
5341
- pvMatrixInv: mat4x4<f32>,
5342
- viewToWorld: mar4x4<f32>,
5343
- shadowMatrix: array<mat4x4<f32>, 8u>,
5344
- csmShadowBias: vec4<f32>,
5345
- csmMatrix: array<mat4x4<f32>,${CSM.Cascades}>,
5346
- shadowLights:mat4x4<f32>,
5347
- reflectionProbeSize:f32,
5348
- reflectionProbeMaxCount:f32,
5349
- reflectionMapWidth:f32,
5350
- reflectionMapHeight:f32,
5351
- reflectionCount:f32,
5352
- test2:f32,
5353
- test3:f32,
5354
- test4:f32,
5355
- CameraPos: vec3<f32>,
5356
- frame: f32,
5357
- SH: array<vec4f,9u>,
5358
- time: f32,
5359
- delta: f32,
5360
- shadowBias: f32,
5361
- skyExposure: f32,
5362
- renderPassState: f32,
5363
- quadScale: f32,
5364
- hdrExposure: f32,
5365
- renderState_left: i32,
5366
- renderState_right: i32,
5367
- renderState_split: f32,
5368
- mouseX: f32,
5369
- mouseY: f32,
5370
- windowWidth: f32,
5371
- windowHeight: f32,
5372
- near: f32,
5373
- far: f32,
5374
- pointShadowBias: f32,
5375
- shadowMapSize: f32,
5376
- shadowSoft: f32,
5377
- enableCSM:f32,
5378
- csmMargin:f32,
5379
- nDirShadowStart: i32,
5380
- nDirShadowEnd: i32,
5381
- nPointShadowStart: i32,
5382
- nPointShadowEnd: i32,
5383
- cameraForward:vec3f,
5384
- frustumPlanes: array<vec4f, 6u>,
5385
- };
5412
+ struct GlobalUniform {
5386
5413
 
5387
- @group(0) @binding(0)
5388
- var<uniform> globalUniform: GlobalUniform;
5414
+ projMat: mat4x4<f32>,
5415
+ viewMat: mat4x4<f32>,
5416
+ cameraWorldMatrix: mat4x4<f32>,
5417
+ pvMatrixInv : mat4x4<f32>,
5418
+ viewToWorld : mat4x4<f32>,
5419
+ shadowMatrix: array<mat4x4<f32>, 8u>,
5389
5420
 
5390
- fn getViewPosition(z:f32,uv:vec2f) -> vec3f {
5391
- let pvMatrixInv = globalUniform.pvMatrixInv;
5392
- let clip = vec4<f32>((uv * 2.0 - 1.0), z, 1.0);
5393
- var viewPos = pvMatrixInv * clip;
5394
- return viewPos.xyz / viewPos.w;
5395
- }
5421
+ csmShadowBias: vec4<f32>,
5396
5422
 
5397
- fn getWorldPosition(z:f32,uv:vec2f) -> vec3f {
5398
- let viewToWorld = globalUniform.viewToWorld;
5399
- let clip = vec4<f32>((uv * 2.0 -1.0), z, 1.0);
5400
- var worldPos = viewToWorld * clip;
5401
- worldPos = worldPos / worldPos.w;
5402
- return worldPos.xyz;
5403
- }
5423
+ csmMatrix: array<mat4x4<f32>,${CSM.Cascades}>,
5424
+
5425
+ shadowLights:mat4x4<f32>,
5404
5426
 
5405
- var<private> NORMALMATRIX_INV : mat3x3<f32>;
5406
- var<private> NORMALMATRIX : mat3x3<f32>;
5407
- fn useNormalMatrix() {
5408
- let finalMatrix = globalUniform.projMat * globalUniform.viewMat;
5409
- let nMat = mat3x3<f32>(finalMatrix[0].xyz,finalMatrix[1].xyz,fianlMatrix[2].xyz);
5410
- NORMALMATRIX = transpose(inverse(nMat));
5411
- }
5427
+ reflectionProbeSize:f32,
5428
+ reflectionProbeMaxCount:f32,
5429
+ reflectionMapWidth:f32,
5430
+ reflectionMapHeight:f32,
5412
5431
 
5413
- fn useNormalMatrixInv() {
5414
- let finalMatrix = globalUniform.projMat * globalUniform.viewMat;
5415
- let nMat = mat3x3<f32>(finalMatrix[0].xyz,finalMatrix[1].xyz,finalMatrix[2].xyz);
5416
- NORMALMATRIX_INV = transpose((nMat));
5417
- }
5432
+ reflectionCount:f32,
5433
+ test2:f32,
5434
+ test3:f32,
5435
+ test4:f32,
5418
5436
 
5419
- fn getWorldNormal(viewNormal:vec3f) -> vec3f {
5420
- var worldNormal = NORMALMATRIX_INV * viewNormal;
5421
- return normalize(worldNormal.xyz);
5422
- }
5437
+ CameraPos: vec3<f32>,
5438
+ frame: f32,
5439
+ SH: array<vec4f, 9u> ,
5423
5440
 
5424
- fn getViewNormal(worldNormal:vec3f) -> vec3f {
5425
- var viewNormal = globalUniform.viewMat * vec4f(worldNormal,0.0);
5426
- return normalize(viewNormal.xyz);
5427
- }
5428
- `;
5441
+ time: f32,
5442
+ delta: f32,
5443
+ shadowBias: f32,
5444
+ skyExposure: f32,
5445
+
5446
+ renderPassState:f32,
5447
+ quadScale: f32,
5448
+ hdrExposure: f32,
5449
+ renderState_left: i32,
5450
+
5451
+ renderState_right: i32,
5452
+ renderState_split: f32,
5453
+ mouseX: f32,
5454
+ mouseY: f32,
5455
+
5456
+ windowWidth: f32,
5457
+ windowHeight: f32,
5458
+ near: f32,
5459
+ far: f32,
5460
+
5461
+ pointShadowBias: f32,
5462
+ shadowMapSize: f32,
5463
+ shadowSoft: f32,
5464
+ enableCSM:f32,
5465
+
5466
+
5467
+ csmMargin:f32,
5468
+ nDirShadowStart: i32,
5469
+ nDirShadowEnd: i32,
5470
+ nPointShadowStart: i32,
5471
+
5472
+ nPointShadowEnd: i32,
5473
+ cameraForward:vec3f,
5474
+
5475
+ frustumPlanes: array<vec4f, 6u>,
5476
+
5477
+ };
5478
+
5479
+ @group(0) @binding(0)
5480
+ var<uniform> globalUniform: GlobalUniform;
5481
+
5482
+ fn getViewPosition(z:f32,uv:vec2f) -> vec3f {
5483
+ let pvMatrixInv = globalUniform.pvMatrixInv ;
5484
+ let clip = vec4<f32>((uv * 2.0 - 1.0) , z , 1.0);
5485
+ var viewPos = pvMatrixInv * clip ;
5486
+ return viewPos.xyz / viewPos.w ;
5487
+ }
5488
+
5489
+ fn getWorldPosition(z:f32,uv:vec2f) -> vec3f {
5490
+ let viewToWorld = globalUniform.viewToWorld ;
5491
+ let clip = vec4<f32>((uv * 2.0 - 1.0) , z , 1.0);
5492
+ var worldPos = viewToWorld * clip ;
5493
+ worldPos = worldPos / worldPos.w ;
5494
+ return worldPos.xyz ;
5495
+ }
5496
+
5497
+ var<private> NORMALMATRIX_INV : mat3x3<f32> ;
5498
+ var<private> NORMALMATRIX : mat3x3<f32> ;
5499
+ fn useNormalMatrix() {
5500
+ let finalMatrix = globalUniform.projMat * globalUniform.viewMat ;
5501
+ let nMat = mat3x3<f32>(finalMatrix[0].xyz,finalMatrix[1].xyz,finalMatrix[2].xyz) ;
5502
+ NORMALMATRIX = transpose(inverse( nMat ));
5503
+ }
5504
+
5505
+ fn useNormalMatrixInv() {
5506
+ let finalMatrix = globalUniform.projMat * globalUniform.viewMat ;
5507
+ let nMat = mat3x3<f32>(finalMatrix[0].xyz,finalMatrix[1].xyz,finalMatrix[2].xyz) ;
5508
+ NORMALMATRIX_INV = transpose(( nMat ));
5509
+ }
5510
+
5511
+ fn getWorldNormal(viewNormal:vec3f) -> vec3f {
5512
+ var worldNormal = NORMALMATRIX_INV * viewNormal ;
5513
+ return normalize(worldNormal.xyz);
5514
+ }
5515
+
5516
+ fn getViewNormal(worldNormal:vec3f) -> vec3f {
5517
+ var viewNormal = globalUniform.viewMat * vec4f(worldNormal,0.0) ;
5518
+ return normalize(viewNormal.xyz);
5519
+ }
5520
+ `
5521
+ );
5429
5522
 
5430
5523
  let InstanceUniform = `
5431
5524
  #if USE_INSTANCEDRAW
@@ -5437,14 +5530,17 @@ let InstanceUniform = `
5437
5530
  #endif
5438
5531
  `;
5439
5532
 
5440
- let WorldMatrixUniform = `
5533
+ let WorldMatrixUniform = (
5534
+ /*wgsl*/
5535
+ `
5441
5536
  struct Uniforms {
5442
- matrix: array<mat4x4<f32>>
5537
+ matrix : array<mat4x4<f32>>
5443
5538
  };
5444
5539
 
5445
- @group(0) @building(1)
5446
- var<storage, read> models: Uniforms;
5447
- `;
5540
+ @group(0) @binding(1)
5541
+ var<storage, read> models : Uniforms;
5542
+ `
5543
+ );
5448
5544
 
5449
5545
  let FastMathShader = `
5450
5546
  fn pow2(x:f32) -> f32 {
@@ -5515,7 +5611,7 @@ let FastMathShader = `
5515
5611
  return res ;
5516
5612
  }else{
5517
5613
  return PI - res ;
5518
- }
5614
+ };
5519
5615
  }
5520
5616
 
5521
5617
  fn acosFast4( inX : f32 )-> f32
@@ -5534,12 +5630,15 @@ let FastMathShader = `
5534
5630
  return s ;
5535
5631
  }else{
5536
5632
  return PI - s ;
5537
- }
5633
+ };
5538
5634
  }
5539
5635
  `;
5540
5636
 
5541
- let NormalMap_frag = `
5542
- fn perturbNormal( worldPos:vec3<f32>, surf_norm:vec3<f32>, mapN:vec3<f32>, normalScale:f32, face:f32 ) -> vec3<f32> {
5637
+ let NormalMap_frag = (
5638
+ /*wgsl*/
5639
+ `
5640
+
5641
+ fn perturbNormal( worldPos:vec3<f32>, surf_norm:vec3<f32>, mapN:vec3<f32> , normalScale:f32 , face:f32 ) -> vec3<f32> {
5543
5642
  var q0 = vec3<f32>( dpdx( worldPos.x ), dpdx( worldPos.y ), dpdx( worldPos.z ) );
5544
5643
  var q1 = vec3<f32>( dpdy( worldPos.x ), dpdy( worldPos.y ), dpdy( worldPos.z ) );
5545
5644
  var st0 = dpdx( ORI_VertexVarying.fragUV0.xy );
@@ -5547,12 +5646,17 @@ let NormalMap_frag = `
5547
5646
  var N = surf_norm;
5548
5647
  var q0perp = cross( N, q0 );
5549
5648
  var q1perp = cross( q1, N );
5649
+
5650
+ var T = q1perp * st0.x + q0perp * st1.x;
5651
+
5550
5652
  var B = q1perp * st0.y + q0perp * st1.y;
5653
+
5551
5654
  var det = max( dot( T, T ), dot( B, B ) );
5552
5655
  var scale = 1.0 ;
5553
5656
  if( det != 0.0 ){
5554
5657
  scale = inverseSqrt( det ) ;
5555
5658
  }
5659
+
5556
5660
  scale *= normalScale;
5557
5661
  return normalize( (T * ( -mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z ) * face ) ;
5558
5662
  }
@@ -5593,7 +5697,8 @@ let NormalMap_frag = `
5593
5697
  var outN = perturbNormal(ORI_VertexVarying.vWorldPos.xyz,ORI_VertexVarying.vWorldNormal,mapNormal,1.0,face) ;
5594
5698
  return outN ;
5595
5699
  }
5596
- `;
5700
+ `
5701
+ );
5597
5702
 
5598
5703
  let FragmentVarying = `
5599
5704
  struct FragmentVarying {
@@ -5687,7 +5792,7 @@ let IESProfiles_frag = `
5687
5792
  return textureSampleLevel(iesTextureArrayMap, iesTextureArrayMapSampler, vec2<f32>(normAngle , normTangentAngle) , i32(light.ies) , 0.0).r ;
5688
5793
  }else{
5689
5794
  return 1.0;
5690
- }
5795
+ };
5691
5796
  #else
5692
5797
  return 1.0;
5693
5798
  #endif
@@ -5755,12 +5860,12 @@ let ShadowMapping_frag = `
5755
5860
  weight *= 1.0 - totalWeight;
5756
5861
  visibility += csmShadowResult.x * weight;
5757
5862
  totalWeight += weight;
5758
- }
5863
+ };
5759
5864
 
5760
5865
  if(validCount >= 2 || totalWeight >= 0.99){
5761
5866
  csmLevel = csm;
5762
5867
  break;
5763
- }
5868
+ };
5764
5869
  }
5765
5870
  }
5766
5871
 
@@ -5769,7 +5874,7 @@ let ShadowMapping_frag = `
5769
5874
  visibility = 1.0;
5770
5875
  }else{
5771
5876
  visibility = visibility / totalWeight ;
5772
- }
5877
+ };
5773
5878
  } else {
5774
5879
  shadowMatrix = globalUniform.shadowMatrix[shadowIndex];
5775
5880
  if(enableCSM) {
@@ -5818,7 +5923,7 @@ let ShadowMapping_frag = `
5818
5923
  totalWeight += weight;
5819
5924
  }else{
5820
5925
  totalWeight += 1.0;
5821
- }
5926
+ };
5822
5927
  }
5823
5928
  }
5824
5929
  visibility /= totalWeight;
@@ -6631,7 +6736,9 @@ let BRDF_frag = `
6631
6736
  }
6632
6737
  `;
6633
6738
 
6634
- let BxDF_frag = `
6739
+ let BxDF_frag = (
6740
+ /*wgsl*/
6741
+ `
6635
6742
  #include "Clearcoat_frag"
6636
6743
  #include "BRDF_frag"
6637
6744
  #include "MathShader"
@@ -6649,7 +6756,9 @@ let BxDF_frag = `
6649
6756
  #include "BxdfDebug_frag"
6650
6757
  #include "ReflectionCG"
6651
6758
 
6759
+ //ORI_ShadingInput
6652
6760
  fn initFragData() {
6761
+ // fragData.Albedo = vec4f(gammaToLiner(ORI_ShadingInput.BaseColor.rgb),ORI_ShadingInput.BaseColor.w) ;
6653
6762
  fragData.Albedo = vec4f((ORI_ShadingInput.BaseColor.rgb),ORI_ShadingInput.BaseColor.w) ;
6654
6763
  fragData.Ao = clamp( pow(ORI_ShadingInput.AmbientOcclusion,materialUniform.ao) , 0.0 , 1.0 ) ;
6655
6764
  fragData.Roughness = clamp((ORI_ShadingInput.Roughness),0.0001,1.0) * 1.85 ;
@@ -6665,13 +6774,19 @@ let BxDF_frag = `
6665
6774
 
6666
6775
  let R = 2.0 * dot( fragData.V , fragData.N ) * fragData.N - fragData.V ;
6667
6776
  fragData.R = R ;//reflect( fragData.V , fragData.N ) ;
6777
+
6668
6778
  fragData.NoV = saturate(dot(fragData.N, fragData.V)) ;
6779
+
6669
6780
  fragData.F0 = mix(vec3<f32>(0.04), fragData.Albedo.rgb , fragData.Metallic);
6781
+ // fragData.F0 = gammaToLiner(fragData.F0);
6782
+
6670
6783
  fragData.F = computeFresnelSchlick(fragData.NoV, fragData.F0);
6671
6784
  fragData.KD = vec3<f32>(fragData.F) ;
6672
6785
  fragData.KS = vec3<f32>(0.0) ;
6786
+
6673
6787
  fragData.Indirect = 0.0 ;
6674
6788
  fragData.Reflectance = 1.0 ;
6789
+
6675
6790
  fragData.ClearcoatRoughness = materialUniform.clearcoatRoughnessFactor ;
6676
6791
  fragData.ClearcoatIor = materialUniform.clearcoatIor ;
6677
6792
  fragData.ClearcoatFactor = materialUniform.clearcoatFactor;
@@ -6684,7 +6799,9 @@ let BxDF_frag = `
6684
6799
 
6685
6800
  fn BxDFShading(){
6686
6801
  initFragData();
6802
+
6687
6803
  let sunLight = lightBuffer[0] ;
6804
+
6688
6805
  var irradiance = vec3<f32>(0.0) ;
6689
6806
  #if USEGI
6690
6807
  irradiance += getIrradiance().rgb ;
@@ -6745,6 +6862,7 @@ let BxDF_frag = `
6745
6862
  }
6746
6863
 
6747
6864
  //***********indirect-ambient part*********
6865
+ // var kdLast = (1.0 - 0.04) * (1.0 - fragData.Metallic);
6748
6866
  var iblDiffuseResult : vec3f ;
6749
6867
 
6750
6868
  let MAX_LOD = i32(textureNumLevels(prefilterMap)) ;
@@ -6758,7 +6876,8 @@ let BxDF_frag = `
6758
6876
  indirectionSpec *= globalUniform.hdrExposure ;
6759
6877
  #endif
6760
6878
 
6761
- var color = vec3f(iblDiffuseResult + indirectionSpec + specColor);
6879
+ var color = vec3f(iblDiffuseResult + indirectionSpec + specColor) ;
6880
+ // var color = vec3f(indirectionDiffuse ) ;
6762
6881
 
6763
6882
  var clearCoatColor = vec3<f32>(0.0);
6764
6883
  #if USE_CLEARCOAT
@@ -6783,6 +6902,9 @@ let BxDF_frag = `
6783
6902
  break;
6784
6903
  }
6785
6904
  case SpotLightType: {
6905
+ // var lightColor = light.lightColor.rgb ;
6906
+ // var att = pointAtt(ORI_VertexVarying.vWorldPos.xyz, light);
6907
+ // clearCoatColor += ClearCoat_BRDF( color , materialUniform.clearcoatColor.rgb , 1.5 , clearNormal , light.direction , fragData.V , clearcoatRoughness , lightColor, att );
6786
6908
  break;
6787
6909
  }
6788
6910
  default: {
@@ -6821,7 +6943,9 @@ let BxDF_frag = `
6821
6943
  ORI_FragmentOutput.color = viewColor ;
6822
6944
  #endif
6823
6945
  }
6824
- `;
6946
+
6947
+ `
6948
+ );
6825
6949
 
6826
6950
  let BsDF_frag = `
6827
6951
  #include "Clearcoat_frag"
@@ -7021,7 +7145,9 @@ let Lit_shader = `
7021
7145
  }
7022
7146
  `;
7023
7147
 
7024
- let PBRLItShader = `
7148
+ let PBRLItShader = (
7149
+ /*wgsl*/
7150
+ `
7025
7151
  #include "Common_vert"
7026
7152
  #include "Common_frag"
7027
7153
  #include "BxDF_frag"
@@ -7036,10 +7162,10 @@ let PBRLItShader = `
7036
7162
  @group(1) @binding(auto)
7037
7163
  var normalMap: texture_2d<f32>;
7038
7164
 
7039
- @group(1) @binding(auto)
7040
- var maskMapSampler: sampler;
7041
- @group(1) @binding(auto)
7042
- var maskMap: texture_2d<f32>;
7165
+ @group(1) @binding(auto)
7166
+ var maskMapSampler: sampler;
7167
+ @group(1) @binding(auto)
7168
+ var maskMap: texture_2d<f32>;
7043
7169
 
7044
7170
  #if USE_AOTEX
7045
7171
  @group(1) @binding(auto)
@@ -7053,38 +7179,39 @@ let PBRLItShader = `
7053
7179
  @group(1) @binding(auto)
7054
7180
  var emissiveMap: texture_2d<f32>;
7055
7181
 
7056
- var<private> debugOut: vec4f = vec4f(0.0);
7182
+ var<private> debugOut : vec4f = vec4f(0.0) ;
7057
7183
 
7058
7184
  fn vert(inputData:VertexAttributes) -> VertexOutput {
7059
- ORI_Vert(inputData);
7060
- return ORI_VertextOut;
7185
+ ORI_Vert(inputData) ;
7186
+ return ORI_VertexOut ;
7061
7187
  }
7062
7188
 
7063
7189
  fn frag(){
7190
+
7064
7191
  let baseMapOffsetSize = materialUniform.baseMapOffsetSize;
7065
- var uv = transformUV(ORI_VertexVarying.fragUV0, baseMapOffsetSize);
7192
+ var uv = transformUV(ORI_VertexVarying.fragUV0,baseMapOffsetSize) ;
7066
7193
 
7067
7194
  #if USE_SRGB_ALBEDO
7068
- ORI_ShadingInput.BaseColor = textureSample(baseMap, baseMapSampler, uv);
7069
- ORI_ShadingInput.BaseColor = vec4<f32>(ORI_ShadingInput.BaseColor * materialUniform.baseColor.rgb, ORI_ShadingInput.BaseColor.w * materialUniform.baseColor.a);
7195
+ ORI_ShadingInput.BaseColor = textureSample(baseMap, baseMapSampler, uv ) ;
7196
+ ORI_ShadingInput.BaseColor = vec4<f32>( ORI_ShadingInput.BaseColor * materialUniform.baseColor.rgb, ORI_ShadingInput.BaseColor.w * materialUniform.baseColor.a) ;
7070
7197
  #else
7071
- ORI_ShadingInput.BaseColor = textureSampler(baseMap, baseMapSampler, uv);
7072
- ORI_ShadingInput.BaseColor = vec4f(gammaToLiner(ORI_ShadingInput.BaseColor.rgb), ORI_ShadingInput.BaseColor.a);
7073
- ORI_ShadingInput.BaseColor *= vec4f(materialUniform.baseColor.rgba);
7198
+ ORI_ShadingInput.BaseColor = textureSample(baseMap, baseMapSampler, uv ) ;
7199
+ ORI_ShadingInput.BaseColor = vec4f(gammaToLiner(ORI_ShadingInput.BaseColor.rgb),ORI_ShadingInput.BaseColor.a) ;
7200
+ ORI_ShadingInput.BaseColor *= vec4f(materialUniform.baseColor.rgba) ;
7074
7201
  #endif
7075
7202
 
7076
7203
  let roughnessMapOffsetSize = materialUniform.roughnessMapOffsetSize;
7077
- var uv4 = transformUV(ORI_VertexVarying.fragUV0, roughnessMapOffsetSize);
7078
- var maskTex = textureSample(maskMap, maskMapSampler, uv4);
7079
-
7204
+ var uv4 = transformUV(ORI_VertexVarying.fragUV0,roughnessMapOffsetSize);
7205
+ var maskTex = textureSample(maskMap, maskMapSampler, uv4 );
7206
+
7080
7207
  #if USE_ALPHA_A
7081
- ORI_ShadingInput.BaseColor.a = ORI_ShadingInput.BaseColor.a * (maskTex.a);
7208
+ ORI_ShadingInput.BaseColor.a = ORI_ShadingInput.BaseColor.a * (maskTex.a) ;
7082
7209
  #endif
7083
7210
 
7084
- #if USE_ALPHACUT
7211
+ #if USE_ALPHACUT
7085
7212
  if( (ORI_ShadingInput.BaseColor.a - materialUniform.alphaCutoff) <= 0.0 ){
7086
7213
  ORI_FragmentOutput.color = vec4<f32>(0.0,0.0,0.0,1.0);
7087
-
7214
+
7088
7215
  #if USEGBUFFER
7089
7216
  ORI_FragmentOutput.worldPos = vec4<f32>(0.0,0.0,0.0,1.0);
7090
7217
  ORI_FragmentOutput.worldNormal = vec4<f32>(0.0,0.0,0.0,1.0);
@@ -7097,7 +7224,7 @@ let PBRLItShader = `
7097
7224
 
7098
7225
  useShadow();
7099
7226
 
7100
- var roughnessChannel: f32 = 1.0;
7227
+ var roughnessChannel:f32 = 1.0 ;
7101
7228
  #if USE_ROUGHNESS_A
7102
7229
  roughnessChannel = maskTex.a ;
7103
7230
  #else if USE_ROUGHNESS_R
@@ -7108,16 +7235,16 @@ let PBRLItShader = `
7108
7235
  roughnessChannel = maskTex.b ;
7109
7236
  #else if USE_ALBEDO_A
7110
7237
  roughnessChannel = ORI_ShadingInput.BaseColor.a ;
7111
- #endif
7238
+ #endif
7112
7239
 
7113
7240
  #if USE_SMOOTH
7114
7241
  var roughness = ( 1.0 - roughnessChannel ) * materialUniform.roughness;
7115
- ORI_ShadingInput.Roughness = clamp(roughness, 0.0001, 1.0);
7242
+ ORI_ShadingInput.Roughness = clamp(roughness , 0.0001 , 1.0);
7116
7243
  #else
7117
- ORI_ShadingInput.Roughness = clamp(roughness * materialUniform.roughness, 0.0001, 1.0);
7118
- #endif
7244
+ ORI_ShadingInput.Roughness = clamp(roughnessChannel * materialUniform.roughness ,0.0001,1.0);
7245
+ #endif
7119
7246
 
7120
- var metallicChannel:f32 = 1.0;
7247
+ var metallicChannel:f32 = 1.0 ;
7121
7248
  #if USE_METALLIC_A
7122
7249
  metallicChannel = maskTex.a ;
7123
7250
  #else if USE_METALLIC_R
@@ -7126,16 +7253,16 @@ let PBRLItShader = `
7126
7253
  metallicChannel = maskTex.g ;
7127
7254
  #else if USE_METALLIC_B
7128
7255
  metallicChannel = maskTex.b ;
7129
- #endif
7130
-
7131
- ORI_ShadingInput.Metallic = metallicChannel * materialUniform.metallic;
7256
+ #endif
7132
7257
 
7133
- var aoChannel: f32 = 1.0;
7134
- #if USE_AOTEX;
7258
+ ORI_ShadingInput.Metallic = metallicChannel * materialUniform.metallic ;
7259
+
7260
+ var aoChannel:f32 = 1.0 ;
7261
+ #if USE_AOTEX
7135
7262
  let aoMapOffsetSize = materialUniform.aoMapOffsetSize;
7136
7263
  var aoMapOffsetSizeUV = transformUV(ORI_VertexVarying.fragUV0,aoMapOffsetSize);
7137
7264
  var aoMap = textureSample(aoMap, aoMapSampler, ORI_VertexVarying.fragUV0 );
7138
- aoChannel = aoMap.g;
7265
+ aoChannel = aoMap.g ;
7139
7266
  #else
7140
7267
  #if USE_AO_A
7141
7268
  aoChannel = maskTex.a ;
@@ -7148,12 +7275,11 @@ let PBRLItShader = `
7148
7275
  #endif
7149
7276
  #endif
7150
7277
 
7151
- ORI_ShadingInput.AmbientOcclusion = aoChannel;
7152
- ORI_ShadingInput.Specular = 1.0;
7278
+ ORI_ShadingInput.AmbientOcclusion = aoChannel ;
7279
+ ORI_ShadingInput.Specular = 1.0 ;
7153
7280
 
7154
7281
  let emissiveMapOffsetSize = materialUniform.emissiveMapOffsetSize;
7155
- var emissiveUV = transformUV(ORI_VertexVarying.fragUV0,emissiveMapOffsetSize);
7156
-
7282
+ var emissiveUV = transformUV(ORI_VertexVarying.fragUV0,emissiveMapOffsetSize) ;
7157
7283
  #if USE_EMISSIVEMAP
7158
7284
  var emissiveMapColor = textureSample(emissiveMap, emissiveMapSampler , emissiveUV ) ;
7159
7285
  let emissiveColor = materialUniform.emissiveColor.rgb * emissiveMapColor.rgb * materialUniform.emissiveIntensity ;
@@ -7164,23 +7290,66 @@ let PBRLItShader = `
7164
7290
  #endif
7165
7291
 
7166
7292
  let normalMapOffsetSize = materialUniform.normalMapOffsetSize;
7167
- var nomralUV = transformUV(ORI_VertexVarying.fragUV0,normalMapOffsetSize);
7168
- var Normal = textureSample(normalMap,normalMapSampler,nomralUV).rgb;
7169
- let normal = unPackRGNormal(Normal,1.0,1.0);
7170
- ORI_ShadingInput.Normal = normal;
7171
-
7293
+ var nomralUV = transformUV(ORI_VertexVarying.fragUV0,normalMapOffsetSize) ;
7294
+ var Normal = textureSample(normalMap,normalMapSampler,nomralUV).rgb ;
7295
+ let normal = unPackRGNormal(Normal,1.0,1.0) ;
7296
+ ORI_ShadingInput.Normal = normal ;
7297
+
7172
7298
  BxDFShading();
7299
+
7173
7300
  }
7174
- `;
7301
+ `
7302
+ );
7175
7303
 
7176
- let BxdfDebug_frag = `
7177
- #include "ClusterDebug_frag"
7304
+ let BxdfDebug_frag = (
7305
+ /*wgsl*/
7306
+ `
7307
+ #include "ClusterDebug_frag"
7308
+
7309
+ fn debugPosition(){
7310
+ }
7178
7311
 
7179
7312
  fn debugMeshID(){
7180
7313
  let meshIDColor = u32(round(ORI_VertexVarying.vWorldPos.w) ) ;
7181
7314
  let color = colorSet[ meshIDColor % 9u] ;
7182
7315
  }
7183
7316
 
7317
+ fn debugNormal(){
7318
+ }
7319
+
7320
+ fn debugUV(){
7321
+ }
7322
+
7323
+ fn debugColor(){
7324
+ }
7325
+
7326
+ fn debugDiffuse(){
7327
+ }
7328
+
7329
+ fn debugAmbient(){
7330
+ }
7331
+
7332
+ fn debugEmissive(){
7333
+ }
7334
+
7335
+ fn debugEnvment(){
7336
+ }
7337
+
7338
+ fn debugAo(){
7339
+ }
7340
+
7341
+ fn debugRoughness(){
7342
+ }
7343
+
7344
+ fn debugMetallic(){
7345
+ }
7346
+
7347
+ fn debugIrradiance(){
7348
+ }
7349
+
7350
+ fn debugTangent(){
7351
+ }
7352
+
7184
7353
  fn debugFragmentOut(){
7185
7354
  if(ORI_VertexVarying.fragCoord.x > globalUniform.renderState_split) {
7186
7355
  switch (globalUniform.renderState_right)
@@ -7310,17 +7479,20 @@ let BxdfDebug_frag = `
7310
7479
  }
7311
7480
  }
7312
7481
  }
7313
- `;
7482
+ `
7483
+ );
7314
7484
 
7315
- let FullQuad_vert_wgsl = `
7485
+ let FullQuad_vert_wgsl = (
7486
+ /*wgsl*/
7487
+ `
7316
7488
  #include "WorldMatrixUniform"
7317
7489
  #include "GlobalUniform"
7318
7490
 
7319
7491
  struct MaterialUniform {
7320
- x:f32,
7321
- y:f32,
7322
- width:f32,
7323
- height:f32,
7492
+ x:f32,
7493
+ y:f32,
7494
+ width:f32,
7495
+ height:f32,
7324
7496
  };
7325
7497
 
7326
7498
  struct VertexOutput {
@@ -7329,39 +7501,51 @@ let FullQuad_vert_wgsl = `
7329
7501
  };
7330
7502
 
7331
7503
  @vertex
7332
- fn main(@builtin(vertex_index) vertexIndex: u32, @builtin(instance_index) index){
7333
- const pos = array(vec2(-1.0, -1.0), vec2(-1.0, 1.0), vec2(-1.0, 1.0), vec2(-1.0, 1.0), vec2(1.0, -1.0), vec2(1.0, 1.0));
7334
- const uv = array(vec2(1.0, 0.0), vec2(1.0, 1.0), vec2(0.0, 1.0), vec2(1.0, 0.0), vec2(0.0, 1.0), vec2(0.0, 0.0));
7335
- let id = u32(index);
7336
- var output: VertexOutput;
7337
- output.fragUV = uv[vertexIndex];
7338
- output.position = vec4<f32>(pos[vertexIndex] , 0.0, 1.0);
7339
- return output;
7504
+ fn main(@builtin(vertex_index) vertexIndex : u32, @builtin(instance_index) index : u32 ) -> VertexOutput {
7505
+ const pos = array(
7506
+ vec2(-1.0, -1.0), vec2(1.0, -1.0), vec2(-1.0, 1.0),
7507
+ vec2(-1.0, 1.0), vec2(1.0, -1.0), vec2(1.0, 1.0),
7508
+ );
7509
+ const uv = array(
7510
+ vec2(1.0, 0.0), vec2(1.0, 1.0), vec2(0.0, 1.0),
7511
+ vec2(1.0, 0.0), vec2(0.0, 1.0), vec2(0.0, 0.0),
7512
+ );
7513
+ let id = u32(index) ;
7514
+ var output : VertexOutput;
7515
+ output.fragUV = uv[vertexIndex] ;
7516
+ output.position = vec4<f32>(pos[vertexIndex] , 0.0, 1.0) ;
7517
+ return output ;
7340
7518
  }
7341
- `;
7342
- let Quad_vert_wgsl = `
7343
- #include "WorldMatrixUniform"
7344
- #include "GlobalUniform"
7345
-
7346
- struct MaterialUniform {
7347
- x: f32,
7348
- y: f32,
7519
+ `
7520
+ );
7521
+ let Quad_vert_wgsl = (
7522
+ /*wgsl*/
7523
+ `
7524
+ #include "WorldMatrixUniform"
7525
+ #include "GlobalUniform"
7526
+
7527
+ struct MaterialUniform {
7528
+ x:f32,
7529
+ y:f32,
7349
7530
  width:f32,
7350
7531
  height:f32,
7351
- };
7532
+ };
7352
7533
 
7353
- struct VertexOutput {
7354
- @location(auto) fragUV: vec2<f32>,
7355
- @builtin(position) member: vec4<f32>
7356
- };
7534
+ struct VertexOutput {
7535
+ @location(auto) fragUV: vec2<f32>,
7536
+ @builtin(position) member: vec4<f32>
7537
+ };
7357
7538
 
7358
- @vertex
7359
- fn main(@builtin(instance_index) index: u32, @location(auto) position: vec3<f32>, @location(auto) TEXCOORD_1: vec2<f32>) -> VertexOutput {
7360
- let uv = vec2(((TEXCOORD_1.xy * 2.0) - vec2<f32>(1.0)));
7361
- return VertexOutput(TEXCOORD_1, vec4<f32>(uv, 0.0, 1.0));
7362
- }
7363
- `;
7364
- let Quad_frag_wgsl = `
7539
+ @vertex
7540
+ fn main(@builtin(instance_index) index : u32,@location(auto) position: vec3<f32>, @location(auto) TEXCOORD_1: vec2<f32>) -> VertexOutput {
7541
+ let uv = vec2(((TEXCOORD_1.xy * 2.0) - vec2<f32>(1.0))) ;// / windowSize * size - offset ;
7542
+ return VertexOutput(TEXCOORD_1, vec4<f32>(uv, 0.0, 1.0));
7543
+ }
7544
+ `
7545
+ );
7546
+ let Quad_frag_wgsl = (
7547
+ /*wgsl*/
7548
+ `
7365
7549
  struct FragmentOutput {
7366
7550
  @location(auto) o_Target: vec4<f32>
7367
7551
  };
@@ -7370,22 +7554,25 @@ let Quad_frag_wgsl = `
7370
7554
  var<private> o_Target: vec4<f32>;
7371
7555
  @group(1) @binding(0)
7372
7556
  var baseMapSampler: sampler;
7373
- @group(1) @binding(0)
7557
+ @group(1) @binding(1)
7374
7558
  var baseMap: texture_2d<f32>;
7375
7559
 
7376
7560
  @fragment
7377
7561
  fn main(@location(auto) fragUV: vec2<f32>) -> FragmentOutput {
7378
- var uv = fragUV;
7379
- uv.y = 1.0 -uv.y;
7380
- var color: vec4<f32> = textureSample(baseMap, baseMapSampler, uv);
7562
+ var uv = fragUV ;
7563
+ uv.y = 1.0 - uv.y ;
7564
+ var color: vec4<f32> = textureSample(baseMap, baseMapSampler, uv );
7381
7565
 
7382
7566
  return FragmentOutput(color);
7383
7567
  }
7384
- `;
7385
- let Quad_depth2d_frag_wgsl = `
7568
+ `
7569
+ );
7570
+ let Quad_depth2d_frag_wgsl = (
7571
+ /*wgsl*/
7572
+ `
7386
7573
  struct FragmentOutput {
7387
7574
  @location(auto) o_Target: vec4<f32>
7388
- };
7575
+ };
7389
7576
 
7390
7577
  var<private> fragUV1: vec2<f32>;
7391
7578
  var<private> o_Target: vec4<f32>;
@@ -7393,21 +7580,25 @@ let Quad_depth2d_frag_wgsl = `
7393
7580
  @group(1) @binding(0)
7394
7581
  var baseMapSampler: sampler;
7395
7582
  @group(1) @binding(1)
7396
- var baseMap: texture_depth_2d;
7583
+ var baseMap: texture_depth_2d ;
7397
7584
 
7398
- fn Linear01Depth(z:f32) -> f32 {
7585
+ fn Linear01Depth( z : f32 ) -> f32
7586
+ {
7399
7587
  return 1.0 / (1.0 * z + 5000.0);
7400
7588
  }
7401
7589
 
7402
7590
  @fragment
7403
7591
  fn main(@location(auto) fragUV: vec2<f32>) -> FragmentOutput {
7404
- var uv = fragUV;
7405
- uv.y = 1.0 - uv.y;
7406
- var depth = textureSample(baseMap, baseMapSampler, uv, vec2<i32>(0));
7407
- return FragmentOutput(vec4<f32>(depth, 0.0, 0.0, 1.0));
7592
+ var uv = fragUV ;
7593
+ uv.y = 1.0 - uv.y ;
7594
+ var depth = textureSample(baseMap, baseMapSampler, uv , vec2<i32>(0) ) ;
7595
+ return FragmentOutput(vec4<f32>(depth,0.0,0.0,1.0));
7408
7596
  }
7409
- `;
7410
- let Quad_depthCube_frag_wgsl = `
7597
+ `
7598
+ );
7599
+ let Quad_depthCube_frag_wgsl = (
7600
+ /*wgsl*/
7601
+ `
7411
7602
  struct FragmentOutput {
7412
7603
  @location(auto) o_Target: vec4<f32>
7413
7604
  };
@@ -7417,10 +7608,11 @@ let Quad_depthCube_frag_wgsl = `
7417
7608
 
7418
7609
  @group(1) @binding(0)
7419
7610
  var baseMapSampler: sampler;
7420
- @group(1) @binding(0)
7421
- var baseMap: texture_depth_cube;
7611
+ @group(1) @binding(1)
7612
+ var baseMap: texture_depth_cube ;
7422
7613
 
7423
- fn uvToXYZ(face: i32, uv: vec2<f32>) -> vec3<f32> {
7614
+ fn uvToXYZ( face : i32 , uv : vec2<f32> ) -> vec3<f32>
7615
+ {
7424
7616
  var out : vec3<f32> ;
7425
7617
  if(face == 0){
7426
7618
  out = vec3<f32>( 1.0, uv.y, -uv.x);
@@ -7440,12 +7632,12 @@ let Quad_depthCube_frag_wgsl = `
7440
7632
 
7441
7633
  @fragment
7442
7634
  fn main(@location(auto) fragUV: vec2<f32>) -> FragmentOutput {
7443
- var uv = fragUV;
7444
- uv.y = 1.0 - uv.y;
7445
- var ii = 0.16;
7635
+ var uv = fragUV ;
7636
+ uv.y = 1.0 - uv.y ;
7637
+ var ii = 0.16 ;
7446
7638
  var ouv = vec3<f32>(0.0);
7447
7639
  if(uv.x < ii * 6.0){
7448
- ouv = uvToXYZ(5, uv/ii);
7640
+ ouv = uvToXYZ(5,uv/ii);
7449
7641
  }
7450
7642
  if(uv.x < ii * 5.0){
7451
7643
  ouv = uvToXYZ(4,uv/ii);
@@ -7462,15 +7654,19 @@ let Quad_depthCube_frag_wgsl = `
7462
7654
  if(uv.x < ii * 1.0){
7463
7655
  ouv = uvToXYZ(0,uv/ii);
7464
7656
  }
7465
- var depth = textureSample(baseMap, baseMapSampler, ouv);
7466
- depth = 1.0 - depth;
7467
- return FragmentOutput(vec4<f32>(depth, 0.0, 0.0, 1.0));
7657
+ var depth = textureSample(baseMap, baseMapSampler, ouv ) ;
7658
+ depth = 1.0 - depth;
7659
+
7660
+ return FragmentOutput(vec4<f32>(depth,0.0,0.0,1.0));
7468
7661
  }
7469
- `;
7470
- let Quad_depth2dArray_frag_wgsl = `
7662
+ `
7663
+ );
7664
+ let Quad_depth2dArray_frag_wgsl = (
7665
+ /*wgsl*/
7666
+ `
7471
7667
  struct FragmentOutput {
7472
7668
  @location(auto) o_Target: vec4<f32>
7473
- }
7669
+ };
7474
7670
 
7475
7671
  var<private> fragUV1: vec2<f32>;
7476
7672
  var<private> o_Target: vec4<f32>;
@@ -7478,7 +7674,7 @@ let Quad_depth2dArray_frag_wgsl = `
7478
7674
  @group(1) @binding(0)
7479
7675
  var baseMapSampler: sampler;
7480
7676
  @group(1) @binding(1)
7481
- var baseMap: texture_2d_array;
7677
+ var baseMap: texture_2d_array ;
7482
7678
 
7483
7679
  struct MaterialData{
7484
7680
  index:f32;
@@ -7486,15 +7682,16 @@ let Quad_depth2dArray_frag_wgsl = `
7486
7682
 
7487
7683
  @fragment
7488
7684
  fn main(@location(auto) fragUV: vec2<f32>) -> FragmentOutput {
7489
- var uv = fragUV;
7490
- uv.y = 1.0 - uv.y;
7491
-
7492
- var depth = textureSample(baseMap, baseMapSampler, ouv);
7493
- depth = 1.0 - depth;
7685
+ var uv = fragUV ;
7686
+ uv.y = 1.0 - uv.y ;
7687
+
7688
+ var depth = textureSample(baseMap, baseMapSampler, ouv ) ;
7689
+ depth = 1.0 - depth;
7494
7690
 
7495
- return FragmentOutput(vec4<f32>(depth, 0.0, 0.0, 1.0));
7691
+ return FragmentOutput(vec4<f32>(depth,0.0,0.0,1.0));
7496
7692
  }
7497
- `;
7693
+ `
7694
+ );
7498
7695
 
7499
7696
  let ColorUtil = `
7500
7697
  fn getHDRColor(color: vec3<f32>, exposure: f32) -> vec3<f32> {
@@ -7641,25 +7838,31 @@ let ColorUtil = `
7641
7838
  }
7642
7839
  `;
7643
7840
 
7644
- let GenerayRandomDir = `
7645
- fn madfrac(A:f32, B:f32) -> f32 {
7646
- return A*B-floor(A*B);
7841
+ let GenerayRandomDir = (
7842
+ /*wgsl*/
7843
+ `
7844
+ fn madfrac(A:f32, B:f32)-> f32 {
7845
+ return A*B-floor(A*B) ;
7647
7846
  }
7648
7847
 
7649
- fn sampleRandomDir(count:u32, SAMPLE_COUNT: u32) -> vec3<f32> {
7650
- var ray_dir = sphericalFibonacci(f32((count)), f32(SAMPLE_COUNT));
7651
- return normalize(ray_dir);
7848
+ fn sampleRandomDir(count:u32,SAMPLE_COUNT:u32) -> vec3<f32>{
7849
+ var ray_dir = sphericalFibonacci(f32((count)), f32(SAMPLE_COUNT) );
7850
+ return normalize(ray_dir) ;
7652
7851
  }
7653
7852
 
7654
- fn sphericalFibonacci(i:f32, n:f32) -> vec3<f32> {
7655
- constPHI = sqrt(5.0) * 0.5 + 0.5;
7853
+ fn sphericalFibonacci( i : f32 , n : f32 ) -> vec3<f32>{
7854
+ const PHI = sqrt(5.0) * 0.5 + 0.5;
7656
7855
  let phi = 2.0 * PI * madfrac(i, PHI - 1);
7657
7856
  let cosTheta = 1.0 - (2.0 * i + 1.0) * (1.0 / n);
7658
7857
  let sinTheta = sqrt(saturate(1.0 - cosTheta*cosTheta));
7659
7858
 
7660
- return vec3<f32>(cos(phi) * sinTheta, sin(phi) * sinTheta, cosTheta);
7859
+ return vec3<f32>(
7860
+ cos(phi) * sinTheta,
7861
+ sin(phi) * sinTheta,
7862
+ cosTheta);
7661
7863
  }
7662
- `;
7864
+ `
7865
+ );
7663
7866
 
7664
7867
  let MatrixShader = `
7665
7868
  #include "MathShader"
@@ -7914,7 +8117,7 @@ let Hair_frag = `
7914
8117
  face = 1.0 ;
7915
8118
  }else{
7916
8119
  face = -1.0 ;
7917
- }
8120
+ };
7918
8121
  #if USE_TANGENT
7919
8122
  let T = ORI_VertexVarying.TANGENT.xyz;
7920
8123
  let N = ORI_VertexVarying.vWorldNormal ;
@@ -8781,15 +8984,18 @@ let ZPassShader_fs = `
8781
8984
  }
8782
8985
  `;
8783
8986
 
8784
- let BitUtil = `
8987
+ let BitUtil = (
8988
+ /* wgsl */
8989
+ `
8990
+
8785
8991
  const inv256:f32 = 1.0/256.0;
8786
8992
  const inv1024:f32 = 1.0/1024.0;
8787
8993
 
8788
- const bit7_inv128:f32 = 1.0/128.0;
8994
+ const bit7_inv128:f32 = 1.0 / 128.0;
8789
8995
  const bit7_128:f32 = 128.0;
8790
-
8996
+
8791
8997
  const r10g10b10 = vec2i(0x3FFFFF,0xFF);
8792
- fn floatToVec3f(v:f32) -> vec3f {
8998
+ fn floatToVec3f( v:f32 ) -> vec3f {
8793
8999
  var VPInt:i32 = bitcast<i32>(v);
8794
9000
  var VPInt1024:i32 = VPInt%1024;
8795
9001
  var VPInt10241024:i32 = ((VPInt-VPInt1024)/1024)%1024;
@@ -8816,6 +9022,11 @@ let BitUtil = `
8816
9022
  return vec4f(f32(VPInt128),f32(VPInt128128),f32(VPInt128128128),f32(VPInt128128128128))*vec4f(bit7_inv128);
8817
9023
  }
8818
9024
 
9025
+
9026
+
9027
+
9028
+
9029
+
8819
9030
  const i_r11g11b11 = vec3i(0x7FF,0x7FF,0x7FF);
8820
9031
  const f_r11g11b11 = vec3f(f32(0x7FF),f32(0x7FF),f32(0x7FF));
8821
9032
  fn r11g11b11_to_float( v:vec3f) -> f32{
@@ -8864,6 +9075,9 @@ let BitUtil = `
8864
9075
  return vec3f(r,g,b);
8865
9076
  }
8866
9077
 
9078
+
9079
+
9080
+
8867
9081
  fn floatToRGBA(v:f32) -> vec4f{
8868
9082
  var iv = bitcast<u32>(v);
8869
9083
  var color = vec4f(0.0);
@@ -8878,7 +9092,9 @@ let BitUtil = `
8878
9092
  var f = dot(v, bitShift);
8879
9093
  return f;
8880
9094
  }
8881
- `;
9095
+
9096
+ `
9097
+ );
8882
9098
 
8883
9099
  let GBufferStand = `
8884
9100
  #include "MathShader"
@@ -28033,131 +28249,147 @@ class CubeCamera extends Object3D {
28033
28249
  }
28034
28250
  }
28035
28251
 
28036
- let PreFilteredEnvironment_cs = `
28252
+ let PreFilteredEnvironment_cs = (
28253
+ /*wgsl*/
28254
+ `
28037
28255
  #include "GenerayRandomDir"
28038
28256
  #include "BitUtil"
28039
28257
  #include "MathShader"
28040
28258
  #include "ColorUtil_frag"
28041
-
28042
- struct UniformData {
28043
- probeSize: f32,
28044
- probeCount: f32,
28045
- width: f32,
28046
- height: f32,
28259
+
28260
+ struct UniformData{
28261
+ probeSize : f32 ,
28262
+ probeCount : f32 ,
28263
+ width : f32 ,
28264
+ height : f32 ,
28047
28265
  }
28048
28266
 
28049
- @group(0) @binding(0) var inputTex: texture_2d<f32>;
28050
- @group(0) @binding(1) var outputTexture: texture_storage_2d<rgba16float,write>;
28051
- @group(1) @binding(0) var<uniform> uniformData: UniformData;
28267
+ @group(0) @binding(0) var inputTex : texture_2d<f32>;
28268
+ @group(0) @binding(1) var outputTexture : texture_storage_2d<rgba16float, write>;//rgba32float rgba16float
28269
+ @group(1) @binding(0) var<uniform> uniformData:UniformData;//rgba32float
28052
28270
 
28053
- var<private> reflectionSize: vec2f;
28054
- var<private> PROBE_SOURCESIZE: vec2f;
28055
- var<private> PROBEMAP_SOURCESIZE: vec2f;
28056
- var<private> aspect: vec2f;
28057
- var<private> spaceV: f32;
28271
+ var<private> reflectionSize : vec2f ;
28272
+ var<private> PROBE_SOURCESIZE : vec2f ;
28273
+ var<private> PROBEMAP_SOURCESIZE : vec2f ;
28274
+ var<private> aspect : vec2f ;
28275
+ var<private> spaceV : f32 ;
28058
28276
 
28059
28277
  var<private> i32InputFragCoord : vec2i;
28060
28278
  var<private> PI_2 : f32 = 3.1415926 * 2.0 ;
28061
28279
  var<private> PI : f32 = 3.1415926 ;
28062
28280
 
28063
- var<private> probeSize: f32 = 256.0;
28064
- var<private> probeCount: f32 = 8.0;
28065
- var<private> faceCount: f32 = 6.0;
28066
- var<private> mipCount: f32 = 8.0;
28281
+ var<private> probeSize : f32 = 256.0 ;
28282
+ var<private> probeCount : f32 = 8.0 ;
28283
+ var<private> faceCount : f32 = 6.0 ;
28284
+ var<private> mipCount : f32 = 8.0 ;
28067
28285
 
28068
28286
  const NUM_SAMPLES = 256u;
28069
- var<private> inputSize: vec2f;
28070
- var<private> outSize: vec2f;
28287
+ var<private> inputSize : vec2f ;
28288
+ var<private> outSize : vec2f ;
28071
28289
 
28072
28290
  fn useSphereReflection(){
28073
- probeSize = uniformData.probeSize;
28291
+ probeSize = uniformData.probeSize ;
28074
28292
  probeCount = uniformData.probeCount;
28075
28293
  reflectionSize = vec2f(textureDimensions(inputTex).xy);
28076
28294
  PROBE_SOURCESIZE = reflectionSize / vec2f(faceCount,probeCount);
28077
- PROBEMAP_SOURCESIZE = reflectionSize;
28295
+ PROBEMAP_SOURCESIZE = reflectionSize ;
28078
28296
  aspect = PROBE_SOURCESIZE / PROBEMAP_SOURCESIZE;
28079
- spaceV = 1.0 / probeCount;
28297
+ spaceV = 1.0 / probeCount ;
28080
28298
  }
28081
28299
 
28082
- @compute @workgroup_size(16, 16, 1)
28083
- fn CsMain(@builtin(workgroup_id) workgroup_id: vec3<u32>, @builtin(global_invocation_id) globalInvocation_id: vec3<u32>){
28084
- var color: vec4f;
28300
+ @compute @workgroup_size( 16 , 16 , 1 )
28301
+ fn CsMain( @builtin(workgroup_id) workgroup_id : vec3<u32> , @builtin(global_invocation_id) globalInvocation_id : vec3<u32>)
28302
+ {
28303
+ var color : vec4f ;
28085
28304
  useSphereReflection();
28086
28305
  inputSize = vec2f(textureDimensions(inputTex).xy);
28087
28306
  outSize = vec2f(textureDimensions(outputTexture).xy);
28088
- i32InputFragCoord = vec2<i32>(globalInvocation_id.xy);
28089
- let i = f32(globalInvocation_id.z);
28090
- let count = floor(i/mipCount);
28091
- preOneMip(count, floor(i%mipCount));
28307
+
28308
+ i32InputFragCoord = vec2<i32>( globalInvocation_id.xy ) ;
28309
+
28310
+ let i = f32(globalInvocation_id.z) ;
28311
+ let count = floor(i / mipCount) ;
28312
+ preOneMip(count,floor(i % mipCount));
28092
28313
  }
28093
28314
 
28094
- fn preOneMip(gid: f32, mip: f32){
28095
- let isuv = vec2f(i32InputFragCoord);
28315
+ fn preOneMip( gid:f32,mip:f32 ){
28316
+ let isuv = vec2f(i32InputFragCoord) ;
28096
28317
  let suv = isuv * (inputSize/outSize);
28097
28318
  let probeID = i32(floor(suv.y / probeSize));
28098
28319
  let mipID = i32((isuv.x / probeSize));
28099
28320
  if(probeID == i32(gid) && mipID == i32(mip)){
28100
- let sphereUV = vec2f((isuv.x+0.5)%(probeSize), (isuv.y+0.5)%probeSize/vec2f((probeSize),probeSize));
28101
- var dir: vec3<f32> = octDecode(sphereUV * 2.0 - 1.0);
28102
- var preColor = PreFilterEnvMap(mip/mipCount + 0.05, dir, gid);
28103
- textureStore(outputTexture, vec2i(i32InputFragCoord), preColor);
28321
+
28322
+ let sphereUV = vec2f((isuv.x+0.5) % (probeSize),(isuv.y+0.5) % probeSize) / vec2f( (probeSize), probeSize ) ;
28323
+ var dir: vec3<f32> = octDecode(sphereUV * 2.0 - 1.0) ;
28324
+ var preColor = PreFilterEnvMap(mip/mipCount + 0.05,dir,gid);
28325
+ textureStore(outputTexture,vec2i(i32InputFragCoord),preColor);
28104
28326
  }
28105
28327
  }
28106
28328
 
28107
- fn PreFilterEnvMap(roughness2:f32, R:vec3f , gid:f32) -> vec4f {
28108
- var resColor = vec3f(0.0f);
28109
- var resDepth = 0.0;
28329
+ fn PreFilterEnvMap( roughness2:f32, R:vec3f , gid:f32 ) -> vec4f
28330
+ {
28331
+ var resColor = vec3f(0.0f);
28332
+ var resDepth = 0.0;
28333
+
28110
28334
  var totalColorWeight = 0.0f;
28111
28335
  var totalDepthWeight = 0.0f;
28336
+
28112
28337
  var normal = normalize(R);
28113
28338
  var toEye = normal;
28339
+
28114
28340
  var roughness = roughness2;
28115
-
28341
+
28116
28342
  for(var i=1u;i<=NUM_SAMPLES;i+=1u)
28117
28343
  {
28118
- var xi:vec2f = hammersley(i, NUM_SAMPLES);
28344
+ var xi:vec2f = hammersley(i, NUM_SAMPLES) ;
28345
+
28119
28346
  var halfway = ImportanceSampleGGX(xi,roughness,normal);
28120
- var lightVec = 2.0f * dot(toEye,halfway) * halfway - toEye;
28121
- var NdotL = dot(normal, lightVec);
28122
- var NdotH = max(0.0,dot( normal, halfway ));
28123
- var HdotV = max(0.0,dot( halfway, toEye ));
28347
+ var lightVec = 2.0f * dot( toEye,halfway ) * halfway - toEye;
28348
+
28349
+ var NdotL = dot( normal, lightVec ) ;
28350
+ var NdotH = max(0.0,dot( normal, halfway )) ;
28351
+ var HdotV = max(0.0,dot( halfway, toEye )) ;
28352
+
28124
28353
  if( NdotL > 0.0 )
28125
28354
  {
28126
28355
  var D = specularD(roughness,NdotH);
28127
- var pdf = (D * NdotH / (4.0 * HdotV)) + 0.0001f;
28356
+ var pdf = (D * NdotH / (4.0 * HdotV)) + 0.0001f ;
28357
+
28128
28358
  var saSample = 1.0f / (f32(NUM_SAMPLES) * pdf + 0.00001f);
28129
28359
  lightVec = normalize(lightVec);
28360
+
28130
28361
  var buffer = getReflectionsMap(lightVec,gid);
28131
28362
  var rgb = unpack4x8unorm(u32(buffer.z)).rgb;
28132
28363
  var m = unpack4x8unorm(u32(buffer.w)).z;
28133
28364
  var rgbmColor = DecodeRGBM(vec4f(rgb,m));
28134
- resDepth += buffer.x;
28365
+ resDepth += buffer.x ;
28135
28366
  resColor += rgbmColor * NdotL;
28367
+
28136
28368
  totalColorWeight += NdotL;
28137
28369
  totalDepthWeight += 1.0;
28138
28370
  }
28139
28371
  }
28140
-
28372
+
28141
28373
  resDepth = resDepth / max(totalDepthWeight,0.001f);
28142
28374
  resColor = resColor / max(totalColorWeight,0.001f);
28143
-
28375
+
28144
28376
  let rgbm = EncodeRGBM(resColor) ;
28145
28377
  let gBuffer = vec4f(
28146
28378
  resDepth,
28147
28379
  0.0,
28148
28380
  f32(pack4x8unorm(vec4f(rgbm.rgb,0.0))),
28149
28381
  f32(pack4x8unorm(vec4f(0.0,0.0,rgbm.w,0.0))),
28150
- );
28151
- return vec4f(resColor, 1.0);
28152
- }
28382
+ ) ;
28383
+ return vec4f(resColor,1.0) ;
28384
+ }
28153
28385
 
28154
- fn getReflectionsMap(n: vec3<f32>,gid: f32) -> vec4f {
28386
+ fn getReflectionsMap(n:vec3<f32>,gid:f32) -> vec4f {
28155
28387
  var uv = getSampleProbeUV(n,gid);
28156
- let color = textureLoad(inputTex, vec2i(uv*inputSize), 0);
28157
- return color;
28388
+ let color = textureLoad(inputTex, vec2i(uv*inputSize) , 0);
28389
+ return color ;
28158
28390
  }
28159
28391
 
28160
- fn getSampleProbeUV(dir: vec3<f32>,gid: f32) -> vec2<f32> {
28392
+ fn getSampleProbeUV(dir:vec3<f32>,gid:f32) -> vec2<f32> {
28161
28393
  let faceId = dir_to_faceId(dir);
28162
28394
  var targetUV:vec2<f32> = convert_xyz_to_cube_uv(dir.x, dir.y, dir.z);
28163
28395
  targetUV.x = 1.0 - targetUV.x;
@@ -28167,17 +28399,18 @@ let PreFilteredEnvironment_cs = `
28167
28399
  let aspect:vec2f = PROBE_SOURCESIZE / PROBEMAP_SOURCESIZE;
28168
28400
  targetUV = targetUV * aspect ;
28169
28401
  targetUV.y = targetUV.y + (spaceV * gid);
28170
- return targetUV;
28171
- }
28402
+ return targetUV ;
28403
+ }
28172
28404
 
28173
- fn radicalInverse_VdC(bits2:u32) -> f32 {
28405
+ fn radicalInverse_VdC( bits2:u32) -> f32
28406
+ {
28174
28407
  var bits = bits2;
28175
28408
  bits = (bits << 16u) | (bits >> 16u);
28176
28409
  bits = ((bits & 0x55555555u) << 1u) | ((bits & 0xAAAAAAAAu) >> 1u);
28177
28410
  bits = ((bits & 0x33333333u) << 2u) | ((bits & 0xCCCCCCCCu) >> 2u);
28178
28411
  bits = ((bits & 0x0F0F0F0Fu) << 4u) | ((bits & 0xF0F0F0F0u) >> 4u);
28179
28412
  bits = ((bits & 0x00FF00FFu) << 8u) | ((bits & 0xFF00FF00u) >> 8u);
28180
- return f32(bits) * 2.3283064365386963e-10f;
28413
+ return f32(bits) * 2.3283064365386963e-10f; // / 0x100000000
28181
28414
  }
28182
28415
 
28183
28416
  fn hammersley( i:u32, N:u32) -> vec2f
@@ -28188,21 +28421,25 @@ let PreFilteredEnvironment_cs = `
28188
28421
  fn ImportanceSampleGGX( xi:vec2f, roughness:f32, N:vec3f) -> vec3f
28189
28422
  {
28190
28423
  var alpha2 = roughness * roughness * roughness * roughness;
28424
+
28191
28425
  var phi = 2.0f * 3.1415926 * xi.x ;
28192
28426
  var cosTheta = sqrt( (1.0f - xi.y) / (1.0f + (alpha2 - 1.0f) * xi.y ));
28193
28427
  var sinTheta = sqrt( 1.0f - cosTheta*cosTheta );
28194
- var h: vec3f ;
28428
+
28429
+ var h : vec3f ;
28195
28430
  h.x = sinTheta * cos( phi );
28196
28431
  h.y = sinTheta * sin( phi );
28197
28432
  h.z = cosTheta;
28433
+
28198
28434
  var up = vec3f(1,0,0) ;
28199
28435
  if(abs(N.z) < 0.9999){
28200
28436
  up = vec3f(0,0,1) ;
28201
28437
  }
28438
+
28202
28439
  var tangentX = normalize( cross( up, N ) );
28203
28440
  var tangentY = cross( N, tangentX );
28204
28441
  return (tangentX * h.x + tangentY * h.y + N * h.z);
28205
- }
28442
+ }
28206
28443
 
28207
28444
  fn specularD( roughness:f32, NoH:f32) -> f32
28208
28445
  {
@@ -28210,7 +28447,9 @@ let PreFilteredEnvironment_cs = `
28210
28447
  var r2 = roughness * roughness;
28211
28448
  return r2 / pow(NoH2 * (r2 - 1.0) + 1.0, 2.0);
28212
28449
  }
28213
- `;
28450
+
28451
+ `
28452
+ );
28214
28453
 
28215
28454
  class ReflectionRenderer extends RendererBase {
28216
28455
  cubeCamera;
@@ -28469,8 +28708,10 @@ class ReflectionRenderer extends RendererBase {
28469
28708
  }
28470
28709
  }
28471
28710
 
28472
- let FXAAShader = `
28473
- @include 'BitUtil'
28711
+ let FXAAShader = (
28712
+ /*wgsl*/
28713
+ `
28714
+ #include 'BitUtil'
28474
28715
  struct FragmentOutput {
28475
28716
  @location(auto) o_Target: vec4<f32>
28476
28717
  };
@@ -28489,6 +28730,7 @@ let FXAAShader = `
28489
28730
  @group(2) @binding(0)
28490
28731
  var<uniform> materialUniform: MaterialUniform;
28491
28732
 
28733
+
28492
28734
  fn LinearToGammaSpace(linRGB0: vec3<f32>) -> vec3<f32> {
28493
28735
  var linRGB = max(linRGB0, vec3(0.0, 0.0, 0.0));
28494
28736
  linRGB.r = pow(linRGB.r,0.416666667);
@@ -28497,30 +28739,35 @@ let FXAAShader = `
28497
28739
  return max(1.055 * linRGB - 0.055, vec3(0.0, 0.0, 0.0));
28498
28740
  }
28499
28741
 
28500
- fn texture2D(uv:vec2<f32>, offset:vec2<f32>) -> vec4<f32> {
28501
- let buffer = textureSample(baseMap, baseMapSampler, uv.xy + offset).rgba;
28502
- return buffer;
28742
+ fn texture2D( uv:vec2<f32> , offset:vec2<f32> ) -> vec4<f32> {
28743
+ let buffer = textureSample(baseMap, baseMapSampler, uv.xy + offset ).rgba ;
28744
+ return buffer ;
28503
28745
  }
28504
28746
 
28505
28747
  @fragment
28506
28748
  fn main(@location(auto) fragUV: vec2<f32>) -> FragmentOutput {
28507
- var v_vTexcoord = fragUV;
28749
+ var v_vTexcoord = fragUV ;
28508
28750
  v_vTexcoord.y = 1.0 - v_vTexcoord.y ;
28751
+
28509
28752
  var reducemul = 1.0 / 8.0;
28510
28753
  var reducemin = 1.0 / 128.0;
28754
+
28511
28755
  var basecol = texture2D(v_vTexcoord , vec2<f32>(0.0)).rgba;
28512
28756
  var baseNW = texture2D(v_vTexcoord , -materialUniform.u_texel).rgb;
28513
28757
  var baseNE = texture2D(v_vTexcoord , vec2<f32>(materialUniform.u_texel.x, -materialUniform.u_texel.y)).rgb;
28514
28758
  var baseSW = texture2D(v_vTexcoord , vec2<f32>(-materialUniform.u_texel.x, materialUniform.u_texel.y)).rgb;
28515
28759
  var baseSE = texture2D(v_vTexcoord , materialUniform.u_texel ).rgb;
28760
+
28516
28761
  var gray = vec3<f32>(0.213, 0.715, 0.072);
28517
28762
  var monocol = dot(basecol.rgb, gray);
28518
28763
  var monoNW = dot(baseNW, gray);
28519
28764
  var monoNE = dot(baseNE, gray);
28520
28765
  var monoSW = dot(baseSW, gray);
28521
28766
  var monoSE = dot(baseSE, gray);
28767
+
28522
28768
  var monomin = min(monocol, min(min(monoNW, monoNE), min(monoSW, monoSE)));
28523
28769
  var monomax = max(monocol, max(max(monoNW, monoNE), max(monoSW, monoSE)));
28770
+
28524
28771
  var dir = vec2<f32>(-((monoNW + monoNE) - (monoSW + monoSE)), ((monoNW + monoSW) - (monoNE + monoSE)));
28525
28772
  var dirreduce = max((monoNW + monoNE + monoSW + monoSE) * reducemul * 0.25, reducemin);
28526
28773
  var dirmin = 1.0 / (min(abs(dir.x), abs(dir.y)) + dirreduce);
@@ -28528,9 +28775,11 @@ let FXAAShader = `
28528
28775
 
28529
28776
  var resultA = 0.5 * (texture2D(v_vTexcoord , dir * -0.166667).rgb +
28530
28777
  texture2D(v_vTexcoord , dir * 0.166667).rgb);
28778
+
28531
28779
  var resultB = resultA * 0.5 + 0.25 * (texture2D( v_vTexcoord , dir * -0.5).rgb +
28532
28780
  texture2D( v_vTexcoord , dir * 0.5).rgb);
28533
28781
  var monoB = dot(resultB.rgb, gray);
28782
+
28534
28783
  var color:vec3<f32> ;
28535
28784
  if(monoB < monomin || monoB > monomax) {
28536
28785
  color = resultA ;//* v_vColour;
@@ -28539,7 +28788,8 @@ let FXAAShader = `
28539
28788
  }
28540
28789
  return FragmentOutput(vec4<f32>(color.rgb,basecol.a));
28541
28790
  }
28542
- `;
28791
+ `
28792
+ );
28543
28793
 
28544
28794
  class FXAAPost extends PostBase {
28545
28795
  postQuad;
@@ -28958,12 +29208,12 @@ let DDGIIrradiance_shader = `
28958
29208
  cornerCoord.x = sideBorderCnt - 1;
28959
29209
  }else{
28960
29210
  cornerCoord.x = 0;
28961
- }
29211
+ };
28962
29212
  if(modeXY.y == 0){
28963
29213
  cornerCoord.y = sideBorderCnt - 1;
28964
29214
  }else{
28965
29215
  cornerCoord.y = 0;
28966
- }
29216
+ };
28967
29217
  cornerCoord = indexXY * sideBorderCnt + cornerCoord;
28968
29218
  textureStore(texture, cornerCoord, color);
28969
29219
  }
@@ -29485,7 +29735,7 @@ fn directShadowMaping(P:vec3<f32>, N:vec3<f32>, shadowBias: f32) {
29485
29735
  }else{
29486
29736
  shadowMatrix = globalUniform.shadowMatrix[shadowIndex];
29487
29737
  visibility = directShadowMapingIndex(light, shadowMatrix, P, N, shadowIndex, shadowBias).x;
29488
- }
29738
+ };
29489
29739
  }
29490
29740
  shadowStrut.directShadowVisibility = visibility;
29491
29741
  }
@@ -29594,7 +29844,7 @@ fn spotLight( albedo:vec3<f32>,WP:vec3<f32>, N:vec3<f32>, V:vec3<f32>, light:Lig
29594
29844
  }
29595
29845
  }else{
29596
29846
  atten = 0.0 ;
29597
- }
29847
+ };
29598
29848
  var lightColor = light.lightColor.rgb ;
29599
29849
  lightColor = getHDRColor(lightColor , light.linear ) * light.intensity / LUMEN * 2.0;
29600
29850
  color = (albedo / PI) * lightColor.rgb * atten ;
@@ -37305,16 +37555,16 @@ let BRDFLUT = `
37305
37555
  return 4.0 * vec2<f32>(A, B) / f32(numSamples);
37306
37556
  }
37307
37557
 
37308
- @group(0) @binding(0) var brdfluTexture: texture_storage_2d<rgba8unorm, write>;
37558
+ @group(0) @binding(0) var brdflutTexture: texture_storage_2d<rgba8unorm, write>;
37309
37559
  @compute @workgroup_size(8,8,1)
37310
- fn CsMain(@builtin(global_invocation_id) workgroup_id: vec3<u32>, @builtin(local_invocation_id) local_invocation_id: vec3<u32>){
37311
- var fragCoord = vec2<u32>(global_invocation_id.x, global_invocation_id.y);
37312
- var fragColor = vec4<f32>(0,0);
37313
- var res = integrateBRDF(f32(fragCoord.y + 1u) / 256.0, f32(fragCoord.x + 1u) / 256.0);
37314
- fragColor = vec4<f32>(res.x, res.y, 0.0, 1.0);
37315
-
37316
- textureStore(brdflutTexture, vec2<i32>(fragCoord.xy), fragColor);
37317
- }
37560
+ fn CsMain(@builtin(global_invocation_id) global_invocation_id : vec3<u32>){
37561
+ var fragCoord = vec2<u32>(global_invocation_id.x, global_invocation_id.y);
37562
+ var fragColor = vec4<f32>(0.0);
37563
+ // Output to screen
37564
+ var res = integrateBRDF(f32(fragCoord.y + 1u) / 256.0, f32(fragCoord.x + 1u) / 256.0);
37565
+ fragColor = vec4<f32>(res.x, res.y, 0.0, 1.0);
37566
+ textureStore(brdflutTexture, vec2<i32>(fragCoord.xy), fragColor);
37567
+ }
37318
37568
  `;
37319
37569
 
37320
37570
  class BRDFLUTGenerate {
@@ -38159,7 +38409,7 @@ class PostProcessingComponent extends ComponentBase {
38159
38409
  }
38160
38410
  }
38161
38411
 
38162
- const version = "1.0.0";
38412
+ const version = "1.0.1";
38163
38413
 
38164
38414
  class Engine3D {
38165
38415
  /**
@@ -39158,7 +39408,7 @@ let GodRay_cs = (
39158
39408
  }else{
39159
39409
  shadowMatrix = globalUniform.shadowMatrix[shadowIndex];
39160
39410
  visibility = directShadowMapingIndex(light, shadowMatrix, P, N, shadowIndex, shadowBias).x;
39161
- }
39411
+ };
39162
39412
  }
39163
39413
  shadowStruct.directShadowVisibility = visibility;
39164
39414
  }
@@ -39363,7 +39613,7 @@ let OutLineBlendColor_cs = (
39363
39613
  blendColor = inColor.xyz + outLineColor.xyz * outLineColor.w;
39364
39614
  }else{
39365
39615
  blendColor = mix(inColor.xyz, outLineColor.xyz, outLineColor.w);
39366
- }
39616
+ };
39367
39617
  textureStore(outlineTex, fragCoord, vec4<f32>(blendColor, inColor.w));
39368
39618
  }
39369
39619
  `
@@ -40091,7 +40341,7 @@ let SSGI2_cs = (
40091
40341
 
40092
40342
  }else{
40093
40343
  Output = vec4f(wColor.xyz, 1.0);
40094
- }
40344
+ };
40095
40345
 
40096
40346
  return Output;
40097
40347
  }
@@ -40360,12 +40610,12 @@ struct SSRUniformData {
40360
40610
  }
40361
40611
  }else{
40362
40612
  rayTraceRet.alpha = 0.0;
40363
- }
40613
+ };
40364
40614
  rayTraceRet.skyColor = getSkyColor();
40365
40615
  }else{
40366
40616
  rayTraceRet.alpha = -1.0;
40367
40617
  rayTraceRet.skyColor = vec3<f32>(0.0);
40368
- }
40618
+ };
40369
40619
 
40370
40620
  rayTraceRet.roughness = roughness;
40371
40621
  rayTraceRet.fresnel = fresnel;
@@ -40517,7 +40767,7 @@ struct SSRUniformData {
40517
40767
  hitData.hitCoord = uv;
40518
40768
  return 1;
40519
40769
  }
40520
- }
40770
+ };
40521
40771
  }
40522
40772
  return 0;
40523
40773
  }
@@ -40669,7 +40919,7 @@ fn blendColor() -> vec4<f32>{
40669
40919
  preCoord = vec2<i32>(reProjectionCoord);
40670
40920
  }else{
40671
40921
  mixWeight = 1.0;
40672
- }
40922
+ };
40673
40923
  }
40674
40924
 
40675
40925
  var curUV01 = fragUV;
@@ -40742,7 +40992,7 @@ fn minmax4(coord:vec2<i32>) {
40742
40992
  return vec4<f32>(p_clip, color_avg.w) + v_clip / ma_unit;
40743
40993
  }else{
40744
40994
  return input_texel;
40745
- }
40995
+ };
40746
40996
  }
40747
40997
  `
40748
40998
  );
@@ -41231,7 +41481,7 @@ fn containsBox( size:vec3<f32> , center:vec3<f32> ) -> f32 {
41231
41481
  return 2.0 ;
41232
41482
  }else{
41233
41483
  return 1.0 ;
41234
- }
41484
+ };
41235
41485
  }
41236
41486
 
41237
41487
  @compute @workgroup_size(128)
@@ -41986,11 +42236,13 @@ let PBRLitSSSShader = (
41986
42236
  );
41987
42237
 
41988
42238
  let UnLitTextureArray = (
41989
- /*wgsl */
42239
+ /*wgsl*/
41990
42240
  `
42241
+ // #include "Common_vert"
41991
42242
  #include "Common_frag"
41992
42243
  #include "UnLit_frag"
41993
42244
  #include "UnLitMaterialUniform_frag"
42245
+
41994
42246
  #include "WorldMatrixUniform"
41995
42247
  #include "VertexAttributeIndexShader"
41996
42248
  #include "GlobalUniform"
@@ -41998,8 +42250,8 @@ let UnLitTextureArray = (
41998
42250
  #include "EnvMap_frag"
41999
42251
  #include "ColorUtil_frag"
42000
42252
 
42001
- const DEGREES_TO_RADIANS: f32 = 3.1415926 / 180.0;
42002
- const PI: f32 = 3.1415926;
42253
+ const DEGREES_TO_RADIANS : f32 = 3.1415926 / 180.0 ;
42254
+ const PI : f32 = 3.1415926 ;
42003
42255
 
42004
42256
  #if USE_CUSTOMUNIFORM
42005
42257
  struct MaterialUniform {
@@ -42010,15 +42262,19 @@ let UnLitTextureArray = (
42010
42262
  };
42011
42263
  #endif
42012
42264
 
42013
- @group(1) @binding(0) var baseMapSampler: sampler;
42014
- @group(1) @binding(1) var baseMap: texture_2d_array<f32>;
42015
- @group(2) @binding(5) var<storage,read> graphicBuffer: array<GraphicNodeStruct>;
42265
+ @group(1) @binding(0)
42266
+ var baseMapSampler: sampler;
42267
+ @group(1) @binding(1)
42268
+ var baseMap: texture_2d_array<f32>;
42016
42269
 
42270
+ @group(2) @binding(5)
42271
+ var<storage,read> graphicBuffer : array<GraphicNodeStruct>;
42272
+
42017
42273
  @vertex
42018
- fn VertMain(vertex: VertexAttributes) -> VertexOutput {
42274
+ fn VertMain( vertex:VertexAttributes ) -> VertexOutput {
42019
42275
  vertex_inline(vertex);
42020
42276
  vert(vertex);
42021
- return ORI_VertexOut;
42277
+ return ORI_VertexOut ;
42022
42278
  }
42023
42279
 
42024
42280
  fn vert(inputData:VertexAttributes) -> VertexOutput {
@@ -42029,9 +42285,15 @@ let UnLitTextureArray = (
42029
42285
  fn frag(){
42030
42286
  var transformUV1 = materialUniform.transformUV1;
42031
42287
  var transformUV2 = materialUniform.transformUV2;
42288
+
42289
+ // var irradiance = vec3<f32>(0.0) ;
42290
+ // let MAX_REFLECTION_LOD = f32(textureNumLevels(prefilterMap)) ;
42291
+ // irradiance += (globalUniform.skyExposure * textureSampleLevel(prefilterMap, prefilterMapSampler, ORI_VertexVarying.vWorldNormal.xyz, 0.8 * (MAX_REFLECTION_LOD) ).rgb);
42292
+
42032
42293
  graphicNode = graphicBuffer[u32(round(ORI_VertexVarying.index))];
42033
42294
 
42034
42295
  var uv = transformUV1.zw * ORI_VertexVarying.fragUV0 + transformUV1.xy;
42296
+ //The fragUV1.x is 1.0 when the vertex belongs to line.
42035
42297
  if(ORI_VertexVarying.fragUV1.x > 0.5){
42036
42298
  uv = graphicNode.uvRect2.zw * uv.xy + graphicNode.uvRect2.xy;
42037
42299
  uv += graphicNode.uvSpeed.zw * globalUniform.time;
@@ -42047,7 +42309,7 @@ let UnLitTextureArray = (
42047
42309
  );
42048
42310
  uv = (zrot * vec3f(uv, 0.0)).xy;
42049
42311
  }
42050
- }
42312
+ };
42051
42313
  var graphicTextureID = graphicNode.texIndex;
42052
42314
  var graphicNodeColor = graphicNode.baseColor;
42053
42315
  if(ORI_VertexVarying.fragUV1.x > 0.5){
@@ -42055,12 +42317,23 @@ let UnLitTextureArray = (
42055
42317
  graphicNodeColor = graphicNode.lineColor;
42056
42318
  }
42057
42319
  var color = textureSample(baseMap,baseMapSampler,uv, u32(round(graphicTextureID)) ) * materialUniform.baseColor * graphicNodeColor ;
42058
- color += graphicNode.emissiveColor;
42320
+ // let color = textureSample(baseMap,baseMapSampler,uv, u32(round(ORI_VertexVarying.index)));
42321
+
42322
+ // ORI_ViewDir = normalize( globalUniform.CameraPos.xyz - ORI_VertexVarying.vWorldPos.xyz);
42323
+ // let att = dot( ORI_ViewDir , ORI_VertexVarying.vWorldNormal.xyz );
42324
+
42325
+ // irradiance = LinearToGammaSpace(irradiance.rgb) * color.rgb ;//* att ;
42326
+
42327
+ color += graphicNode.emissiveColor ;
42059
42328
  if(color.w < materialUniform.alphaCutoff){
42060
- discard;
42329
+ discard ;
42061
42330
  }
42062
- let outColor = vec4f( color.rgb , 1.0 ) * materialUniform.baseColor;
42063
- ORI_ShadingInput.BaseColor = vec4f(outColor.xyz,1.0);
42331
+
42332
+ // let outColor = vec4f( color.rgb * (att * 0.5 + 0.5 ) , 1.0 ) * materialUniform.baseColor ;
42333
+ let outColor = vec4f( color.rgb , 1.0 ) * materialUniform.baseColor ;
42334
+
42335
+ // ORI_ShadingInput.BaseColor = color ;
42336
+ ORI_ShadingInput.BaseColor = vec4f(outColor.xyz,1.0) ;
42064
42337
  UnLit();
42065
42338
  }
42066
42339
  `
@@ -42195,7 +42468,7 @@ let GlobalFog_shader = (
42195
42468
  let sunLight = lightBuffer[0] ;
42196
42469
  var inScatteringValue = inScatterIng(sunLight.direction, texPosition.xyz, sunLight.lightColor);
42197
42470
  opColor += inScatteringValue;
42198
- }
42471
+ };
42199
42472
 
42200
42473
  textureStore(outTex, fragCoord , vec4<f32>(opColor.xyz, texColor.a));
42201
42474
  }
@@ -47646,7 +47919,7 @@ class GUIShader {
47646
47919
  s = border.x + (s / centerPartMax) * centerPartMin;
47647
47920
  }else{
47648
47921
  s = s - centerPartMax + border.x + centerPartMin;
47649
- }
47922
+ };
47650
47923
  }
47651
47924
  return s;
47652
47925
  }
@@ -47798,12 +48071,12 @@ class GUIShader {
47798
48071
  ret.x = quad.x;
47799
48072
  }else{
47800
48073
  ret.x = quad.z;
47801
- }
48074
+ };
47802
48075
  if(index == 0 || index == 1){
47803
48076
  ret.y = quad.w;
47804
48077
  }else{
47805
48078
  ret.y = quad.y;
47806
- }
48079
+ };
47807
48080
  return ret;
47808
48081
  }
47809
48082
  `