游戏开发中的渲染加速算法总结(二)
demi 在 周五, 07/19/2019 - 09:29 提交
裁剪(Culling)的字面意思是“从大量事物中进行删除”。在计算机图形学中,相对应的就是裁剪技术所要做的工作——“从大量游戏事物中进行删除”。所谓的“大量事物”就是需要绘制的整个场景,删除的是对最终图像没有贡献的场景部分,然后将剩余场景发送到渲染管线。
游戏开发是创建电子游戏的过程,涉及从游戏设计和概念到最终游戏发布的各个阶段。游戏开发需要协同合作的团队,包括游戏设计师、程序员、艺术家、音频工程师、测试员和项目经理等,以确保游戏在各个方面都达到高质量标准。
裁剪(Culling)的字面意思是“从大量事物中进行删除”。在计算机图形学中,相对应的就是裁剪技术所要做的工作——“从大量游戏事物中进行删除”。所谓的“大量事物”就是需要绘制的整个场景,删除的是对最终图像没有贡献的场景部分,然后将剩余场景发送到渲染管线。
通过阅读,你将对游戏开发与实时渲染中加速渲染算法的以下要点有所了解:常用空间数据结构(Spatial Data Structures);各种裁剪技术(Culling Techniques);各种层次细节(LOD,Level of Detail)技术;大型模型的渲染(Large Model Rendering);点渲染(Point Rendering)。
常见的一个误解便是将HDR和Bloom效果混为一谈。Bloom可以模拟出HDR的效果,但是原理上和HDR相差甚远。HDR实际上是通过映射技术,来达到整体调整全局亮度属性的,这种调整是颜色,强度等都可以进行调整,而Bloom仅仅是能够将光照范围调高达到过饱和,也就是让亮的地方更亮。不过Bloom效果实现起来简单,性能消耗也小,却也可以达到不错的效果。
使用Imposters的一个问题是渲染的图像必须持续地面向观察者。如果远处的物体正在改变方向,则必须重新计算Imposters的朝向。而为了模拟更像他们所代表的三角形网格的远处物体,D´ecoret等人提出了公告板云(Billboard Clouds)的想法,即一个复杂的模型通常可以通过一系列的公告板集合相互交叉重叠进行表示。
最基本的基于图像的渲染的图元之一便是精灵(sprite)。精灵(sprite)是在屏幕上移动的图像,例如鼠标光标。精灵不必具有矩形形状,而且一些像素可以以透明形式呈现。对于简单的精灵,屏幕上会显示一个一对一的像素映射。存储在精灵中的每个像素将被放在屏幕上的像素中。可以通过显示一系列不同的精灵来生成动画。
这是一篇近万字的总结式文章,关于基于图像的渲染(Image-Based Rendering,简称IBR)技术的方方面面,将总结《RTR3》书中第十章提到的16种游戏开发中常用的IBR渲染技术。
说真的,Unity3D入门容易,真的要精通,那是相当难的。但是,一旦你学会了各种基本概念和用法,那你就真的到了一个最高境界,其他的编程技术都是小儿科了。
本文讲述内容为游戏开发中涉及的常用设计模式,以及个人对这些模式的思考和总结,这些模式来自于前辈们众多项目经验实战总结,因此读者应具备一定的游戏开发经验,方能更好的理解和运用到实际工作中。
由于现在随着互联网时代的到来,人们上网玩游戏的越来越多,导致游戏开发人才供不应求,如果你想成为一名优秀的开发者,那么掌握Unity3D开发技术是不可跳过的一环。随着移动互联网的发展,移动端游戏日益盛行,据了解,Unity全球开发者超过300万,1/4在中国,超过5000家游戏公司和工作室在使用Unity3D开发。学习Unity3D游戏开发,未来职业发展前景非常可观。
游戏中人物的走动,跑动,攻击等动作是必不可少,实现它们的方法一般采用帧动画或者骨骼动画。
帧动画与骨骼动画的区别在于:帧动画的每一帧都是角色特定姿势的一个快照,动画的流畅性和平滑效果都取决于帧数的多少。而骨骼动画则是把角色的各部分身体部件图片绑定到一根根互相作用连接的“骨头”上,通过控制这些骨骼的位置、旋转方向和放大缩小而生成的动画。
它们需要的图片资源各不相同,如下分别是帧动画和骨骼动画所需的资源图:
骨骼动画比传统的逐帧动画要求更高的处理器性能,但同时它也具有更多的优势,比如: