首页 > 解决方案 > 如何增加光线投射渲染距离?

问题描述

为了学习 Golang 并从中获得乐趣,我尝试将现有的 raycaster 项目从 C# 转换为 Go:https ://github.com/harbdog/raycaster-go

该原始项目主要基于lodev 光线投射教程

这是我第一次创建 raycaster 引擎,除了一个主要问题:渲染距离太短,我想渲染得更远,但我看不到明显的参数,我已经设法让它进入良好的工作状态那将允许这样做。任何建议,将不胜感激!

如果您查看远处较大的墙何时决定绘制,这是一个 youtube 视频演示它和渲染距离问题: https ://www.youtube.com/watch?v=HqNorhH37xY

标签: goraycasting

解决方案


原来是最近修复的 Ebiten 2D 渲染引擎中的一个错误!更新到最新版本的 Ebiten 解决了该问题。

go get -u github.com/hajimehoshi/ebiten/...

它的要点是旧版本的 Ebiten 不会渲染 Y 缩放小于 0.25 的 1 像素宽度的图像,根据 Ebiten 开发人员的说法,问题是:

好的,原因是使用线性过滤器选择 mipmap:如果几何矩阵的行列式很小,则使用 mipmap,但在您的情况下,mipmap 级别太高以至于图像宽度变为 0。这不会发生使用最近的过滤器,因为在这种情况下不使用 mipmap。


推荐阅读