← Commit history

shadows: switch to PCF (the bundle's proven technique) + overhead directional light; exponential map was rendering nothing

John Lauer ·43d0314ccb ·3mo ago ·parent e3fb243
3 files changed +21−9
package.json+1−1
@@ -2,7 +2,7 @@   "slug": "bq25792-charger",   "title": "BQ25792 Charger",   "type": "component",-  "version": "0.1.65",+  "version": "0.1.66",   "description": "BQ25792 Charger - buck-boost 1S-4S battery charger board by Adonis, with real 3D copper traces and measured stackup.",   "tags": [     "hardware"
page.json+10−3
@@ -4,9 +4,16 @@   "slug": "bq25792-charger",   "title": "BQ25792 Charger",   "brief": "Buck-boost 1S-4S battery charger board (TI BQ25792) with 14 Adom machine pins, by Adonis",-  "version": "0.1.65",+  "version": "0.1.66",   "tags": [-    "hardware"+    "adom",+    "adom-modular",+    "component",+    "charger",+    "battery",+    "bq25792",+    "power",+    "usb-c"   ],   "license": "proprietary",   "component": {@@ -49,7 +56,7 @@     "email": "[email protected]"   },   "visibility": "public",-  "description": "BQ25792 Charger - buck-boost 1S-4S battery charger board by Adonis, with real 3D copper traces and measured stackup.",+  "description": "BQ25792 Charger - a buck-boost 1S-4S battery charger board (Texas Instruments BQ25792) designed by Adonis in Fusion 360, with 14 Adom machine pins for the modular stack. Interactive colored 3D model, schematic and layout views.",   "dependencies": {},   "files": [     "README.md",
readme.html+10−5
@@ -373,13 +373,18 @@ exported bodies + design rules.</p>     // sandbox, so it catches nothing). A directional light casts every layer onto a     // dedicated semi-transparent ground we own.     if(sc.lights.length===0){ new (B().HemisphericLight)("rm_hemi",new (B().Vector3)(0.2,0.2,1),sc).intensity=0.9; }-    SHADOW_LIGHT=new (B().DirectionalLight)("rm_shadow",new (B().Vector3)(-0.35,-0.45,-1),sc);-    SHADOW_LIGHT.position=new (B().Vector3)(0.02,0.02,0.15);-    SHADOW_LIGHT.intensity=0.6;-    SHADOW_LIGHT.autoUpdateExtends=true; SHADOW_LIGHT.shadowMinZ=0.001; SHADOW_LIGHT.shadowMaxZ=0.5;+    // Overhead-ish directional light with PCF shadows (the technique the native bundle uses+    // and that actually renders). Slight XY offset so the shadow peeks out from under the board.+    SHADOW_LIGHT=new (B().DirectionalLight)("rm_shadow",new (B().Vector3)(0.25,0.3,-1),sc);+    SHADOW_LIGHT.position=new (B().Vector3)(0.0252,0.0132,0.25);+    SHADOW_LIGHT.intensity=0.45; SHADOW_LIGHT.autoUpdateExtends=true;+    SHADOW_LIGHT.shadowMinZ=0.01; SHADOW_LIGHT.shadowMaxZ=0.6;     SHADOW_GEN=new (B().ShadowGenerator)(2048,SHADOW_LIGHT);-    SHADOW_GEN.useBlurCloseExponentialShadowMap=true; SHADOW_GEN.blurKernel=14; SHADOW_GEN.darkness=0.5;+    SHADOW_GEN.usePercentageCloserFiltering=true; SHADOW_GEN.filteringQuality=B().ShadowGenerator.QUALITY_HIGH;+    SHADOW_GEN.darkness=0.35; SHADOW_GEN.bias=0.00005; SHADOW_GEN.normalBias=0.002;     SHADOW_GEN.getShadowMap().refreshRate=B().RenderTargetTexture.REFRESHRATE_RENDER_ONEVERYFRAME;+    // cast from EVERY layer mesh (Colby freezes the bundle's map for perf; for animation we+    // keep ours refreshing every frame so shadows track the moving layers).     LAYERS.forEach(L=>L.meshes.forEach(m=>{ try{ SHADOW_GEN.addShadowCaster(m,true);}catch(e){} }));      // Dedicated ground just under the board. Prefer ShadowOnlyMaterial (invisible except