1.4 建筑表现的软硬件环境发展
从石器时代到计算机时代,人类的技术进步离不开工具的发展。而建筑设计表现技术的演变,也离不开计算机软硬件的不断更新迭代。接下来我们会由浅入深地介绍建筑渲染的软件技术发展以及其对计算机硬件的要求,让大家对渲染软硬件有个基础认识。
1.4.1 静态渲染和动态渲染的原理
本节主要针对静态和动态渲染原理进行介绍,其中我们会分别讲解以下几种主要渲染技术的原理:离线光线追踪渲染、实时光栅化渲染和实时光线追踪渲染。
首先来看一下什么是渲染,简单来说,借助于计算机程序自动把2D或3D的场景模型生成逼真或非逼真图像的过程就可以叫作渲染。按照渲染画面的方式可以简单地概括为静态渲染(离线渲染)和动态渲染(实时渲染)两种,二者既有相似之处也有明显的区别。相似在于二者都是把虚拟世界中的点、线、图形、模型等映射到屏幕中;区别则在于离线渲染的每帧画面都需要花费大量时间计算画面中光线的行为,有时甚至需要花上百小时进行渲染,才能最终实现逼真的画面效果。操作者需要提前设置好每帧的渲染参数,之后计算机根据设置开始进行渲染,因此修改场景参数也不能立即呈现效果,需要等待渲染完成后才能看到修改的效果。而实时渲染对图形数据的实时性要求比较严格,因为操作者任何对画面的改变,如视点、画面参数等,都需要在极短的时间内完成渲染,所以实时渲染在光线的行为模拟上会略逊一筹。基于以上的区别,离线渲染主要用于电影、广告等制作周期长,注重画面渲染质量,并且不需要实时交互的项目;而实时渲染主要用于交互环境比较强的即时展示,比如3D游戏和建筑效果演示等项目,往往为了速度和性能要在渲染质量上妥协。
不过随着新技术的更新发展,两种渲染技术都在不断飞速进步,实时渲染的效果也在不断逼近离线渲染,再结合当下的多种光线追踪渲染算法的加持,实时渲染也可以在画面质量上达到电影级别的渲染效果。而实时渲染根据渲染原理的不同,分为了光栅化实时渲染和光线追踪实时渲染。
长期以来,实时渲染使用了光栅化的技术把几何图元(点、线、面)转换为二维图像以显示在计算机屏幕,它的本质是坐标变换和几何离散化,这个过程通常借由图形管线内的固定操作硬件执行。
光栅化渲染流程示意图
这种光栅化实时渲染整体流水线大致分为四个主要阶段:应用阶段、几何处理阶段、光栅化阶段、像素处理阶段,这几个阶段又可能包含一些子阶段。应用阶段通常是第一阶段,开发人员可以完全控制该阶段发生的事情并设置好后续性能提升的可能,该阶段可以实现诸如碰撞冲突检测、加速算法、输入检测等。通过该阶段可以将要渲染的几何图形(可能最终输出在显示屏幕上的渲染图元)反馈至几何处理阶段,这是应用阶段最重要的任务。接下来是几何阶段,主要在GPU上执行,该阶段负责处理一些多边形和顶点转换等操作,主要包括以下几个内容:顶点着色,投影,裁剪和屏幕映射。通过几何阶段可以完成逐顶点操作,包括顶点属性传递和顶点坐标从三维到二维的转换。
几何处理阶段流程示意图
接下来便是进入光栅化阶段,也称扫描转换阶段,通过此阶段可以将屏幕空间中的二维顶点(每个顶点具有Z深度值以及相关的各种阴影信息)转换成屏幕上的像素。光栅化阶段主要包括以下两个阶段:建立三角形和遍历三角形,它们也可以处理点和线,但是由于三角形是最常见的,因此这两个子阶段的名称中都带有“三角形”。建立三角形主要是用于计算光栅化三角形所需的数据,该过程任务由专用的固定操作硬件执行;遍历三角形主要是查找哪些样品或像素在三角形内部的过程。这个阶段将检查中心(或样本)被三角形覆盖了的每个像素,并为与三角形重叠的像素部分生成片元,每个片元的属性都由覆盖它的三角形三个顶点间的插值数据生成。这些属性包括片元的深度和来自几何形状阶段的着色数据;通过此阶段可以将图元内部的所有像素或样本发送到最后的像素处理阶段。
光栅化阶段及像素处理阶段流程示意图
像素处理阶段是对图元内部的像素或样本执行每个像素或每个样本的计算和操作的阶段,主要包括以下两个阶段:像素着色和合并。像素着色阶段由可编程的GPU核执行,通过使用插值的着色数据作为输入,执行所有的逐像素着色计算,最终将一个或多个颜色传递给下一个阶段,此处主要运用了纹理化的技术(简单地说就是将一幅图像粘合到对象上,这些图像可以是一维、二维和三维的,其中二维的最常见)。合并阶段主要是将像素着色阶段产生的片元颜色与当前存储在缓冲区中的颜色相混合。一般来说缓冲区主要包括了颜色缓冲区(纹理对象)、深度缓冲区、模板缓冲区等。其中颜色缓冲区用于绘图的缓冲区,包含了颜色索引和RGB颜色数据,还可能有alpha数据。深度缓冲区:用于存储像素颜色的深度信息,用作消隐,遮挡片元来解决可见性问题,亦被称为Z缓冲区(屏幕水平向为X轴方向,左负右正,屏幕竖直向为Y轴方向,上正下负,垂直于屏幕的方向为Z轴方向,内负外正)。模板缓冲区:用于记录已渲染的基元位置,通常包含8个比特位每像素。最后帧缓冲区内容被交换到屏幕进行显示。执行此阶段的GPU子单元通常不是完全可编程的,但是可以高度配置来实现各种效果,所以我们便可以根据实际情况配置决定直接替换原有颜色,还是用一定的规则混合两个颜色。
通过以上关于光栅化实时渲染整体流水线介绍,相信大家已经有所了解,光栅化正是凭借其快速简单的特性,在实时交互渲染领域流行了很久。但是也有其局限性,这种简单和快捷导致了它只能有限地模拟现实世界中的画面,大家可能注意到光栅化实时渲染普遍存在光影、反射/折射等失真的缺陷,如果想要完善优化光栅化来解决这些缺陷,将需要更复杂的算法实现过程和更高的计算机性能支撑。所以与其花费更高的投入在光栅化这种欺骗视觉的技术,不如探索完善一种可以准确显示虚拟世界画面的技术——光线追踪。现在人们已经取得了一些成绩,但是光线追踪仍没有取代光栅化,因为光线跟踪的计算量很巨大,所以常常作为一种加成属性(比如优化在GI、反射、阴影以及其他和光交互相关的属性)为渲染场景中最佳视觉质量和真实性收益的区域或对象服务。
接下来我们看一下光线追踪的实现过程,简单来说光线追踪就是为场景增加光环境特效,这些光环境特效可以是反射、折射、AO、阴影等,通过这些特效的添加可以让物体表面投影出近似于真实世界的反射效果。光线跟踪本质就是利用光线来确定各种场景元素之间的光传输,然后通过在相机平面中以像素为单位跟踪光的路径并模拟其与虚拟对象相遇的效果来生成图像。它的实际框架过程如下:首先是从相机发射的光线经过像素网格射入场景中,每条视射线会找到距离最接近的场景对象;然后通过交点向光源发射光线来检查中间是否存在任何物体,由此确定该交点是否在阴影中;如果是不透明的物体则会遮挡光线,而透明物体会使其衰减,还可以从相交点产生折射方向射线;如果表面有光泽,则会在反射方向上产生射线;这些射线会拾取相交的第一个对象的颜色值来构建图像;场景内会如此循环这个过程直至光线逃逸出场景或达到设定的最大递归深度。所以光线追踪的过程其实就是在不断确定下一步光线方向的过程。
光线追踪渲染原理示意图
基于之前的介绍,光线追踪现在可以采用离线或者实时的方式满足不同场景的应用。其中离线光线追踪主要是通过提前设置光线追踪的采样率以及反射次数进行场景光照贴图的烘焙渲染,最终得出渲染结果;而实时光线追踪则主要在随着摄像机镜头内场景视角变动时,实时不断地发射追踪光线来重新计算场景光照信息,计算得出结果后即时呈现,这个计算量很大,同时也对GPU的性能要求很高,如果性能达不到可能导致场景直接卡死,由此可以看出实时光线追踪是非常具有挑战性的。目前NVIDIA最新的RTX系列显卡通过为光线追踪增加专有硬件处理单元,并结合Microsoft新的DirectX Raytracing(DXR)API将实时光栅化与实时光线追踪渲染二者优势互补,共同完成较高质量的实时效果呈现。这在实时光线追踪的探索道路上迈出了一大步,同时EPIC公司最新版的虚幻引擎也加入实时光线追踪的支持,光辉城市Mars也正是基于此成功实现了实时光线追踪的迈步。
效果展示:用光辉城市APP扫描观看Mars光线追踪渲染动画
1.4.2 静态渲染和动态渲染对硬件的要求
离线的静态渲染器主要是通过CPU把图形画面拆分为数个像素小块区域,然后每个线程对单个分块区域进行采样计算像素颜色值,最终计算出渲染结果,这个过程比较消耗时间。之后再由内存负责把CPU计算出的渲染结果,比如光照、反射、AO、材质纹理等数据换算成可视元素,最后再通过显卡呈现出来。可以看到在这个渲染过程中基本和显卡没有直接关系,显卡仅在最后进行可视化预览显示时起作用。所以对静态渲染速度影响最大的硬件主要还是CPU,我们在运行静态渲染时便需要这样的硬件组合:高频多核多线程的CPU+够用的高主频内存+差不多的中端显卡即可满足使用需求。
这里为什么我们强调够用的高主频内存呢?首先是考虑到正常使用主机时不可能单独只进行渲染操作,可能还会涉及模型处理打开时的占用内存等情况,所以首先要保证足够使用的内存容量,不然可能会影响主机运行,产生严重延迟,拖慢整体性能(包括CPU);其次是高频率的内存可以为CPU的高频性能提供足够高的带宽,有利于充分发挥CPU的性能。目前静态渲染常用的一种方式是通过分布式渲染,即可以把单帧图像的渲染任务通过网络分布到多台计算机(或多个CPU)上进行渲染的技术,来提升渲染效率。
计算机中央处理器(CPU)
实时的动态渲染是可以将静态单帧的渲染通过GPU硬件加速实现即时化的过程,其主要利用GPU进行图形渲染工作,而此时的CPU不再进行渲染,只负责调度分配工作。相比较于CPU的静态渲染,GPU的动态渲染可以并行利用更多的内核和线程(成百上千)快速处理和传输数据来达到实时渲染的效果,但是这种多核多线程的计算效果相比较于CPU较弱,所以也就导致动态渲染精度质量无法完全媲美CPU的静态渲染的效果。不过随着GPU工艺技术的持续发展和更新,这些差距也在不断缩短,比如现在NVIDIA已经将光线追踪技术整合到新一代的RTX显卡当中。此外高性能的实时渲染场景大小可能还会受限于一个因素影响——显卡自身的显存容量的大小,因为一般显卡的内存容量都会小于系统内存容量的。目前市场上主流的显卡有N卡和A卡之分。N卡就是NVIDIA旗下的显卡,代表技术是CUDA;A卡就是AMD旗下的显卡,代表技术是OpenGL,相比较来说,N卡对于实现渲染以及实时光线追踪渲染兼容性更好。而且N卡+基于Window平台下的DirectX还可以获得GPU加速和AI智能降噪加持,提升GPU渲染性能。
计算机图形处理器(GPU)
通过以上介绍可以明显看出两种渲染对硬件的要求各不相同,所以大家可以结合以上介绍和实际需求适当调整自己的硬件属性来满足静态/动态渲染场景的应用。
1.4.3 硬件选择的原则(硬件推荐)
古人云:工欲善其事必先利其器。一台合适的计算机对于设计渲染工作而言极其重要。在使用诸如Mars等支持实时光线追踪的渲染软件时,提前选择好较合适的计算机硬件可以让软件发挥出最大的效果。
目前PC主机性能主要受限于以下几个硬件:CPU、GPU、内存、硬盘等,其中GPU和内存是Mars运行的主要影响因素,所以本节便基于以上几个硬件选择原则进行简单介绍,帮助大家快速选择适合Mars运行的硬件。
1.CPU的选择
CPU即中央处理器,是计算机的核心。目前市面上主流的两个CPU品牌是AMD和Intel公司。CPU性能主要考虑处理器的架构、主频和核心数,如果是同一代架构的处理器,一般来说数字序号越大性能越强,具体CPU性能排布可以参考CPU天梯图对比。Mars主要在打开项目以及合成视频时对CPU有一定占用,其他正常使用情况下基本上对CPU的占用不是很大,所以大家在选择或者升级CPU时只要关注该CPU和现役主板的兼容性即可。
2.GPU的选择
GPU即图形处理器,是我们常说的显卡的核心组成部分,它决定了显卡的层级和大部分性能。一般GPU都是焊接在显卡上,通常大部分情况我们说的GPU就是指显卡。显卡作为PC主机的一个重要组成部分,承担着输出图形显示的工作。显卡通常又分为核心显卡和独立显卡,其中核心显卡集成在CPU内,独立显卡则是单独的板卡硬件。核心显卡的性能普遍较低,不能满足Mars的基础运行需求,而独立显卡则能够提供Mars更好的显示效果和运行性能,所以下面我们只针对独立显卡进行介绍。
AMD和NVIDIA是目前市面上主流的两大世界独立显卡芯片商,虽然它们都可以运行Mars,但N卡对于Mars运行优化会更加友好,而且Mars最新的光线追踪功能也需要基于N卡的RTX20系显卡和微软的DXR构架技术加持的GTX系列显卡(DXR目前仅支持N卡GTX1060 6G及以上的Pascal显卡和GTX1660、GTX1660Ti的Turing显卡),因此这里首推大家使用N系的游戏显卡,此外显存(帧缓存)也是影响Mars的另一个因素,一般来说同代或其他规格参数相近的情况下,显存越大,性能越好(建议6G及以上的显存)。
截至目前(2020年6月),对Mars运行使用较推荐的N系游戏显卡系列包括:GTX1060 6g、GTX1070、GTX1080、GTX1080Ti、RTX2060、RTX2060S、RTX2070、RTX2070S、RTX2080、RTX2080S、RTX2080Ti等(性能依次增强),具体显卡性能排布建议可参考显卡天梯图。
3.内存的选择
内存也被称为内存储器和主存储器,其作用是暂存CPU中的运算数据以及与硬盘等外部存储器交换的数据。内存与CPU好比桥梁关系,任何运行的程序都必须经过内存,Mars也不例外,充足的内存可以提升Mars的运行稳定性以及承载能力。目前主流平台已经升级为DDR4第四代内存,通常来说内存容量相同的情况下,内存频率越高,性能就越好,当然这并不意味着我们一定要选择高频率的内存条,因为除了个人需求,还要考虑主板对内存频率的限制。目前如果要追求高性能Mars体验,建议至少16G容量;如果要顺畅运行Mars的光线追踪功能则建议扩展到32G容量以上。
4.硬盘的选择
计算机的主要外部存储设备之一,目前从存储数据的介质上来看可以区分为机械硬盘(HDD)和固态硬盘(SSD),机械硬盘采用磁性碟片来存储数据,而固态硬盘通过闪存颗粒来存储数据。两者都有各自的优点,固态硬盘启动和响应速度快,机械硬盘兼容性、稳定性好。实际上固态硬盘对于Mars的优势在于启动进入快、存取快、加载大场景快;而机械硬盘就是进入Mars慢一些,实际运行操作起来的速度基本还是一样的;不过还是建议大家可以考虑把Mars安装在固态硬盘里。
以上就是关于Mars几个重要影响硬件选择的简单介绍,我们总结一下:
1)并不是越贵的计算机硬件越适合运行Mars,只要在自己能接受的预算价格内选择最高配置的硬件就可以了。
2)硬件也是限制Mars运行的影响因素之一,实际操作中我们通过合理的精简、优化模型、巧妙的镜头、场景布置等操作也足以让一些中低端配置可以顺畅运行Mars。
最后附上光辉城市官网推荐的稳定运行的Mars配置要求(详情可以通过以下链接查看:https://www.sheencity.com/down_mars2020)。
光辉城市Mars计算机配置推荐表:
光线追踪模式推荐配置
处理器:i7及以上
内存:32GB及以上
硬盘:系统盘15GB(空闲)/安装盘40GB(空闲)
显卡:RTX 2070及以上
操作系统:Windows 10 64 bit 1809及以上
高性能模式推荐配置
处理器:i5及以上
内存:16GB及以上
硬盘:系统盘15GB(空闲)/安装盘40GB(空闲)
显卡:GTX 1060及以上
操作系统:Windows 7 SP1 64 bit或Windows 10 64 bit
VR推荐配置
处理器:i7及以上
内存:16GB及以上
硬盘:系统盘15GB(空闲)/安装盘40GB(空闲)
显卡:GTX 1070及以上
操作系统:Windows 7 SP1 64 bit或Windows 10 64 bit
光辉城市还与惠普公司合作推出Mars专业图形工作站,针对运行稳定性、项目承载力、光线追踪做了专业性优化,使虚拟创作有更强的硬件保障,同时获得Autodesk、SoildWorks等设计专业软件提供商认证,为设计全流程提供无缝、可靠的性能,让更多设计师能用上高性价比的图形工作站。