渲染

VR沉浸体验的要求

大家好!今天我来这里主要介绍的是使用UE4做VR内容的一些优化技巧。VR需要给大家一个沉浸式的体验,这要求两点:一点是你的画面要尽可能的精美,另外一点是你的呈现要尽可能的流畅。

这两点其实是相互矛盾的,因为你画面做的越细致、越精美,其实你的内容就越重,你的渲染压力也就越大。你要做到75帧双眼同时渲染难度就非常高。

我们看用UE4引擎帮你做了多少事情,第一个已经早就完成了。引擎的输入更新并不是只有一次,传统引擎输入可能是游戏线程一开始有个输入,把所有这帧的输入都获取。获取完之后游戏线程再计算游戏逻辑然后送给渲染线程绘制。这种情况下,假设我们游戏跑在60帧,最后更新的HMD或者其它输入设备的最后数据,其实都是要有16毫秒左右的延迟。

最简单可以做的第一步是引擎在把数据送给渲染线程之前,我们会把整个渲染的View Matrix重新更新一遍,游戏逻辑是按照这一帧刚开始收集到的数据来计算。视点其实是通过游戏线程的逻辑线程几乎已经结束后送给渲染线程来计算的。

【视频】PowerVR 光线追踪提供实时,逼真的渲染

为全方位发展,Imagination开发了与光线追踪相关的IP,而光线追踪技术一直被认为是计算机图形学中的“圣杯”,其使得超写实光照的开发更加简单明了。

PowerVR 光线追踪提供实时,逼真的渲染

Unity&Shader高级篇-渲染路径(Rendering Paths)

一、前言

在Unity的Camera中常常会看到一个Rendering Paths的选项,里面有5个选项,其中两个比较重要的选项分别是“Deferred Shading”和“Forward Rendering”,在我还是初学Unity的时候,并没有在意太多。如今随着学习Shader的深入慢慢领会到了这两个渲染路径的重要性。下面就这两个渲染路径的区别和优缺点做一个学习记录。

主要参考文献
维基百科:Deferred_shading
Unity官网:Deferred shading rendering path

可编程渲染管线与着色器语言

大家好,今天想给大家介绍一下可编程渲染管线和着色器语言的相关基础知识,使想上手SHADER编程的童鞋们可以快速揭开SHADER语言的神秘面纱

由于时间有限,我决定只讲三个主要方面的内容,其过程中肯定会有不详细之处,还请见谅,就算是抛砖引玉,给大家一个简单的入门引路。

本章内容总共分为三个部分 一、3D渲染管线工作流程 二、可编程管线 三、着色器语言

3D渲染管线作为整个工作流程的基础,是不可或缺的基本知识。因此,作一定的讲解是有必要的。 但作为一个回顾内容,就不会对具体的内容进行讲解,比如如何进行坐标系变换,如何进行光栅化等等。 我们仅关注的是整个工作的过程。

甚至,我们更关心的不是整个工作过程中的细节,而是我们所必须要关注的几大流程。 如下图

1

数据填充

当我们想实现一次渲染效果的时候,数据的提交(填充)是不可缺少的。 因此,工作流程的第一步就是要处理输入的数据。

此文对于程序员和美术制作人员都有很大的帮助作用,希望你看完后对基于物理的渲染有个整体的理解,此篇翻译的文章(The Comprehensive PBR Guide by Allegorithmic - vol. 1)基本上是从美术的角度来解释基于物理的渲染,有时间我会把程序部分的知识再细致讲一下,包括理论和实现,我自己目前也在学习阶段,主要在研究UE4的基于物理的渲染,希望在接下来的时间里出一个比较详细的文章来从程序员的角度详细阐述实现原理。By 风恋残雪

光是一种复杂的现象,因为它同时具有波和粒子的属性。因此,创建了不同的模型来描述光的行为。作为制作贴图的美工,我们关心光-射线模型,因为它描述了光和介质是如何交互的。对于我们来说,理解光线如何跟介质表面交互很重要,因为我们的工作就是要制作描述那个表面的贴图。我们制作的贴图和材质用来在虚拟世界中跟光线交互,我们对光如何表面了解得越多,我们制作的贴图看起来就越好。

在这个指南里面,我们会讨论物理背后的理论,它是基于物理渲染的模型的理论基础。让我们从光线说起然后逐步扩展到基于物理渲染的关键因素。

光线(Light Rays)

移动GPU渲染原理的流派——IMR、TBR及TBDR

作者:借你一秒

移动GPU相对桌面级的GPU只能算是未长大的小孩子,虽然小孩子在某些场合也能比成人更有优势(比如杂技、柔术之类的表演),但在力量上还是有先天的差别,主要表现在理论性能和带宽上。

  与桌面GPU动辄256bit甚至384bit的位宽、1.2-1.5GHz的高频显存相比,移动GPU不仅要和CPU共享内存带宽,而且普遍使用的是双32bit位宽、LPDDR2-800或1066左右的内存系统,总带宽普遍在10GB/s以内,悲催的Tegra 3使用的还是单通道内存模式,搭配DDR3L的带宽不过6.4GB/s。

目前GPU性能最强大的iPad 4带宽也不过17GB/s(图片源于Anandtech)

视频: PowerVR SDK 工具介绍 - PVRTune

PVRTune 概述视频展示了PVRTune的核心功能:一种实时的GPU性能分析工具,他通过捕获时序数据和计数器来鉴定性能瓶颈。该视频总结了该工具内数据是如何分析的?计数器的细节,秒闪的性能监控,以及渲染状态下的覆盖特性也被充分阐述。

3D小游戏开发经验总结:建模、逻辑实现、渲染与玩家控制

最近准备接触一下3D手机游戏开发,因此利用空闲时间制作了一个iPhone 上面的3D小游戏。因为以前没有在实际项目中应用过OpenGLES 2.0,通过这次开发,积累了不少实战经验,为了分享经验,也为了帮自己增强记忆,选择了写博文。

在开发过程中遇到问题,我花了很长的时间在网上苦苦寻找答案,但是网上的文章大部分是泛泛而谈,和实战的需要相差很远,而在这篇博文里,我不准备再重复已有的概念,而直接讨论一些个人实战性的经验和结论。

关于 3D游戏的实现模式:

我并没有在正儿八经的游戏公司工作过,但通过这个小游戏的制作,我可以谈谈我做一个小游戏所经历的步骤,希望可以让读者们举一反三(只针对实现,不包括游戏设计方面的步骤)。

第一步,3D模型的制作:

3D模型现在有很多工具来制作,包括著名的Maya。如果是使用商业的游戏引擎,比如Unity,它也提供3D模型制作,当然游戏引擎的功能更多,从模型制作,动画,物理特效,到代码上使用设计好的模型,这些都可以涵盖,因此使用商业游戏引擎的项目,可以从比较困难的图形效果方面解放出来,而把主要精力放在游戏逻辑上。

Valve: The Lab Renderer for Unity

来源

前几天Valve放出来他们在The Lab中基于Unity做的一些渲染优化相关的东西, 对于VR开发者来说还是非常有参考价值的.

分析

Single-Pass Forward Rendering and MSAA

正好前不久Oculus也开源了他们在UE4基础上实现的Forward+渲染器, 大体上能看出一个趋势, 那就是延迟渲染方式不是非常适合VR下的渲染. 我觉得可以从这几个角度去分析:

● 延迟渲染对于带宽的消耗非常大, 与VR渲染的高分辨率和高刷新率相矛盾
● 延迟渲染只能使用后期反锯齿技术, 而现阶段VR分辨率不足更加重了对反锯齿的需求, 前向渲染器可以使用硬件的MSAA, 相对于后期反锯齿可以保留更多的细节
● VR中很多后期效果不再需要, 引擎默认的渲染器中可以屏蔽掉这些效果, 结省资源从而提高效率

The Lab的渲染器支持18个动态光, 并且可以投影.

Adpative Quality

【Unity Shader】2D动态云彩

写在前面

赶在年前写一篇文章。之前翻看2015年的SIGGRAPH Course(关于渲染的可以去selfshadow的博客里找到,很全)的时候看到了关于体积云的渲染。这个课程讲述了开发者为游戏《地平线:黎明时分》所开发的动态天气系统,重点讲了里面的云的模拟和渲染,很有参考价值。

渲染

其中,云的建模主要使用了raymarching的方法,他们的启发应该和shadertoy有关,但多了更多的程序控制和艺术效果等。可以从上面的图片看出来,效果很好。

同步内容
--电子创新网--
粤ICP备12070055号