迷宫 3D
说明: 这是一个基于三角形的 3D 迷宫,带有镜面墙。 这不是真正的游戏,因为迷宫中没有目标或出口。 请不要在评论中宣传不相关的东西。 默认控件: [WASD]/[箭头键] 移动 [M] 显示地图 不可配置: [N] 生成新迷宫 [停止,然后按空格键] 使用更多反射进行渲染 [G] 显示球体剪辑测试/演示 [K] 显示对象(键)剪辑 + 镜像测试/演示(但它们不能绕 Y 轴旋转) 查看内部之前: 为了减少代码中的滞后,请在查看内部之前停止项目,并且仅使用滚轮滚动代码(水平滚动:Shift+滚轮) 工作原理: 渲染: 迷宫被分成三角形单元。 迷宫中的每个物体和墙壁都以某种方式绘制,以便可以将它们剪裁到两个给定的 X 坐标之间。 渲染器从玩家所在的单元格开始。然后,它首先递归绘制相邻单元格,剪裁到它们可以通过当前单元格看到的区域,然后再绘制当前单元格。 该项目实际上绘制了一个圆圈,而不是球体。这是因为虽然球体的透视投影具有椭圆形,但公式很复杂,并且存在边缘情况,例如球体的中心位于相机后面。 使用顶端与底端偏移 1 个像素的线绘制阴影。 迷宫生成器: 在迷宫中,首先将每面墙设置为“实心”,将