You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
water:WaterRenderer with Gerstner / FFT ocean waves, interactive ripples, sunlight caustics and an underwater view (opt-in via setting.render.water); pool, lake and ocean samples (#511) (69ae653)
fluid:FluidRenderer and FluidPass screen-space fluid rendering (opt-in via setting.render.fluid) — depth smoothing, optional anisotropic particles, thickness, refraction and absorption; FLIP and CPU particle samples (#512) (1cffd8a)
light:RectLight — analytic rectangular area light (Lambert polygon form factor diffuse + representative-point GGX specular) (#525) (d5b3e12)
light: the first DirectLight in a scene enables CSM by default; an explicit enableCSM assignment still wins (#526) (b2d5e6e)
material: KHR extension textures — sheen, iridescence (+ thickness), specular / specular color and anisotropy maps on LitMaterial, bound by the glTF loader (#526) (b2d5e6e)
gltf:KHR_mesh_quantization, KHR_materials_specular and KHR_materials_variants (new MaterialVariants component with selectVariant) (#516) (76dc157)
post: tonemap modes — Reinhard, Uncharted2, AgX, Khronos PBR Neutral (TonemapSetting.mode, whitePoint) with a CPU mirror TonemapUtil (#510) (01128b0)
post:LensPost — vignette, chromatic aberration, film grain (#514) (c44cd00)
post:MotionBlurPost — camera motion blur with resetHistory() (#517) (fa46b16)
post:ColorGradingPost — exposure, white balance, contrast, saturation, ASC-CDL and strip LUTs, with CPU mirror ColorGradingUtil (#522) (bef7b47)
render: per-object motion vectors for motion blur (objectMotionVectors render setting, velocity sub-pass written into _MotionVector) (#527) (2f44234)
lod:LODGroup component with screen-relative-height / distance metrics, bias, hysteresis and forceLevel (#519) (f5bda99)
pick:MeshBVH triangle BVH for CPU raycasts (closest / all / any-hit queries, sub-geometries, compose_bin geometry, auto refit) (#509) (2e4be97)
new three.js-style Raycaster — CPU ray picking against mesh triangles without a collider (#501)
PickFire event data with face / uv / all hits and collider filters; auto mesh collider geometry
picking of skinned and morph-target meshes as drawn (CPU deformation)
BoundingBox.intersectsRay and BoundingSphere.updateBound implemented
atmosphere: new @orillusion/atmosphere package (#444) (18cd142), ported to the multi-instance engine API with a limb-darkened sun disc and useAsEnvMap toggle (37e55d8)
Bug Fixes
geometry:SphereGeometry / TorusGeometry / CylinderGeometry / StripeGeometry switch to 32-bit indices past 65535 vertices; PlaneGeometry index type check fixed (#528) (643632b)
pick:Raycaster skips sky spheres unless includeSky is set (#528) (643632b)
pick: world-space hits for every collider shape, nearest hit for MeshColliderShape, inverse-transpose normals, and screenPointToRay canvas-offset fix (#509) (2e4be97)
post:MotionBlurPost.resetHistory() also resets object motion vectors; first frame writes zero motion (#528) (643632b)
gltf: non-indexed primitives no longer overflow a Uint8Array fallback index buffer (meshes over 85 triangles were scrambled) (#516) (76dc157)
texture: base64 data-URI textures no longer hang forever in background tabs (#518) (aaf06d7)
shader: pooled reflection no longer overwritten when a pass changes variant (#511) (69ae653)
shader: bind group entries get only the shader stages that reach them (ShaderStageUsage, nested calls included); texture bind group regenerated when layouts rebuild (#526) (b2d5e6e)
engine: first frame and post-resume frame use a nominal 1/60 s Time.delta; GPUBufferBase.mapAsyncWrite staging-buffer pool leak (#519) (f5bda99)
physics-rapier: adapt to Rapier 0.19 API changes (#519) (f5bda99)
atmosphere: fix multi-scattering / sky-view LUT dispatch sizes, uniform padding and a compute shader leak (37e55d8)
sprite: stabilize BillboardY at vertical view angles (#503) (c477ae0)
math:Plane.intersectsRay hit for parallel rays (#507) (1172ba1)
math: correct Vector2.lerp endpoint order (#508) (5cdec3c)
test: wait for rendered frames instead of wall-clock delays before GPU readbacks (#524) (f90b4d5); fail the running test on GPU device loss or uncaptured GPU errors (#526) (b2d5e6e)