一条射线怎么走
用 DDA 沿网格步进:每一步只跨一条格线,比较 x/y 方向的下一个交点谁更近。 最多走几十格就能确定命中,比逐像素采样快得多。
1992 年的办法:屏幕上每一列发一条射线,算它撞到哪面墙,再按距离把一列像素拉高。 没有 WebGL、没有贴图,全部在 CPU 上跑。
用 DDA 沿网格步进:每一步只跨一条格线,比较 x/y 方向的下一个交点谁更近。 最多走几十格就能确定命中,比逐像素采样快得多。
每列射线与视线方向的夹角不同,直接用距离会让画面中间凸起。乘以
cos(夹角) 就回到垂直投影。
内部分辨率固定在 240 行,再交给 CSS 放大——这是 90 年代主机常用的办法, 像素成本稳定,帧率也就稳定。