浅谈3D渲染与原神

原神,想必很多二刺猿对此都不陌生(异世相遇,尽享美味!!!),我们借此来谈谈手机上的3D渲染。
首先,原神渲染使用的引擎是unity,但严格的说不全是。米哈游(原神的开发公司)是通过交♂易(掏钱买的)得到了Unity的源码,优化了引擎的渲染管线(我也不知道啥是渲染管线)等一些列针对手游的优化。可能有人会好奇?一个手游,引擎真的很重要吗。
先不谈手游,就放在游戏这个层面来讲,引擎就是一个游戏的心脏。它管理着你显示的内容,基本上承包了所有的视觉部分,我们常说的炫酷的特效也基本都是它搞出来的,所以引擎的重要性想必不用我多说了吧?
说回手游,很明显手机的性能是远不及同时期的电脑的,所以如何能在手机的承载极限内实现尽可能好的效果就是当今游戏厂商的目标。而米哈游为此付了钱,买下了Unity的源码,然后自行优化,以达到更好的效果。这是当今绝大部分厂商没有的气度。同时我们看到原神的效果也的确不错。
实际上,仅看画质的话,很多游戏都能比的过,但是原神是开放世界,开放世界的量级可是很大的。如果同时将原生世界里所有的内容同时渲染的话,11代i9都顶不住,更不要说硬件有限的手机了。所以米哈游能在开放世界这个前提下做到这么高的画质,已经很不容易了。
看到这里,有的小伙伴就有疑问了。既然电脑的cpu都压不住,原神到底怎么优化了那么多呢?其实,所有的开放世界游戏虽然可以无缝行走在整个世界(即无需切换地图就能到达下一个地点)但是他们的绘制都不是全部绘制的。一个东西你看不到绘制干嘛,对不对?游戏厂商有很多解决渲染压力而对远处景物操作的方法。
我们以和平精英举例,探讨一下引擎对于远处景物的操作。
首先是不渲染,只要距离达到一定程度,引擎就会放弃这个景物的渲染,因为即使渲染出来,也只是很小的几个像素点,但是却浪费了正常渲染的资源(试想一下,渲染一颗树,渲染到你面前,你可以看到树的树干,叶子,树枝等。但是渲染到100m外,基本上就只剩一个轮廓,叶子什么的小东西都看不见了,只能看到树干和一坨叶子,但是他们的渲染压力是一样的)所以为了节约资源,一般太远的话就会放弃渲染。但是有些景物与你距离并不是很远,这时候就会减少绘制的细节,比如本来一个叶子是弯曲的,由100个点组成的,但是减少细节后可能只有3个点(这里提一下,点越多绘制就越消耗GPU的资源,而且3个点是组成一个面最低要求毕竟3个点确定一个平面嘛)这其实也是所谓“空气墙”出现的原因。
举个例子,一个敌人趴在一个圆柱体上(实际上在建模中不存在真正的圆,只不过点用的越多,越像一个圆)但是由于敌人距离你太远,引擎减少了点的绘制,导致圆柱体变成了多边形体。从而导致你看得到,但是打的时候却打不到。

演示

你可能感兴趣的:(浅谈3D渲染与原神)