@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
@@ -4000,511 +4000,559 @@
4000
4000
  `;
4001
4001
 
4002
4002
  class CubeSky_Shader {
4003
- static sky_vs_frag_wgsl = `
4004
- #include "WorldMatrixUniform"
4005
- #include "GlobalUniform"
4003
+ static sky_vs_frag_wgsl = (
4004
+ /* wgsl */
4005
+ `
4006
+ #include "WorldMatrixUniform"
4007
+ #include "GlobalUniform"
4006
4008
 
4007
- struct VertexOutput {
4008
- @location(auto) fragUV: vec2<f32>,
4009
- @location(auto) vClipPos: vec4<f32>,
4010
- @location(auto) vWorldPos: vec4<f32>,
4011
- @location(auto) vWorldNormal: vec3<f32>,
4012
- @builtin(position) member: vec4<f32>
4013
- };
4009
+ struct VertexOutput {
4010
+ @location(auto) fragUV: vec2<f32>,
4011
+ @location(auto) vClipPos: vec4<f32>,
4012
+ @location(auto) vWorldPos: vec4<f32>,
4013
+ @location(auto) vWorldNormal: vec3<f32>,
4014
+ @builtin(position) member: vec4<f32>
4015
+ };
4014
4016
 
4015
- var<private> ORI_VertexOut: VertexOutput;
4017
+ var<private> ORI_VertexOut: VertexOutput ;
4016
4018
 
4017
- @vertex
4018
- fn main {
4019
- @builtin(instance_index) index: u32,
4020
- @location(auto) position: vec3<f32>,
4021
- @location(auto) normal: vec3<f32>,
4022
- @location(auto) uv: vec2<f32>
4023
- } -> VertexOutput {
4024
- ORI_VertexOut.fragUV = uv;
4025
- let modelMat = models.matrix[u32(index)];
4026
- let vm = modelMat;
4027
- let normalMatrix = mat3x3<f32>(vm[0].xyz,vm[1].xyz,vm[2].xyz);
4028
- ORI_VertexOut.vWorldNormal = normalize(normalMatrix * normal);
4029
- ORI_VertexOut.vWorldPos = modelMat * vec4<f32>(position.xyz, 1.0);
4030
-
4031
- var fixProjMat = globalUniform.projMat;
4032
- fixProjMat[2].z = 1.0;
4033
- fixProjMat[3].z = -1.0;
4019
+ @vertex
4020
+ fn main(
4021
+ @builtin(instance_index) index : u32,
4022
+ @location(auto) position: vec3<f32>,
4023
+ @location(auto) normal: vec3<f32>,
4024
+ @location(auto) uv: vec2<f32>
4025
+ ) -> VertexOutput {
4026
+ ORI_VertexOut.fragUV = uv;
4027
+ let modelMat = models.matrix[u32(index)];
4028
+ let vm = modelMat;
4029
+ let normalMatrix = mat3x3<f32>(vm[0].xyz,vm[1].xyz,vm[2].xyz);
4030
+ ORI_VertexOut.vWorldNormal = normalize( normalMatrix * normal );
4031
+ ORI_VertexOut.vWorldPos = modelMat * vec4<f32>(position.xyz,1.0) ;
4032
+
4033
+ var fixProjMat = globalUniform.projMat ;
4034
+ fixProjMat[2].z = 1.0 ;//99999.0 / (99999.0 - 1.0) ;
4035
+ fixProjMat[3].z = -1.0 ;//(-1.0 * 99999.0) / (99999.0 - 1.0) ;
4034
4036
 
4035
- var fixViewMat = globalUniform.viewMat;
4036
- fixViewMat[3].x = 0.0;
4037
- fixViewMat[3].y = 0.0;
4038
- fixViewMat[3].z = 0.0;
4037
+ var fixViewMat = globalUniform.viewMat ;
4038
+ fixViewMat[3].x = 0.0 ;
4039
+ fixViewMat[3].y = 0.0 ;
4040
+ fixViewMat[3].z = 0.0 ;
4039
4041
 
4040
- var clipPos = fixProjMat * fixViewMat * ORI_VertexOut.vWorldPos;
4041
- ORI_VertexOut.vClipPos = clipPos;
4042
- ORI_VertexOut.member = clipPos;
4043
- return ORI_VertexOut;
4044
- }
4045
- `;
4046
- static sky_fs_frag_wgsl = `
4047
- #include "GlobalUniform"
4048
- #include "MathShader"
4049
- #include "BitUtil"
4050
- #include "ColorUtil_frag"
4051
- #include "FragmentOutput"
4042
+ var clipPos = fixProjMat * fixViewMat * ORI_VertexOut.vWorldPos;
4043
+ ORI_VertexOut.vClipPos = clipPos ;
4044
+ ORI_VertexOut.member = clipPos;
4045
+ return ORI_VertexOut;
4046
+ }
4047
+ `
4048
+ );
4049
+ static sky_fs_frag_wgsl = (
4050
+ /* wgsl */
4051
+ `
4052
+ #include "GlobalUniform"
4053
+ #include "MathShader"
4054
+ #include "BitUtil"
4055
+ #include "ColorUtil_frag"
4056
+ #include "FragmentOutput"
4052
4057
 
4053
- struct uniformData {
4054
- exposure: f32,
4055
- roughness: f32
4056
- }
4058
+ struct uniformData {
4059
+ exposure: f32,
4060
+ roughness: f32
4061
+ };
4057
4062
 
4058
- @group(1) @binding(0)
4059
- var baseMapSampler: sampler;
4060
- @group(1) @binding(1)
4061
- var baseMap: texture_cube<f32>;
4063
+ @group(1) @binding(0)
4064
+ var baseMapSampler: sampler;
4065
+ @group(1) @binding(1)
4066
+ var baseMap: texture_cube<f32>;
4062
4067
 
4063
- @group(2) @binding(0)
4064
- var<uniform> global: uniformData;
4068
+ @group(2) @binding(0)
4069
+ var<uniform> global: uniformData;
4065
4070
 
4066
- @fragment
4067
- 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 {
4068
- let maxLevel: u32 = textureNumLevels(baseMap);
4069
- let dir = normalize(vWorldPos.xyz);
4070
- var textureColor: vec3<f32> = textureSampleLevel(baseMap, baseMapSampler, normalize(dir.xyz), global.roughness * f32(maxLevel)).xyz;
4071
- #if IS_HDR_SKY
4072
- textureColor = LinearToGammaSpace(textureColor);
4073
- #endif
4071
+ @fragment
4072
+ 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 {
4073
+ let maxLevel: u32 = textureNumLevels(baseMap);
4074
+ let dir = normalize(vWorldPos.xyz);
4075
+ var textureColor:vec3<f32> = textureSampleLevel(baseMap, baseMapSampler, normalize(dir.xyz), global.roughness * f32(maxLevel) ).xyz;
4076
+ #if IS_HDR_SKY
4077
+ textureColor = LinearToGammaSpace(textureColor);
4078
+ #endif
4074
4079
 
4075
- let o_Target: vec4<f32> = vec4<f32>(textureColor, 1.0) * globalUniform.skyExposure;
4076
- let finalMatrix = globalUniform.projMat * globalUniform.viewMat;
4077
- let nMat = mat3x3<f32>(finalMatrix[0].xyz, finalMatrix[1].xyz, finalMatrix[2].xyz);
4078
- let ORI_NORMALMATRIX = transpose(inverse(nMat));
4080
+ // let o_Target: vec4<f32> = globalUniform.hdrExposure * vec4<f32>(textureColor, 1.0) * globalUniform.skyExposure ;
4081
+ let o_Target: vec4<f32> = vec4<f32>(textureColor, 1.0) * globalUniform.skyExposure;
4082
+ let finalMatrix = globalUniform.projMat * globalUniform.viewMat ;
4083
+ let nMat = mat3x3<f32>(finalMatrix[0].xyz,finalMatrix[1].xyz,finalMatrix[2].xyz) ;
4084
+ let ORI_NORMALMATRIX = transpose(inverse( nMat ));
4085
+
4086
+ var vNormal = (ORI_NORMALMATRIX * -vWorldNormal );
4087
+ var gBuffer = packGBuffer(
4088
+ -globalUniform.far,
4089
+ vec3f(0.0),
4090
+ o_Target.rgb,
4091
+ vec3f(0.0),
4092
+ vNormal
4093
+ ) ;
4094
+ var fragmentOutput:FragmentOutput;
4095
+ #if USE_CASTREFLECTION
4096
+ fragmentOutput.gBuffer = gBuffer ;
4097
+ #else
4098
+ fragmentOutput.color = o_Target ;
4099
+ fragmentOutput.gBuffer = gBuffer ;
4100
+ #endif
4101
+ return fragmentOutput;
4102
+ }
4079
4103
 
4080
- var vNormal = (ORI_NORMALMATRIX - vWorldNormal);
4081
- var gBuffer = packGBuffer(
4082
- -globalUniform.far,
4083
- vec3f(0.0),
4084
- o_Target.rgb,
4085
- vec3f(0.0),
4086
- vNormal
4087
- );
4104
+ fn packGBuffer(depth:f32, albedo:vec3f,hdrLighting:vec3f,rmao:vec3f,normal:vec3f) -> vec4f{
4105
+ var gBuffer : vec4f ;
4106
+ var octUVNormal = (octEncode(normalize(normal)) + 1.0) * 0.5 ;
4088
4107
 
4089
- var fragmentOutput: FragmentOutput;
4090
- #if USE_CASTREFLECTION
4091
- fragmentOutput.gBuffer = gBuffer;
4092
- #else
4093
- fragmentOutput.color = o_Target;
4094
- fragmentOutput.gBuffer = gBuffer;
4095
- #endif
4096
- return fragmentOutput;
4097
- }
4108
+ var yc = f32(r11g11b9_to_float(vec3f(octUVNormal,0.0))) ;
4109
+ #if USE_CASTREFLECTION
4110
+ var rgbm = EncodeRGBM(hdrLighting);
4111
+ var zc = f32(pack4x8unorm(vec4f(rgbm.rgb,0.0))) ;
4112
+ var wc = f32(pack4x8unorm(vec4f(rmao.rg,rgbm.a,0.0)));
4113
+ #else
4114
+ var zc = f32(vec4fToFloat_7bits(vec4f(albedo.rgb,0.0)));
4115
+ var wc = f32(r22g8_to_float(vec2f(f32(0.0),rmao.g)));
4116
+ #endif
4117
+
4118
+ gBuffer.x = depth ;
4119
+ gBuffer.y = yc ;
4120
+ gBuffer.z = zc ;
4121
+ gBuffer.w = wc ;
4122
+ return gBuffer ;
4123
+ }
4124
+ `
4125
+ );
4126
+ }
4098
4127
 
4099
- fn packGBuffer(depth:f32, albedo:vec3f, hdrLighting:vec3f, ramo:vec3f, normal:vec3f) -> vec4f{
4100
- var gBuffer: vec4f;
4101
- var octUVNormal = (octEncode(normalize(normal)) + 1.0) * 0.5;
4102
- var yc = f32(r11g11b9_to_float(vec3f(octUVNormal,0.0)));
4103
-
4104
- #if USE_CASTREFLECTION
4105
- var rgbm = EncodeRGBM(hdrLighting);
4106
- var zc = f32(pack4x8unorm(vec4f(rgbm.rgb,0.0)));
4107
- var wc = f32(pack4x8unorm(vec4f(rmao.rg,rgbm.a,0.0)));
4108
- #else
4109
- var zc = f32(vec4ToFloat_7bits(vec4f(albedo.rgb,0.0)));
4110
- var wc = f32(r22g8_to_float(vec2f(f32(0.0),rmao.g)))
4111
- #endif
4128
+ let LightingFunction_frag = (
4129
+ /*wgsl*/
4130
+ `
4131
+ #include "BRDF_frag"
4132
+ #include "ClusterLight"
4133
+ #include "ShadowMapping_frag"
4112
4134
 
4113
- gBuffer.x = depth;
4114
- gBuffer.y = yc;
4115
- gBuffer.z = zc;
4116
- gBuffer.w = wc;
4117
- return gBuffer;
4118
- }
4119
- `;
4120
- }
4135
+ #if USE_IES_PROFILE
4136
+ #include "IESProfiles_frag"
4137
+ #endif
4121
4138
 
4122
- let LightingFunction_frag = `
4123
- #include "BRDF_frag"
4124
- #include "ClusterLight"
4125
- #include "ShadowMapping_frag"
4139
+ const PI2 = 3.1415926 * 3.1415926 ;
4126
4140
 
4127
- #if USE_IES_PROFILE
4128
- #include "IESProfiles_frag"
4129
- #endif
4141
+ fn sampleLighting(light:LightData,direction:vec3f,iblSpecularResult:vec3f , intensity :f32 , shadow:f32 ) -> vec3f{
4142
+ var ret = vec3f(0.0);
4143
+ var normalDir = fragData.N;
4144
+ var viewDir = fragData.V;
4130
4145
 
4131
- const PI2 = 3.1415926 * 3.1415926;
4132
-
4133
- fn sampleLighting(light:LightData, direction:vec3f, iblSpecularResult:vec3f, intensity: f32, shadow: f32) -> vec3f {
4134
- var ret = vec3f(0.0);
4135
- var normalDir = fragData.N;
4136
- var viewDir = fragData.V;
4137
- var lightDir = normalize(-direction.xyz);
4138
- var halfDir = normalize(lightDir + viewDir);
4139
- var reflectDir = normalize(reflect(-viewDir,normalDir));
4140
- var NdotH = max(0.00001,dot(normalDir,halfDir));
4141
- var NdotL = max(0.00001,dot(normalDir,lightDir));
4142
- var NdotV = max(0.00001,dot(normalDir,viewDir));
4143
- var HdotL = max(0.00001,dot(halfDir,lightDir));
4144
- var baseColor = fragData.Albedo.rgb ;
4145
- var metallic = fragData.Metallic;
4146
- var roughness = fragData.Roughness;
4147
- var lightColor = getHDRColor( light.lightColor.rgb , light.linear ) ;
4148
- var att = max(0.0,intensity);
4149
- var lighting:vec3f = lightContribution(NdotH,NdotL,NdotV,HdotL,fragData.Roughness,fragData.Albedo.rgb / 3.14, metallic ,shadow,fragData.F0,lightColor.rgb);
4150
- lighting = ACESToneMapping(lighting,att);
4151
- return lighting;
4152
- }
4153
-
4154
- fn directLighting(light: LightData, ibSpecularResult: vec3f) -> vec3f<f32> {
4155
- var color = vec3<f32>(0.0);
4156
- #if USE_LIGHT
4157
- var L = normalize(light.direction.xyz);
4158
- #if USE_BRDF
4159
- var shadow = directShadowVisibility[(light.castShadow)];
4160
- var att = light.intensity;
4161
- color = sampleLighting(light,L,iblSpecularResult,att,shadow);
4162
- #endif
4146
+ var lightDir = normalize(-direction.xyz);
4147
+ var halfDir = normalize(lightDir + viewDir);
4148
+ var reflectDir = normalize(reflect(-viewDir,normalDir));
4149
+
4150
+ var NdotH = max(0.00001,dot(normalDir,halfDir));
4151
+ var NdotL = max(0.00001,dot(normalDir,lightDir));
4152
+ var NdotV = max(0.00001,dot(normalDir,viewDir));
4153
+ var HdotL = max(0.00001,dot(halfDir,lightDir));
4154
+
4155
+ var baseColor = fragData.Albedo.rgb ;
4156
+ var metallic = fragData.Metallic ;
4157
+ var roughness = fragData.Roughness ;
4158
+
4159
+ var lightColor = getHDRColor( light.lightColor.rgb , light.linear ) ;
4160
+ var att = max(0.0,intensity);
4161
+
4162
+ var lighting:vec3f = lightContribution(NdotH,NdotL,NdotV,HdotL,fragData.Roughness,fragData.Albedo.rgb / 3.14, metallic ,shadow,fragData.F0,lightColor.rgb);
4163
+
4164
+ lighting = ACESToneMapping(lighting,att);
4165
+ return lighting ;
4166
+ }
4167
+
4168
+ fn directLighting( light:LightData , iblSpecularResult : vec3f) -> vec3<f32> {
4169
+ var color = vec3<f32>(0.0) ;
4170
+ #if USE_LIGHT
4171
+ var L = normalize(light.direction.xyz) ;
4172
+ #if USE_BRDF
4173
+ var shadow = directShadowVisibility[(light.castShadow)] ;
4174
+ var att = light.intensity;
4175
+ color = sampleLighting(light,L,iblSpecularResult,att, shadow);
4176
+ #endif
4177
+ #endif
4178
+ return color;
4179
+ }
4180
+
4181
+ fn directDulLighting( albedo:vec3<f32>, N:vec3<f32>, V:vec3<f32>, roughness:f32 , metallic:f32 , light:LightData , shadowBias:f32 ) -> vec3<f32> {
4182
+ var color = vec3<f32>(0.0) ;
4183
+ #if USE_LIGHT
4184
+ var L = -normalize(light.direction.xyz) ;
4185
+ let lightCC = pow( light.lightColor.rgb,vec3<f32>(2.2));
4186
+ var lightColor = getHDRColor( lightCC.rgb , light.linear ) ;
4187
+ var att = light.intensity;
4188
+ if(light.castShadow>=0){
4189
+ #if USE_SHADOWMAPING
4190
+ for (var j: i32 = 0; j < 8; j += 1) {
4191
+ if(j == light.castShadow){
4192
+ att *= directShadowVisibility[j] ;
4193
+ }
4194
+ }
4163
4195
  #endif
4164
- return color;
4165
4196
  }
4197
+ #if USE_LAMBERT
4198
+ color = vec3<f32>(1.0,1.0,1.0) ;
4199
+ #endif
4200
+
4201
+ #if USE_BRDF
4202
+ color = 0.85 * simpleBRDF(albedo,N,V,L,att,lightColor,0.85 * roughness,metallic) ;
4203
+ color += 0.15 * simpleBRDF(albedo,N,V,L,att,lightColor,0.15 * roughness,metallic) ;
4204
+ #endif
4205
+ #endif
4206
+ return color;
4207
+ }
4166
4208
 
4167
- fn directDulLighting(albedo:vec3<f32>, N:vec3<f32>, V:vec3<f32>, roughness:f32 , metallic:f32 , light:LightData , shadowBias:f32) -> vec3<f32> {
4168
- var color = vec3<f32>(0.0);
4169
- #if USE_LIGHT
4170
- var L = -normalize(light.direction.xyz);
4171
- let lightCC = pow(light.lightColor.rgb, vec3<f32>(2.2));
4172
- var lightColor = getHDRColor(lightCC.rgb, light.linear);
4173
- var att = light.intensity;
4174
- if(light.castShadow>=0){
4175
- #if USE_SHADOWMAPING
4176
- for(var j: i32 = 0; j < 8; j+=1){
4177
- if(j == light.castShadow){
4178
- att *= directShadowVisibility[j];
4179
- }
4180
- }
4181
- #endif
4182
- }
4183
- #if USE_LAMBERT
4184
- color = vec3<f32>(1.0,1.0,1.0);
4209
+ fn directHairLighting( albedo:vec3<f32>, N:vec3<f32>, V:vec3<f32>, roughness:f32 , metallic:f32 , light:LightData , shadowBias:f32 ) -> vec3<f32> {
4210
+ var color = vec3<f32>(0.0) ;
4211
+ #if USE_LIGHT
4212
+ var L = -normalize(light.direction.xyz) ;
4213
+ let lightCC = pow( light.lightColor.rgb,vec3<f32>(2.2));
4214
+ var lightColor = getHDRColor( lightCC.rgb , light.linear ) ;
4215
+ var att = light.intensity;
4216
+ if(light.castShadow>=0){
4217
+ #if USE_SHADOWMAPING
4218
+ for (var j: i32 = 0; j < 8; j += 1) {
4219
+ if(j == light.castShadow){
4220
+ att *= directShadowVisibility[j] ;
4221
+ }
4222
+ }
4185
4223
  #endif
4224
+ }
4225
+ #if USE_LAMBERT
4226
+ color = vec3<f32>(1.0,1.0,1.0) ;
4227
+ #endif
4228
+
4229
+ #if USE_BRDF
4230
+ color = 0.5 * simpleBRDF(albedo,N,V,L,att,lightColor,0.85 ,metallic) ;
4231
+ color += 0.5 * simpleBRDF(albedo,N,V,L,att,lightColor,0.15 ,metallic) ;
4232
+ #endif
4233
+ #endif
4234
+ return color;
4235
+ }
4186
4236
 
4187
- #if USE_BRDF
4188
- color = 0.85 * simpleBRDF(albedo,N,V,L,att,lightColor,0.85 * roughness,metallic);
4189
- color += 0.15 * simpleBRDF(albedo,N,V,L,att,lightColor,0.15 * roughness,metallic);
4190
- #endif
4191
- #endif
4192
- return color;
4237
+
4238
+ fn pointLighting( WP:vec3<f32>, light:LightData , iblSpecularResult : vec3f ) -> vec3<f32> {
4239
+ var color = vec3<f32>(0.0) ;
4240
+ let lightPos = light.position.xyz;
4241
+ var dir = lightPos.xyz - WP ;
4242
+ let dist = length(dir);
4243
+ if(dist != 0.0){
4244
+ dir *= 1.0 / dist ;
4193
4245
  }
4246
+ if( abs(dist) < light.range ){
4247
+ var L = dir ;
4248
+ var atten = 1.0 ;
4249
+ atten = 1.0 - smoothstep(0.0,light.range,dist) ;
4250
+ atten *= 1.0 / max(light.radius,0.001) ;
4194
4251
 
4195
- fn directHairLighting ( albedo:vec3<f32>, N:vec3<f32>, V:vec3<f32>, roughness:f32 , metallic:f32 , light:LightData , shadowBias:f32 ) -> vec3<f32> {
4196
- var color = vec3<f32>(0.0);
4197
- #if USE_LIGHT
4198
- var L = -normalize(light.direction.xyz);
4199
- let lightCC = pow( light.lightColor.rgb, vec3<f32>(2.2) );
4200
- var lightColor = getHDRColor(lightCC.rgb, light.linear);
4201
- var att = light.intensity;
4202
- if(light.castShadow>=0){
4203
- #if USE_SHADOWMAPING
4204
- for (var j: i32 = 0; j < 8; j += 1) {
4205
- if(j == light.castShadow){
4206
- att *= directShadowVisibility[j];
4207
- }
4208
- }
4209
- #endif
4210
- }
4211
- #if USE_LAMBERT
4212
- color = vec3<f32>(1.0,1.0,1.0) ;
4252
+ var shadow = pointShadows[i32(light.castShadow)] ;
4253
+
4254
+ #if USE_IES_PROFILE
4255
+ atten *= getLightIESProfileAtt(WP,light);
4213
4256
  #endif
4214
4257
 
4215
- #if USE_BRDF
4216
- color = 0.5 * simpleBRDF(albedo,N,V,L,att,lightColor,0.85 ,metallic) ;
4217
- color += 0.5 * simpleBRDF(albedo,N,V,L,att,lightColor,0.15 ,metallic) ;
4218
- #endif
4219
- #endif
4220
- return color
4221
- }
4258
+ atten *= sphere_unit(light.range,light.intensity) ;
4222
4259
 
4223
- fn pointLighting ( WP: vec3<f32>, light: LightData, iblSpecularResult: vec3f ) -> vec3f<f32> {
4224
- var color = vec3<f32>(0.0);
4225
- let lightPos = light.position.xyz;
4226
- var dir = lightPos.xyz - WP;
4227
- let dist = length(dir);
4228
- if(dist != 0.0){
4229
- dir *= 1.0 / dist;
4230
- }
4231
- if(abs(dist) < light.range){
4232
- var L = dir;
4233
- var atten = 1.0;
4234
- atten = 1.0 - smoothstep(0.0, light.range, dist);
4235
- atten *= 1.0 / max(light.radius, 0.001);
4236
- var shadow = pointShadows[i32(light.castShadow)];
4237
-
4238
- #if USE_IES_PROFILE
4239
- atten *= getLightIESProfileAtt(WP, light);
4240
- #endif
4260
+ color = sampleLighting(light,-L,iblSpecularResult,atten,shadow);
4261
+ }
4262
+ return color ;
4263
+ }
4241
4264
 
4242
- atten *= sphere_unit(light.range, light.intensity);
4243
- color = sampleLighting(light, -L, iblSpecularResult, atten, shadow);
4244
- }
4245
- return color;
4246
- }
4265
+ fn pointAtt( WP:vec3<f32>, light:LightData ) -> f32 {
4266
+ var atten = 0.0 ;
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 ;
4272
+ }
4273
+ if( abs(dist) < light.range ){
4274
+ var L = dir ;
4275
+ atten = 1.0 - smoothstep(0.0,light.range,dist) ;
4276
+ atten *= 1.0 / max(light.radius,0.001) ;
4277
+ var shadow = pointShadows[i32(light.castShadow)] ;
4278
+ #if USE_IES_PROFILE
4279
+ atten *= getLightIESProfileAtt(WP,light);
4280
+ #endif
4281
+ atten *= sphere_unit(light.range,light.intensity) ;
4282
+ }
4283
+ return atten ;
4284
+ }
4247
4285
 
4248
- fn pointAtt(WP:vec3<f32>, light:LightData) -> f32 {
4249
- var atten = 0.0;
4250
- let lightPos = light.position.xyz;
4251
- var dir = lightPos.xyz - WP;
4252
- let dist = length(dir);
4253
- if(dist != 0.0){
4254
- dir *= 1.0 / dist;
4255
- }
4256
- if(abs(dist) < light.range){
4257
- var L = dir;
4258
- atten = 1.0 - smoothstep(0.0, light.range, dist);
4259
- atten *= 1.0 / max(light.radius, 0.001);
4260
- var shadow = pointShadows[i32(light.castShadow)];
4261
- #if USE_IES_PROFILE
4262
- atten *= getLightIESProfileAtt(WP, light);
4263
- #endif
4264
- atten *= sphere_unit(light.range, light.intensity);
4265
- }
4266
- return atten;
4267
- }
4286
+ fn getDistanceAtten( light:LightData , dist : f32 ) -> f32 {
4287
+ return 1.0 - smoothstep(0.0,light.range,dist) ;
4288
+ }
4268
4289
 
4269
- fn getDistanceAtten(light:LightData, dist:f32) -> f32 {
4270
- return 1.0 - smoothstep(0.0, light.range, dist);
4290
+ fn spotLighting( WP:vec3<f32>, light:LightData , iblSpecularResult : vec3f) -> vec3<f32> {
4291
+ let lightPos = light.position.xyz;
4292
+ var dir = lightPos.xyz - WP ;
4293
+ let dist = length(dir) ;
4294
+ if(dist != 0.0){
4295
+ dir *= 1.0 / dist ;
4271
4296
  }
4272
4297
 
4273
- fn spotLighting(WP:vec3<f32>, light:LightData, iblSpecularResult: vec3f) -> vec3f<f32> {
4274
- let lightPos = light.position.xyz;
4275
- var dir = lightPos.xyz - WP;
4276
- let dist = length(dir);
4277
- if(dist != 0.0){
4278
- dir *= 1.0 / dist
4298
+ var color = vec3<f32>(0.0) ;
4299
+ if( abs(dist) < light.range * 2.0 ){
4300
+ var L = dir ;
4301
+ let theta = dot(-L, normalize(light.direction));
4302
+ let angle = acos(theta) ;
4303
+ var atten = 1.0 ;
4304
+ var lightColor = light.lightColor.rgb ;
4305
+
4306
+ atten = 1.0 - smoothstep(0.0,light.range,dist) ;
4307
+ atten *= 1.0 / max(light.radius,0.001) ;
4308
+ if(angle < light.outerCutOff){
4309
+ if(angle > light.innerCutOff){
4310
+ atten *= 1.0 - smoothstep(light.innerCutOff, light.outerCutOff, angle) ;
4311
+ }
4312
+ }else{
4313
+ atten = 0.0 ;
4279
4314
  }
4280
4315
 
4281
- var color = vec3<f32>(0.0);
4282
- if(abs(dist) < light.range * 2.0){
4283
- var L = dir;
4284
- let theta = dot(-L, normalize(light.direction));
4285
- let angle = acos(theta);
4286
- var atten = 1.0;
4287
- var lightColor = light.lightColor.rgb;
4288
-
4289
- atten = 1.0 - smoothstep(0.0, light.range, dist);
4290
- atten *= 1.0 / max(light.radius, 0.001);
4291
- if(angle < light.outerCutOff){
4292
- if(angle > light.innerCutOff){
4293
- atten *= 1.0 - smoothstep(light.innerCutOff, light.outerCutOff, angle);
4294
- }
4295
- }else{
4296
- atten = 0.0;
4297
- }
4316
+ var shadow = pointShadows[i32(light.castShadow)] ;
4298
4317
 
4299
- var shadow = pointShadows[i32(light.castShadow)];
4318
+ #if USE_IES_PROFILE
4319
+ atten *= getLightIESProfileAtt(WP,light);
4320
+ #endif
4300
4321
 
4301
- #if USE_IES_PROFILE
4302
- atten *= getLightIESProfileAtt(WP, light);
4303
- #endif
4322
+ atten *= sphere_unit(light.range, light.intensity) ;
4304
4323
 
4305
- atten *= sphere_unit(light.range, light.intensity);
4306
- color = sampleLighting(light, -L, iblSpecularResult, atten, shadow);
4307
- }
4308
- return color;
4324
+ color = sampleLighting(light,-L,iblSpecularResult,atten,shadow);
4309
4325
  }
4326
+ return color ;
4327
+ }
4310
4328
 
4311
- fn sphere_unit( radius:f32, intensity: f32 ) -> f32 {
4312
- return intensity / (4.0 * PI2 * radius * radius);
4313
- }
4314
- `;
4329
+ fn sphere_unit( radius:f32 , intensity:f32 ) -> f32 {
4330
+ return intensity / (4.0 * PI2 * radius * radius) ;
4331
+ }
4332
+ `
4333
+ );
4315
4334
 
4316
- let MathShader = `
4317
- #include 'BitUtil'
4335
+ let MathShader = (
4336
+ /* wgsl */
4337
+ `
4338
+ #include 'BitUtil'
4318
4339
 
4319
- struct TBN_ret{
4320
- tan:vec3f,
4321
- bit:vec3f,
4340
+ struct TBN_ret{
4341
+ tan:vec3f,
4342
+ bit:vec3f,
4343
+ }
4344
+
4345
+ fn TBN( N:vec3f) -> mat3x3<f32>{
4346
+ //Returns the simple tangent space matrix
4347
+ var Nb : vec3f;
4348
+ var Nt : vec3f;
4349
+ if (abs(N.y)>0.999) {
4350
+ Nb = vec3f(1.0,0.0,0.0);
4351
+ Nt = vec3f(0.0,0.0,1.0);
4352
+ } else {
4353
+ Nb = normalize(cross(N,vec3f(0.0,1.0,0.0)));
4354
+ Nt = normalize(cross(Nb,N));
4322
4355
  }
4323
4356
 
4324
- fn TBN(N:vec3f) -> mat3x3<f32>{
4325
- var Nb: vec3f;
4326
- var Nt: vec3f;
4327
- if(abs(N.y)>0.999){
4328
- Nb = vec3f(1.0,0.0,0.0);
4329
- Nt = vec3f(0.0,0.0,1.0)
4330
- }else{
4331
- Nb = normalize(cross(N,vec3f(0.0,1.0,0.0)));
4332
- Nt = normalize(cross(Nb,N));
4333
- }
4357
+ var mat3 = mat3x3<f32>(
4358
+ Nb.x,Nt.x,N.x,
4359
+ Nb.y,Nt.y,N.y,
4360
+ Nb.z,Nt.z,N.z
4361
+ );
4334
4362
 
4335
- var mat3 = mat3x3<f32>(
4336
- Nb.x,Nt.x,N.x,
4337
- Nb.y,Nt.y,N.y,
4338
- Nb.z,Nt.z,N.z
4339
- );
4363
+ return mat3;
4364
+ }
4340
4365
 
4341
- return mat3;
4342
- }
4366
+ fn TBN_out( N : vec3f ) -> TBN_ret {
4367
+ var tbn_ret : TBN_ret;
4368
+ //Returns the simple tangent space directions
4369
+ if (abs(N.y)>0.999) {
4370
+ tbn_ret.tan = vec3f(1.0,0.0,0.0);
4371
+ tbn_ret.bit = vec3f(0.0,0.0,1.0);
4372
+ } else {
4373
+ tbn_ret.tan = normalize(cross(N,vec3f(0.0,1.0,0.0)));
4374
+ tbn_ret.bit = normalize(cross(tbn_ret.tan,N));
4375
+ }
4343
4376
 
4344
- fn TBN_out(N:vec3f) -> TBN_ret {
4345
- var tbn_ret: TBN_ret;
4346
- if(abs(N.y)>0.999) {
4347
- tbn_ret.tan = vec3f(1.0,0.0,0.0);
4348
- tbn_ret.bit = vec3f(0.0,0.0,1.0);
4349
- }else{
4350
- tbn_ret.tan = normalize(cross(N,vec3f(0.0,1.0,0.0)));
4351
- tbn_ret.bit = normalize(cross(tbn_ret.tan,N));
4352
- }
4377
+ return tbn_ret;
4378
+ }
4353
4379
 
4354
- return tbn_ret;
4355
- }
4356
4380
 
4357
- fn ARand21(uv:vec2f) -> f32 {
4358
- return fract(sin(uv.x*uv.y)*403.125+cos(dot(uv,vec2f(13.18273,51.2134)))*173.137);
4359
- }
4381
+ fn ARand21( uv: vec2f) -> f32 {
4382
+ //Returns 1D noise from 2D
4383
+ return fract(sin(uv.x*uv.y)*403.125+cos(dot(uv,vec2f(13.18273,51.2134)))*173.137);
4384
+ }
4360
4385
 
4361
- fn applyQuaternion(position:vec3<f32>,q:vec4<f32>) -> vec3<f32>{
4362
- let x:f32 = position.x;
4363
- let y:f32 = position.y;
4364
- let z:f32 = position.z;
4386
+ fn applyQuaternion(position:vec3<f32>, q:vec4<f32>) -> vec3<f32>{
4387
+ let x:f32 = position.x;
4388
+ let y:f32 = position.y;
4389
+ let z:f32 = position.z;
4365
4390
 
4366
- let qx:f32 = q.x;
4367
- let qy:f32 = q.y;
4368
- let qz:f32 = q.z;
4369
- let qw:f32 = q.w;
4391
+ let qx:f32 = q.x;
4392
+ let qy:f32 = q.y;
4393
+ let qz:f32 = q.z;
4394
+ let qw:f32 = q.w;
4370
4395
 
4371
- let ix:f32 = qw*x + qy*z - qz*y;
4372
- let iy:f32 = qw*y + qz*x - qx*z;
4373
- let iz:f32 = qw*z + qx*y - qy*x;
4374
- let iw:f32 = -qx*x - qy*y - qz*z;
4396
+ let ix:f32 = qw * x + qy * z - qz * y;
4397
+ let iy:f32 = qw * y + qz * x - qx * z;
4398
+ let iz:f32 = qw * z + qx * y - qy * x;
4399
+ let iw:f32 = -qx * x - qy * y - qz * z;
4375
4400
 
4376
- var ret: vec3<f32>;
4377
- ret.x = ix*qw + iw*-qx + iy*-qz - iz*-qy;
4378
- ret.y = iy*qw + iw*-qy + iz*-qx - ix*-qz;
4379
- ret.z = iz*qw + iw*-qz + ix*-qy - iy*-qx;
4401
+ var ret: vec3<f32>;
4402
+ ret.x = ix * qw + iw * -qx + iy * -qz - iz * -qy;
4403
+ ret.y = iy * qw + iw * -qy + iz * -qx - ix * -qz;
4404
+ ret.z = iz * qw + iw * -qz + ix * -qy - iy * -qx;
4380
4405
 
4381
- return ret;
4382
- }
4406
+ return ret;
4407
+ }
4383
4408
 
4384
- fn inverse(m:mat3x3<f32>) -> mat3*3<f32>{
4385
- var a00 = m[0][0];
4386
- var a01 = m[0][1];
4387
- var a02 = m[0][2];
4388
- var a10 = m[1][0];
4389
- var a11 = m[1][1];
4390
- var a12 = m[1][2];
4391
- var a20 = m[2][0];
4392
- var a21 = m[2][1];
4393
- var a22 = m[2][2];
4394
-
4395
- var b01 = a22*a11 - a12*a21;
4396
- var b11 = -a22*a10 + a12*a20;
4397
- var b21 = a21*a10 - a11*a20;
4398
-
4399
- var det =a00*b01 + a01*b11 + a02*b21;
4400
- return mat3x3<f32>(
4401
- vec3<f32>(b01/ det, (-a22 * a01 + a02 * a21)/ det, (a12 * a01 - a02 * a11)/ det),
4402
- vec3<f32>(b11/ det, (a22 * a00 - a02 * a20)/ det, (-a12 * a00 + a02 * a10)/ det),
4403
- vec3<f32>(b21/ det, (-a21 * a00 + a01 * a20)/ det, (a11 * a00 - a01 * a10)/ det)
4404
- );
4405
- }
4406
-
4407
- fn dir_to_faceId(pt:vec3<f32>) -> i32 {
4408
- var abs_x = abs(pt.x);
4409
- var abs_y = abs(pt.y);
4410
- var abs_z = abs(pt.z);
4411
- var coord = max(max(abs_x, abs_y),abs_z);
4412
- if(coord == -pt.x){
4413
- return 0;
4414
- }
4415
- if(coord == pt.x){
4416
- return 1;
4417
- }
4418
- if(coord == -pt.y){
4419
- return 2;
4420
- }
4421
- if(coord == pt.y){
4422
- return 3;
4423
- }
4424
- if(coord == -pt.z){
4425
- return 4;
4426
- }
4427
- return 5;
4428
- }
4429
-
4430
- const us = 1.0/6.0;
4431
- fn uv_2_xyz(u:f32,v:f32) -> vec3f{
4432
- let face = floor(u/us);
4433
- var uu = (u - face*us)/us;
4434
- var uc = 2.0*uu - 1.0;
4435
- var vc = 2.0*v - 1.0;
4436
- var xyz = vec3f(0,0,0);
4437
- if(face == 0.0){
4438
- xyz = vec3f(1.0,-vc,uc);
4439
- }else if(face == 1.0){
4440
- xyz = vec3f(-1.0,-vc,-uc);
4441
- }else if(face == 2.0){
4442
- xyz = vec3f(uc,1.0,-vc);
4443
- }else if(face == 3.0){
4444
- xyz = vec3f(uc,-1.0,vc);
4445
- }else if(face == 4.0){
4446
- xyz = vec3f(-uc,-vc,1.0);
4447
- }else if(face == 5.0){
4448
- xyz = vec3f(uc,-vc,-1.0);
4449
- }
4450
- return xyz;
4451
- }
4452
-
4453
- fn convert_xyz_to_cube_uv(x:f32, y:f32, z:f32) -> vec2f{
4454
- var dir = vec3f(x,y,z);
4455
- var absX = abs(dir.x);
4456
- var absY = abs(dir.y);
4457
- var absZ = abs(dir.z);
4458
-
4459
- var isXPositive = 0;
4460
- if(dir.x > 0.0){isXPositive=1};
4461
- var isYPositive = 0;
4462
- if(dir.y > 0.0){isXPositive=1};
4463
- var isZPositive = 0;
4464
- if(dir.z > 0.0){isZPositive=1};
4465
-
4466
- var maxAxis:f32 = 0.0;
4467
- var uc:f32 = 0.0;
4468
- var vc:f32 = 0.0;
4469
-
4470
- if(isXPositive == 1 && absX >= absY && absX >= absZ){
4471
- maxAxis = absX;
4472
- uc = -z;
4473
- vc = y;
4474
- }
4475
- if(isXPositive == 0 && absX >= absY && absX >= absZ){
4476
- maxAxis = absX;
4477
- uc = z;
4478
- vc = y;
4479
- }
4480
- if(isYPositive == 1 && absY >= absX && absY >= absZ){
4481
- maxAxis = absY;
4482
- uc = x;
4483
- vc = -z;
4484
- }
4485
- if(isYPositive == 0 && absY >= absX && absY >= absZ){
4486
- maxAxis = absY;
4487
- uc = x;
4488
- vc = z;
4489
- }
4490
- if (isZPositive == 1 && absZ >= absX && absZ >= absY) {
4491
- maxAxis = absZ;
4492
- uc = x;
4493
- vc = y;
4494
- }
4495
- if (isZPositive ==0 && absZ >= absX && absZ >= absY) {
4496
- maxAxis = absZ;
4497
- uc = -x;
4498
- vc = y;
4499
- }
4500
-
4501
- var u = 0.5f*(uc / maxAxis + 1.0f);
4502
- var v = 0.5f*(vc / maxAxis + 1.0f);
4409
+ fn inverse( m:mat3x3<f32>) -> mat3x3<f32>{
4410
+ var a00 = m[0][0];
4411
+ var a01 = m[0][1];
4412
+ var a02 = m[0][2];
4413
+ var a10 = m[1][0];
4414
+ var a11 = m[1][1];
4415
+ var a12 = m[1][2];
4416
+ var a20 = m[2][0];
4417
+ var a21 = m[2][1];
4418
+ var a22 = m[2][2];
4419
+
4420
+ var b01 = a22 * a11 - a12 * a21;
4421
+ var b11 = -a22 * a10 + a12 * a20;
4422
+ var b21 = a21 * a10 - a11 * a20;
4423
+
4424
+ var det = a00 * b01 + a01 * b11 + a02 * b21 ;
4425
+ return mat3x3<f32>(
4426
+ vec3<f32>(b01/ det, (-a22 * a01 + a02 * a21)/ det, (a12 * a01 - a02 * a11)/ det),
4427
+ vec3<f32>(b11/ det, (a22 * a00 - a02 * a20)/ det, (-a12 * a00 + a02 * a10)/ det),
4428
+ vec3<f32>(b21/ det, (-a21 * a00 + a01 * a20)/ det, (a11 * a00 - a01 * a10)/ det)
4429
+ );
4430
+ }
4503
4431
 
4504
- return vec2f(u, v);
4505
- }
4506
-
4507
- fn signNotZero(v1:vec2<f32>) -> vec2<f32>{
4432
+ fn dir_to_faceId(pt:vec3<f32>) -> i32 {
4433
+ //**** nx px ny py nz pz
4434
+ var abs_x = abs(pt.x);
4435
+ var abs_y = abs(pt.y);
4436
+ var abs_z = abs(pt.z);
4437
+ var coord = max(max(abs_x, abs_y), abs_z);
4438
+ if(coord == -pt.x){ return 0;}
4439
+ if(coord == pt.x) { return 1;}
4440
+
4441
+ if(coord == -pt.y){ return 2;}
4442
+ if(coord == pt.y) { return 3;}
4443
+
4444
+ if(coord == -pt.z) { return 4;}
4445
+ return 5;
4446
+ }
4447
+
4448
+ const us = 1.0 /6.0 ;
4449
+ fn uv_2_xyz(u:f32,v:f32) -> vec3f
4450
+ {
4451
+ let face = floor(u / us);
4452
+ var uu = (u - face * us) / us ;
4453
+
4454
+ var uc = 2.0 * uu - 1.0;
4455
+ var vc = 2.0 * v - 1.0;
4456
+ var xyz = vec3f(0,0,0);
4457
+
4458
+ if(face == 0.0){
4459
+ // x,y,z = 1.0,vc,-uc
4460
+ xyz = vec3f(1.0,-vc,uc);
4461
+ }else if(face == 1.0){
4462
+ // x,y,z = -1.0,vc,uc
4463
+ xyz = vec3f(-1.0,-vc,-uc);
4464
+ }else if(face == 2.0){
4465
+ // x,y,z = uc,1.0,-vc
4466
+ xyz = vec3f(uc,1.0,-vc);
4467
+ }else if(face == 3.0){
4468
+ // x,y,z = uc,-1.0,vc
4469
+ xyz = vec3f(uc,-1.0,vc);
4470
+ }else if(face == 4.0){
4471
+ // x,y,z = uc,vc,1.0
4472
+ xyz = vec3f(-uc,-vc,1.0);
4473
+ }else if(face == 5.0){
4474
+ // x,y,z = -uc,vc,-1.0
4475
+ xyz = vec3f(uc,-vc,-1.0);
4476
+ }
4477
+ return xyz ;
4478
+ }
4479
+
4480
+ fn convert_xyz_to_cube_uv(x:f32, y:f32, z:f32 ) -> vec2f
4481
+ {
4482
+ var dir = vec3f(x, y, z);
4483
+ var absX = abs(dir.x);
4484
+ var absY = abs(dir.y);
4485
+ var absZ = abs(dir.z);
4486
+
4487
+ var isXPositive = 0;
4488
+ if(dir.x > 0.0){isXPositive = 1;}
4489
+ var isYPositive = 0;
4490
+ if(dir.y > 0.0){isYPositive = 1;}
4491
+ var isZPositive = 0;
4492
+ if(dir.z > 0.0){isZPositive = 1;}
4493
+
4494
+ var maxAxis:f32 = 0.0;
4495
+ var uc:f32 = 0.0;
4496
+ var vc:f32 = 0.0;
4497
+
4498
+ // POSITIVE X
4499
+ if (isXPositive == 1 && absX >= absY && absX >= absZ) {
4500
+ // u (0 to 1) goes from +z to -z
4501
+ // v (0 to 1) goes from -y to +y
4502
+ maxAxis = absX;
4503
+ uc = -z;
4504
+ vc = y;
4505
+ }
4506
+ // NEGATIVE X
4507
+ if (isXPositive ==0 && absX >= absY && absX >= absZ) {
4508
+ // u (0 to 1) goes from -z to +z
4509
+ // v (0 to 1) goes from -y to +y
4510
+ maxAxis = absX;
4511
+ uc = z;
4512
+ vc = y;
4513
+ }
4514
+ // POSITIVE Y
4515
+ if (isYPositive==1 && absY >= absX && absY >= absZ) {
4516
+ // u (0 to 1) goes from -x to +x
4517
+ // v (0 to 1) goes from +z to -z
4518
+ maxAxis = absY;
4519
+ uc = x;
4520
+ vc = -z;
4521
+ }
4522
+ // NEGATIVE Y
4523
+ if (isYPositive ==0 && absY >= absX && absY >= absZ) {
4524
+ // u (0 to 1) goes from -x to +x
4525
+ // v (0 to 1) goes from -z to +z
4526
+ maxAxis = absY;
4527
+ uc = x;
4528
+ vc = z;
4529
+ }
4530
+ // POSITIVE Z
4531
+ if (isZPositive == 1&& absZ >= absX && absZ >= absY) {
4532
+ // u (0 to 1) goes from -x to +x
4533
+ // v (0 to 1) goes from -y to +y
4534
+ maxAxis = absZ;
4535
+ uc = x;
4536
+ vc = y;
4537
+ }
4538
+ // NEGATIVE Z
4539
+ if (isZPositive ==0 && absZ >= absX && absZ >= absY) {
4540
+ // u (0 to 1) goes from +x to -x
4541
+ // v (0 to 1) goes from -y to +y
4542
+ maxAxis = absZ;
4543
+ uc = -x;
4544
+ vc = y;
4545
+ }
4546
+
4547
+ // Convert range from -1 to 1 to 0 to 1
4548
+ var u = 0.5f * (uc / maxAxis + 1.0f);
4549
+ var v = 0.5f * (vc / maxAxis + 1.0f);
4550
+
4551
+ return vec2f(u, v);
4552
+ }
4553
+
4554
+ // Returns ±1
4555
+ fn signNotZero( v1:vec2<f32>) -> vec2<f32> {
4508
4556
  var v:vec2<f32> = v1;
4509
4557
  if(v.x >= 0.0){
4510
4558
  v.x = 1.0;
@@ -4514,118 +4562,123 @@
4514
4562
  if(v.y >= 0.0){
4515
4563
  v.y = 1.0;
4516
4564
  }else{
4517
- v.y = -1.0;
4565
+ v.y= -1.0;
4518
4566
  }
4519
4567
  return v;
4520
4568
  }
4521
4569
 
4522
- fn octEncode(v:vec3<f32>) -> vec2<f32> {
4570
+ fn octEncode( v:vec3<f32> ) -> vec2<f32> {
4523
4571
  var l1norm = abs(v.x) + abs(v.y) + abs(v.z);
4524
4572
  var result = v.xy * (1.0 / l1norm);
4525
- if(v.z < 0.0){
4573
+ if (v.z < 0.0) {
4526
4574
  result = (1.0 - abs(result.yx)) * signNotZero(result.xy);
4527
4575
  }
4528
4576
  return result;
4529
4577
  }
4530
4578
 
4531
- fn octDecode(o:vec2<f32>) -> vec3<f32> {
4579
+ // Returns a unit vector. Argument o is an octahedral vector packed via octEncode,on the [-1, +1] square*/
4580
+ fn octDecode( o:vec2<f32> ) -> vec3<f32> {
4532
4581
  var v = vec3<f32>(o.x, o.y, 1.0 - abs(o.x) - abs(o.y));
4533
- if(v.z < 0.0) {
4534
- var tmp = (1.0 -abs(v.yx))*signNotZero(v.xy);
4582
+ if (v.z < 0.0) {
4583
+ var tmp = (1.0 - abs(v.yx)) * signNotZero(v.xy);
4535
4584
  v.x = tmp.x;
4536
4585
  v.y = tmp.y;
4537
4586
  }
4538
4587
  return normalize(v);
4539
4588
  }
4540
4589
 
4541
- fn Linear01Depth(z:f32,near:f32,far:f32) -> f32{
4542
- let ZBufferZ = (-1.0+(far/near))/far;
4543
- let ZBufferW = near/far;
4544
- return 1.0 / (ZBufferZ * z + ZBufferW);
4590
+ fn Linear01Depth(z:f32,near:f32,far:f32)-> f32{
4591
+ let ZBufferZ = (-1.0+(far/near)) / far;
4592
+ let ZBufferW = near /far ;
4593
+ return 1.0 / (ZBufferZ * z + ZBufferW) ;
4545
4594
  }
4546
4595
 
4547
- fn LinearizeDepth(depth:f32, nearPlane:f32, farPlane:f32) -> f32 {
4548
- var z = depth * 2.0 - 1.0;
4549
- return (2.0 * nearPlane * farPlane) / (farPlane + nearPlane - z * (farPlane - nearPlane));
4596
+
4597
+ fn LinearizeDepth( depth:f32 , nearPlane:f32 , farPlane:f32 )-> f32 {
4598
+ var z = depth * 2.0 - 1.0;
4599
+ return (2.0 * nearPlane * farPlane) / (farPlane + nearPlane - z * (farPlane - nearPlane));
4550
4600
  }
4551
4601
 
4552
- fn logDepth(depth:f32, far:f32) -> f32 {
4553
- return log2(depth + 1.0) * 2.0 / (log(far + 1.0) / 0.6931471805599453) * 0.5;
4602
+ fn logDepth(depth : f32, far:f32) -> f32 {
4603
+ return log2(depth + 1.0) * 2.0 / (log(far + 1.0) / 0.6931471805599453) * 0.5;
4554
4604
  }
4555
4605
 
4556
4606
  fn log2Depth(depth:f32, near:f32, far:f32) -> f32 {
4557
- let Fcoef:f32 = 2.0 / log2(far + 1.0);
4558
- var result:f32 = (log2(max(1e-6, 1.0 + depth)) * Fcoef - 1.0);
4559
- result = (1.0 + result) / 2.0;
4560
- return result * depth;
4607
+ let Fcoef:f32 = 2.0 / log2(far + 1.0);
4608
+ var result:f32 = (log2(max(1e-6, 1.0 + depth)) * Fcoef - 1.0);
4609
+ result = (1.0 + result) / 2.0;
4610
+ return result * depth;
4561
4611
  }
4562
4612
 
4563
4613
  fn log2DepthFixPersp(depth:f32, near:f32, far:f32) -> f32 {
4564
- let flogz:f32 = 1.0 + depth;
4565
- let Fcoef_half:f32 = (2.0 / log2(far + 1.0)) * 0.5;
4566
- var result:f32 = log2(flogz) * Fcoef_half;
4567
- result = (1.0 + result) / 2.0;
4568
- return result;
4614
+ let flogz:f32 = 1.0 + depth;
4615
+ let Fcoef_half:f32 = (2.0 / log2(far + 1.0)) * 0.5;
4616
+ var result:f32 = log2(flogz) * Fcoef_half;
4617
+ result = (1.0 + result) / 2.0;
4618
+ return result;
4569
4619
  }
4570
4620
 
4571
- fn QuaternionToMatrix(q:vec4<f32>) -> mat4x4<f32> {
4572
- var result: mat4x4<f32>;
4573
-
4574
- let x = q.x * 2.0;
4575
- let y = q.y * 2.0;
4576
- let z = q.z * 2.0;
4577
- let xx = q.x * x;
4578
- let yy = q.y * y;
4579
- let zz = q.z * z;
4580
- let xy = q.x * y;
4581
- let xz = q.x * z;
4582
- let yz = q.y * z;
4583
- let wx = q.w * x;
4584
- let wy = q.w * y;
4585
- let wz = q.w * z;
4586
-
4587
- result[0][0] = 1.0 - (yy + zz);
4588
- result[0][1] = xy + wz;
4589
- result[0][2] = xz - wy;
4590
- result[0][3] = 0.0;
4591
-
4592
- result[1][0] = xy - wz;
4593
- result[1][1] = 1.0 - (xx + zz);
4594
- result[1][2] = yz + wx;
4595
- result[1][3] = 0.0;
4596
-
4597
- result[2][0] = xz + wy;
4598
- result[2][1] = yz - wx;
4599
- result[2][2] = 1.0 - (xx + yy);
4600
- result[2][3] = 0.0;
4601
-
4602
- result[3][0] = 0.0;
4603
- result[3][1] = 0.0;
4604
- result[3][2] = 0.0;
4605
- result[3][3] = 1.0;
4606
4621
 
4607
- return result;
4622
+ fn QuaternionToMatrix(q: vec4<f32>) -> mat4x4<f32> {
4623
+ var result: mat4x4<f32>;
4624
+
4625
+ // Precalculate coordinate products
4626
+ let x = q.x * 2.0;
4627
+ let y = q.y * 2.0;
4628
+ let z = q.z * 2.0;
4629
+ let xx = q.x * x;
4630
+ let yy = q.y * y;
4631
+ let zz = q.z * z;
4632
+ let xy = q.x * y;
4633
+ let xz = q.x * z;
4634
+ let yz = q.y * z;
4635
+ let wx = q.w * x;
4636
+ let wy = q.w * y;
4637
+ let wz = q.w * z;
4638
+
4639
+ // Calculate 3x3 matrix from orthonormal basis
4640
+ result[0][0] = 1.0 - (yy + zz);
4641
+ result[0][1] = xy + wz;
4642
+ result[0][2] = xz - wy;
4643
+ result[0][3] = 0.0;
4644
+
4645
+ result[1][0] = xy - wz;
4646
+ result[1][1] = 1.0 - (xx + zz);
4647
+ result[1][2] = yz + wx;
4648
+ result[1][3] = 0.0;
4649
+
4650
+ result[2][0] = xz + wy;
4651
+ result[2][1] = yz - wx;
4652
+ result[2][2] = 1.0 - (xx + yy);
4653
+ result[2][3] = 0.0;
4654
+
4655
+ result[3][0] = 0.0;
4656
+ result[3][1] = 0.0;
4657
+ result[3][2] = 0.0;
4658
+ result[3][3] = 1.0;
4659
+
4660
+ return result;
4608
4661
  }
4609
4662
 
4610
4663
  fn MakeScaleMatrix(scale: vec3<f32>) -> mat4x4<f32> {
4611
4664
  return mat4x4<f32>(
4612
- scale.x, 0.0, 0.0, 0.0,
4613
- 0.0, scale.y, 0.0, 0.0,
4614
- 0.0, 0.0, scale.z, 0.0,
4615
- 0.0, 0.0, 0.0, 1.0,
4665
+ scale.x, 0.0, 0.0, 0.0,
4666
+ 0.0, scale.y, 0.0, 0.0,
4667
+ 0.0, 0.0, scale.z, 0.0,
4668
+ 0.0, 0.0, 0.0, 1.0,
4616
4669
  );
4617
4670
  }
4618
-
4671
+
4619
4672
  fn MakeRotationMatrix(rotationQuaternion: vec4<f32>) -> mat4x4<f32> {
4620
- return QuaternionToMatrix(rotationQuaternion);
4673
+ return QuaternionToMatrix(rotationQuaternion);
4621
4674
  }
4622
4675
 
4623
4676
  fn MakeTranslationMatrix(translation: vec3<f32>) -> mat4x4<f32> {
4624
4677
  return mat4x4<f32>(
4625
- 1.0, 0.0, 0.0, 0.0,
4626
- 0.0, 1.0, 0.0, 0.0,
4627
- 0.0, 0.0, 1.0, 0.0,
4628
- translation.x, translation.y, translation.z, 1.0,
4678
+ 1.0, 0.0, 0.0, 0.0,
4679
+ 0.0, 1.0, 0.0, 0.0,
4680
+ 0.0, 0.0, 1.0, 0.0,
4681
+ translation.x, translation.y, translation.z, 1.0,
4629
4682
  );
4630
4683
  }
4631
4684
 
@@ -4637,191 +4690,206 @@
4637
4690
  }
4638
4691
 
4639
4692
  fn mixMatrix4x4(a: mat4x4<f32>, b: mat4x4<f32>, t:f32) -> mat4x4<f32> {
4640
- return a * (1.0 - t) + b * t;
4693
+ return a * (1.0 - t) + b * t;
4641
4694
  }
4642
4695
 
4643
- fn decodeDepth(color:vec4<f32>) -> f32{
4644
- var depth = 0.0;
4645
- const bitShifts = vec4f<f32>(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);
4646
- depth = dot(color, bitShifts);
4647
- return depth;
4696
+ fn decodeDepth( color:vec4<f32> ) -> f32{
4697
+ var depth = 0.0 ;
4698
+ const bitShifts = vec4<f32>(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);
4699
+ depth = dot(color, bitShifts);
4700
+ return depth;
4648
4701
  }
4649
4702
 
4650
- fn encodeDepth(depth:f32) -> vec4<f32>{
4651
- const bitSh = vec4<f32>(256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0);
4652
- const bitMsk = vec4<f32>(0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0);
4653
- var comp: vec4<f32>;
4654
- comp = depth * bitSh;
4655
- comp = fract(comp);
4656
- comp -= comp.xxyz * bitMsk;
4657
- return comp;
4703
+ fn encodeDepth( depth:f32 ) -> vec4<f32>{
4704
+ const bitSh = vec4<f32>(256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0);
4705
+ const bitMsk = vec4<f32>(0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0);
4706
+ var comp:vec4<f32>;
4707
+ comp = depth * bitSh;
4708
+ comp = fract(comp);
4709
+ comp -= comp.xxyz * bitMsk;
4710
+ return comp;
4658
4711
  }
4659
4712
 
4660
- fn calculateBillboardMatrix2(eye:vec3f, pos:vec3f, up:vec3f) -> mat3x3<f32> {
4661
- let zAxis: vec3f = -normalize(pos.xyz - eye);
4662
- var xAxis: vec3f = cross(up, zAxis);
4663
- xAxis = normalize(cross(zAxis, xAxis));
4664
- let yAxis = normalize(cross(zAxis, xAxis));
4665
- return mat3x3<f32>(xAxis, yAxis, zAxis);
4713
+ fn calculateBillboardMatrix2(eye:vec3f,pos:vec3f,up:vec3f) -> mat3x3<f32> {
4714
+
4715
+ let zAxis: vec3f = -normalize(pos.xyz - eye);
4716
+ var xAxis: vec3f = cross(up,zAxis);
4717
+ xAxis = normalize(cross(zAxis,xAxis));
4718
+ let yAxis = normalize(cross(zAxis, xAxis));
4719
+ return mat3x3<f32>(xAxis, yAxis, zAxis);
4666
4720
  }
4667
4721
 
4668
- struct SH9Struct {
4669
- SHAr:vec4f,
4670
- SHAg:vec4f,
4671
- SHAb:vec4f,
4672
- SHBr:vec4f,
4673
- SHBg:vec4f,
4674
- SHBb:vec4f,
4675
- SHC:vec4f,
4722
+ struct SH9Struct{
4723
+ SHAr:vec4f,
4724
+ SHAg:vec4f,
4725
+ SHAb:vec4f,
4726
+ SHBr:vec4f,
4727
+ SHBg:vec4f,
4728
+ SHBb:vec4f,
4729
+ SHC:vec4f,
4676
4730
  }
4677
4731
 
4678
- fn ShadeSH9(normal: vec4f, sh9: SH9Struct) -> vec3f {
4679
- var x1:vec3f = vec3f(0.0);
4680
- var x2:vec3f = vec3f(0.0);
4681
- var x3:vec3f = vec3f(0.0);
4682
-
4683
- x1.r = dot(sh9.SHAr,normal);
4684
- x1.g = dot(sh9.SHAg,normal);
4685
- x1.b = dot(sh9.SHAb,normal);
4686
-
4687
- var vB = normal.xyzz * normal.yzzx;
4688
- x2.r = dot(sh9.SHBr,vB);
4689
- x2.g = dot(sh9.SHBg,vB);
4690
- x2.b = dot(sh9.SHBb,vB);
4691
-
4692
- var vC = normal.x*normal.x - normal.y*normal.y;
4693
- x3 = sh9.SHC.rgb * vC;
4694
- return x1 + x2 + x3;
4695
- }
4732
+ fn ShadeSH9 ( normal:vec4f , sh9:SH9Struct) -> vec3f
4733
+ {
4734
+ var x1:vec3f = vec3f(0.0);
4735
+ var x2:vec3f = vec3f(0.0);
4736
+ var x3:vec3f = vec3f(0.0);
4737
+
4738
+ // Linear + constant polynomial terms
4739
+ x1.r = dot(sh9.SHAr,normal);
4740
+ x1.g = dot(sh9.SHAg,normal);
4741
+ x1.b = dot(sh9.SHAb,normal);
4742
+
4743
+ // 4 of the quadratic polynomials
4744
+ var vB = normal.xyzz * normal.yzzx;
4745
+ x2.r = dot(sh9.SHBr,vB);
4746
+ x2.g = dot(sh9.SHBg,vB);
4747
+ x2.b = dot(sh9.SHBb,vB);
4748
+
4749
+ // Final quadratic polynomial
4750
+ var vC = normal.x*normal.x - normal.y*normal.y;
4751
+ x3 = sh9.SHC.rgb * vC;
4752
+ return x1 + x2 + x3;
4753
+ }
4696
4754
 
4697
- fn clipViewUV(viewRectangle:vec4f, size:vec2f, fragCoord:vec2f) -> vec2u {
4698
- let subViewUV = (fragCoord - viewRectangle.xy) / viewRectangle.zw;
4699
- return vec2u(subViewUV*size);
4755
+ fn clipViewUV(viewRectangle:vec4f,size:vec2f,fragCoord:vec2f) -> vec2u {
4756
+ let subViewUV = (fragCoord - viewRectangle.xy) / viewRectangle.zw ;
4757
+ return vec2u(subViewUV*size) ;
4700
4758
  }
4701
4759
 
4702
- fn insideRectangle(point:vec2f, rec:vec4f) -> bool {
4703
- if( point.x > rec.x && point.y > rec.y && point.x < (rec.x + rec.z ) && point.y < (rec.y + rec.w ) ){
4704
- return true ;
4705
- }
4706
- return false;
4760
+ fn insideRectangle( point:vec2f , rec:vec4f) -> bool {
4761
+ if( point.x > rec.x && point.y > rec.y && point.x < (rec.x + rec.z ) && point.y < (rec.y + rec.w ) ){
4762
+ return true ;
4763
+ }
4764
+ return false;
4707
4765
  }
4708
4766
 
4709
- fn convert_cube_uv_to_xyz(index:i32, u:f32, v:f32) -> vec3f {
4710
- var ret: vec3f;
4711
- var uc = 2.0f * u - 1.0f;
4712
- var vc = 2.0f * v - 1.0f;
4713
- switch(index){
4714
- case 0: {
4715
- ret.x = 1.0f;
4716
- ret.y = vc;
4717
- ret.z = -uc;
4718
- break;
4719
- }
4720
- case 1: {
4721
- ret.x = -1.0f;
4722
- ret.y = vc;
4723
- ret.z = uc;
4724
- break;
4725
- }
4726
- case 2: {
4727
- ret.x = uc;
4728
- ret.y = 1.0f;
4729
- ret.z = -vc;
4730
- break;
4731
- }
4732
- case 3: {
4733
- ret.x = uc;
4734
- ret.y = -1.0f;
4735
- ret.z = vc;
4736
- break;
4737
- }
4738
- case 4: {
4739
- ret.x = uc;
4740
- ret.y = vc;
4741
- ret.z = 1.0f;
4742
- break;
4743
- }
4744
- case 5: {
4745
- ret.x = -uc;
4746
- ret.y = vc;
4747
- ret.z = -1.0f;
4748
- break;
4749
- }
4750
- default: {
4751
- ret = vec3f(0.0);
4752
- }
4767
+ fn convert_cube_uv_to_xyz( index:i32, u:f32, v:f32) -> vec3f
4768
+ {
4769
+ var ret : vec3f ;
4770
+ // convert range 0 to 1 to -1 to 1
4771
+ var uc = 2.0f * u - 1.0f;
4772
+ var vc = 2.0f * v - 1.0f;
4773
+ switch (index)
4774
+ {
4775
+ case 0: {
4776
+ ret.x = 1.0f;
4777
+ ret.y = vc;
4778
+ ret.z = -uc;
4779
+ break;
4780
+ } // POSITIVE X
4781
+ case 1: {
4782
+ ret.x = -1.0f;
4783
+ ret.y = vc;
4784
+ ret.z = uc;
4785
+ break;
4786
+ } // NEGATIVE X
4787
+ case 2: {
4788
+ ret.x = uc;
4789
+ ret.y = 1.0f;
4790
+ ret.z = -vc;
4791
+ break;
4792
+ } // POSITIVE Y
4793
+ case 3: {
4794
+ ret.x = uc;
4795
+ ret.y = -1.0f;
4796
+ ret.z = vc;
4797
+ break;
4798
+ } // NEGATIVE Y
4799
+ case 4: {
4800
+ ret.x = uc;
4801
+ ret.y = vc;
4802
+ ret.z = 1.0f;
4803
+ break;
4804
+ } // POSITIVE Z
4805
+ case 5: {
4806
+ ret.x = -uc;
4807
+ ret.y = vc;
4808
+ ret.z = -1.0f;
4809
+ break;
4810
+ } // NEGATIVE Z
4811
+ default:{
4812
+ ret = vec3f(0.0);
4753
4813
  }
4754
- return ret;
4814
+ }
4815
+ return ret ;
4755
4816
  }
4756
4817
 
4757
- fn convert_cube_uv_to_normal(index:i32, u:f32, v:f32) -> vec3f{
4758
- var ret: vec3f;
4759
- var uc = 2.0f * u - 1.0f;
4760
- var vc = 2.0f * v - 1.0f;
4761
- switch(index){
4762
- case 0: {
4763
- ret.x = 1.0f;
4764
- ret.y = vc;
4765
- ret.z = -uc;
4766
- break;
4767
- } // POSITIVE X
4768
- case 1: {
4769
- ret.x = -1.0f;
4770
- ret.y = vc;
4771
- ret.z = uc;
4772
- break;
4773
- } // NEGATIVE X
4774
- case 2: {
4775
- ret.x = uc;
4776
- ret.y = 1.0f;
4777
- ret.z = -vc;
4778
- break;
4779
- } // POSITIVE Y
4780
- case 3: {
4781
- ret.x = uc;
4782
- ret.y = -1.0f;
4783
- ret.z = vc;
4784
- break;
4785
- } // NEGATIVE Y
4786
- case 4: {
4787
- ret.x = uc;
4788
- ret.y = vc;
4789
- ret.z = 1.0f;
4790
- break;
4791
- } // POSITIVE Z
4792
- case 5: {
4793
- ret.x = -uc;
4794
- ret.y = vc;
4795
- ret.z = -1.0f;
4796
- break;
4797
- } // NEGATIVE Z
4798
- default:{
4799
- ret = vec3f(0.0);
4800
- }
4818
+ fn convert_cube_uv_to_normal( index:i32, u:f32, v:f32) -> vec3f
4819
+ {
4820
+ var ret : vec3f ;
4821
+ // convert range 0 to 1 to -1 to 1
4822
+ var uc = 2.0f * u - 1.0f;
4823
+ var vc = 2.0f * v - 1.0f;
4824
+ switch (index)
4825
+ {
4826
+ case 0: {
4827
+ ret.x = 1.0f;
4828
+ ret.y = vc;
4829
+ ret.z = -uc;
4830
+ break;
4831
+ } // POSITIVE X
4832
+ case 1: {
4833
+ ret.x = -1.0f;
4834
+ ret.y = vc;
4835
+ ret.z = uc;
4836
+ break;
4837
+ } // NEGATIVE X
4838
+ case 2: {
4839
+ ret.x = uc;
4840
+ ret.y = 1.0f;
4841
+ ret.z = -vc;
4842
+ break;
4843
+ } // POSITIVE Y
4844
+ case 3: {
4845
+ ret.x = uc;
4846
+ ret.y = -1.0f;
4847
+ ret.z = vc;
4848
+ break;
4849
+ } // NEGATIVE Y
4850
+ case 4: {
4851
+ ret.x = uc;
4852
+ ret.y = vc;
4853
+ ret.z = 1.0f;
4854
+ break;
4855
+ } // POSITIVE Z
4856
+ case 5: {
4857
+ ret.x = -uc;
4858
+ ret.y = vc;
4859
+ ret.z = -1.0f;
4860
+ break;
4861
+ } // NEGATIVE Z
4862
+ default:{
4863
+ ret = vec3f(0.0);
4801
4864
  }
4802
- return ret;
4865
+ }
4866
+ return ret ;
4803
4867
  }
4804
4868
 
4805
- fn UvToDir(uv1:vec2f) -> vec3f{
4806
- var uv = uv1;
4807
- uv *= vec2f(2.0*3.1415926535897932384626433832795, 3.1415926535897932384626433832795);
4808
- var theta = uv.y;
4809
- var phi = uv.x + 3.1415926535897932384626433832795 * 0.5 ;
4810
- var dir = vec3f(0.0,0.0,0.0);
4811
- dir.x = sin(phi) * sin(theta) * -1;
4812
- dir.y = cos(theta) * -1;
4813
- dir.z = cos(phi) * sin(theta);
4814
- return dir;
4869
+ fn UvToDir( uv1:vec2f) -> vec3f{
4870
+ var uv = uv1 ;
4871
+ uv *= vec2f(2.0*3.1415926535897932384626433832795, 3.1415926535897932384626433832795);
4872
+ var theta = uv.y;
4873
+ var phi = uv.x + 3.1415926535897932384626433832795 * 0.5 ;
4874
+ // var phi = uv.x ;
4875
+ var dir = vec3f(0.0,0.0,0.0);
4876
+ dir.x = sin(phi) * sin(theta) * -1;
4877
+ dir.y = cos(theta) * -1;
4878
+ dir.z = cos(phi) * sin(theta);
4879
+ return dir;
4815
4880
  }
4816
4881
 
4817
- fn DirTOUV(a_coords:vec3f) -> vec2f {
4818
- var coords = normalize(a_coords);
4819
- var lon = atan2(coords.z, coords.x);
4820
- var lat = acos(coords.y);
4821
- var sphereCoords = vec2f(lon, lat) * (1.0 / 3.1415926535897932384626433832795);
4822
- return vec2f(sphereCoords.x * 0.5 + 0.5, 1.0 - sphereCoords.y);
4882
+ fn DirTOUV( a_coords:vec3f ) ->vec2f
4883
+ {
4884
+ var coords = normalize(a_coords);
4885
+ var lon = atan2(coords.z, coords.x);
4886
+ var lat = acos(coords.y);
4887
+ var sphereCoords = vec2f(lon, lat) * (1.0 / 3.1415926535897932384626433832795);
4888
+ return vec2f(sphereCoords.x * 0.5 + 0.5 , 1.0 - sphereCoords.y);
4823
4889
  }
4824
- `;
4890
+
4891
+ `
4892
+ );
4825
4893
 
4826
4894
  let PhysicMaterialUniform_frag = `
4827
4895
  #if USE_CUSTOMUNIFORM
@@ -5172,7 +5240,9 @@ var<uniform> materialUniform: MaterialUniform;
5172
5240
  }
5173
5241
  `;
5174
5242
 
5175
- let Inline_vert = `
5243
+ let Inline_vert = (
5244
+ /*wgsl*/
5245
+ `
5176
5246
  #include "MathShader"
5177
5247
  #include "FastMathShader"
5178
5248
  #include "InstanceUniform"
@@ -5193,35 +5263,35 @@ var<uniform> materialUniform: MaterialUniform;
5193
5263
  }
5194
5264
 
5195
5265
  fn TIME_frame() -> f32 {
5196
- return globalUniform.frame;
5266
+ return globalUniform.frame ;
5197
5267
  }
5198
5268
 
5199
5269
  fn TIME_time() -> f32 {
5200
- return globalUniform.time;
5270
+ return globalUniform.time ;
5201
5271
  }
5202
5272
 
5203
5273
  fn TIME_delta() -> f32 {
5204
- return globalUniform.delta;
5274
+ return globalUniform.delta ;
5205
5275
  }
5206
5276
 
5207
5277
  fn MOUSE() -> vec2f {
5208
- return vec2f( globalUniform.mouseX, globalUniform.mouseY);
5278
+ return vec2f( globalUniform.mouseX, globalUniform.mouseY) ;
5209
5279
  }
5210
5280
 
5211
5281
  fn SCREEN() -> vec2f {
5212
- return vec2f( globalUniform.windowWidth, globalUniform.windowHeight);
5282
+ return vec2f( globalUniform.windowWidth, globalUniform.windowHeight) ;
5213
5283
  }
5214
5284
 
5215
5285
  fn ProjectionParams() -> vec3f {
5216
- return vec3f( globalUniform.near, globalUniform.far,1.0 + 1.0 / globalUniform.far);
5286
+ return vec3f( globalUniform.near, globalUniform.far,1.0 + 1.0 / globalUniform.far) ;
5217
5287
  }
5218
5288
 
5219
5289
  fn vertex_inline(vertex:VertexAttributes){
5220
- ORI_MATRIX_P = globalUniform.projMat;
5221
- ORI_MATRIX_V = globalUniform.viewMat;
5222
- ORI_MATRIX_PV = ORI_MATRIX_P * ORI_MATRIX_V;
5223
- ORI_MATRIX_PVInv = globalUniform.pvMatrixInv;
5224
- ORI_CAMERAMATRIX = globalUniform.cameraWorldMatrix;
5290
+ ORI_MATRIX_P = globalUniform.projMat ;
5291
+ ORI_MATRIX_V = globalUniform.viewMat ;
5292
+ ORI_MATRIX_PV = ORI_MATRIX_P * ORI_MATRIX_V ;
5293
+ ORI_MATRIX_PVInv = globalUniform.pvMatrixInv ;
5294
+ ORI_CAMERAMATRIX = globalUniform.cameraWorldMatrix ;
5225
5295
 
5226
5296
  ORI_MATRIX_M = models.matrix[u32(vertex.index)];
5227
5297
 
@@ -5230,7 +5300,8 @@ var<uniform> materialUniform: MaterialUniform;
5230
5300
  ORI_MATRIX_M = models.matrix[modelID];
5231
5301
  #endif
5232
5302
  }
5233
- `;
5303
+ `
5304
+ );
5234
5305
 
5235
5306
  let Common_frag = `
5236
5307
  #include "GlobalUniform"
@@ -5295,7 +5366,9 @@ var<uniform> materialUniform: MaterialUniform;
5295
5366
  }
5296
5367
  `;
5297
5368
 
5298
- let Common_vert = `
5369
+ let Common_vert = (
5370
+ /*wgsl*/
5371
+ `
5299
5372
  #include "WorldMatrixUniform"
5300
5373
  #include "VertexAttributes_vert"
5301
5374
  #include "GlobalUniform"
@@ -5304,9 +5377,10 @@ var<uniform> materialUniform: MaterialUniform;
5304
5377
  fn VertMain( vertex:VertexAttributes ) -> VertexOutput {
5305
5378
  vertex_inline(vertex);
5306
5379
  vert(vertex);
5307
- return ORI_VertexOut;
5380
+ return ORI_VertexOut ;
5308
5381
  }
5309
- `;
5382
+ `
5383
+ );
5310
5384
 
5311
5385
  let BrdfLut_frag = (
5312
5386
  /*wgsl*/
@@ -5336,103 +5410,122 @@ var<uniform> materialUniform: MaterialUniform;
5336
5410
  static Cascades = 4;
5337
5411
  }
5338
5412
 
5339
- let GlobalUniform = `
5413
+ let GlobalUniform = (
5414
+ /*wgsl*/
5415
+ `
5340
5416
 
5341
- #include "MathShader"
5417
+ #include "MathShader"
5342
5418
 
5343
- struct GlobalUniform {
5344
-
5345
- projMat: mat4x4<f32>,
5346
- viewMat: mat4x4<f32>,
5347
- cameraWorldMatrix: mat4x4<f32>,
5348
- pvMatrixInv: mat4x4<f32>,
5349
- viewToWorld: mar4x4<f32>,
5350
- shadowMatrix: array<mat4x4<f32>, 8u>,
5351
- csmShadowBias: vec4<f32>,
5352
- csmMatrix: array<mat4x4<f32>,${CSM.Cascades}>,
5353
- shadowLights:mat4x4<f32>,
5354
- reflectionProbeSize:f32,
5355
- reflectionProbeMaxCount:f32,
5356
- reflectionMapWidth:f32,
5357
- reflectionMapHeight:f32,
5358
- reflectionCount:f32,
5359
- test2:f32,
5360
- test3:f32,
5361
- test4:f32,
5362
- CameraPos: vec3<f32>,
5363
- frame: f32,
5364
- SH: array<vec4f,9u>,
5365
- time: f32,
5366
- delta: f32,
5367
- shadowBias: f32,
5368
- skyExposure: f32,
5369
- renderPassState: f32,
5370
- quadScale: f32,
5371
- hdrExposure: f32,
5372
- renderState_left: i32,
5373
- renderState_right: i32,
5374
- renderState_split: f32,
5375
- mouseX: f32,
5376
- mouseY: f32,
5377
- windowWidth: f32,
5378
- windowHeight: f32,
5379
- near: f32,
5380
- far: f32,
5381
- pointShadowBias: f32,
5382
- shadowMapSize: f32,
5383
- shadowSoft: f32,
5384
- enableCSM:f32,
5385
- csmMargin:f32,
5386
- nDirShadowStart: i32,
5387
- nDirShadowEnd: i32,
5388
- nPointShadowStart: i32,
5389
- nPointShadowEnd: i32,
5390
- cameraForward:vec3f,
5391
- frustumPlanes: array<vec4f, 6u>,
5392
- };
5419
+ struct GlobalUniform {
5393
5420
 
5394
- @group(0) @binding(0)
5395
- var<uniform> globalUniform: GlobalUniform;
5421
+ projMat: mat4x4<f32>,
5422
+ viewMat: mat4x4<f32>,
5423
+ cameraWorldMatrix: mat4x4<f32>,
5424
+ pvMatrixInv : mat4x4<f32>,
5425
+ viewToWorld : mat4x4<f32>,
5426
+ shadowMatrix: array<mat4x4<f32>, 8u>,
5396
5427
 
5397
- fn getViewPosition(z:f32,uv:vec2f) -> vec3f {
5398
- let pvMatrixInv = globalUniform.pvMatrixInv;
5399
- let clip = vec4<f32>((uv * 2.0 - 1.0), z, 1.0);
5400
- var viewPos = pvMatrixInv * clip;
5401
- return viewPos.xyz / viewPos.w;
5402
- }
5428
+ csmShadowBias: vec4<f32>,
5403
5429
 
5404
- fn getWorldPosition(z:f32,uv:vec2f) -> vec3f {
5405
- let viewToWorld = globalUniform.viewToWorld;
5406
- let clip = vec4<f32>((uv * 2.0 -1.0), z, 1.0);
5407
- var worldPos = viewToWorld * clip;
5408
- worldPos = worldPos / worldPos.w;
5409
- return worldPos.xyz;
5410
- }
5430
+ csmMatrix: array<mat4x4<f32>,${CSM.Cascades}>,
5431
+
5432
+ shadowLights:mat4x4<f32>,
5411
5433
 
5412
- var<private> NORMALMATRIX_INV : mat3x3<f32>;
5413
- var<private> NORMALMATRIX : mat3x3<f32>;
5414
- fn useNormalMatrix() {
5415
- let finalMatrix = globalUniform.projMat * globalUniform.viewMat;
5416
- let nMat = mat3x3<f32>(finalMatrix[0].xyz,finalMatrix[1].xyz,fianlMatrix[2].xyz);
5417
- NORMALMATRIX = transpose(inverse(nMat));
5418
- }
5434
+ reflectionProbeSize:f32,
5435
+ reflectionProbeMaxCount:f32,
5436
+ reflectionMapWidth:f32,
5437
+ reflectionMapHeight:f32,
5419
5438
 
5420
- fn useNormalMatrixInv() {
5421
- let finalMatrix = globalUniform.projMat * globalUniform.viewMat;
5422
- let nMat = mat3x3<f32>(finalMatrix[0].xyz,finalMatrix[1].xyz,finalMatrix[2].xyz);
5423
- NORMALMATRIX_INV = transpose((nMat));
5424
- }
5439
+ reflectionCount:f32,
5440
+ test2:f32,
5441
+ test3:f32,
5442
+ test4:f32,
5425
5443
 
5426
- fn getWorldNormal(viewNormal:vec3f) -> vec3f {
5427
- var worldNormal = NORMALMATRIX_INV * viewNormal;
5428
- return normalize(worldNormal.xyz);
5429
- }
5444
+ CameraPos: vec3<f32>,
5445
+ frame: f32,
5446
+ SH: array<vec4f, 9u> ,
5430
5447
 
5431
- fn getViewNormal(worldNormal:vec3f) -> vec3f {
5432
- var viewNormal = globalUniform.viewMat * vec4f(worldNormal,0.0);
5433
- return normalize(viewNormal.xyz);
5434
- }
5435
- `;
5448
+ time: f32,
5449
+ delta: f32,
5450
+ shadowBias: f32,
5451
+ skyExposure: f32,
5452
+
5453
+ renderPassState:f32,
5454
+ quadScale: f32,
5455
+ hdrExposure: f32,
5456
+ renderState_left: i32,
5457
+
5458
+ renderState_right: i32,
5459
+ renderState_split: f32,
5460
+ mouseX: f32,
5461
+ mouseY: f32,
5462
+
5463
+ windowWidth: f32,
5464
+ windowHeight: f32,
5465
+ near: f32,
5466
+ far: f32,
5467
+
5468
+ pointShadowBias: f32,
5469
+ shadowMapSize: f32,
5470
+ shadowSoft: f32,
5471
+ enableCSM:f32,
5472
+
5473
+
5474
+ csmMargin:f32,
5475
+ nDirShadowStart: i32,
5476
+ nDirShadowEnd: i32,
5477
+ nPointShadowStart: i32,
5478
+
5479
+ nPointShadowEnd: i32,
5480
+ cameraForward:vec3f,
5481
+
5482
+ frustumPlanes: array<vec4f, 6u>,
5483
+
5484
+ };
5485
+
5486
+ @group(0) @binding(0)
5487
+ var<uniform> globalUniform: GlobalUniform;
5488
+
5489
+ fn getViewPosition(z:f32,uv:vec2f) -> vec3f {
5490
+ let pvMatrixInv = globalUniform.pvMatrixInv ;
5491
+ let clip = vec4<f32>((uv * 2.0 - 1.0) , z , 1.0);
5492
+ var viewPos = pvMatrixInv * clip ;
5493
+ return viewPos.xyz / viewPos.w ;
5494
+ }
5495
+
5496
+ fn getWorldPosition(z:f32,uv:vec2f) -> vec3f {
5497
+ let viewToWorld = globalUniform.viewToWorld ;
5498
+ let clip = vec4<f32>((uv * 2.0 - 1.0) , z , 1.0);
5499
+ var worldPos = viewToWorld * clip ;
5500
+ worldPos = worldPos / worldPos.w ;
5501
+ return worldPos.xyz ;
5502
+ }
5503
+
5504
+ var<private> NORMALMATRIX_INV : mat3x3<f32> ;
5505
+ var<private> NORMALMATRIX : mat3x3<f32> ;
5506
+ fn useNormalMatrix() {
5507
+ let finalMatrix = globalUniform.projMat * globalUniform.viewMat ;
5508
+ let nMat = mat3x3<f32>(finalMatrix[0].xyz,finalMatrix[1].xyz,finalMatrix[2].xyz) ;
5509
+ NORMALMATRIX = transpose(inverse( nMat ));
5510
+ }
5511
+
5512
+ fn useNormalMatrixInv() {
5513
+ let finalMatrix = globalUniform.projMat * globalUniform.viewMat ;
5514
+ let nMat = mat3x3<f32>(finalMatrix[0].xyz,finalMatrix[1].xyz,finalMatrix[2].xyz) ;
5515
+ NORMALMATRIX_INV = transpose(( nMat ));
5516
+ }
5517
+
5518
+ fn getWorldNormal(viewNormal:vec3f) -> vec3f {
5519
+ var worldNormal = NORMALMATRIX_INV * viewNormal ;
5520
+ return normalize(worldNormal.xyz);
5521
+ }
5522
+
5523
+ fn getViewNormal(worldNormal:vec3f) -> vec3f {
5524
+ var viewNormal = globalUniform.viewMat * vec4f(worldNormal,0.0) ;
5525
+ return normalize(viewNormal.xyz);
5526
+ }
5527
+ `
5528
+ );
5436
5529
 
5437
5530
  let InstanceUniform = `
5438
5531
  #if USE_INSTANCEDRAW
@@ -5444,14 +5537,17 @@ var<uniform> materialUniform: MaterialUniform;
5444
5537
  #endif
5445
5538
  `;
5446
5539
 
5447
- let WorldMatrixUniform = `
5540
+ let WorldMatrixUniform = (
5541
+ /*wgsl*/
5542
+ `
5448
5543
  struct Uniforms {
5449
- matrix: array<mat4x4<f32>>
5544
+ matrix : array<mat4x4<f32>>
5450
5545
  };
5451
5546
 
5452
- @group(0) @building(1)
5453
- var<storage, read> models: Uniforms;
5454
- `;
5547
+ @group(0) @binding(1)
5548
+ var<storage, read> models : Uniforms;
5549
+ `
5550
+ );
5455
5551
 
5456
5552
  let FastMathShader = `
5457
5553
  fn pow2(x:f32) -> f32 {
@@ -5522,7 +5618,7 @@ var<uniform> materialUniform: MaterialUniform;
5522
5618
  return res ;
5523
5619
  }else{
5524
5620
  return PI - res ;
5525
- }
5621
+ };
5526
5622
  }
5527
5623
 
5528
5624
  fn acosFast4( inX : f32 )-> f32
@@ -5541,12 +5637,15 @@ var<uniform> materialUniform: MaterialUniform;
5541
5637
  return s ;
5542
5638
  }else{
5543
5639
  return PI - s ;
5544
- }
5640
+ };
5545
5641
  }
5546
5642
  `;
5547
5643
 
5548
- let NormalMap_frag = `
5549
- fn perturbNormal( worldPos:vec3<f32>, surf_norm:vec3<f32>, mapN:vec3<f32>, normalScale:f32, face:f32 ) -> vec3<f32> {
5644
+ let NormalMap_frag = (
5645
+ /*wgsl*/
5646
+ `
5647
+
5648
+ fn perturbNormal( worldPos:vec3<f32>, surf_norm:vec3<f32>, mapN:vec3<f32> , normalScale:f32 , face:f32 ) -> vec3<f32> {
5550
5649
  var q0 = vec3<f32>( dpdx( worldPos.x ), dpdx( worldPos.y ), dpdx( worldPos.z ) );
5551
5650
  var q1 = vec3<f32>( dpdy( worldPos.x ), dpdy( worldPos.y ), dpdy( worldPos.z ) );
5552
5651
  var st0 = dpdx( ORI_VertexVarying.fragUV0.xy );
@@ -5554,12 +5653,17 @@ var<uniform> materialUniform: MaterialUniform;
5554
5653
  var N = surf_norm;
5555
5654
  var q0perp = cross( N, q0 );
5556
5655
  var q1perp = cross( q1, N );
5656
+
5657
+ var T = q1perp * st0.x + q0perp * st1.x;
5658
+
5557
5659
  var B = q1perp * st0.y + q0perp * st1.y;
5660
+
5558
5661
  var det = max( dot( T, T ), dot( B, B ) );
5559
5662
  var scale = 1.0 ;
5560
5663
  if( det != 0.0 ){
5561
5664
  scale = inverseSqrt( det ) ;
5562
5665
  }
5666
+
5563
5667
  scale *= normalScale;
5564
5668
  return normalize( (T * ( -mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z ) * face ) ;
5565
5669
  }
@@ -5600,7 +5704,8 @@ var<uniform> materialUniform: MaterialUniform;
5600
5704
  var outN = perturbNormal(ORI_VertexVarying.vWorldPos.xyz,ORI_VertexVarying.vWorldNormal,mapNormal,1.0,face) ;
5601
5705
  return outN ;
5602
5706
  }
5603
- `;
5707
+ `
5708
+ );
5604
5709
 
5605
5710
  let FragmentVarying = `
5606
5711
  struct FragmentVarying {
@@ -5694,7 +5799,7 @@ var<uniform> materialUniform: MaterialUniform;
5694
5799
  return textureSampleLevel(iesTextureArrayMap, iesTextureArrayMapSampler, vec2<f32>(normAngle , normTangentAngle) , i32(light.ies) , 0.0).r ;
5695
5800
  }else{
5696
5801
  return 1.0;
5697
- }
5802
+ };
5698
5803
  #else
5699
5804
  return 1.0;
5700
5805
  #endif
@@ -5762,12 +5867,12 @@ var<uniform> materialUniform: MaterialUniform;
5762
5867
  weight *= 1.0 - totalWeight;
5763
5868
  visibility += csmShadowResult.x * weight;
5764
5869
  totalWeight += weight;
5765
- }
5870
+ };
5766
5871
 
5767
5872
  if(validCount >= 2 || totalWeight >= 0.99){
5768
5873
  csmLevel = csm;
5769
5874
  break;
5770
- }
5875
+ };
5771
5876
  }
5772
5877
  }
5773
5878
 
@@ -5776,7 +5881,7 @@ var<uniform> materialUniform: MaterialUniform;
5776
5881
  visibility = 1.0;
5777
5882
  }else{
5778
5883
  visibility = visibility / totalWeight ;
5779
- }
5884
+ };
5780
5885
  } else {
5781
5886
  shadowMatrix = globalUniform.shadowMatrix[shadowIndex];
5782
5887
  if(enableCSM) {
@@ -5825,7 +5930,7 @@ var<uniform> materialUniform: MaterialUniform;
5825
5930
  totalWeight += weight;
5826
5931
  }else{
5827
5932
  totalWeight += 1.0;
5828
- }
5933
+ };
5829
5934
  }
5830
5935
  }
5831
5936
  visibility /= totalWeight;
@@ -6638,7 +6743,9 @@ var<uniform> materialUniform: MaterialUniform;
6638
6743
  }
6639
6744
  `;
6640
6745
 
6641
- let BxDF_frag = `
6746
+ let BxDF_frag = (
6747
+ /*wgsl*/
6748
+ `
6642
6749
  #include "Clearcoat_frag"
6643
6750
  #include "BRDF_frag"
6644
6751
  #include "MathShader"
@@ -6656,7 +6763,9 @@ var<uniform> materialUniform: MaterialUniform;
6656
6763
  #include "BxdfDebug_frag"
6657
6764
  #include "ReflectionCG"
6658
6765
 
6766
+ //ORI_ShadingInput
6659
6767
  fn initFragData() {
6768
+ // fragData.Albedo = vec4f(gammaToLiner(ORI_ShadingInput.BaseColor.rgb),ORI_ShadingInput.BaseColor.w) ;
6660
6769
  fragData.Albedo = vec4f((ORI_ShadingInput.BaseColor.rgb),ORI_ShadingInput.BaseColor.w) ;
6661
6770
  fragData.Ao = clamp( pow(ORI_ShadingInput.AmbientOcclusion,materialUniform.ao) , 0.0 , 1.0 ) ;
6662
6771
  fragData.Roughness = clamp((ORI_ShadingInput.Roughness),0.0001,1.0) * 1.85 ;
@@ -6672,13 +6781,19 @@ var<uniform> materialUniform: MaterialUniform;
6672
6781
 
6673
6782
  let R = 2.0 * dot( fragData.V , fragData.N ) * fragData.N - fragData.V ;
6674
6783
  fragData.R = R ;//reflect( fragData.V , fragData.N ) ;
6784
+
6675
6785
  fragData.NoV = saturate(dot(fragData.N, fragData.V)) ;
6786
+
6676
6787
  fragData.F0 = mix(vec3<f32>(0.04), fragData.Albedo.rgb , fragData.Metallic);
6788
+ // fragData.F0 = gammaToLiner(fragData.F0);
6789
+
6677
6790
  fragData.F = computeFresnelSchlick(fragData.NoV, fragData.F0);
6678
6791
  fragData.KD = vec3<f32>(fragData.F) ;
6679
6792
  fragData.KS = vec3<f32>(0.0) ;
6793
+
6680
6794
  fragData.Indirect = 0.0 ;
6681
6795
  fragData.Reflectance = 1.0 ;
6796
+
6682
6797
  fragData.ClearcoatRoughness = materialUniform.clearcoatRoughnessFactor ;
6683
6798
  fragData.ClearcoatIor = materialUniform.clearcoatIor ;
6684
6799
  fragData.ClearcoatFactor = materialUniform.clearcoatFactor;
@@ -6691,7 +6806,9 @@ var<uniform> materialUniform: MaterialUniform;
6691
6806
 
6692
6807
  fn BxDFShading(){
6693
6808
  initFragData();
6809
+
6694
6810
  let sunLight = lightBuffer[0] ;
6811
+
6695
6812
  var irradiance = vec3<f32>(0.0) ;
6696
6813
  #if USEGI
6697
6814
  irradiance += getIrradiance().rgb ;
@@ -6752,6 +6869,7 @@ var<uniform> materialUniform: MaterialUniform;
6752
6869
  }
6753
6870
 
6754
6871
  //***********indirect-ambient part*********
6872
+ // var kdLast = (1.0 - 0.04) * (1.0 - fragData.Metallic);
6755
6873
  var iblDiffuseResult : vec3f ;
6756
6874
 
6757
6875
  let MAX_LOD = i32(textureNumLevels(prefilterMap)) ;
@@ -6765,7 +6883,8 @@ var<uniform> materialUniform: MaterialUniform;
6765
6883
  indirectionSpec *= globalUniform.hdrExposure ;
6766
6884
  #endif
6767
6885
 
6768
- var color = vec3f(iblDiffuseResult + indirectionSpec + specColor);
6886
+ var color = vec3f(iblDiffuseResult + indirectionSpec + specColor) ;
6887
+ // var color = vec3f(indirectionDiffuse ) ;
6769
6888
 
6770
6889
  var clearCoatColor = vec3<f32>(0.0);
6771
6890
  #if USE_CLEARCOAT
@@ -6790,6 +6909,9 @@ var<uniform> materialUniform: MaterialUniform;
6790
6909
  break;
6791
6910
  }
6792
6911
  case SpotLightType: {
6912
+ // var lightColor = light.lightColor.rgb ;
6913
+ // var att = pointAtt(ORI_VertexVarying.vWorldPos.xyz, light);
6914
+ // clearCoatColor += ClearCoat_BRDF( color , materialUniform.clearcoatColor.rgb , 1.5 , clearNormal , light.direction , fragData.V , clearcoatRoughness , lightColor, att );
6793
6915
  break;
6794
6916
  }
6795
6917
  default: {
@@ -6828,7 +6950,9 @@ var<uniform> materialUniform: MaterialUniform;
6828
6950
  ORI_FragmentOutput.color = viewColor ;
6829
6951
  #endif
6830
6952
  }
6831
- `;
6953
+
6954
+ `
6955
+ );
6832
6956
 
6833
6957
  let BsDF_frag = `
6834
6958
  #include "Clearcoat_frag"
@@ -7028,7 +7152,9 @@ var<uniform> materialUniform: MaterialUniform;
7028
7152
  }
7029
7153
  `;
7030
7154
 
7031
- let PBRLItShader = `
7155
+ let PBRLItShader = (
7156
+ /*wgsl*/
7157
+ `
7032
7158
  #include "Common_vert"
7033
7159
  #include "Common_frag"
7034
7160
  #include "BxDF_frag"
@@ -7043,10 +7169,10 @@ var<uniform> materialUniform: MaterialUniform;
7043
7169
  @group(1) @binding(auto)
7044
7170
  var normalMap: texture_2d<f32>;
7045
7171
 
7046
- @group(1) @binding(auto)
7047
- var maskMapSampler: sampler;
7048
- @group(1) @binding(auto)
7049
- var maskMap: texture_2d<f32>;
7172
+ @group(1) @binding(auto)
7173
+ var maskMapSampler: sampler;
7174
+ @group(1) @binding(auto)
7175
+ var maskMap: texture_2d<f32>;
7050
7176
 
7051
7177
  #if USE_AOTEX
7052
7178
  @group(1) @binding(auto)
@@ -7060,38 +7186,39 @@ var<uniform> materialUniform: MaterialUniform;
7060
7186
  @group(1) @binding(auto)
7061
7187
  var emissiveMap: texture_2d<f32>;
7062
7188
 
7063
- var<private> debugOut: vec4f = vec4f(0.0);
7189
+ var<private> debugOut : vec4f = vec4f(0.0) ;
7064
7190
 
7065
7191
  fn vert(inputData:VertexAttributes) -> VertexOutput {
7066
- ORI_Vert(inputData);
7067
- return ORI_VertextOut;
7192
+ ORI_Vert(inputData) ;
7193
+ return ORI_VertexOut ;
7068
7194
  }
7069
7195
 
7070
7196
  fn frag(){
7197
+
7071
7198
  let baseMapOffsetSize = materialUniform.baseMapOffsetSize;
7072
- var uv = transformUV(ORI_VertexVarying.fragUV0, baseMapOffsetSize);
7199
+ var uv = transformUV(ORI_VertexVarying.fragUV0,baseMapOffsetSize) ;
7073
7200
 
7074
7201
  #if USE_SRGB_ALBEDO
7075
- ORI_ShadingInput.BaseColor = textureSample(baseMap, baseMapSampler, uv);
7076
- ORI_ShadingInput.BaseColor = vec4<f32>(ORI_ShadingInput.BaseColor * materialUniform.baseColor.rgb, ORI_ShadingInput.BaseColor.w * materialUniform.baseColor.a);
7202
+ ORI_ShadingInput.BaseColor = textureSample(baseMap, baseMapSampler, uv ) ;
7203
+ ORI_ShadingInput.BaseColor = vec4<f32>( ORI_ShadingInput.BaseColor * materialUniform.baseColor.rgb, ORI_ShadingInput.BaseColor.w * materialUniform.baseColor.a) ;
7077
7204
  #else
7078
- ORI_ShadingInput.BaseColor = textureSampler(baseMap, baseMapSampler, uv);
7079
- ORI_ShadingInput.BaseColor = vec4f(gammaToLiner(ORI_ShadingInput.BaseColor.rgb), ORI_ShadingInput.BaseColor.a);
7080
- ORI_ShadingInput.BaseColor *= vec4f(materialUniform.baseColor.rgba);
7205
+ ORI_ShadingInput.BaseColor = textureSample(baseMap, baseMapSampler, uv ) ;
7206
+ ORI_ShadingInput.BaseColor = vec4f(gammaToLiner(ORI_ShadingInput.BaseColor.rgb),ORI_ShadingInput.BaseColor.a) ;
7207
+ ORI_ShadingInput.BaseColor *= vec4f(materialUniform.baseColor.rgba) ;
7081
7208
  #endif
7082
7209
 
7083
7210
  let roughnessMapOffsetSize = materialUniform.roughnessMapOffsetSize;
7084
- var uv4 = transformUV(ORI_VertexVarying.fragUV0, roughnessMapOffsetSize);
7085
- var maskTex = textureSample(maskMap, maskMapSampler, uv4);
7086
-
7211
+ var uv4 = transformUV(ORI_VertexVarying.fragUV0,roughnessMapOffsetSize);
7212
+ var maskTex = textureSample(maskMap, maskMapSampler, uv4 );
7213
+
7087
7214
  #if USE_ALPHA_A
7088
- ORI_ShadingInput.BaseColor.a = ORI_ShadingInput.BaseColor.a * (maskTex.a);
7215
+ ORI_ShadingInput.BaseColor.a = ORI_ShadingInput.BaseColor.a * (maskTex.a) ;
7089
7216
  #endif
7090
7217
 
7091
- #if USE_ALPHACUT
7218
+ #if USE_ALPHACUT
7092
7219
  if( (ORI_ShadingInput.BaseColor.a - materialUniform.alphaCutoff) <= 0.0 ){
7093
7220
  ORI_FragmentOutput.color = vec4<f32>(0.0,0.0,0.0,1.0);
7094
-
7221
+
7095
7222
  #if USEGBUFFER
7096
7223
  ORI_FragmentOutput.worldPos = vec4<f32>(0.0,0.0,0.0,1.0);
7097
7224
  ORI_FragmentOutput.worldNormal = vec4<f32>(0.0,0.0,0.0,1.0);
@@ -7104,7 +7231,7 @@ var<uniform> materialUniform: MaterialUniform;
7104
7231
 
7105
7232
  useShadow();
7106
7233
 
7107
- var roughnessChannel: f32 = 1.0;
7234
+ var roughnessChannel:f32 = 1.0 ;
7108
7235
  #if USE_ROUGHNESS_A
7109
7236
  roughnessChannel = maskTex.a ;
7110
7237
  #else if USE_ROUGHNESS_R
@@ -7115,16 +7242,16 @@ var<uniform> materialUniform: MaterialUniform;
7115
7242
  roughnessChannel = maskTex.b ;
7116
7243
  #else if USE_ALBEDO_A
7117
7244
  roughnessChannel = ORI_ShadingInput.BaseColor.a ;
7118
- #endif
7245
+ #endif
7119
7246
 
7120
7247
  #if USE_SMOOTH
7121
7248
  var roughness = ( 1.0 - roughnessChannel ) * materialUniform.roughness;
7122
- ORI_ShadingInput.Roughness = clamp(roughness, 0.0001, 1.0);
7249
+ ORI_ShadingInput.Roughness = clamp(roughness , 0.0001 , 1.0);
7123
7250
  #else
7124
- ORI_ShadingInput.Roughness = clamp(roughness * materialUniform.roughness, 0.0001, 1.0);
7125
- #endif
7251
+ ORI_ShadingInput.Roughness = clamp(roughnessChannel * materialUniform.roughness ,0.0001,1.0);
7252
+ #endif
7126
7253
 
7127
- var metallicChannel:f32 = 1.0;
7254
+ var metallicChannel:f32 = 1.0 ;
7128
7255
  #if USE_METALLIC_A
7129
7256
  metallicChannel = maskTex.a ;
7130
7257
  #else if USE_METALLIC_R
@@ -7133,16 +7260,16 @@ var<uniform> materialUniform: MaterialUniform;
7133
7260
  metallicChannel = maskTex.g ;
7134
7261
  #else if USE_METALLIC_B
7135
7262
  metallicChannel = maskTex.b ;
7136
- #endif
7137
-
7138
- ORI_ShadingInput.Metallic = metallicChannel * materialUniform.metallic;
7263
+ #endif
7139
7264
 
7140
- var aoChannel: f32 = 1.0;
7141
- #if USE_AOTEX;
7265
+ ORI_ShadingInput.Metallic = metallicChannel * materialUniform.metallic ;
7266
+
7267
+ var aoChannel:f32 = 1.0 ;
7268
+ #if USE_AOTEX
7142
7269
  let aoMapOffsetSize = materialUniform.aoMapOffsetSize;
7143
7270
  var aoMapOffsetSizeUV = transformUV(ORI_VertexVarying.fragUV0,aoMapOffsetSize);
7144
7271
  var aoMap = textureSample(aoMap, aoMapSampler, ORI_VertexVarying.fragUV0 );
7145
- aoChannel = aoMap.g;
7272
+ aoChannel = aoMap.g ;
7146
7273
  #else
7147
7274
  #if USE_AO_A
7148
7275
  aoChannel = maskTex.a ;
@@ -7155,12 +7282,11 @@ var<uniform> materialUniform: MaterialUniform;
7155
7282
  #endif
7156
7283
  #endif
7157
7284
 
7158
- ORI_ShadingInput.AmbientOcclusion = aoChannel;
7159
- ORI_ShadingInput.Specular = 1.0;
7285
+ ORI_ShadingInput.AmbientOcclusion = aoChannel ;
7286
+ ORI_ShadingInput.Specular = 1.0 ;
7160
7287
 
7161
7288
  let emissiveMapOffsetSize = materialUniform.emissiveMapOffsetSize;
7162
- var emissiveUV = transformUV(ORI_VertexVarying.fragUV0,emissiveMapOffsetSize);
7163
-
7289
+ var emissiveUV = transformUV(ORI_VertexVarying.fragUV0,emissiveMapOffsetSize) ;
7164
7290
  #if USE_EMISSIVEMAP
7165
7291
  var emissiveMapColor = textureSample(emissiveMap, emissiveMapSampler , emissiveUV ) ;
7166
7292
  let emissiveColor = materialUniform.emissiveColor.rgb * emissiveMapColor.rgb * materialUniform.emissiveIntensity ;
@@ -7171,23 +7297,66 @@ var<uniform> materialUniform: MaterialUniform;
7171
7297
  #endif
7172
7298
 
7173
7299
  let normalMapOffsetSize = materialUniform.normalMapOffsetSize;
7174
- var nomralUV = transformUV(ORI_VertexVarying.fragUV0,normalMapOffsetSize);
7175
- var Normal = textureSample(normalMap,normalMapSampler,nomralUV).rgb;
7176
- let normal = unPackRGNormal(Normal,1.0,1.0);
7177
- ORI_ShadingInput.Normal = normal;
7178
-
7300
+ var nomralUV = transformUV(ORI_VertexVarying.fragUV0,normalMapOffsetSize) ;
7301
+ var Normal = textureSample(normalMap,normalMapSampler,nomralUV).rgb ;
7302
+ let normal = unPackRGNormal(Normal,1.0,1.0) ;
7303
+ ORI_ShadingInput.Normal = normal ;
7304
+
7179
7305
  BxDFShading();
7306
+
7180
7307
  }
7181
- `;
7308
+ `
7309
+ );
7182
7310
 
7183
- let BxdfDebug_frag = `
7184
- #include "ClusterDebug_frag"
7311
+ let BxdfDebug_frag = (
7312
+ /*wgsl*/
7313
+ `
7314
+ #include "ClusterDebug_frag"
7315
+
7316
+ fn debugPosition(){
7317
+ }
7185
7318
 
7186
7319
  fn debugMeshID(){
7187
7320
  let meshIDColor = u32(round(ORI_VertexVarying.vWorldPos.w) ) ;
7188
7321
  let color = colorSet[ meshIDColor % 9u] ;
7189
7322
  }
7190
7323
 
7324
+ fn debugNormal(){
7325
+ }
7326
+
7327
+ fn debugUV(){
7328
+ }
7329
+
7330
+ fn debugColor(){
7331
+ }
7332
+
7333
+ fn debugDiffuse(){
7334
+ }
7335
+
7336
+ fn debugAmbient(){
7337
+ }
7338
+
7339
+ fn debugEmissive(){
7340
+ }
7341
+
7342
+ fn debugEnvment(){
7343
+ }
7344
+
7345
+ fn debugAo(){
7346
+ }
7347
+
7348
+ fn debugRoughness(){
7349
+ }
7350
+
7351
+ fn debugMetallic(){
7352
+ }
7353
+
7354
+ fn debugIrradiance(){
7355
+ }
7356
+
7357
+ fn debugTangent(){
7358
+ }
7359
+
7191
7360
  fn debugFragmentOut(){
7192
7361
  if(ORI_VertexVarying.fragCoord.x > globalUniform.renderState_split) {
7193
7362
  switch (globalUniform.renderState_right)
@@ -7317,17 +7486,20 @@ var<uniform> materialUniform: MaterialUniform;
7317
7486
  }
7318
7487
  }
7319
7488
  }
7320
- `;
7489
+ `
7490
+ );
7321
7491
 
7322
- let FullQuad_vert_wgsl = `
7492
+ let FullQuad_vert_wgsl = (
7493
+ /*wgsl*/
7494
+ `
7323
7495
  #include "WorldMatrixUniform"
7324
7496
  #include "GlobalUniform"
7325
7497
 
7326
7498
  struct MaterialUniform {
7327
- x:f32,
7328
- y:f32,
7329
- width:f32,
7330
- height:f32,
7499
+ x:f32,
7500
+ y:f32,
7501
+ width:f32,
7502
+ height:f32,
7331
7503
  };
7332
7504
 
7333
7505
  struct VertexOutput {
@@ -7336,39 +7508,51 @@ var<uniform> materialUniform: MaterialUniform;
7336
7508
  };
7337
7509
 
7338
7510
  @vertex
7339
- fn main(@builtin(vertex_index) vertexIndex: u32, @builtin(instance_index) index){
7340
- 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));
7341
- 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));
7342
- let id = u32(index);
7343
- var output: VertexOutput;
7344
- output.fragUV = uv[vertexIndex];
7345
- output.position = vec4<f32>(pos[vertexIndex] , 0.0, 1.0);
7346
- return output;
7511
+ fn main(@builtin(vertex_index) vertexIndex : u32, @builtin(instance_index) index : u32 ) -> VertexOutput {
7512
+ const pos = array(
7513
+ vec2(-1.0, -1.0), vec2(1.0, -1.0), vec2(-1.0, 1.0),
7514
+ vec2(-1.0, 1.0), vec2(1.0, -1.0), vec2(1.0, 1.0),
7515
+ );
7516
+ const uv = array(
7517
+ vec2(1.0, 0.0), vec2(1.0, 1.0), vec2(0.0, 1.0),
7518
+ vec2(1.0, 0.0), vec2(0.0, 1.0), vec2(0.0, 0.0),
7519
+ );
7520
+ let id = u32(index) ;
7521
+ var output : VertexOutput;
7522
+ output.fragUV = uv[vertexIndex] ;
7523
+ output.position = vec4<f32>(pos[vertexIndex] , 0.0, 1.0) ;
7524
+ return output ;
7347
7525
  }
7348
- `;
7349
- let Quad_vert_wgsl = `
7350
- #include "WorldMatrixUniform"
7351
- #include "GlobalUniform"
7352
-
7353
- struct MaterialUniform {
7354
- x: f32,
7355
- y: f32,
7526
+ `
7527
+ );
7528
+ let Quad_vert_wgsl = (
7529
+ /*wgsl*/
7530
+ `
7531
+ #include "WorldMatrixUniform"
7532
+ #include "GlobalUniform"
7533
+
7534
+ struct MaterialUniform {
7535
+ x:f32,
7536
+ y:f32,
7356
7537
  width:f32,
7357
7538
  height:f32,
7358
- };
7539
+ };
7359
7540
 
7360
- struct VertexOutput {
7361
- @location(auto) fragUV: vec2<f32>,
7362
- @builtin(position) member: vec4<f32>
7363
- };
7541
+ struct VertexOutput {
7542
+ @location(auto) fragUV: vec2<f32>,
7543
+ @builtin(position) member: vec4<f32>
7544
+ };
7364
7545
 
7365
- @vertex
7366
- fn main(@builtin(instance_index) index: u32, @location(auto) position: vec3<f32>, @location(auto) TEXCOORD_1: vec2<f32>) -> VertexOutput {
7367
- let uv = vec2(((TEXCOORD_1.xy * 2.0) - vec2<f32>(1.0)));
7368
- return VertexOutput(TEXCOORD_1, vec4<f32>(uv, 0.0, 1.0));
7369
- }
7370
- `;
7371
- let Quad_frag_wgsl = `
7546
+ @vertex
7547
+ fn main(@builtin(instance_index) index : u32,@location(auto) position: vec3<f32>, @location(auto) TEXCOORD_1: vec2<f32>) -> VertexOutput {
7548
+ let uv = vec2(((TEXCOORD_1.xy * 2.0) - vec2<f32>(1.0))) ;// / windowSize * size - offset ;
7549
+ return VertexOutput(TEXCOORD_1, vec4<f32>(uv, 0.0, 1.0));
7550
+ }
7551
+ `
7552
+ );
7553
+ let Quad_frag_wgsl = (
7554
+ /*wgsl*/
7555
+ `
7372
7556
  struct FragmentOutput {
7373
7557
  @location(auto) o_Target: vec4<f32>
7374
7558
  };
@@ -7377,22 +7561,25 @@ var<uniform> materialUniform: MaterialUniform;
7377
7561
  var<private> o_Target: vec4<f32>;
7378
7562
  @group(1) @binding(0)
7379
7563
  var baseMapSampler: sampler;
7380
- @group(1) @binding(0)
7564
+ @group(1) @binding(1)
7381
7565
  var baseMap: texture_2d<f32>;
7382
7566
 
7383
7567
  @fragment
7384
7568
  fn main(@location(auto) fragUV: vec2<f32>) -> FragmentOutput {
7385
- var uv = fragUV;
7386
- uv.y = 1.0 -uv.y;
7387
- var color: vec4<f32> = textureSample(baseMap, baseMapSampler, uv);
7569
+ var uv = fragUV ;
7570
+ uv.y = 1.0 - uv.y ;
7571
+ var color: vec4<f32> = textureSample(baseMap, baseMapSampler, uv );
7388
7572
 
7389
7573
  return FragmentOutput(color);
7390
7574
  }
7391
- `;
7392
- let Quad_depth2d_frag_wgsl = `
7575
+ `
7576
+ );
7577
+ let Quad_depth2d_frag_wgsl = (
7578
+ /*wgsl*/
7579
+ `
7393
7580
  struct FragmentOutput {
7394
7581
  @location(auto) o_Target: vec4<f32>
7395
- };
7582
+ };
7396
7583
 
7397
7584
  var<private> fragUV1: vec2<f32>;
7398
7585
  var<private> o_Target: vec4<f32>;
@@ -7400,21 +7587,25 @@ var<uniform> materialUniform: MaterialUniform;
7400
7587
  @group(1) @binding(0)
7401
7588
  var baseMapSampler: sampler;
7402
7589
  @group(1) @binding(1)
7403
- var baseMap: texture_depth_2d;
7590
+ var baseMap: texture_depth_2d ;
7404
7591
 
7405
- fn Linear01Depth(z:f32) -> f32 {
7592
+ fn Linear01Depth( z : f32 ) -> f32
7593
+ {
7406
7594
  return 1.0 / (1.0 * z + 5000.0);
7407
7595
  }
7408
7596
 
7409
7597
  @fragment
7410
7598
  fn main(@location(auto) fragUV: vec2<f32>) -> FragmentOutput {
7411
- var uv = fragUV;
7412
- uv.y = 1.0 - uv.y;
7413
- var depth = textureSample(baseMap, baseMapSampler, uv, vec2<i32>(0));
7414
- return FragmentOutput(vec4<f32>(depth, 0.0, 0.0, 1.0));
7599
+ var uv = fragUV ;
7600
+ uv.y = 1.0 - uv.y ;
7601
+ var depth = textureSample(baseMap, baseMapSampler, uv , vec2<i32>(0) ) ;
7602
+ return FragmentOutput(vec4<f32>(depth,0.0,0.0,1.0));
7415
7603
  }
7416
- `;
7417
- let Quad_depthCube_frag_wgsl = `
7604
+ `
7605
+ );
7606
+ let Quad_depthCube_frag_wgsl = (
7607
+ /*wgsl*/
7608
+ `
7418
7609
  struct FragmentOutput {
7419
7610
  @location(auto) o_Target: vec4<f32>
7420
7611
  };
@@ -7424,10 +7615,11 @@ var<uniform> materialUniform: MaterialUniform;
7424
7615
 
7425
7616
  @group(1) @binding(0)
7426
7617
  var baseMapSampler: sampler;
7427
- @group(1) @binding(0)
7428
- var baseMap: texture_depth_cube;
7618
+ @group(1) @binding(1)
7619
+ var baseMap: texture_depth_cube ;
7429
7620
 
7430
- fn uvToXYZ(face: i32, uv: vec2<f32>) -> vec3<f32> {
7621
+ fn uvToXYZ( face : i32 , uv : vec2<f32> ) -> vec3<f32>
7622
+ {
7431
7623
  var out : vec3<f32> ;
7432
7624
  if(face == 0){
7433
7625
  out = vec3<f32>( 1.0, uv.y, -uv.x);
@@ -7447,12 +7639,12 @@ var<uniform> materialUniform: MaterialUniform;
7447
7639
 
7448
7640
  @fragment
7449
7641
  fn main(@location(auto) fragUV: vec2<f32>) -> FragmentOutput {
7450
- var uv = fragUV;
7451
- uv.y = 1.0 - uv.y;
7452
- var ii = 0.16;
7642
+ var uv = fragUV ;
7643
+ uv.y = 1.0 - uv.y ;
7644
+ var ii = 0.16 ;
7453
7645
  var ouv = vec3<f32>(0.0);
7454
7646
  if(uv.x < ii * 6.0){
7455
- ouv = uvToXYZ(5, uv/ii);
7647
+ ouv = uvToXYZ(5,uv/ii);
7456
7648
  }
7457
7649
  if(uv.x < ii * 5.0){
7458
7650
  ouv = uvToXYZ(4,uv/ii);
@@ -7469,15 +7661,19 @@ var<uniform> materialUniform: MaterialUniform;
7469
7661
  if(uv.x < ii * 1.0){
7470
7662
  ouv = uvToXYZ(0,uv/ii);
7471
7663
  }
7472
- var depth = textureSample(baseMap, baseMapSampler, ouv);
7473
- depth = 1.0 - depth;
7474
- return FragmentOutput(vec4<f32>(depth, 0.0, 0.0, 1.0));
7664
+ var depth = textureSample(baseMap, baseMapSampler, ouv ) ;
7665
+ depth = 1.0 - depth;
7666
+
7667
+ return FragmentOutput(vec4<f32>(depth,0.0,0.0,1.0));
7475
7668
  }
7476
- `;
7477
- let Quad_depth2dArray_frag_wgsl = `
7669
+ `
7670
+ );
7671
+ let Quad_depth2dArray_frag_wgsl = (
7672
+ /*wgsl*/
7673
+ `
7478
7674
  struct FragmentOutput {
7479
7675
  @location(auto) o_Target: vec4<f32>
7480
- }
7676
+ };
7481
7677
 
7482
7678
  var<private> fragUV1: vec2<f32>;
7483
7679
  var<private> o_Target: vec4<f32>;
@@ -7485,7 +7681,7 @@ var<uniform> materialUniform: MaterialUniform;
7485
7681
  @group(1) @binding(0)
7486
7682
  var baseMapSampler: sampler;
7487
7683
  @group(1) @binding(1)
7488
- var baseMap: texture_2d_array;
7684
+ var baseMap: texture_2d_array ;
7489
7685
 
7490
7686
  struct MaterialData{
7491
7687
  index:f32;
@@ -7493,15 +7689,16 @@ var<uniform> materialUniform: MaterialUniform;
7493
7689
 
7494
7690
  @fragment
7495
7691
  fn main(@location(auto) fragUV: vec2<f32>) -> FragmentOutput {
7496
- var uv = fragUV;
7497
- uv.y = 1.0 - uv.y;
7498
-
7499
- var depth = textureSample(baseMap, baseMapSampler, ouv);
7500
- depth = 1.0 - depth;
7692
+ var uv = fragUV ;
7693
+ uv.y = 1.0 - uv.y ;
7694
+
7695
+ var depth = textureSample(baseMap, baseMapSampler, ouv ) ;
7696
+ depth = 1.0 - depth;
7501
7697
 
7502
- return FragmentOutput(vec4<f32>(depth, 0.0, 0.0, 1.0));
7698
+ return FragmentOutput(vec4<f32>(depth,0.0,0.0,1.0));
7503
7699
  }
7504
- `;
7700
+ `
7701
+ );
7505
7702
 
7506
7703
  let ColorUtil = `
7507
7704
  fn getHDRColor(color: vec3<f32>, exposure: f32) -> vec3<f32> {
@@ -7648,25 +7845,31 @@ var<uniform> materialUniform: MaterialUniform;
7648
7845
  }
7649
7846
  `;
7650
7847
 
7651
- let GenerayRandomDir = `
7652
- fn madfrac(A:f32, B:f32) -> f32 {
7653
- return A*B-floor(A*B);
7848
+ let GenerayRandomDir = (
7849
+ /*wgsl*/
7850
+ `
7851
+ fn madfrac(A:f32, B:f32)-> f32 {
7852
+ return A*B-floor(A*B) ;
7654
7853
  }
7655
7854
 
7656
- fn sampleRandomDir(count:u32, SAMPLE_COUNT: u32) -> vec3<f32> {
7657
- var ray_dir = sphericalFibonacci(f32((count)), f32(SAMPLE_COUNT));
7658
- return normalize(ray_dir);
7855
+ fn sampleRandomDir(count:u32,SAMPLE_COUNT:u32) -> vec3<f32>{
7856
+ var ray_dir = sphericalFibonacci(f32((count)), f32(SAMPLE_COUNT) );
7857
+ return normalize(ray_dir) ;
7659
7858
  }
7660
7859
 
7661
- fn sphericalFibonacci(i:f32, n:f32) -> vec3<f32> {
7662
- constPHI = sqrt(5.0) * 0.5 + 0.5;
7860
+ fn sphericalFibonacci( i : f32 , n : f32 ) -> vec3<f32>{
7861
+ const PHI = sqrt(5.0) * 0.5 + 0.5;
7663
7862
  let phi = 2.0 * PI * madfrac(i, PHI - 1);
7664
7863
  let cosTheta = 1.0 - (2.0 * i + 1.0) * (1.0 / n);
7665
7864
  let sinTheta = sqrt(saturate(1.0 - cosTheta*cosTheta));
7666
7865
 
7667
- return vec3<f32>(cos(phi) * sinTheta, sin(phi) * sinTheta, cosTheta);
7866
+ return vec3<f32>(
7867
+ cos(phi) * sinTheta,
7868
+ sin(phi) * sinTheta,
7869
+ cosTheta);
7668
7870
  }
7669
- `;
7871
+ `
7872
+ );
7670
7873
 
7671
7874
  let MatrixShader = `
7672
7875
  #include "MathShader"
@@ -7921,7 +8124,7 @@ var<uniform> materialUniform: MaterialUniform;
7921
8124
  face = 1.0 ;
7922
8125
  }else{
7923
8126
  face = -1.0 ;
7924
- }
8127
+ };
7925
8128
  #if USE_TANGENT
7926
8129
  let T = ORI_VertexVarying.TANGENT.xyz;
7927
8130
  let N = ORI_VertexVarying.vWorldNormal ;
@@ -8788,15 +8991,18 @@ fn main(vertex:VertexAttributes) -> VertexOutput {
8788
8991
  }
8789
8992
  `;
8790
8993
 
8791
- let BitUtil = `
8994
+ let BitUtil = (
8995
+ /* wgsl */
8996
+ `
8997
+
8792
8998
  const inv256:f32 = 1.0/256.0;
8793
8999
  const inv1024:f32 = 1.0/1024.0;
8794
9000
 
8795
- const bit7_inv128:f32 = 1.0/128.0;
9001
+ const bit7_inv128:f32 = 1.0 / 128.0;
8796
9002
  const bit7_128:f32 = 128.0;
8797
-
9003
+
8798
9004
  const r10g10b10 = vec2i(0x3FFFFF,0xFF);
8799
- fn floatToVec3f(v:f32) -> vec3f {
9005
+ fn floatToVec3f( v:f32 ) -> vec3f {
8800
9006
  var VPInt:i32 = bitcast<i32>(v);
8801
9007
  var VPInt1024:i32 = VPInt%1024;
8802
9008
  var VPInt10241024:i32 = ((VPInt-VPInt1024)/1024)%1024;
@@ -8823,6 +9029,11 @@ fn main(vertex:VertexAttributes) -> VertexOutput {
8823
9029
  return vec4f(f32(VPInt128),f32(VPInt128128),f32(VPInt128128128),f32(VPInt128128128128))*vec4f(bit7_inv128);
8824
9030
  }
8825
9031
 
9032
+
9033
+
9034
+
9035
+
9036
+
8826
9037
  const i_r11g11b11 = vec3i(0x7FF,0x7FF,0x7FF);
8827
9038
  const f_r11g11b11 = vec3f(f32(0x7FF),f32(0x7FF),f32(0x7FF));
8828
9039
  fn r11g11b11_to_float( v:vec3f) -> f32{
@@ -8871,6 +9082,9 @@ fn main(vertex:VertexAttributes) -> VertexOutput {
8871
9082
  return vec3f(r,g,b);
8872
9083
  }
8873
9084
 
9085
+
9086
+
9087
+
8874
9088
  fn floatToRGBA(v:f32) -> vec4f{
8875
9089
  var iv = bitcast<u32>(v);
8876
9090
  var color = vec4f(0.0);
@@ -8885,7 +9099,9 @@ fn main(vertex:VertexAttributes) -> VertexOutput {
8885
9099
  var f = dot(v, bitShift);
8886
9100
  return f;
8887
9101
  }
8888
- `;
9102
+
9103
+ `
9104
+ );
8889
9105
 
8890
9106
  let GBufferStand = `
8891
9107
  #include "MathShader"
@@ -28040,131 +28256,147 @@ fn SH9(dir: vec3<f32>, coefficients: array<vec4f, 9>) -> vec4<f32> {
28040
28256
  }
28041
28257
  }
28042
28258
 
28043
- let PreFilteredEnvironment_cs = `
28259
+ let PreFilteredEnvironment_cs = (
28260
+ /*wgsl*/
28261
+ `
28044
28262
  #include "GenerayRandomDir"
28045
28263
  #include "BitUtil"
28046
28264
  #include "MathShader"
28047
28265
  #include "ColorUtil_frag"
28048
-
28049
- struct UniformData {
28050
- probeSize: f32,
28051
- probeCount: f32,
28052
- width: f32,
28053
- height: f32,
28266
+
28267
+ struct UniformData{
28268
+ probeSize : f32 ,
28269
+ probeCount : f32 ,
28270
+ width : f32 ,
28271
+ height : f32 ,
28054
28272
  }
28055
28273
 
28056
- @group(0) @binding(0) var inputTex: texture_2d<f32>;
28057
- @group(0) @binding(1) var outputTexture: texture_storage_2d<rgba16float,write>;
28058
- @group(1) @binding(0) var<uniform> uniformData: UniformData;
28274
+ @group(0) @binding(0) var inputTex : texture_2d<f32>;
28275
+ @group(0) @binding(1) var outputTexture : texture_storage_2d<rgba16float, write>;//rgba32float rgba16float
28276
+ @group(1) @binding(0) var<uniform> uniformData:UniformData;//rgba32float
28059
28277
 
28060
- var<private> reflectionSize: vec2f;
28061
- var<private> PROBE_SOURCESIZE: vec2f;
28062
- var<private> PROBEMAP_SOURCESIZE: vec2f;
28063
- var<private> aspect: vec2f;
28064
- var<private> spaceV: f32;
28278
+ var<private> reflectionSize : vec2f ;
28279
+ var<private> PROBE_SOURCESIZE : vec2f ;
28280
+ var<private> PROBEMAP_SOURCESIZE : vec2f ;
28281
+ var<private> aspect : vec2f ;
28282
+ var<private> spaceV : f32 ;
28065
28283
 
28066
28284
  var<private> i32InputFragCoord : vec2i;
28067
28285
  var<private> PI_2 : f32 = 3.1415926 * 2.0 ;
28068
28286
  var<private> PI : f32 = 3.1415926 ;
28069
28287
 
28070
- var<private> probeSize: f32 = 256.0;
28071
- var<private> probeCount: f32 = 8.0;
28072
- var<private> faceCount: f32 = 6.0;
28073
- var<private> mipCount: f32 = 8.0;
28288
+ var<private> probeSize : f32 = 256.0 ;
28289
+ var<private> probeCount : f32 = 8.0 ;
28290
+ var<private> faceCount : f32 = 6.0 ;
28291
+ var<private> mipCount : f32 = 8.0 ;
28074
28292
 
28075
28293
  const NUM_SAMPLES = 256u;
28076
- var<private> inputSize: vec2f;
28077
- var<private> outSize: vec2f;
28294
+ var<private> inputSize : vec2f ;
28295
+ var<private> outSize : vec2f ;
28078
28296
 
28079
28297
  fn useSphereReflection(){
28080
- probeSize = uniformData.probeSize;
28298
+ probeSize = uniformData.probeSize ;
28081
28299
  probeCount = uniformData.probeCount;
28082
28300
  reflectionSize = vec2f(textureDimensions(inputTex).xy);
28083
28301
  PROBE_SOURCESIZE = reflectionSize / vec2f(faceCount,probeCount);
28084
- PROBEMAP_SOURCESIZE = reflectionSize;
28302
+ PROBEMAP_SOURCESIZE = reflectionSize ;
28085
28303
  aspect = PROBE_SOURCESIZE / PROBEMAP_SOURCESIZE;
28086
- spaceV = 1.0 / probeCount;
28304
+ spaceV = 1.0 / probeCount ;
28087
28305
  }
28088
28306
 
28089
- @compute @workgroup_size(16, 16, 1)
28090
- fn CsMain(@builtin(workgroup_id) workgroup_id: vec3<u32>, @builtin(global_invocation_id) globalInvocation_id: vec3<u32>){
28091
- var color: vec4f;
28307
+ @compute @workgroup_size( 16 , 16 , 1 )
28308
+ fn CsMain( @builtin(workgroup_id) workgroup_id : vec3<u32> , @builtin(global_invocation_id) globalInvocation_id : vec3<u32>)
28309
+ {
28310
+ var color : vec4f ;
28092
28311
  useSphereReflection();
28093
28312
  inputSize = vec2f(textureDimensions(inputTex).xy);
28094
28313
  outSize = vec2f(textureDimensions(outputTexture).xy);
28095
- i32InputFragCoord = vec2<i32>(globalInvocation_id.xy);
28096
- let i = f32(globalInvocation_id.z);
28097
- let count = floor(i/mipCount);
28098
- preOneMip(count, floor(i%mipCount));
28314
+
28315
+ i32InputFragCoord = vec2<i32>( globalInvocation_id.xy ) ;
28316
+
28317
+ let i = f32(globalInvocation_id.z) ;
28318
+ let count = floor(i / mipCount) ;
28319
+ preOneMip(count,floor(i % mipCount));
28099
28320
  }
28100
28321
 
28101
- fn preOneMip(gid: f32, mip: f32){
28102
- let isuv = vec2f(i32InputFragCoord);
28322
+ fn preOneMip( gid:f32,mip:f32 ){
28323
+ let isuv = vec2f(i32InputFragCoord) ;
28103
28324
  let suv = isuv * (inputSize/outSize);
28104
28325
  let probeID = i32(floor(suv.y / probeSize));
28105
28326
  let mipID = i32((isuv.x / probeSize));
28106
28327
  if(probeID == i32(gid) && mipID == i32(mip)){
28107
- let sphereUV = vec2f((isuv.x+0.5)%(probeSize), (isuv.y+0.5)%probeSize/vec2f((probeSize),probeSize));
28108
- var dir: vec3<f32> = octDecode(sphereUV * 2.0 - 1.0);
28109
- var preColor = PreFilterEnvMap(mip/mipCount + 0.05, dir, gid);
28110
- textureStore(outputTexture, vec2i(i32InputFragCoord), preColor);
28328
+
28329
+ let sphereUV = vec2f((isuv.x+0.5) % (probeSize),(isuv.y+0.5) % probeSize) / vec2f( (probeSize), probeSize ) ;
28330
+ var dir: vec3<f32> = octDecode(sphereUV * 2.0 - 1.0) ;
28331
+ var preColor = PreFilterEnvMap(mip/mipCount + 0.05,dir,gid);
28332
+ textureStore(outputTexture,vec2i(i32InputFragCoord),preColor);
28111
28333
  }
28112
28334
  }
28113
28335
 
28114
- fn PreFilterEnvMap(roughness2:f32, R:vec3f , gid:f32) -> vec4f {
28115
- var resColor = vec3f(0.0f);
28116
- var resDepth = 0.0;
28336
+ fn PreFilterEnvMap( roughness2:f32, R:vec3f , gid:f32 ) -> vec4f
28337
+ {
28338
+ var resColor = vec3f(0.0f);
28339
+ var resDepth = 0.0;
28340
+
28117
28341
  var totalColorWeight = 0.0f;
28118
28342
  var totalDepthWeight = 0.0f;
28343
+
28119
28344
  var normal = normalize(R);
28120
28345
  var toEye = normal;
28346
+
28121
28347
  var roughness = roughness2;
28122
-
28348
+
28123
28349
  for(var i=1u;i<=NUM_SAMPLES;i+=1u)
28124
28350
  {
28125
- var xi:vec2f = hammersley(i, NUM_SAMPLES);
28351
+ var xi:vec2f = hammersley(i, NUM_SAMPLES) ;
28352
+
28126
28353
  var halfway = ImportanceSampleGGX(xi,roughness,normal);
28127
- var lightVec = 2.0f * dot(toEye,halfway) * halfway - toEye;
28128
- var NdotL = dot(normal, lightVec);
28129
- var NdotH = max(0.0,dot( normal, halfway ));
28130
- var HdotV = max(0.0,dot( halfway, toEye ));
28354
+ var lightVec = 2.0f * dot( toEye,halfway ) * halfway - toEye;
28355
+
28356
+ var NdotL = dot( normal, lightVec ) ;
28357
+ var NdotH = max(0.0,dot( normal, halfway )) ;
28358
+ var HdotV = max(0.0,dot( halfway, toEye )) ;
28359
+
28131
28360
  if( NdotL > 0.0 )
28132
28361
  {
28133
28362
  var D = specularD(roughness,NdotH);
28134
- var pdf = (D * NdotH / (4.0 * HdotV)) + 0.0001f;
28363
+ var pdf = (D * NdotH / (4.0 * HdotV)) + 0.0001f ;
28364
+
28135
28365
  var saSample = 1.0f / (f32(NUM_SAMPLES) * pdf + 0.00001f);
28136
28366
  lightVec = normalize(lightVec);
28367
+
28137
28368
  var buffer = getReflectionsMap(lightVec,gid);
28138
28369
  var rgb = unpack4x8unorm(u32(buffer.z)).rgb;
28139
28370
  var m = unpack4x8unorm(u32(buffer.w)).z;
28140
28371
  var rgbmColor = DecodeRGBM(vec4f(rgb,m));
28141
- resDepth += buffer.x;
28372
+ resDepth += buffer.x ;
28142
28373
  resColor += rgbmColor * NdotL;
28374
+
28143
28375
  totalColorWeight += NdotL;
28144
28376
  totalDepthWeight += 1.0;
28145
28377
  }
28146
28378
  }
28147
-
28379
+
28148
28380
  resDepth = resDepth / max(totalDepthWeight,0.001f);
28149
28381
  resColor = resColor / max(totalColorWeight,0.001f);
28150
-
28382
+
28151
28383
  let rgbm = EncodeRGBM(resColor) ;
28152
28384
  let gBuffer = vec4f(
28153
28385
  resDepth,
28154
28386
  0.0,
28155
28387
  f32(pack4x8unorm(vec4f(rgbm.rgb,0.0))),
28156
28388
  f32(pack4x8unorm(vec4f(0.0,0.0,rgbm.w,0.0))),
28157
- );
28158
- return vec4f(resColor, 1.0);
28159
- }
28389
+ ) ;
28390
+ return vec4f(resColor,1.0) ;
28391
+ }
28160
28392
 
28161
- fn getReflectionsMap(n: vec3<f32>,gid: f32) -> vec4f {
28393
+ fn getReflectionsMap(n:vec3<f32>,gid:f32) -> vec4f {
28162
28394
  var uv = getSampleProbeUV(n,gid);
28163
- let color = textureLoad(inputTex, vec2i(uv*inputSize), 0);
28164
- return color;
28395
+ let color = textureLoad(inputTex, vec2i(uv*inputSize) , 0);
28396
+ return color ;
28165
28397
  }
28166
28398
 
28167
- fn getSampleProbeUV(dir: vec3<f32>,gid: f32) -> vec2<f32> {
28399
+ fn getSampleProbeUV(dir:vec3<f32>,gid:f32) -> vec2<f32> {
28168
28400
  let faceId = dir_to_faceId(dir);
28169
28401
  var targetUV:vec2<f32> = convert_xyz_to_cube_uv(dir.x, dir.y, dir.z);
28170
28402
  targetUV.x = 1.0 - targetUV.x;
@@ -28174,17 +28406,18 @@ fn SH9(dir: vec3<f32>, coefficients: array<vec4f, 9>) -> vec4<f32> {
28174
28406
  let aspect:vec2f = PROBE_SOURCESIZE / PROBEMAP_SOURCESIZE;
28175
28407
  targetUV = targetUV * aspect ;
28176
28408
  targetUV.y = targetUV.y + (spaceV * gid);
28177
- return targetUV;
28178
- }
28409
+ return targetUV ;
28410
+ }
28179
28411
 
28180
- fn radicalInverse_VdC(bits2:u32) -> f32 {
28412
+ fn radicalInverse_VdC( bits2:u32) -> f32
28413
+ {
28181
28414
  var bits = bits2;
28182
28415
  bits = (bits << 16u) | (bits >> 16u);
28183
28416
  bits = ((bits & 0x55555555u) << 1u) | ((bits & 0xAAAAAAAAu) >> 1u);
28184
28417
  bits = ((bits & 0x33333333u) << 2u) | ((bits & 0xCCCCCCCCu) >> 2u);
28185
28418
  bits = ((bits & 0x0F0F0F0Fu) << 4u) | ((bits & 0xF0F0F0F0u) >> 4u);
28186
28419
  bits = ((bits & 0x00FF00FFu) << 8u) | ((bits & 0xFF00FF00u) >> 8u);
28187
- return f32(bits) * 2.3283064365386963e-10f;
28420
+ return f32(bits) * 2.3283064365386963e-10f; // / 0x100000000
28188
28421
  }
28189
28422
 
28190
28423
  fn hammersley( i:u32, N:u32) -> vec2f
@@ -28195,21 +28428,25 @@ fn SH9(dir: vec3<f32>, coefficients: array<vec4f, 9>) -> vec4<f32> {
28195
28428
  fn ImportanceSampleGGX( xi:vec2f, roughness:f32, N:vec3f) -> vec3f
28196
28429
  {
28197
28430
  var alpha2 = roughness * roughness * roughness * roughness;
28431
+
28198
28432
  var phi = 2.0f * 3.1415926 * xi.x ;
28199
28433
  var cosTheta = sqrt( (1.0f - xi.y) / (1.0f + (alpha2 - 1.0f) * xi.y ));
28200
28434
  var sinTheta = sqrt( 1.0f - cosTheta*cosTheta );
28201
- var h: vec3f ;
28435
+
28436
+ var h : vec3f ;
28202
28437
  h.x = sinTheta * cos( phi );
28203
28438
  h.y = sinTheta * sin( phi );
28204
28439
  h.z = cosTheta;
28440
+
28205
28441
  var up = vec3f(1,0,0) ;
28206
28442
  if(abs(N.z) < 0.9999){
28207
28443
  up = vec3f(0,0,1) ;
28208
28444
  }
28445
+
28209
28446
  var tangentX = normalize( cross( up, N ) );
28210
28447
  var tangentY = cross( N, tangentX );
28211
28448
  return (tangentX * h.x + tangentY * h.y + N * h.z);
28212
- }
28449
+ }
28213
28450
 
28214
28451
  fn specularD( roughness:f32, NoH:f32) -> f32
28215
28452
  {
@@ -28217,7 +28454,9 @@ fn SH9(dir: vec3<f32>, coefficients: array<vec4f, 9>) -> vec4<f32> {
28217
28454
  var r2 = roughness * roughness;
28218
28455
  return r2 / pow(NoH2 * (r2 - 1.0) + 1.0, 2.0);
28219
28456
  }
28220
- `;
28457
+
28458
+ `
28459
+ );
28221
28460
 
28222
28461
  class ReflectionRenderer extends RendererBase {
28223
28462
  cubeCamera;
@@ -28476,8 +28715,10 @@ fn SH9(dir: vec3<f32>, coefficients: array<vec4f, 9>) -> vec4<f32> {
28476
28715
  }
28477
28716
  }
28478
28717
 
28479
- let FXAAShader = `
28480
- @include 'BitUtil'
28718
+ let FXAAShader = (
28719
+ /*wgsl*/
28720
+ `
28721
+ #include 'BitUtil'
28481
28722
  struct FragmentOutput {
28482
28723
  @location(auto) o_Target: vec4<f32>
28483
28724
  };
@@ -28496,6 +28737,7 @@ fn SH9(dir: vec3<f32>, coefficients: array<vec4f, 9>) -> vec4<f32> {
28496
28737
  @group(2) @binding(0)
28497
28738
  var<uniform> materialUniform: MaterialUniform;
28498
28739
 
28740
+
28499
28741
  fn LinearToGammaSpace(linRGB0: vec3<f32>) -> vec3<f32> {
28500
28742
  var linRGB = max(linRGB0, vec3(0.0, 0.0, 0.0));
28501
28743
  linRGB.r = pow(linRGB.r,0.416666667);
@@ -28504,30 +28746,35 @@ fn SH9(dir: vec3<f32>, coefficients: array<vec4f, 9>) -> vec4<f32> {
28504
28746
  return max(1.055 * linRGB - 0.055, vec3(0.0, 0.0, 0.0));
28505
28747
  }
28506
28748
 
28507
- fn texture2D(uv:vec2<f32>, offset:vec2<f32>) -> vec4<f32> {
28508
- let buffer = textureSample(baseMap, baseMapSampler, uv.xy + offset).rgba;
28509
- return buffer;
28749
+ fn texture2D( uv:vec2<f32> , offset:vec2<f32> ) -> vec4<f32> {
28750
+ let buffer = textureSample(baseMap, baseMapSampler, uv.xy + offset ).rgba ;
28751
+ return buffer ;
28510
28752
  }
28511
28753
 
28512
28754
  @fragment
28513
28755
  fn main(@location(auto) fragUV: vec2<f32>) -> FragmentOutput {
28514
- var v_vTexcoord = fragUV;
28756
+ var v_vTexcoord = fragUV ;
28515
28757
  v_vTexcoord.y = 1.0 - v_vTexcoord.y ;
28758
+
28516
28759
  var reducemul = 1.0 / 8.0;
28517
28760
  var reducemin = 1.0 / 128.0;
28761
+
28518
28762
  var basecol = texture2D(v_vTexcoord , vec2<f32>(0.0)).rgba;
28519
28763
  var baseNW = texture2D(v_vTexcoord , -materialUniform.u_texel).rgb;
28520
28764
  var baseNE = texture2D(v_vTexcoord , vec2<f32>(materialUniform.u_texel.x, -materialUniform.u_texel.y)).rgb;
28521
28765
  var baseSW = texture2D(v_vTexcoord , vec2<f32>(-materialUniform.u_texel.x, materialUniform.u_texel.y)).rgb;
28522
28766
  var baseSE = texture2D(v_vTexcoord , materialUniform.u_texel ).rgb;
28767
+
28523
28768
  var gray = vec3<f32>(0.213, 0.715, 0.072);
28524
28769
  var monocol = dot(basecol.rgb, gray);
28525
28770
  var monoNW = dot(baseNW, gray);
28526
28771
  var monoNE = dot(baseNE, gray);
28527
28772
  var monoSW = dot(baseSW, gray);
28528
28773
  var monoSE = dot(baseSE, gray);
28774
+
28529
28775
  var monomin = min(monocol, min(min(monoNW, monoNE), min(monoSW, monoSE)));
28530
28776
  var monomax = max(monocol, max(max(monoNW, monoNE), max(monoSW, monoSE)));
28777
+
28531
28778
  var dir = vec2<f32>(-((monoNW + monoNE) - (monoSW + monoSE)), ((monoNW + monoSW) - (monoNE + monoSE)));
28532
28779
  var dirreduce = max((monoNW + monoNE + monoSW + monoSE) * reducemul * 0.25, reducemin);
28533
28780
  var dirmin = 1.0 / (min(abs(dir.x), abs(dir.y)) + dirreduce);
@@ -28535,9 +28782,11 @@ fn SH9(dir: vec3<f32>, coefficients: array<vec4f, 9>) -> vec4<f32> {
28535
28782
 
28536
28783
  var resultA = 0.5 * (texture2D(v_vTexcoord , dir * -0.166667).rgb +
28537
28784
  texture2D(v_vTexcoord , dir * 0.166667).rgb);
28785
+
28538
28786
  var resultB = resultA * 0.5 + 0.25 * (texture2D( v_vTexcoord , dir * -0.5).rgb +
28539
28787
  texture2D( v_vTexcoord , dir * 0.5).rgb);
28540
28788
  var monoB = dot(resultB.rgb, gray);
28789
+
28541
28790
  var color:vec3<f32> ;
28542
28791
  if(monoB < monomin || monoB > monomax) {
28543
28792
  color = resultA ;//* v_vColour;
@@ -28546,7 +28795,8 @@ fn SH9(dir: vec3<f32>, coefficients: array<vec4f, 9>) -> vec4<f32> {
28546
28795
  }
28547
28796
  return FragmentOutput(vec4<f32>(color.rgb,basecol.a));
28548
28797
  }
28549
- `;
28798
+ `
28799
+ );
28550
28800
 
28551
28801
  class FXAAPost extends PostBase {
28552
28802
  postQuad;
@@ -28965,12 +29215,12 @@ fn SH9(dir: vec3<f32>, coefficients: array<vec4f, 9>) -> vec4<f32> {
28965
29215
  cornerCoord.x = sideBorderCnt - 1;
28966
29216
  }else{
28967
29217
  cornerCoord.x = 0;
28968
- }
29218
+ };
28969
29219
  if(modeXY.y == 0){
28970
29220
  cornerCoord.y = sideBorderCnt - 1;
28971
29221
  }else{
28972
29222
  cornerCoord.y = 0;
28973
- }
29223
+ };
28974
29224
  cornerCoord = indexXY * sideBorderCnt + cornerCoord;
28975
29225
  textureStore(texture, cornerCoord, color);
28976
29226
  }
@@ -29492,7 +29742,7 @@ fn directShadowMaping(P:vec3<f32>, N:vec3<f32>, shadowBias: f32) {
29492
29742
  }else{
29493
29743
  shadowMatrix = globalUniform.shadowMatrix[shadowIndex];
29494
29744
  visibility = directShadowMapingIndex(light, shadowMatrix, P, N, shadowIndex, shadowBias).x;
29495
- }
29745
+ };
29496
29746
  }
29497
29747
  shadowStrut.directShadowVisibility = visibility;
29498
29748
  }
@@ -29601,7 +29851,7 @@ fn spotLight( albedo:vec3<f32>,WP:vec3<f32>, N:vec3<f32>, V:vec3<f32>, light:Lig
29601
29851
  }
29602
29852
  }else{
29603
29853
  atten = 0.0 ;
29604
- }
29854
+ };
29605
29855
  var lightColor = light.lightColor.rgb ;
29606
29856
  lightColor = getHDRColor(lightColor , light.linear ) * light.intensity / LUMEN * 2.0;
29607
29857
  color = (albedo / PI) * lightColor.rgb * atten ;
@@ -37312,16 +37562,16 @@ fn CsMain( @builtin(workgroup_id) workgroup_id : vec3<u32> , @builtin(global_inv
37312
37562
  return 4.0 * vec2<f32>(A, B) / f32(numSamples);
37313
37563
  }
37314
37564
 
37315
- @group(0) @binding(0) var brdfluTexture: texture_storage_2d<rgba8unorm, write>;
37565
+ @group(0) @binding(0) var brdflutTexture: texture_storage_2d<rgba8unorm, write>;
37316
37566
  @compute @workgroup_size(8,8,1)
37317
- fn CsMain(@builtin(global_invocation_id) workgroup_id: vec3<u32>, @builtin(local_invocation_id) local_invocation_id: vec3<u32>){
37318
- var fragCoord = vec2<u32>(global_invocation_id.x, global_invocation_id.y);
37319
- var fragColor = vec4<f32>(0,0);
37320
- var res = integrateBRDF(f32(fragCoord.y + 1u) / 256.0, f32(fragCoord.x + 1u) / 256.0);
37321
- fragColor = vec4<f32>(res.x, res.y, 0.0, 1.0);
37322
-
37323
- textureStore(brdflutTexture, vec2<i32>(fragCoord.xy), fragColor);
37324
- }
37567
+ fn CsMain(@builtin(global_invocation_id) global_invocation_id : vec3<u32>){
37568
+ var fragCoord = vec2<u32>(global_invocation_id.x, global_invocation_id.y);
37569
+ var fragColor = vec4<f32>(0.0);
37570
+ // Output to screen
37571
+ var res = integrateBRDF(f32(fragCoord.y + 1u) / 256.0, f32(fragCoord.x + 1u) / 256.0);
37572
+ fragColor = vec4<f32>(res.x, res.y, 0.0, 1.0);
37573
+ textureStore(brdflutTexture, vec2<i32>(fragCoord.xy), fragColor);
37574
+ }
37325
37575
  `;
37326
37576
 
37327
37577
  class BRDFLUTGenerate {
@@ -38166,7 +38416,7 @@ fn CsMain( @builtin(workgroup_id) workgroup_id : vec3<u32> , @builtin(global_inv
38166
38416
  }
38167
38417
  }
38168
38418
 
38169
- const version = "1.0.0";
38419
+ const version = "1.0.1";
38170
38420
 
38171
38421
  class Engine3D {
38172
38422
  /**
@@ -39165,7 +39415,7 @@ fn CsMain(@builtin(workgroup_id) workgroup_id: vec3<u32>, @builtin(global_invoca
39165
39415
  }else{
39166
39416
  shadowMatrix = globalUniform.shadowMatrix[shadowIndex];
39167
39417
  visibility = directShadowMapingIndex(light, shadowMatrix, P, N, shadowIndex, shadowBias).x;
39168
- }
39418
+ };
39169
39419
  }
39170
39420
  shadowStruct.directShadowVisibility = visibility;
39171
39421
  }
@@ -39370,7 +39620,7 @@ fn CsMain(@builtin(workgroup_id) workgroup_id: vec3<u32>, @builtin(global_invoca
39370
39620
  blendColor = inColor.xyz + outLineColor.xyz * outLineColor.w;
39371
39621
  }else{
39372
39622
  blendColor = mix(inColor.xyz, outLineColor.xyz, outLineColor.w);
39373
- }
39623
+ };
39374
39624
  textureStore(outlineTex, fragCoord, vec4<f32>(blendColor, inColor.w));
39375
39625
  }
39376
39626
  `
@@ -40098,7 +40348,7 @@ fn CsMain(@builtin(global_invocation_id) global_invocation_id: vec3<u32>){
40098
40348
 
40099
40349
  }else{
40100
40350
  Output = vec4f(wColor.xyz, 1.0);
40101
- }
40351
+ };
40102
40352
 
40103
40353
  return Output;
40104
40354
  }
@@ -40367,12 +40617,12 @@ struct SSRUniformData {
40367
40617
  }
40368
40618
  }else{
40369
40619
  rayTraceRet.alpha = 0.0;
40370
- }
40620
+ };
40371
40621
  rayTraceRet.skyColor = getSkyColor();
40372
40622
  }else{
40373
40623
  rayTraceRet.alpha = -1.0;
40374
40624
  rayTraceRet.skyColor = vec3<f32>(0.0);
40375
- }
40625
+ };
40376
40626
 
40377
40627
  rayTraceRet.roughness = roughness;
40378
40628
  rayTraceRet.fresnel = fresnel;
@@ -40524,7 +40774,7 @@ struct SSRUniformData {
40524
40774
  hitData.hitCoord = uv;
40525
40775
  return 1;
40526
40776
  }
40527
- }
40777
+ };
40528
40778
  }
40529
40779
  return 0;
40530
40780
  }
@@ -40676,7 +40926,7 @@ fn blendColor() -> vec4<f32>{
40676
40926
  preCoord = vec2<i32>(reProjectionCoord);
40677
40927
  }else{
40678
40928
  mixWeight = 1.0;
40679
- }
40929
+ };
40680
40930
  }
40681
40931
 
40682
40932
  var curUV01 = fragUV;
@@ -40749,7 +40999,7 @@ fn minmax4(coord:vec2<i32>) {
40749
40999
  return vec4<f32>(p_clip, color_avg.w) + v_clip / ma_unit;
40750
41000
  }else{
40751
41001
  return input_texel;
40752
- }
41002
+ };
40753
41003
  }
40754
41004
  `
40755
41005
  );
@@ -41238,7 +41488,7 @@ fn containsBox( size:vec3<f32> , center:vec3<f32> ) -> f32 {
41238
41488
  return 2.0 ;
41239
41489
  }else{
41240
41490
  return 1.0 ;
41241
- }
41491
+ };
41242
41492
  }
41243
41493
 
41244
41494
  @compute @workgroup_size(128)
@@ -41993,11 +42243,13 @@ fn frag(){
41993
42243
  );
41994
42244
 
41995
42245
  let UnLitTextureArray = (
41996
- /*wgsl */
42246
+ /*wgsl*/
41997
42247
  `
42248
+ // #include "Common_vert"
41998
42249
  #include "Common_frag"
41999
42250
  #include "UnLit_frag"
42000
42251
  #include "UnLitMaterialUniform_frag"
42252
+
42001
42253
  #include "WorldMatrixUniform"
42002
42254
  #include "VertexAttributeIndexShader"
42003
42255
  #include "GlobalUniform"
@@ -42005,8 +42257,8 @@ fn frag(){
42005
42257
  #include "EnvMap_frag"
42006
42258
  #include "ColorUtil_frag"
42007
42259
 
42008
- const DEGREES_TO_RADIANS: f32 = 3.1415926 / 180.0;
42009
- const PI: f32 = 3.1415926;
42260
+ const DEGREES_TO_RADIANS : f32 = 3.1415926 / 180.0 ;
42261
+ const PI : f32 = 3.1415926 ;
42010
42262
 
42011
42263
  #if USE_CUSTOMUNIFORM
42012
42264
  struct MaterialUniform {
@@ -42017,15 +42269,19 @@ fn frag(){
42017
42269
  };
42018
42270
  #endif
42019
42271
 
42020
- @group(1) @binding(0) var baseMapSampler: sampler;
42021
- @group(1) @binding(1) var baseMap: texture_2d_array<f32>;
42022
- @group(2) @binding(5) var<storage,read> graphicBuffer: array<GraphicNodeStruct>;
42272
+ @group(1) @binding(0)
42273
+ var baseMapSampler: sampler;
42274
+ @group(1) @binding(1)
42275
+ var baseMap: texture_2d_array<f32>;
42023
42276
 
42277
+ @group(2) @binding(5)
42278
+ var<storage,read> graphicBuffer : array<GraphicNodeStruct>;
42279
+
42024
42280
  @vertex
42025
- fn VertMain(vertex: VertexAttributes) -> VertexOutput {
42281
+ fn VertMain( vertex:VertexAttributes ) -> VertexOutput {
42026
42282
  vertex_inline(vertex);
42027
42283
  vert(vertex);
42028
- return ORI_VertexOut;
42284
+ return ORI_VertexOut ;
42029
42285
  }
42030
42286
 
42031
42287
  fn vert(inputData:VertexAttributes) -> VertexOutput {
@@ -42036,9 +42292,15 @@ fn frag(){
42036
42292
  fn frag(){
42037
42293
  var transformUV1 = materialUniform.transformUV1;
42038
42294
  var transformUV2 = materialUniform.transformUV2;
42295
+
42296
+ // var irradiance = vec3<f32>(0.0) ;
42297
+ // let MAX_REFLECTION_LOD = f32(textureNumLevels(prefilterMap)) ;
42298
+ // irradiance += (globalUniform.skyExposure * textureSampleLevel(prefilterMap, prefilterMapSampler, ORI_VertexVarying.vWorldNormal.xyz, 0.8 * (MAX_REFLECTION_LOD) ).rgb);
42299
+
42039
42300
  graphicNode = graphicBuffer[u32(round(ORI_VertexVarying.index))];
42040
42301
 
42041
42302
  var uv = transformUV1.zw * ORI_VertexVarying.fragUV0 + transformUV1.xy;
42303
+ //The fragUV1.x is 1.0 when the vertex belongs to line.
42042
42304
  if(ORI_VertexVarying.fragUV1.x > 0.5){
42043
42305
  uv = graphicNode.uvRect2.zw * uv.xy + graphicNode.uvRect2.xy;
42044
42306
  uv += graphicNode.uvSpeed.zw * globalUniform.time;
@@ -42054,7 +42316,7 @@ fn frag(){
42054
42316
  );
42055
42317
  uv = (zrot * vec3f(uv, 0.0)).xy;
42056
42318
  }
42057
- }
42319
+ };
42058
42320
  var graphicTextureID = graphicNode.texIndex;
42059
42321
  var graphicNodeColor = graphicNode.baseColor;
42060
42322
  if(ORI_VertexVarying.fragUV1.x > 0.5){
@@ -42062,12 +42324,23 @@ fn frag(){
42062
42324
  graphicNodeColor = graphicNode.lineColor;
42063
42325
  }
42064
42326
  var color = textureSample(baseMap,baseMapSampler,uv, u32(round(graphicTextureID)) ) * materialUniform.baseColor * graphicNodeColor ;
42065
- color += graphicNode.emissiveColor;
42327
+ // let color = textureSample(baseMap,baseMapSampler,uv, u32(round(ORI_VertexVarying.index)));
42328
+
42329
+ // ORI_ViewDir = normalize( globalUniform.CameraPos.xyz - ORI_VertexVarying.vWorldPos.xyz);
42330
+ // let att = dot( ORI_ViewDir , ORI_VertexVarying.vWorldNormal.xyz );
42331
+
42332
+ // irradiance = LinearToGammaSpace(irradiance.rgb) * color.rgb ;//* att ;
42333
+
42334
+ color += graphicNode.emissiveColor ;
42066
42335
  if(color.w < materialUniform.alphaCutoff){
42067
- discard;
42336
+ discard ;
42068
42337
  }
42069
- let outColor = vec4f( color.rgb , 1.0 ) * materialUniform.baseColor;
42070
- ORI_ShadingInput.BaseColor = vec4f(outColor.xyz,1.0);
42338
+
42339
+ // let outColor = vec4f( color.rgb * (att * 0.5 + 0.5 ) , 1.0 ) * materialUniform.baseColor ;
42340
+ let outColor = vec4f( color.rgb , 1.0 ) * materialUniform.baseColor ;
42341
+
42342
+ // ORI_ShadingInput.BaseColor = color ;
42343
+ ORI_ShadingInput.BaseColor = vec4f(outColor.xyz,1.0) ;
42071
42344
  UnLit();
42072
42345
  }
42073
42346
  `
@@ -42202,7 +42475,7 @@ fn frag(){
42202
42475
  let sunLight = lightBuffer[0] ;
42203
42476
  var inScatteringValue = inScatterIng(sunLight.direction, texPosition.xyz, sunLight.lightColor);
42204
42477
  opColor += inScatteringValue;
42205
- }
42478
+ };
42206
42479
 
42207
42480
  textureStore(outTex, fragCoord , vec4<f32>(opColor.xyz, texColor.a));
42208
42481
  }
@@ -47653,7 +47926,7 @@ fn frag(){
47653
47926
  s = border.x + (s / centerPartMax) * centerPartMin;
47654
47927
  }else{
47655
47928
  s = s - centerPartMax + border.x + centerPartMin;
47656
- }
47929
+ };
47657
47930
  }
47658
47931
  return s;
47659
47932
  }
@@ -47805,12 +48078,12 @@ fn frag(){
47805
48078
  ret.x = quad.x;
47806
48079
  }else{
47807
48080
  ret.x = quad.z;
47808
- }
48081
+ };
47809
48082
  if(index == 0 || index == 1){
47810
48083
  ret.y = quad.w;
47811
48084
  }else{
47812
48085
  ret.y = quad.y;
47813
- }
48086
+ };
47814
48087
  return ret;
47815
48088
  }
47816
48089
  `