← Commit history

shadows: PCSS contact-hardening (crisp near, soft far - not razor everywhere) + transparency-aware casting so each layer casts its artwork onto the layers below

John Lauer ·886c66d895 ·3mo ago ·parent b248976
3 files changed +20−6
package.json+1−1
@@ -2,7 +2,7 @@   "slug": "bq25792-charger",   "title": "BQ25792 Charger",   "type": "component",-  "version": "0.1.72",+  "version": "0.1.73",   "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.72",+  "version": "0.1.73",   "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+9−2
@@ -389,8 +389,15 @@ exported bodies + design rules.</p>       SHADOW_LIGHT.direction=CENTER.subtract(SHADOW_LIGHT.position).normalize();       SHADOW_LIGHT.intensity=2.2;                    // 2e6 was for mm distances; ~2 at meter scale       SHADOW_LIGHT.shadowMinZ=0.5; SHADOW_LIGHT.shadowMaxZ=3.0;-      if("angle" in SHADOW_LIGHT) SHADOW_LIGHT.angle=0.32;   // narrow cone = far sharper shadow texels-      try{ SHADOW_GEN.forceBackFacesOnly=false; }catch(e){}   // thin quads/planes must cast+      if("angle" in SHADOW_LIGHT) SHADOW_LIGHT.angle=0.45;+      try{+        SHADOW_GEN.forceBackFacesOnly=false;                       // thin quads/planes must cast+        SHADOW_GEN.usePercentageCloserFiltering=false;+        SHADOW_GEN.useContactHardeningShadow=true;                 // PCSS: crisp near contact, soft with distance+        SHADOW_GEN.contactHardeningLightSizeUVRatio=0.08;+        SHADOW_GEN.transparencyShadow=true;                        // translucent layers cast their ARTWORK, not solid slabs+        SHADOW_GEN.enableSoftTransparentShadow=true;+      }catch(e){}     }else{       // fallback: build a PCF spot matching the bundle's recipe       SHADOW_LIGHT=new (B().SpotLight)("rm_spot",new (B().Vector3)(CENTER.x+0.6,CENTER.y-0.3,1.5),