← Commit history

Text casts NO shadow: make silk/callout meshes alpha-blended (viewer skips transparent for shadow map). GLB-only, no viewer change.

John Lauer ·d0921b0e21 ·3mo ago ·parent 6f15e1f
3 files changed +3−2
AdomMachinePins-4pin-animated.glb
⋯ 1 unchanged line ⋯
AdomMachinePins-complete.zip
⋯ 1 unchanged line ⋯
scripts/build_board_glb.py+3−2
@@ -100,7 +100,7 @@ def add_mesh(vv,f,rgba,name,metal=False,double=True): # (we rebuild copper as real 1oz layers below). board_xy=np.vstack([vv[:,:2] for vv,f,col in board_meshes]) bx0,by0=board_xy.min(0); bx1,by1=board_xy.max(0)-ROT_CENTER=((bx0+bx1)/2,(by0+by1)/2)   # rotate the whole assembly 180 so silk faces the default camera+ROT_CENTER=None   # 3D text reads correctly at the default camera WITHOUT rotating the assembly  FR4_T=0.0016   # 1.6mm standard FR4 board_bottom=board_top-FR4_T@@ -168,7 +168,8 @@ for k,(c,barrel_r) in pin_info.items(): # --- SILKSCREEN + CALLOUTS as 3D extruded text on the board top. These go through add_mesh, so #     they get the SAME 180 rotation as the pins -> labels stay matched to pins AND read left-to-right #     at the default camera. (Solid geometry, unlike the flat-texture attempt whose UV kept desyncing.)-WHITE=[0.97,0.97,0.97,1.0]; AMBER=[0.98,0.74,0.10,1.0]; STEEL=[0.60,0.80,0.97,1.0]+# alpha 0.98 -> alphaMode BLEND -> viewer skips it for shadows (transparencyShadow off) => text casts NO shadow, still visually solid+WHITE=[0.97,0.97,0.97,0.98]; AMBER=[0.98,0.74,0.10,0.98]; STEEL=[0.60,0.80,0.97,0.98] def place_text(txt, cx_mm, cy_mm, h_mm, color, name):     t=text_mesh(txt, h_mm); t.apply_scale(0.001)     t.apply_translation([cx_mm/1000.0, cy_mm/1000.0, board_top+0.00006])