- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一张包含很多 Sprite 的 map 。我可以向具有漫反射阴影的 Sprite 添加 Material ,而不是添加大量灯光。但这不会给我想要的结果。并且性能很重。
在第一张图片中,您可以看到光是由手电筒产生的。它通过“开放空间”以最佳方式扩展光线,并且很快就会被 block 挡住。
这是顶层的一个很好的例子。我们可以看到某种二维定向光吗?请注意,屋内的照明再次由手电筒产生。右侧的洞穴更好地展示了光的处理方式。另外,请注意背景中的洞,这会在洞穴中产生一些额外的光线。就好像灯光真的透过背景照在那里。
你可以清楚地看到这里的问题。灯光会增加它们的强度。由于某种原因,光线在一些瓷砖周围形成了方形边缘。此外,大量的灯光会很快导致性能问题。
我读到您可以以某种方式使用光线转换?瞄准“开放空间”之类的?我对着色器或游戏中的照明完全没有经验。我想要一个关于如何实现这种 Terraria/Starbound 照明效果的解释清楚的答案。这并不意味着我说光线转换是解决方案。
在 Minecraft 中,光可以传播一定数量的空气 block 。它逐渐消失到完全黑暗。在图形设置中,您可以启用平滑闪电
,这将(显然)平 slider 上的闪电。
我想这是用着色器完成的,但我不确定。我的猜测是这很重性能。但我在考虑空气 block (它们是游戏对象),也许我的逻辑有误。
注意:我喜欢有帮助的答案,但请提供包含详细解释的链接。或者在您的回答中提供源代码解释或指向 Unity 文档的链接。我不希望看到理论成立之类的。我很想知道如何在 Unity 中实现这种光照。
我还想知道是否可以不使用来自 Unity Marketplace 的包。
查看类似的帖子,其中包含指向涵盖光线转换基础知识的文章的链接。但没有解释如何在 Unity 中实现这一点,而不是我想要实现的 Terraria/Starbound 效果:
Make pixel lighting like terraria and starbound
How to achieve Terraria/Starbound 2d lighting?
例如,观看此视频,了解 2d 光在 Starbound 中的工作原理:
https://www.youtube.com/watch?v=F5d-USf69SU
我知道这有点高级,但玩家闪光灯产生的点光也会被方 block 挡住,并被开放空间让通过。
也是我发的。
Unity 论坛: https://answers.unity.com/questions/1480518/2d-shader-lighting-like-terraria-or-starbound.html
最佳答案
为了统一,我可以提及关于 2d 动态光照的 2 个主要元素。
关于c# - Unity - 2D 着色器/光照,如 Terraria 或 Starbound,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49288411/
我正在使用 JOGL 库开发一些 OpenGL 游戏。 当我定期绘制物体时,例如直接在显示方法中使用GL_QUADS,场景照明出现在对象上。 但是,当我在 init 方法中准备对象并在显示列表中使用
我正在写一个非常小的游戏,在这个游戏中玩家拿着手电筒。 游戏发生的世界是一个小房子。 问题是我的墙是通过绘制多边形绘制的,一个多边形就是一面墙。因此,当我将光照射到墙上时,它不会亮起,只有当光照射到其
我只是在编写一个简单的程序来使用顶点数组对象绘制体素。当我运行程序时,我无法使照明正常工作,它看起来与未启用灯时一样。这是代码片段。显示功能 void GraphicVoxel::display()
我和我的团队刚刚将我们的游戏从 java2d 移植到 LWJGL,现在想要添加照明。我们到底想添加什么: 发光且可移动的元素/实体。 静态照明 我们已经用谷歌搜索了一段时间,但有点迷失,因为我们不知道
所以我有一个 3D 对象,我用以下光线绘制: GLfloat light_diffuse[] = {1.0, 1.0, 1.0, 0.9}; /* White light. */ GLflo
我试图找到加载到 opengl 程序中的任意对象的 vector 归一化。我正在尝试计算所有顶点的法线。我收集到的是,我需要首先计算面的法线,然后找到顶点法线的平均值。 当我运行程序时,某些对象被正确
我正在尝试在 Vulkan 着色器中为单个光源实现 Blinn-Phong 着色,但我得到的结果不是我所期望的。 输出如下所示: 灯光位置应在相机右侧的后面,这在图里上正确表示,但在圆圈上却没有。我不
我已经有了这个不再那么小的基于图 block 的游戏,这是我的第一个真正的 OpenGL 项目。我想将每个图 block 渲染为 3D 对象。因此,首先我创建了一些对象,例如立方体和球体,为它们提供了
这是我第一次尝试创建一个基本的灯光系统,该系统使用顶部有白色圆圈的黑色纹理。我阅读了有关该问题的各种帖子,但我只是不知道我做错了什么。 我想要的是环境是黑暗的,光线是白色的,但是将 spritebat
我是 GLES 2.0 的新手。这真的让我很紧张,因为 OpenGL ES 1 II 只是设置了 GL_LIGHTNING1,然后设置了光照。在 GLES 2.0 中它不起作用。实际上整个屏幕都是黑色
我想问一个关于我在 OpenGL 中的光照效果的问题。 我正在尝试添加照明,但我认为这不是很好,而且我看到一些 2D 照明图片比我的好得多。 问题:我做了一个聚光灯,但我希望它能随着光照范围变小而变暗
我又回到了 Unity。我曾经使用 Unity 4 来创建我的关卡,在那里我可以从我的枪中射出实时灯光。我也使用 Probuilder 来创建我的场景,并且有很多汽车和巡逻 guard 。而且很顺利。
图像素描特效 图像素描特效主要经过以下几个步骤: 调用cv.cvtcolor()函数将彩色图像灰度化处理; 通过cv.gaussianblur()函数实现高斯滤波降噪; 边缘检测采用canny算
我正在尝试在片段着色器中实现 Oren-Nayar 光照,如图所示 here . 但是,我在地形上得到了一些奇怪的光照效果,如下所示。 我目前正在向着色器发送“视角方向”制服作为相机的“前” vect
我有一张包含很多 Sprite 的 map 。我可以向具有漫反射阴影的 Sprite 添加 Material ,而不是添加大量灯光。但这不会给我想要的结果。并且性能很重。 例子 在第一张图片中,您可以
我是一名优秀的程序员,十分优秀!