@bloomengine/engine 0.3.1
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.
- package/LICENSE +21 -0
- package/README.md +169 -0
- package/native/android/Cargo.lock +1848 -0
- package/native/android/Cargo.toml +20 -0
- package/native/android/src/lib.rs +1747 -0
- package/native/ios/Cargo.lock +1688 -0
- package/native/ios/Cargo.toml +19 -0
- package/native/ios/src/lib.rs +2258 -0
- package/native/linux/Cargo.lock +1719 -0
- package/native/linux/Cargo.toml +22 -0
- package/native/linux/src/lib.rs +2236 -0
- package/native/macos/Cargo.lock +3310 -0
- package/native/macos/Cargo.toml +29 -0
- package/native/macos/src/lib.rs +3444 -0
- package/native/shared/Cargo.lock +1898 -0
- package/native/shared/Cargo.toml +42 -0
- package/native/shared/assets/default_font.ttf +0 -0
- package/native/shared/build.rs +77 -0
- package/native/shared/shaders/common/fog.wgsl +16 -0
- package/native/shared/shaders/common/imposter.wgsl +112 -0
- package/native/shared/shaders/common/pbr.wgsl +186 -0
- package/native/shared/shaders/common/shadows.wgsl +77 -0
- package/native/shared/shaders/common/sky.wgsl +8 -0
- package/native/shared/shaders/common/tonemap.wgsl +25 -0
- package/native/shared/shaders/impulse_field.wgsl +53 -0
- package/native/shared/shaders/material_abi.wgsl +360 -0
- package/native/shared/shaders/materials/test_minimal.wgsl +42 -0
- package/native/shared/src/audio.rs +363 -0
- package/native/shared/src/custom_shaders.rs +104 -0
- package/native/shared/src/drs.rs +211 -0
- package/native/shared/src/engine.rs +186 -0
- package/native/shared/src/frame_callbacks.rs +88 -0
- package/native/shared/src/geometry.rs +236 -0
- package/native/shared/src/handles.rs +76 -0
- package/native/shared/src/input.rs +273 -0
- package/native/shared/src/jolt_sys.rs +822 -0
- package/native/shared/src/lib.rs +43 -0
- package/native/shared/src/models.rs +1941 -0
- package/native/shared/src/physics_jolt.rs +1528 -0
- package/native/shared/src/picking.rs +298 -0
- package/native/shared/src/postfx.rs +339 -0
- package/native/shared/src/profiler.rs +416 -0
- package/native/shared/src/renderer/atmosphere_lut.rs +573 -0
- package/native/shared/src/renderer/brdf_lut.rs +154 -0
- package/native/shared/src/renderer/formats.rs +778 -0
- package/native/shared/src/renderer/graph.rs +465 -0
- package/native/shared/src/renderer/hot_reload.rs +390 -0
- package/native/shared/src/renderer/impulse_field.rs +455 -0
- package/native/shared/src/renderer/material_pipeline.rs +604 -0
- package/native/shared/src/renderer/material_system.rs +2106 -0
- package/native/shared/src/renderer/mod.rs +13923 -0
- package/native/shared/src/renderer/planar_reflection.rs +458 -0
- package/native/shared/src/renderer/post_pass.rs +249 -0
- package/native/shared/src/renderer/shader_include.rs +205 -0
- package/native/shared/src/renderer/shader_library.rs +134 -0
- package/native/shared/src/renderer/shaders.rs +5855 -0
- package/native/shared/src/renderer/transient.rs +576 -0
- package/native/shared/src/renderer/types.rs +259 -0
- package/native/shared/src/renderer/util.rs +151 -0
- package/native/shared/src/scene.rs +1066 -0
- package/native/shared/src/sdf_cache.rs +274 -0
- package/native/shared/src/shadows.rs +551 -0
- package/native/shared/src/staging.rs +90 -0
- package/native/shared/src/string_header.rs +35 -0
- package/native/shared/src/text_renderer.rs +456 -0
- package/native/shared/src/textures.rs +154 -0
- package/native/third_party/JoltPhysics/Jolt/AABBTree/AABBTreeBuilder.cpp +242 -0
- package/native/third_party/JoltPhysics/Jolt/AABBTree/AABBTreeBuilder.h +121 -0
- package/native/third_party/JoltPhysics/Jolt/AABBTree/AABBTreeToBuffer.h +296 -0
- package/native/third_party/JoltPhysics/Jolt/AABBTree/NodeCodec/NodeCodecQuadTreeHalfFloat.h +323 -0
- package/native/third_party/JoltPhysics/Jolt/AABBTree/TriangleCodec/TriangleCodecIndexed8BitPackSOA4Flags.h +555 -0
- package/native/third_party/JoltPhysics/Jolt/ConfigurationString.h +112 -0
- package/native/third_party/JoltPhysics/Jolt/Core/ARMNeon.h +94 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Array.h +713 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Atomics.h +44 -0
- package/native/third_party/JoltPhysics/Jolt/Core/BinaryHeap.h +96 -0
- package/native/third_party/JoltPhysics/Jolt/Core/ByteBuffer.h +74 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Color.cpp +38 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Color.h +98 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Core.h +652 -0
- package/native/third_party/JoltPhysics/Jolt/Core/FPControlWord.h +143 -0
- package/native/third_party/JoltPhysics/Jolt/Core/FPException.h +96 -0
- package/native/third_party/JoltPhysics/Jolt/Core/FPFlushDenormals.h +43 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Factory.cpp +92 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Factory.h +54 -0
- package/native/third_party/JoltPhysics/Jolt/Core/FixedSizeFreeList.h +122 -0
- package/native/third_party/JoltPhysics/Jolt/Core/FixedSizeFreeList.inl +215 -0
- package/native/third_party/JoltPhysics/Jolt/Core/HashCombine.h +234 -0
- package/native/third_party/JoltPhysics/Jolt/Core/HashTable.h +876 -0
- package/native/third_party/JoltPhysics/Jolt/Core/InsertionSort.h +58 -0
- package/native/third_party/JoltPhysics/Jolt/Core/IssueReporting.cpp +27 -0
- package/native/third_party/JoltPhysics/Jolt/Core/IssueReporting.h +38 -0
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystem.h +311 -0
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystem.inl +56 -0
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystemSingleThreaded.cpp +65 -0
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystemSingleThreaded.h +62 -0
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystemThreadPool.cpp +364 -0
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystemThreadPool.h +101 -0
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystemWithBarrier.cpp +230 -0
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystemWithBarrier.h +85 -0
- package/native/third_party/JoltPhysics/Jolt/Core/LinearCurve.cpp +51 -0
- package/native/third_party/JoltPhysics/Jolt/Core/LinearCurve.h +67 -0
- package/native/third_party/JoltPhysics/Jolt/Core/LockFreeHashMap.h +182 -0
- package/native/third_party/JoltPhysics/Jolt/Core/LockFreeHashMap.inl +351 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Memory.cpp +85 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Memory.h +85 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Mutex.h +223 -0
- package/native/third_party/JoltPhysics/Jolt/Core/MutexArray.h +98 -0
- package/native/third_party/JoltPhysics/Jolt/Core/NonCopyable.h +18 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Profiler.cpp +677 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Profiler.h +301 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Profiler.inl +90 -0
- package/native/third_party/JoltPhysics/Jolt/Core/QuickSort.h +137 -0
- package/native/third_party/JoltPhysics/Jolt/Core/RTTI.cpp +149 -0
- package/native/third_party/JoltPhysics/Jolt/Core/RTTI.h +436 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Reference.h +244 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Result.h +174 -0
- package/native/third_party/JoltPhysics/Jolt/Core/STLAlignedAllocator.h +72 -0
- package/native/third_party/JoltPhysics/Jolt/Core/STLAllocator.h +127 -0
- package/native/third_party/JoltPhysics/Jolt/Core/STLLocalAllocator.h +170 -0
- package/native/third_party/JoltPhysics/Jolt/Core/STLTempAllocator.h +80 -0
- package/native/third_party/JoltPhysics/Jolt/Core/ScopeExit.h +49 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Semaphore.cpp +135 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Semaphore.h +68 -0
- package/native/third_party/JoltPhysics/Jolt/Core/StaticArray.h +329 -0
- package/native/third_party/JoltPhysics/Jolt/Core/StreamIn.h +120 -0
- package/native/third_party/JoltPhysics/Jolt/Core/StreamOut.h +97 -0
- package/native/third_party/JoltPhysics/Jolt/Core/StreamUtils.h +168 -0
- package/native/third_party/JoltPhysics/Jolt/Core/StreamWrapper.h +53 -0
- package/native/third_party/JoltPhysics/Jolt/Core/StridedPtr.h +63 -0
- package/native/third_party/JoltPhysics/Jolt/Core/StringTools.cpp +101 -0
- package/native/third_party/JoltPhysics/Jolt/Core/StringTools.h +38 -0
- package/native/third_party/JoltPhysics/Jolt/Core/TempAllocator.h +209 -0
- package/native/third_party/JoltPhysics/Jolt/Core/TickCounter.cpp +37 -0
- package/native/third_party/JoltPhysics/Jolt/Core/TickCounter.h +58 -0
- package/native/third_party/JoltPhysics/Jolt/Core/UnorderedMap.h +80 -0
- package/native/third_party/JoltPhysics/Jolt/Core/UnorderedSet.h +32 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/AABox.h +313 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/AABox4.h +224 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/ClipPoly.h +200 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/ClosestPoint.h +498 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexHullBuilder.cpp +1467 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexHullBuilder.h +276 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexHullBuilder2D.cpp +335 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexHullBuilder2D.h +105 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexSupport.h +188 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/EPAConvexHullBuilder.h +845 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/EPAPenetrationDepth.h +557 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/Ellipse.h +77 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/GJKClosestPoint.h +945 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/IndexedTriangle.h +130 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/Indexify.cpp +222 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/Indexify.h +19 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/MortonCode.h +40 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/OrientedBox.cpp +178 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/OrientedBox.h +39 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/Plane.h +104 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/RayAABox.h +241 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/RayCapsule.h +37 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/RayCylinder.h +101 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/RaySphere.h +96 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/RayTriangle.h +158 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/Sphere.h +72 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/Triangle.h +34 -0
- package/native/third_party/JoltPhysics/Jolt/Jolt.cmake +703 -0
- package/native/third_party/JoltPhysics/Jolt/Jolt.h +16 -0
- package/native/third_party/JoltPhysics/Jolt/Jolt.natvis +116 -0
- package/native/third_party/JoltPhysics/Jolt/Math/BVec16.h +99 -0
- package/native/third_party/JoltPhysics/Jolt/Math/BVec16.inl +177 -0
- package/native/third_party/JoltPhysics/Jolt/Math/DMat44.h +158 -0
- package/native/third_party/JoltPhysics/Jolt/Math/DMat44.inl +310 -0
- package/native/third_party/JoltPhysics/Jolt/Math/DVec3.h +291 -0
- package/native/third_party/JoltPhysics/Jolt/Math/DVec3.inl +941 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Double3.h +48 -0
- package/native/third_party/JoltPhysics/Jolt/Math/DynMatrix.h +31 -0
- package/native/third_party/JoltPhysics/Jolt/Math/EigenValueSymmetric.h +177 -0
- package/native/third_party/JoltPhysics/Jolt/Math/FindRoot.h +42 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Float2.h +36 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Float3.h +50 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Float4.h +44 -0
- package/native/third_party/JoltPhysics/Jolt/Math/GaussianElimination.h +102 -0
- package/native/third_party/JoltPhysics/Jolt/Math/HalfFloat.h +208 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Mat44.h +243 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Mat44.inl +952 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Math.h +208 -0
- package/native/third_party/JoltPhysics/Jolt/Math/MathTypes.h +32 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Matrix.h +259 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Quat.h +268 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Quat.inl +406 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Real.h +44 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Swizzle.h +19 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Trigonometry.h +79 -0
- package/native/third_party/JoltPhysics/Jolt/Math/UVec4.h +232 -0
- package/native/third_party/JoltPhysics/Jolt/Math/UVec4.inl +636 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Vec3.cpp +71 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Vec3.h +308 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Vec3.inl +942 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Vec4.h +320 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Vec4.inl +1152 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Vector.h +211 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/GetPrimitiveTypeOfType.h +54 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStream.cpp +38 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStream.h +337 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamBinaryIn.cpp +252 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamBinaryIn.h +57 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamBinaryOut.cpp +165 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamBinaryOut.h +57 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamIn.cpp +635 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamIn.h +148 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamOut.cpp +166 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamOut.h +101 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTextIn.cpp +418 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTextIn.h +55 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTextOut.cpp +255 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTextOut.h +62 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTypes.h +26 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableAttribute.h +111 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableAttributeEnum.h +67 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableAttributeTyped.h +60 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableObject.cpp +15 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableObject.h +170 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/TypeDeclarations.cpp +70 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/TypeDeclarations.h +45 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/AllowedDOFs.h +68 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/Body.cpp +426 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/Body.h +452 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/Body.inl +197 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyAccess.h +68 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyActivationListener.h +28 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyCreationSettings.cpp +234 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyCreationSettings.h +124 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyFilter.h +130 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyID.h +101 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyInterface.cpp +1099 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyInterface.h +324 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyLock.h +111 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyLockInterface.h +134 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyLockMulti.h +120 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyManager.cpp +1220 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyManager.h +403 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyPair.h +36 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyType.h +19 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MassProperties.cpp +185 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MassProperties.h +58 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionProperties.cpp +92 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionProperties.h +308 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionProperties.inl +178 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionQuality.h +31 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionType.h +17 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/Character.cpp +354 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/Character.h +159 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterBase.cpp +59 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterBase.h +157 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterID.h +98 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterVirtual.cpp +1933 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterVirtual.h +752 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/AABoxCast.h +20 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ActiveEdgeMode.h +17 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ActiveEdges.h +114 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BackFaceMode.h +16 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhase.cpp +16 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhase.h +109 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseBruteForce.cpp +313 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseBruteForce.h +38 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseLayer.h +148 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseLayerInterfaceMask.h +92 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseLayerInterfaceTable.h +64 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuadTree.cpp +629 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuadTree.h +108 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuery.h +56 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/ObjectVsBroadPhaseLayerFilterMask.h +35 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/ObjectVsBroadPhaseLayerFilterTable.h +66 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/QuadTree.cpp +1768 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/QuadTree.h +389 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastConvexVsTriangles.cpp +107 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastConvexVsTriangles.h +46 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastResult.h +37 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastSphereVsTriangles.cpp +223 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastSphereVsTriangles.h +49 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollectFacesMode.h +16 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideConvexVsTriangles.cpp +155 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideConvexVsTriangles.h +56 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollidePointResult.h +25 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideShape.h +106 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideShapeVsShapePerLeaf.h +94 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideSoftBodyVertexIterator.h +110 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideSoftBodyVerticesVsTriangles.h +102 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideSphereVsTriangles.cpp +121 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideSphereVsTriangles.h +50 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionCollector.h +109 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionCollectorImpl.h +219 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionDispatch.cpp +107 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionDispatch.h +97 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionGroup.cpp +35 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionGroup.h +97 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ContactListener.h +143 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/EstimateCollisionResponse.cpp +213 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/EstimateCollisionResponse.h +48 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/GroupFilter.cpp +32 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/GroupFilter.h +46 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/GroupFilterTable.cpp +38 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/GroupFilterTable.h +130 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/InternalEdgeRemovingCollector.h +279 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ManifoldBetweenTwoFaces.cpp +271 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ManifoldBetweenTwoFaces.h +44 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/NarrowPhaseQuery.cpp +448 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/NarrowPhaseQuery.h +77 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/NarrowPhaseStats.cpp +62 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/NarrowPhaseStats.h +110 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ObjectLayer.h +111 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ObjectLayerPairFilterMask.h +52 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ObjectLayerPairFilterTable.h +78 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/PhysicsMaterial.cpp +35 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/PhysicsMaterial.h +57 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/PhysicsMaterialSimple.cpp +38 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/PhysicsMaterialSimple.h +37 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/RayCast.h +87 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/BoxShape.cpp +318 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/BoxShape.h +115 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CapsuleShape.cpp +438 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CapsuleShape.h +129 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CompoundShape.cpp +433 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CompoundShape.h +354 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CompoundShapeVisitors.h +461 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ConvexHullShape.cpp +1311 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ConvexHullShape.h +202 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ConvexShape.cpp +566 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ConvexShape.h +150 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CylinderShape.cpp +418 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CylinderShape.h +126 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/DecoratedShape.cpp +87 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/DecoratedShape.h +80 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/EmptyShape.cpp +64 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/EmptyShape.h +75 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/GetTrianglesContext.h +248 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/HeightFieldShape.cpp +2754 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/HeightFieldShape.h +380 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/MeshShape.cpp +1305 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/MeshShape.h +228 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/MutableCompoundShape.cpp +596 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/MutableCompoundShape.h +176 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/OffsetCenterOfMassShape.cpp +217 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/OffsetCenterOfMassShape.h +140 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/PlaneShape.cpp +541 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/PlaneShape.h +147 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/PolyhedronSubmergedVolumeCalculator.h +319 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/RotatedTranslatedShape.cpp +333 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/RotatedTranslatedShape.h +161 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ScaleHelpers.h +83 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ScaledShape.cpp +238 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ScaledShape.h +145 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/Shape.cpp +325 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/Shape.h +466 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/SphereShape.cpp +347 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/SphereShape.h +125 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/StaticCompoundShape.cpp +674 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/StaticCompoundShape.h +139 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/SubShapeID.h +138 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/SubShapeIDPair.h +65 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCapsuleShape.cpp +453 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCapsuleShape.gliffy +1 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCapsuleShape.h +135 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCylinderShape.cpp +691 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCylinderShape.h +132 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TriangleShape.cpp +430 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TriangleShape.h +143 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ShapeCast.h +173 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ShapeFilter.h +73 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/SimShapeFilter.h +40 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/SimShapeFilterWrapper.h +58 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/SortReverseAndStore.h +48 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/TransformedShape.cpp +180 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/TransformedShape.h +194 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/CalculateSolverSteps.h +70 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConeConstraint.cpp +246 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConeConstraint.h +133 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/Constraint.cpp +73 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/Constraint.h +243 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintManager.cpp +289 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintManager.h +100 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/AngleConstraintPart.h +257 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/AxisConstraintPart.h +682 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/DualAxisConstraintPart.h +276 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/GearConstraintPart.h +195 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/HingeRotationConstraintPart.h +222 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/IndependentAxisConstraintPart.h +246 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/PointConstraintPart.h +239 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/RackAndPinionConstraintPart.h +196 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/RotationEulerConstraintPart.h +283 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/RotationQuatConstraintPart.h +246 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/SpringPart.h +169 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/SwingTwistConstraintPart.h +597 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ContactConstraintManager.cpp +1804 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ContactConstraintManager.h +524 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/DistanceConstraint.cpp +266 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/DistanceConstraint.h +120 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/FixedConstraint.cpp +215 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/FixedConstraint.h +96 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/GearConstraint.cpp +188 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/GearConstraint.h +116 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/HingeConstraint.cpp +443 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/HingeConstraint.h +205 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/MotorSettings.cpp +43 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/MotorSettings.h +66 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraint.cpp +458 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraint.h +191 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraintPath.cpp +85 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraintPath.h +76 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraintPathHermite.cpp +308 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraintPathHermite.h +54 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PointConstraint.cpp +157 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PointConstraint.h +94 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PulleyConstraint.cpp +253 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PulleyConstraint.h +137 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/RackAndPinionConstraint.cpp +189 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/RackAndPinionConstraint.h +118 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SixDOFConstraint.cpp +900 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SixDOFConstraint.h +289 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SliderConstraint.cpp +501 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SliderConstraint.h +198 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SpringSettings.cpp +35 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SpringSettings.h +70 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SwingTwistConstraint.cpp +524 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SwingTwistConstraint.h +197 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/TwoBodyConstraint.cpp +56 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/TwoBodyConstraint.h +65 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/DeterminismLog.cpp +17 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/DeterminismLog.h +159 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/EActivation.h +16 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/EPhysicsUpdateError.h +37 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/IslandBuilder.cpp +492 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/IslandBuilder.h +144 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/LargeIslandSplitter.cpp +582 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/LargeIslandSplitter.h +187 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsLock.h +169 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsScene.cpp +261 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsScene.h +104 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsSettings.h +125 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsStepListener.h +37 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsSystem.cpp +2915 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsSystem.h +391 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsUpdateContext.cpp +25 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsUpdateContext.h +176 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Ragdoll/Ragdoll.cpp +744 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Ragdoll/Ragdoll.h +245 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyContactListener.h +55 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyCreationSettings.cpp +128 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyCreationSettings.h +75 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyManifold.h +74 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyMotionProperties.cpp +1501 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyMotionProperties.h +333 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyShape.cpp +354 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyShape.h +73 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodySharedSettings.cpp +1487 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodySharedSettings.h +390 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyUpdateContext.h +63 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyVertex.h +36 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/StateRecorder.h +136 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/StateRecorderImpl.cpp +90 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/StateRecorderImpl.h +50 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/MotorcycleController.cpp +306 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/MotorcycleController.h +119 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/TrackedVehicleController.cpp +547 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/TrackedVehicleController.h +169 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleAntiRollBar.cpp +33 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleAntiRollBar.h +33 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleCollisionTester.cpp +376 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleCollisionTester.h +146 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleConstraint.cpp +703 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleConstraint.h +252 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleController.cpp +17 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleController.h +87 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleDifferential.cpp +81 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleDifferential.h +39 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleEngine.cpp +122 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleEngine.h +93 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleTrack.cpp +52 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleTrack.h +56 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleTransmission.cpp +159 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleTransmission.h +87 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/Wheel.cpp +93 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/Wheel.h +148 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/WheeledVehicleController.cpp +866 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/WheeledVehicleController.h +205 -0
- package/native/third_party/JoltPhysics/Jolt/RegisterTypes.cpp +204 -0
- package/native/third_party/JoltPhysics/Jolt/RegisterTypes.h +29 -0
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRenderer.cpp +1107 -0
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRenderer.h +383 -0
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererPlayback.cpp +168 -0
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererPlayback.h +48 -0
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererRecorder.cpp +158 -0
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererRecorder.h +130 -0
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererSimple.cpp +80 -0
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererSimple.h +88 -0
- package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletalAnimation.cpp +165 -0
- package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletalAnimation.h +91 -0
- package/native/third_party/JoltPhysics/Jolt/Skeleton/Skeleton.cpp +82 -0
- package/native/third_party/JoltPhysics/Jolt/Skeleton/Skeleton.h +72 -0
- package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletonMapper.cpp +237 -0
- package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletonMapper.h +145 -0
- package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletonPose.cpp +87 -0
- package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletonPose.h +82 -0
- package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitter.cpp +73 -0
- package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitter.h +84 -0
- package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitterBinning.cpp +139 -0
- package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitterBinning.h +52 -0
- package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitterMean.cpp +43 -0
- package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitterMean.h +28 -0
- package/native/third_party/JoltPhysics/LICENSE +7 -0
- package/native/third_party/JoltPhysics/README.md +173 -0
- package/native/third_party/bloom_jolt/CMakeLists.txt +78 -0
- package/native/third_party/bloom_jolt/include/bloom_jolt.h +519 -0
- package/native/third_party/bloom_jolt/src/bloom_jolt.cpp +1780 -0
- package/native/tvos/Cargo.lock +1692 -0
- package/native/tvos/Cargo.toml +22 -0
- package/native/tvos/src/lib.rs +3179 -0
- package/native/watchos/Cargo.lock +16 -0
- package/native/watchos/Cargo.toml +19 -0
- package/native/watchos/shaders/bloom_postfx.metal +99 -0
- package/native/watchos/src/BloomWatchApp.swift +1236 -0
- package/native/watchos/src/BloomWatchAudio.swift +179 -0
- package/native/watchos/src/audio.rs +55 -0
- package/native/watchos/src/draw_list.rs +223 -0
- package/native/watchos/src/ffi_stubs.rs +454 -0
- package/native/watchos/src/lib.rs +1013 -0
- package/native/watchos/src/models.rs +746 -0
- package/native/watchos/src/postfx.rs +91 -0
- package/native/watchos/src/scene.rs +534 -0
- package/native/watchos/src/textures.rs +184 -0
- package/native/web/Cargo.lock +1656 -0
- package/native/web/Cargo.toml +38 -0
- package/native/web/bloom_glue.js +218 -0
- package/native/web/build.sh +101 -0
- package/native/web/index.html +390 -0
- package/native/web/jolt_bridge.js +1311 -0
- package/native/web/src/lib.rs +2739 -0
- package/native/windows/Cargo.lock +1813 -0
- package/native/windows/Cargo.toml +31 -0
- package/native/windows/src/lib.rs +1933 -0
- package/package.json +558 -0
- package/src/audio/index.ts +151 -0
- package/src/core/colors.ts +56 -0
- package/src/core/index.ts +903 -0
- package/src/core/keys.ts +63 -0
- package/src/core/types.ts +102 -0
- package/src/index.ts +158 -0
- package/src/math/index.ts +502 -0
- package/src/mobile/index.ts +294 -0
- package/src/models/index.ts +859 -0
- package/src/physics/index.ts +1072 -0
- package/src/scene/index.ts +570 -0
- package/src/shapes/index.ts +120 -0
- package/src/text/index.ts +48 -0
- package/src/textures/index.ts +173 -0
- package/src/world/index.ts +22 -0
- package/src/world/loader.ts +385 -0
- package/src/world/prefab.ts +205 -0
- package/src/world/saver.ts +61 -0
- package/src/world/terrain.ts +254 -0
- package/src/world/types.ts +136 -0
- package/src/world/validate.ts +202 -0
- package/src/world/version.ts +47 -0
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
// Bloom shader ABI header — see docs/rfc/0001-material-render-graph.md.
|
|
2
|
+
//
|
|
3
|
+
// ABI-VERSION: 2
|
|
4
|
+
//
|
|
5
|
+
// Included by every 3D shader (built-in PBR, sky, custom user materials).
|
|
6
|
+
// Defines the five bind groups and the vertex attribute layout that any
|
|
7
|
+
// Bloom-compatible 3D pipeline targets. Groups 0, 1, 3 are required;
|
|
8
|
+
// group 2 is required for PBR materials and optional otherwise; group 4
|
|
9
|
+
// is opt-in via the material descriptor's `reads_scene = true`.
|
|
10
|
+
//
|
|
11
|
+
// Bumping the version means every consumer has to be updated in the same
|
|
12
|
+
// PR. Version-check happens in engine/renderer/shaders.rs at pipeline
|
|
13
|
+
// creation time: mismatched headers are a hard error, not a warning.
|
|
14
|
+
|
|
15
|
+
// =====================================================================
|
|
16
|
+
// Group 0 — PerFrame (written once per frame, read by every 3D draw)
|
|
17
|
+
// =====================================================================
|
|
18
|
+
|
|
19
|
+
struct PerFrame {
|
|
20
|
+
// Clock / counters
|
|
21
|
+
time: f32, // seconds since process start, wraps every ~2²³ s
|
|
22
|
+
delta_time: f32, // seconds since previous frame
|
|
23
|
+
frame_index: u32, // monotonic, wraps at u32::MAX
|
|
24
|
+
_pad0: u32,
|
|
25
|
+
|
|
26
|
+
// Resolutions
|
|
27
|
+
screen_resolution: vec2<f32>, // physical pixels (matches swapchain)
|
|
28
|
+
render_resolution: vec2<f32>, // may be smaller than screen when TSR < 1
|
|
29
|
+
|
|
30
|
+
// TAA / TSR jitter applied to the projection this frame
|
|
31
|
+
taa_jitter: vec2<f32>,
|
|
32
|
+
_pad1: vec2<f32>,
|
|
33
|
+
|
|
34
|
+
// Global wind field. xy = direction in the XZ plane (need not be
|
|
35
|
+
// normalised; magnitude scales effective amplitude); z = amplitude
|
|
36
|
+
// (~0.1 m typical for grass); w = frequency in Hz (~1.0 typical).
|
|
37
|
+
// Foliage / cloth materials sample this in their vertex stage.
|
|
38
|
+
wind: vec4<f32>,
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
@group(0) @binding(0) var<uniform> frame: PerFrame;
|
|
42
|
+
|
|
43
|
+
// =====================================================================
|
|
44
|
+
// Group 1 — PerView (camera + lighting + env maps + shadows)
|
|
45
|
+
// =====================================================================
|
|
46
|
+
|
|
47
|
+
struct DirLight {
|
|
48
|
+
direction: vec4<f32>, // xyz + intensity
|
|
49
|
+
color: vec4<f32>, // rgb + _pad
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
struct PointLight {
|
|
53
|
+
position: vec4<f32>, // xyz + range
|
|
54
|
+
color: vec4<f32>, // rgb + intensity
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
struct PerView {
|
|
58
|
+
// View matrices
|
|
59
|
+
view: mat4x4<f32>,
|
|
60
|
+
proj: mat4x4<f32>,
|
|
61
|
+
view_proj: mat4x4<f32>,
|
|
62
|
+
prev_view_proj: mat4x4<f32>, // for motion vectors / TAA reprojection
|
|
63
|
+
inv_proj: mat4x4<f32>,
|
|
64
|
+
|
|
65
|
+
// Camera state
|
|
66
|
+
camera_pos: vec4<f32>, // xyz=world pos, w=env_intensity
|
|
67
|
+
camera_dir: vec4<f32>, // xyz=forward, w=fovy_rad
|
|
68
|
+
|
|
69
|
+
// Basic scene lighting
|
|
70
|
+
ambient: vec4<f32>, // rgb + intensity
|
|
71
|
+
fog: vec4<f32>, // rgb + density
|
|
72
|
+
|
|
73
|
+
// Legacy single-sun shortcut (also in dir_lights[0])
|
|
74
|
+
sun_dir: vec4<f32>, // xyz + intensity
|
|
75
|
+
sun_color: vec4<f32>, // rgb + 0
|
|
76
|
+
|
|
77
|
+
// Arrayed lights
|
|
78
|
+
dir_light_count: vec4<f32>, // x = count, yzw = 0
|
|
79
|
+
dir_lights: array<DirLight, 4>,
|
|
80
|
+
point_light_count: vec4<f32>,
|
|
81
|
+
point_lights: array<PointLight, 16>,
|
|
82
|
+
|
|
83
|
+
// Shadow data — three cascades, split by shadow_splits.xyz
|
|
84
|
+
shadow_splits: vec4<f32>,
|
|
85
|
+
shadow_view: mat4x4<f32>, // orientation for cascade compute
|
|
86
|
+
shadow_cascades: array<mat4x4<f32>, 3>, // light-space view-proj per cascade
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
@group(1) @binding(0) var<uniform> view: PerView;
|
|
90
|
+
|
|
91
|
+
// Environment maps — pre-filtered at load time.
|
|
92
|
+
@group(1) @binding(1) var env_tex: texture_2d<f32>;
|
|
93
|
+
@group(1) @binding(2) var env_samp: sampler;
|
|
94
|
+
@group(1) @binding(3) var env_diffuse_tex: texture_2d<f32>;
|
|
95
|
+
|
|
96
|
+
// BRDF LUT for IBL specular (split-sum approximation).
|
|
97
|
+
@group(1) @binding(4) var brdf_lut_tex: texture_2d<f32>;
|
|
98
|
+
@group(1) @binding(5) var brdf_lut_samp: sampler;
|
|
99
|
+
|
|
100
|
+
// Shadow depth textures, one per cascade.
|
|
101
|
+
@group(1) @binding(6) var shadow_tex_0: texture_depth_2d;
|
|
102
|
+
@group(1) @binding(7) var shadow_tex_1: texture_depth_2d;
|
|
103
|
+
@group(1) @binding(8) var shadow_tex_2: texture_depth_2d;
|
|
104
|
+
@group(1) @binding(9) var shadow_samp: sampler_comparison;
|
|
105
|
+
|
|
106
|
+
// =====================================================================
|
|
107
|
+
// Group 2 — PerMaterial (PBR textures + factors + user params)
|
|
108
|
+
// =====================================================================
|
|
109
|
+
//
|
|
110
|
+
// All texture bindings have a 1×1 white default bound when a material
|
|
111
|
+
// doesn't provide its own — shaders can unconditionally sample.
|
|
112
|
+
|
|
113
|
+
struct MaterialFactors {
|
|
114
|
+
metal_rough: vec4<f32>, // x=metallic, y=roughness, z=has_mr_tex, w=alpha_cutoff
|
|
115
|
+
emissive: vec4<f32>, // rgb + 0
|
|
116
|
+
base_color: vec4<f32>, // rgba tint multiplier
|
|
117
|
+
// EN-012 — shading-model selector + foliage transmission RGB.
|
|
118
|
+
// x = shading_model (0 = default lit, 1 = foliage,
|
|
119
|
+
// 2 = subsurface — V2 stub),
|
|
120
|
+
// yzw = transmission_color (rgb tint for back-lit foliage; ignored
|
|
121
|
+
// for default lit). Default (1, 1, 1) when not set.
|
|
122
|
+
shading_model: vec4<f32>,
|
|
123
|
+
// EN-012 — foliage shading parameters. Read by `shade_foliage`
|
|
124
|
+
// (in common/pbr.wgsl) when shading_model.x == 1.0.
|
|
125
|
+
// x = transmission_amount (0..1, how much sun-behind-leaf bleeds
|
|
126
|
+
// through into the camera),
|
|
127
|
+
// y = wrap_factor (0..1, how much wrap-lambert wraps the diffuse
|
|
128
|
+
// term — 0 is standard lambert, 1 is light fully
|
|
129
|
+
// wrapping around to the back face),
|
|
130
|
+
// zw = reserved.
|
|
131
|
+
foliage_params: vec4<f32>,
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
@group(2) @binding(0) var base_color_tex: texture_2d<f32>;
|
|
135
|
+
@group(2) @binding(1) var base_color_samp: sampler;
|
|
136
|
+
@group(2) @binding(2) var normal_tex: texture_2d<f32>;
|
|
137
|
+
@group(2) @binding(3) var normal_samp: sampler;
|
|
138
|
+
@group(2) @binding(4) var mr_tex: texture_2d<f32>;
|
|
139
|
+
@group(2) @binding(5) var mr_samp: sampler;
|
|
140
|
+
@group(2) @binding(6) var em_tex: texture_2d<f32>;
|
|
141
|
+
@group(2) @binding(7) var em_samp: sampler;
|
|
142
|
+
@group(2) @binding(8) var occ_tex: texture_2d<f32>;
|
|
143
|
+
@group(2) @binding(9) var occ_samp: sampler;
|
|
144
|
+
@group(2) @binding(10) var<uniform> material: MaterialFactors;
|
|
145
|
+
|
|
146
|
+
// Binding 11 is reserved for per-material user params. Shaders that
|
|
147
|
+
// declare user params do so via:
|
|
148
|
+
//
|
|
149
|
+
// struct UserParams { … up to 256 bytes … };
|
|
150
|
+
// @group(2) @binding(11) var<uniform> user: UserParams;
|
|
151
|
+
//
|
|
152
|
+
// Materials that don't use it leave binding 11 unclaimed; the engine's
|
|
153
|
+
// pipeline layout allocates a 16-byte stub UBO there so the bind group
|
|
154
|
+
// always matches the layout.
|
|
155
|
+
|
|
156
|
+
// EN-011 — Planar reflection RT. Bound by the engine for materials
|
|
157
|
+
// linked to a reflection probe via `setMaterialReflectionProbe`.
|
|
158
|
+
// Materials without a probe get a 1×1 black default texture so
|
|
159
|
+
// unconditional sampling is safe.
|
|
160
|
+
//
|
|
161
|
+
// The RT is `Rgba16Float` HDR (matches the engine's pipeline) and
|
|
162
|
+
// holds the previous frame's mirror-camera render of the world
|
|
163
|
+
// minus excluded materials. Sample with screen-space UV — the
|
|
164
|
+
// reflection texture is camera-aligned. Typical water shader pattern:
|
|
165
|
+
//
|
|
166
|
+
// let screen_uv = clip_position.xy / vec2<f32>(frame.screen_resolution);
|
|
167
|
+
// let perturb = wave_normal.xz * 0.05; // wobble strength
|
|
168
|
+
// let refl = textureSample(planar_reflection_tex,
|
|
169
|
+
// planar_reflection_samp,
|
|
170
|
+
// screen_uv + perturb).rgb;
|
|
171
|
+
//
|
|
172
|
+
// Reads are NaN-safe: the default 1×1 black texture means a material
|
|
173
|
+
// can sample even when the game forgot to bind a probe.
|
|
174
|
+
@group(2) @binding(12) var planar_reflection_tex: texture_2d<f32>;
|
|
175
|
+
@group(2) @binding(13) var planar_reflection_samp: sampler;
|
|
176
|
+
|
|
177
|
+
// =====================================================================
|
|
178
|
+
// EN-014 — Texture-array slots for splat-mapped terrain.
|
|
179
|
+
// =====================================================================
|
|
180
|
+
//
|
|
181
|
+
// Three optional `texture_2d_array<f32>` slots. Materials that don't
|
|
182
|
+
// bind a texture array see a 1×1×1 stub array (single transparent
|
|
183
|
+
// black layer) so unconditional sampling is safe.
|
|
184
|
+
//
|
|
185
|
+
// Layer count is capped at 16 layers per array in V1. Games address
|
|
186
|
+
// individual layers via a fragment-shader argument:
|
|
187
|
+
// let albedo = textureSample(albedo_array, albedo_array_samp,
|
|
188
|
+
// uv_world_xz, layer_idx);
|
|
189
|
+
//
|
|
190
|
+
// Pair these with a splat-weight texture (RGBA8 with 4 weight channels)
|
|
191
|
+
// in user_params for terrain blending. Single sampler is reused across
|
|
192
|
+
// all 3 arrays — terrain layers share UV / filtering, so a per-array
|
|
193
|
+
// sampler would just waste binding slots.
|
|
194
|
+
@group(2) @binding(14) var albedo_array: texture_2d_array<f32>;
|
|
195
|
+
@group(2) @binding(15) var normal_array: texture_2d_array<f32>;
|
|
196
|
+
@group(2) @binding(16) var mr_array: texture_2d_array<f32>;
|
|
197
|
+
@group(2) @binding(17) var albedo_array_samp: sampler;
|
|
198
|
+
|
|
199
|
+
// =====================================================================
|
|
200
|
+
// Group 3 — PerDraw (transform + skinning)
|
|
201
|
+
// =====================================================================
|
|
202
|
+
|
|
203
|
+
struct PerDraw {
|
|
204
|
+
mvp: mat4x4<f32>,
|
|
205
|
+
model: mat4x4<f32>,
|
|
206
|
+
prev_mvp: mat4x4<f32>, // for motion vectors
|
|
207
|
+
model_tint: vec4<f32>,
|
|
208
|
+
skin_info: vec4<u32>, // x=joint_offset into global buffer, y=joint_count, zw=0
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
struct JointMatrices {
|
|
212
|
+
matrices: array<mat4x4<f32>, 1024>, // global joint buffer; draws read slices by offset
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
@group(3) @binding(0) var<uniform> draw: PerDraw;
|
|
216
|
+
@group(3) @binding(1) var<uniform> joints: JointMatrices;
|
|
217
|
+
|
|
218
|
+
// =====================================================================
|
|
219
|
+
// Group 4 — SceneInputs (optional; `reads_scene = true` materials only)
|
|
220
|
+
// =====================================================================
|
|
221
|
+
//
|
|
222
|
+
// The render graph synthesises a SceneColor snapshot pass before the
|
|
223
|
+
// first consumer runs. Materials that don't declare reads_scene never
|
|
224
|
+
// receive this group and pay no cost for the copy.
|
|
225
|
+
|
|
226
|
+
@group(4) @binding(0) var scene_color_tex: texture_2d<f32>;
|
|
227
|
+
@group(4) @binding(1) var scene_color_samp: sampler;
|
|
228
|
+
@group(4) @binding(2) var scene_depth_tex: texture_depth_2d;
|
|
229
|
+
@group(4) @binding(3) var scene_depth_samp: sampler;
|
|
230
|
+
@group(4) @binding(4) var impulse_tex: texture_2d<f32>; // world-space decals / splashes
|
|
231
|
+
@group(4) @binding(5) var impulse_samp: sampler;
|
|
232
|
+
@group(4) @binding(6) var motion_vectors: texture_2d<f32>;
|
|
233
|
+
|
|
234
|
+
// =====================================================================
|
|
235
|
+
// Vertex attribute layout (matches renderer::types::Vertex3D)
|
|
236
|
+
// =====================================================================
|
|
237
|
+
|
|
238
|
+
struct VertexInput {
|
|
239
|
+
@location(0) position: vec3<f32>,
|
|
240
|
+
@location(1) normal: vec3<f32>,
|
|
241
|
+
@location(2) color: vec4<f32>, // per-vertex tint multiplier
|
|
242
|
+
@location(3) uv: vec2<f32>,
|
|
243
|
+
@location(4) joints: vec4<f32>, // bone indices as floats (engine convention)
|
|
244
|
+
@location(5) weights: vec4<f32>, // sum to 1.0 for skinned, 0 for unskinned
|
|
245
|
+
@location(6) tangent: vec4<f32>, // xyz=tangent, w=bitangent sign (+1 / -1)
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
// =====================================================================
|
|
249
|
+
// Fragment output profiles
|
|
250
|
+
// =====================================================================
|
|
251
|
+
|
|
252
|
+
// Opaque profile — writes the full forward G-buffer. Materials that use
|
|
253
|
+
// this must live in `Bucket::Opaque` and render in the main_hdr pass.
|
|
254
|
+
struct OpaqueOut {
|
|
255
|
+
@location(0) hdr: vec4<f32>, // HDR colour, pre-bloom
|
|
256
|
+
@location(1) material: vec2<f32>, // metallic, roughness for SSR / SSGI
|
|
257
|
+
@location(2) velocity: vec2<f32>, // NDC-space motion, for TAA reprojection
|
|
258
|
+
@location(3) albedo: vec4<f32>, // for SSGI bounce colour
|
|
259
|
+
};
|
|
260
|
+
|
|
261
|
+
// Translucent profile — writes HDR only, alpha blended. Materials in
|
|
262
|
+
// `Bucket::Transparent`, `Refractive`, or `Additive` use this. The main
|
|
263
|
+
// HDR pass' G-buffer targets are load-op'd in the translucent sub-pass;
|
|
264
|
+
// material/velocity/albedo remain whatever the opaque pass left them.
|
|
265
|
+
struct TranslucentOut {
|
|
266
|
+
@location(0) hdr: vec4<f32>,
|
|
267
|
+
};
|
|
268
|
+
|
|
269
|
+
// =====================================================================
|
|
270
|
+
// Standard helpers
|
|
271
|
+
// =====================================================================
|
|
272
|
+
|
|
273
|
+
// Skinning — blends a world-space position through the joint matrices,
|
|
274
|
+
// using the per-draw joint_offset so multiple skinned models share the
|
|
275
|
+
// global joint buffer.
|
|
276
|
+
fn world_position_from_skinned(
|
|
277
|
+
local_pos: vec3<f32>, vertex: VertexInput, include_non_skinned: bool,
|
|
278
|
+
) -> vec4<f32> {
|
|
279
|
+
let total_weight = vertex.weights.x + vertex.weights.y
|
|
280
|
+
+ vertex.weights.z + vertex.weights.w;
|
|
281
|
+
var pos = vec4<f32>(local_pos, 1.0);
|
|
282
|
+
if (total_weight > 0.01) {
|
|
283
|
+
let off = draw.skin_info.x;
|
|
284
|
+
let j0 = off + u32(vertex.joints.x);
|
|
285
|
+
let j1 = off + u32(vertex.joints.y);
|
|
286
|
+
let j2 = off + u32(vertex.joints.z);
|
|
287
|
+
let j3 = off + u32(vertex.joints.w);
|
|
288
|
+
pos = joints.matrices[j0] * pos * vertex.weights.x
|
|
289
|
+
+ joints.matrices[j1] * pos * vertex.weights.y
|
|
290
|
+
+ joints.matrices[j2] * pos * vertex.weights.z
|
|
291
|
+
+ joints.matrices[j3] * pos * vertex.weights.w;
|
|
292
|
+
} else if (include_non_skinned) {
|
|
293
|
+
pos = draw.model * pos;
|
|
294
|
+
}
|
|
295
|
+
return pos;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
// Standard NDC-space motion vector computation. Pass the current and
|
|
299
|
+
// previous clip positions, get back a vec2 suitable for the
|
|
300
|
+
// velocity G-buffer target.
|
|
301
|
+
fn compute_motion_vector(curr_clip: vec4<f32>, prev_clip: vec4<f32>) -> vec2<f32> {
|
|
302
|
+
let curr_ndc = curr_clip.xy / curr_clip.w;
|
|
303
|
+
let prev_ndc = prev_clip.xy / prev_clip.w;
|
|
304
|
+
return (curr_ndc - prev_ndc) * 0.5;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
// Linearise a hardware depth value given the bound projection. Useful
|
|
308
|
+
// for materials that read `scene_depth_tex` (group 4 binding 2).
|
|
309
|
+
fn linearize_depth(z_ndc: f32) -> f32 {
|
|
310
|
+
// Standard reverse-depth linearisation: the engine uses a standard
|
|
311
|
+
// depth range (0..1) with proj.z mapping near→0, far→1.
|
|
312
|
+
// Derived from the inv_proj mat4; this cheap form works for our
|
|
313
|
+
// perspective projections. Override in shaders that don't match.
|
|
314
|
+
let z_clip = z_ndc * 2.0 - 1.0;
|
|
315
|
+
let a = view.proj[2][2];
|
|
316
|
+
let b = view.proj[3][2];
|
|
317
|
+
// z_eye = b / (z_clip + a). Result is negative (camera looks down -Z).
|
|
318
|
+
return -b / (z_clip + a);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
// =====================================================================
|
|
322
|
+
// EN-001 — Instance attribute layout (wants_instancing pipelines)
|
|
323
|
+
// =====================================================================
|
|
324
|
+
//
|
|
325
|
+
// Materials compiled via `compile_material_instanced` get a second
|
|
326
|
+
// vertex buffer at slot 1, step_mode = Instance. Game shaders that opt
|
|
327
|
+
// into instancing extend their VertexInput with these locations IN
|
|
328
|
+
// ADDITION to the standard 0..6 above:
|
|
329
|
+
//
|
|
330
|
+
// struct InstancedVertexInput {
|
|
331
|
+
// @location(0) position: vec3<f32>,
|
|
332
|
+
// @location(1) normal: vec3<f32>,
|
|
333
|
+
// @location(2) color: vec4<f32>,
|
|
334
|
+
// @location(3) uv: vec2<f32>,
|
|
335
|
+
// @location(4) joints: vec4<f32>,
|
|
336
|
+
// @location(5) weights: vec4<f32>,
|
|
337
|
+
// @location(6) tangent: vec4<f32>,
|
|
338
|
+
// @location(7) instance_pos: vec3<f32>,
|
|
339
|
+
// @location(8) instance_rot_y: f32,
|
|
340
|
+
// @location(9) instance_scale: f32,
|
|
341
|
+
// @location(10) instance_tint: vec4<f32>,
|
|
342
|
+
// };
|
|
343
|
+
//
|
|
344
|
+
// Typical vertex-shader pattern:
|
|
345
|
+
//
|
|
346
|
+
// let cy = cos(in.instance_rot_y);
|
|
347
|
+
// let sy = sin(in.instance_rot_y);
|
|
348
|
+
// let local = in.position * in.instance_scale;
|
|
349
|
+
// let world = vec3<f32>(
|
|
350
|
+
// cy * local.x + sy * local.z,
|
|
351
|
+
// local.y,
|
|
352
|
+
// -sy * local.x + cy * local.z,
|
|
353
|
+
// ) + in.instance_pos;
|
|
354
|
+
// let world_pos = vec4<f32>(world, 1.0);
|
|
355
|
+
// out.clip_position = view.view_proj * world_pos;
|
|
356
|
+
//
|
|
357
|
+
// The Rust-side `InstanceData3D` struct mirrors this layout and is
|
|
358
|
+
// the canonical CPU representation. Per-draw `model_tint` is
|
|
359
|
+
// multiplied against `instance_tint` in the fragment shader so games
|
|
360
|
+
// can dim/colour an entire instanced batch without re-uploading.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// Minimal ABI-compliant test material (opaque profile).
|
|
2
|
+
//
|
|
3
|
+
// Reads PerFrame.time and PerDraw.mvp to render the bound geometry
|
|
4
|
+
// with a solid time-pulsed colour. Writes the full 4-MRT G-buffer so
|
|
5
|
+
// the main HDR pass accepts it without a translucent sub-pass (that's
|
|
6
|
+
// phase 2's job). Proves the material pipeline + submission plumbing
|
|
7
|
+
// works end-to-end.
|
|
8
|
+
|
|
9
|
+
#include "material_abi.wgsl"
|
|
10
|
+
|
|
11
|
+
struct VsOut {
|
|
12
|
+
@builtin(position) clip_position: vec4<f32>,
|
|
13
|
+
@location(0) world_normal: vec3<f32>,
|
|
14
|
+
@location(1) local_color: vec3<f32>,
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
@vertex
|
|
18
|
+
fn vs_main(in: VertexInput) -> VsOut {
|
|
19
|
+
var out: VsOut;
|
|
20
|
+
out.clip_position = draw.mvp * vec4<f32>(in.position, 1.0);
|
|
21
|
+
out.world_normal = normalize((draw.model * vec4<f32>(in.normal, 0.0)).xyz);
|
|
22
|
+
|
|
23
|
+
// Pulse colour with PerFrame.time to demonstrate the binding.
|
|
24
|
+
let pulse = 0.5 + 0.5 * sin(frame.time * 1.5);
|
|
25
|
+
out.local_color = vec3<f32>(pulse, 0.4, 1.0 - pulse) * draw.model_tint.rgb;
|
|
26
|
+
return out;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@fragment
|
|
30
|
+
fn fs_main(in: VsOut) -> OpaqueOut {
|
|
31
|
+
var out: OpaqueOut;
|
|
32
|
+
// Simple directional-ish shading so the cube reads as 3D.
|
|
33
|
+
let n = normalize(in.world_normal);
|
|
34
|
+
let light_dir = normalize(vec3<f32>(0.3, 0.7, 0.4));
|
|
35
|
+
let diffuse = max(dot(n, light_dir), 0.0);
|
|
36
|
+
let lit = in.local_color * (0.3 + 0.7 * diffuse);
|
|
37
|
+
out.hdr = vec4<f32>(lit, 1.0);
|
|
38
|
+
out.material = vec2<f32>(0.0, 0.9); // non-metal, rough
|
|
39
|
+
out.velocity = vec2<f32>(0.0, 0.0);
|
|
40
|
+
out.albedo = vec4<f32>(in.local_color, 1.0);
|
|
41
|
+
return out;
|
|
42
|
+
}
|