前情回顾: 2021技术新番-从零开始打造渲染引擎系列
在开始写代码之前,我们需要弄清楚渲染引擎是什么,知道要写什么。
用谷歌搜索? 渲染引擎的关键字是关于浏览器的渲染引擎。
浏览器引擎主要用于呈现web内容。 例如,内容的合成和字符样式。 这显然不是我想要的。
但是,一方面搜索引擎相对于渲染引擎的定位偏向于浏览器渲染,另一方面,我们发现我们搜索到的关键字既不明确也不准确。
相反,如果直接在Github中搜索renderengine关键字,则会出现很多项目。 好像很多人都在写这样的内容。
以谷歌的文件项目为例,地址如下
https://github.com/Google/filament
文件是基于物理的实时渲染引擎,可以在Android、iOS、Windows、Linux和macOS等系统上运行。
自述文件显示了以下几个示例:
在渲染引擎还不太清楚的时候,看这些图像还是有点无知。 特别是在看了几个类似项目之后。
我想知道渲染引擎用代码编写后会有什么效果,但是来了一些图像。 感觉是开局一张图,内容全靠编。
我稍后才知道,这些图是由渲染引擎渲染的效果图。
图中的对象加载并导入模型,基于原始模型渲染,添加颜色、光线、阴影等,最终在屏幕上渲染。 这就是渲染引擎的工作。
虽然看起来很简单,但是里面的细节都值得调查。
如果渲染引擎渲染的图看起来和现实中相机拍摄的照片一样,不知道是现实还是模拟,表明渲染引擎造诣快,技术逼真。
如上第一张图,那几个物体的位置配合图像的背景,就像有人把东西放在地上一样,傻得不清楚。
渲染引擎包含许多渲染技术,我们参考了几个Gihtub项目来介绍它们实现了什么样的内容。 写得越多,就会出现以下说明。
硬盘照明
延迟重复渲染
现场深度
屏幕空格键玻璃
聚光灯
定向照明
.
一点一点地举出作为参考吧。 其中大部分人我也做不到。 我听说过概念。 接下来请编写代码,然后尝试一一实现。
到此为止,请尝试简单地定义渲染引擎。实现了一系列渲染技术的框架
有两个要点。 一个是实现了,另一个是框架。
首先,它将渲染引擎作为一个框架,具有完整的框架和生命周期,能够对外提供各种能力,然后实现各种渲染能力。 能力不需要一次到达。 先有再慢慢添加。 最后,将渲染引擎用于实际的项目APP应用程序,以呈现更多精彩内容。
说到这里,有人会觉得这个渲染引擎很像游戏引擎吧。 是的,渲染引擎就像游戏引擎的子集。 作为重要的子集,实现时参考了游戏引擎的体系结构设计、功能特点,摸着游戏引擎过河。
像Unity、Unreal、Cocos这样的游戏引擎,渲染能力非常重要,也是最重要的,除此之外,还有音频能力、物体系统、脚本系统、网络引擎、人工智能、场景管理等
当您弄清楚什么是渲染引擎时,以后要实现的功能将变得更加清晰,并且应用帧渲染是必不可少的。
技术交流,欢迎加我微信: ezglumes,带领你加入技术交流群。
推荐阅读:
音视频面试基础问题
OpenGL ES学习资源共享
开通专辑|那些年写的技术文章专辑
NDK学习高级免费视频来了
推荐几个安卓音视频入门项目,也可以说是教科书级别
我觉得很好。 请下单看看~