您的位置:主页 > 装备汇总 > >

适用于2D游戏的高能照明系统

时间:2019-06-08 08:53 编辑:怎样才 来源:http://www.bdzf.org

您好我的名字是Alexander Birke,我推出了我的上一周在Steam上的第一款游戏,名为Laser Disco Defenders。我认为涵盖一些进入游戏的技术和设计解决方案会很有趣。我将从自定义照明系统开始,即使在低规格硬件上也允许使用大量2D光源。 LDD是在Unity中制作的,但这种方法适用于任何可以创建程序网格的游戏引擎。

< strong style =“background-color:transparent; color:#000000; font-family:arial; font-size:14.666666666666666px; font-style:normal; font-variant:normal; font-weight:700; text-decoration: none; vertical-align:baseline“>为什么要使用自定义照明系统?

The LDD的中心机制是,每发射的激光束都会一直弹跳并可以击中玩家,因此我们称之为自制的子弹地狱。由于视觉风格的灵感来自迪斯科舞厅和当时的彩色舞池,我希望激光器将光线投射到环境中。它还具有额外的好处,即它向玩家提示激光即将在可见之前进入框架。该游戏也已经发布用于PlayStation Vita,所以我需要一个比Unity标准的延迟照明更高效的解决方案,它会为每个吸引到屏幕的光线进行绘制调用。在游戏中同时屏幕上可以容易地有30个激光器,因此在手持控制台上运行是不可行的。我还希望照明适合激光束的形状。由于激光束通常很长很薄,所以Unity(方向,点,聚光灯)中的标准光源类型都不适合。


在左边,使用点光源并不适合激光束的形状非常好。在右侧,您可以看到所需的灯光轮廓。

< meta charset =“utf-8”>游戏的其他部分也需要发光,所以我需要一个简单的灯光组件,我可以把它放在游戏对象上,然后照明系统会呈现。


激光投射灯以外的其他部分,因此也需要支持。

程序网格拯救!

基本思路是使用程序网格来“标记”&ndquo;将照明数据转换为光缓冲区,然后在着色器中对其进行采样。这与光线照射的工作方式没有什么不同,但是这个解决方案只需要在2D中工作,所以我可以通过使用程序网格绘制光线,一次完成所有灯光的绘制调用。

游戏中的激光用程序网格渲染,所以我已经有一个纹理在我身边可以用来存储光线衰减。我称之为dum dum duum ...激光片!


您好我的名字是Alexander Birke,我推出了我的上一周在Steam上的第一款游戏,名为Laser Disco Defenders。我认为涵盖一些进入游戏的技术和设计解决方案会很有趣。我将从自定义照明系统开始,即使在低规格硬件上也允许使用大量2D光源。 LDD是在Unity中制作的,但这种方法适用于任何可以创建程序网格的游戏引擎。

< strong style =“background-color:transparent; color:#000000; font-family:arial; font-size:14.666666666666666px; font-style:normal; font-variant:normal; font-weight:700; text-decoration: none; vertical-align:baseline“>为什么要使用自定义照明系统?

The LDD的中心机制是,每发射的激光束都会一直弹跳并可以击中玩家,因此我们称之为自制的子弹地狱。由于视觉风格的灵感来自迪斯科舞厅和当时的彩色舞池,我希望激光器将光线投射到环境中。它还具有额外的好处,即它向玩家提示激光即将在可见之前进入框架。该游戏也已经发布用于PlayStation Vita,所以我需要一个比Unity标准的延迟照明更高效的解决方案,它会为每个吸引到屏幕的光线进行绘制调用。在游戏中同时屏幕上可以容易地有30个激光器,因此在手持控制台上运行是不可行的。我还希望照明适合激光束的形状。由于激光束通常很长很薄,所以Unity(方向,点,聚光灯)中的标准光源类型都不适合。


在左边,使用点光源并不适合激光束的形状非常好。在右侧,您可以看到所需的灯光轮廓。

< meta charset =“utf-8”>游戏的其他部分也需要发光,所以我需要一个简单的灯光组件,我可以把它放在游戏对象上,然后照明系统会呈现。


激光投射灯以外的其他部分,因此也需要支持。

程序网格拯救!

基本思路是使用程序网格来“标记”&ndquo;将照明数据转换为光缓冲区,然后在着色器中对其进行采样。这与光线照射的工作方式没有什么不同,但是这个解决方案只需要在2D中工作,所以我可以通过使用程序网格绘制光线,一次完成所有灯光的绘制调用。

游戏中的激光用程序网格渲染,所以我已经有一个纹理在我身边可以用来存储光线衰减。我称之为dum dum duum ...激光片!


您好我的名字是Alexander Birke,我推出了我的上一周在Steam上的第一款游戏,名为Laser Disco Defenders。我认为涵盖一些进入游戏的技术和设计解决方案会很有趣。我将从自定义照明系统开始,即使在低规格硬件上也允许使用大量2D光源。 LDD是在Unity中制作的,但这种方法适用于任何可以创建程序网格的游戏引擎。

< strong style =“background-color:transparent; color:#000000; font-family:arial; font-size:14.666666666666666px; font-style:normal; font-variant:normal; font-weight:700; text-decoration: none; vertical-align:baseline“>为什么要使用自定义照明系统?

The LDD的中心机制是,每发射的激光束都会一直弹跳并可以击中玩家,因此我们称之为自制的子弹地狱。由于视觉风格的灵感来自迪斯科舞厅和当时的彩色舞池,我希望激光器将光线投射到环境中。它还具有额外的好处,即它向玩家提示激光即将在可见之前进入框架。该游戏也已经发布用于PlayStation Vita,所以我需要一个比Unity标准的延迟照明更高效的解决方案,它会为每个吸引到屏幕的光线进行绘制调用。在游戏中同时屏幕上可以容易地有30个激光器,因此在手持控制台上运行是不可行的。我还希望照明适合激光束的形状。由于激光束通常很长很薄,所以Unity(方向,点,聚光灯)中的标准光源类型都不适合。


在左边,使用点光源并不适合激光束的形状非常好。在右侧,您可以看到所需的灯光轮廓。

< meta charset =“utf-8”>游戏的其他部分也需要发光,所以我需要一个简单的灯光组件,我可以把它放在游戏对象上,然后照明系统会呈现。


激光投射灯以外的其他部分,因此也需要支持。

程序网格拯救!

基本思路是使用程序网格来“标记”&ndquo;将照明数据转换为光缓冲区,然后在着色器中对其进行采样。这与光线照射的工作方式没有什么不同,但是这个解决方案只需要在2D中工作,所以我可以通过使用程序网格绘制光线,一次完成所有灯光的绘制调用。

游戏中的激光用程序网格渲染,所以我已经有一个纹理在我身边可以用来存储光线衰减。我称之为dum dum duum ...激光片!


相关内容:
上一篇:Jacked E3 2003 Preshow Report 下一篇:Kessen II发行日期套装