LLL·AZ实验

光线投射迷宫

1992 年的办法:屏幕上每一列发一条射线,算它撞到哪面墙,再按距离把一列像素拉高。 没有 WebGL、没有贴图,全部在 CPU 上跑。

Raycasting
POS 1.5, 1.5 RAYS — FPS — WASD 移动 · 拖拽转向
方向键 / WASD 前后左右,Q E 或拖拽转身 墙体明暗按朝向区分,远端自动压暗

一条射线怎么走

用 DDA 沿网格步进:每一步只跨一条格线,比较 x/y 方向的下一个交点谁更近。 最多走几十格就能确定命中,比逐像素采样快得多。

为什么要鱼眼校正

每列射线与视线方向的夹角不同,直接用距离会让画面中间凸起。乘以 cos(夹角) 就回到垂直投影。

性能取舍

内部分辨率固定在 240 行,再交给 CSS 放大——这是 90 年代主机常用的办法, 像素成本稳定,帧率也就稳定。