在努力这个问题好几天了。 是一个风格类似 Wolfenstein 的 DDA raycaster,使用定点数学,距离阴影,完全使用 NASM 汇编写成。 直接使用系统调用。 渲染器在终端中运行,每个帧是使用一个 write 系统调用将 ASCII/Unicode 块字符缓冲区写出的。 Mini-map 在相同的画面中绘制, 同步输出序列来避免闪烁。
https://github.com/ujjwalvivek/baremetal
我卡关在哪里: 我感觉到了这个系统的天花板,而且不知道哪里才是有意思的困难地方。Terminal 中的墙是斜角的,因为 Terminal 的单元格不是方形的。 我知道半块字符(▀▄)可以将垂直分辨率倍增。但是,我更觉得是这个体系结构本身值得深挖,还是要站在不同角度思考。
如果克隆看起来很麻烦,就可以直接访问这个项目: https://baremetal.ujjwalvivek.com
那些对终端渲染或老式的 raycaster 领域有深入研究的人,想告诉我下一步在哪里?
评论 (0)