要学习Golang并享受它的乐趣,我试图将现有的raycaster项目从C#转换为Go:https://github.com/harbdog/raycaster-go
原始项目主要基于lodev raycasting tutorial。
这是我第一次创建一个raycaster引擎,除了一个主要问题外,我已经设法使它处于良好的工作状态:渲染距离太短,我想渲染得更远,但我看不到明显的参数这将允许。任何建议,将不胜感激!
这是一个youtube视频演示它和渲染距离问题,如果你看看距离较大的墙决定绘制时:https://www.youtube.com/watch?v=HqNorhH37xY
原来是最近修复过的bug in the Ebiten 2D rendering engine!更新到最新版本的Ebiten解决了这个问题。
go get -u github.com/hajimehoshi/ebiten/...
它的要点是较旧版本的Ebiten不会渲染1像素宽度的图像,Y缩放小于0.25,根据Ebiten开发人员的说法,问题是:
确定原因是使用线性过滤器选择mipmap:如果几何矩阵的行列式很小,则使用mipmap,但在您的情况下,mipmap级别太高,图像宽度变为0.这不会发生使用最近的过滤器,因为在这种情况下不使用mipmap。