问题标签 [box2dlights]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
323 浏览

libgdx - Libgdx || Box2D 身体截头体剔除?

我目前正在开发一个小地牢爬虫,因为我在桌面上只有大约 200 fps,所以我真的需要修复我的代码 :)。我的游戏使用一种算法来创建具有不同房间的不同关卡等。因为房间有墙壁,所以我在它们之间循环并创建身体。在 50x50 的地图上,现在有很多物体,所有物体都是同时计算和渲染的 :(。我还使用 Box2d Lights 和 rayhandler 来创建阴影,每个物体都会投射阴影 :)

有没有办法实现截锥体剔除?如果是的话如何:) 任何代码示例?还有其他方法可以提高 body 的 fps 率吗?

感谢您的时间和关注 :)

0 投票
1 回答
232 浏览

android - Android 上的 libGDX/Box2DLights 色带

我在我的一个项目中使用 Box2DLights。我在这个项目上工作了几个月,我只是尝试将它移植到 Android 上,看看它的外观。虽然桌面版游戏的灯光效果看起来很不错,但在安卓版上看起来真的很难看。灯光渐变一点也不平滑,带有色带效果。以下是桌面版和安卓版的截图: 在此处输入图像描述

为了在我的游戏中使用 Box2DLights,我在 GameScreen 中使用了这段代码:

我还尝试使用不同的参数,例如:

或者

或者

我不知道这有帮助,但这里有其他精度:

  • 我的图块集是在 Photoshop 上制作的,并以 RGB 模式记录为 PNG 文件,8 位/通道
  • 在我的 2 台 Android 设备上观察到了这种效果:
    • 平板 Transformer Prime TF701 与 Android 4.2.1
    • 装有 Android 5.0.2 的 LG G Stylo

谢谢你的帮助!

0 投票
2 回答
130 浏览

java - Box2d 灯 || Conelight 碰撞时越过身体

感谢您阅读我的帖子。我正在使用 box2d 灯,除了 1 个问题外,它大部分都运行良好。当锥形光照射到光碰撞的物体上时,光会越过物体。我想这样做,如果锥光与身体碰撞,它不会越过对象,而是不会渲染。再次感谢!

0 投票
2 回答
500 浏览

libgdx - box2d light - 阴影与颜色相同

我是 libGDX 和 Box2dlights 的新手,我制作了一个点光源,但有一个非常奇怪的问题,阴影与点光源的颜色相同 - 当我的精灵穿过光线范围时,这太奇怪了,它会投射出相同颜色的阴影点光源

0 投票
1 回答
265 浏览

java - Java LibGDX Box2D 光照错误

我最近开始了一个基于瓷砖的游戏。到目前为止一切顺利,我实现了 Box2D 并为瓷砖添加了刚体。然后我添加了 Box2D 灯。这就是问题出现的地方。这是问题的屏幕截图: Image

如您所见,屏幕的一半被渲染,另一半则没有,尽管阴影仍然是由身体创建的。这绝对是 Box2D 灯的问题,因为如果我禁用它们,问题就会消失。据我所知,Box2D 灯光决定停止渲染某些纹理,可能是因为它认为它们不在屏幕上。

我的问题是,有谁知道这是什么或如何解决它?我相信这是一个错误,如果有人知道更多帮助,将不胜感激!

我的灯光渲染代码如下

0 投票
1 回答
244 浏览

java - 渲染box2Dlights时如何调整视口?

我正在使用 Libgdx 和 Box2Dlights编写类似于 Don't Starve的游戏。我有一个平面世界,在这个表面上有一些广告牌对象。所以使用透视相机。屏幕法线与表面(地面)法线之间的角度为 45°。其中一些物体向各个方向发光(篝火)。所以RayHandler类是用来处理这些的。设置RayHandler组合矩阵的方法需要视口宽度和高度。当透视相机的传递给此方法后,渲染的光会在其中心离开屏幕后消失。应该做些什么来实现只有当它完全离开屏幕(不仅仅是中心)时才会消失的光,这样用户就不会看到它消失的那一刻?谢谢你。

更新:

方法rayHandler.setCombinedMatrix(camera);需要OrthographicCamera。我使用的相机是透视。这就是为什么我无法使用rayHandler.setCombinedMatrix(camera). 留给我的唯一选择是使用setCombinedMatrix(Matrix4 combined, float x, float y, float viewPortWidth, float viewPortHeight). 我可以在这里传递PerspectiveCamera组合矩阵及其位置和视口,但是它没有给出所需的结果,因为它仍然给出了不正确的视口(可能是因为它没有考虑相机在 3D 空间中的事实并且是倾斜的)。

0 投票
2 回答
139 浏览

java - Box2dLights:处理灯光时出现致命错误 + ConeLight 不起作用

谢谢你过来。

我遇到了 Box2DLights 的 2 个问题。

第一个问题并不重要,但是第二个,

#1:处理灯光

我有多个 PointLights 跟随一个 porjectile。因此,每个 porjectile 都有一个 ArrayList,其中包含它需要的所有 PointLights。当 porjectile 击中一个物体时,所有的 Lights 都应该被处理掉。显然这是个问题。

这会导致致命的异常

Java 运行时环境检测到一个致命错误:EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffc6fc59f58, pid=6944, tid=6676 JRE 版本:Java(TM) SE Runtime Environment (8.0_45-b15) (build 1.8.0_45- b15) Java VM:Java HotSpot(TM) 64 位服务器 VM(25.45-b02 混合模式 windows-amd64 压缩 oops)有问题的框架:C [ntdll.dll+0x39f58] 无法写入核心转储。默认情况下,在 Windows 的客户端版本上不启用小型转储

我想,问题在于 ArrayList 无法再引用已处置的对象。问题是如何更好地做到这一点。

#2:ConeLight 使我的 JavaTm 崩溃(?)

在我的游戏中添加 ConeLight 时

当按下“播放”时,我的游戏在主菜单中冻结,主菜单屏幕冻结并出现一个小窗口,上面写着:

“Java(TM) SE 二进制文件不再工作”

然而,PointLight 可以完美运行。老实说,我不知道这是我的错还是错误。

0 投票
2 回答
195 浏览

libgdx - libgdx/box2d 灯:改变灯光的模糊

我想知道是否可以改变灯光强度随距离衰减的速率。

像这样的东西: 在此处输入图像描述

0 投票
2 回答
63 浏览

libgdx - Box2dlights 纹理未绘制

我在我的项目中使用 box2dlights,似乎有问题。当我实际RayHandler在程序中使用时,只绘制了灯光,没有绘制纹理。因此,当我RayHandler从渲染循环中删除时,一切正常。我想要绘制光线,然后在其上方绘制纹理。我如何达到这一点?这是代码:

}

我还删除了与问题无关的冗余代码部分。

0 投票
2 回答
195 浏览

java - 访问 Box2D Lights 投射的光线

我目前正在使用 Box2D 灯光库和 LibGDX 开发游戏。

目前一切都很好,但是,我很难从 ConeLight 获取光线。

如果对象不在光线中,我希望停止渲染对象。有什么方法可以访问图书馆投射的光线,这样我就可以确定物体是否挡住了光线?

通过 JavaDocs 和 Internet 快速搜索没有结果。也许通过反思?
存在类似的方法light.setContactFiltering(),但是它们只能阻止某些对象受到光的影响。

我不希望自己投射光线来检测物体,而是尝试访问现有的光线投射以尝试节省计算能力。

感谢您的帮助!