返回

渲染引擎的架构

学vulkan时的笔记(胡言乱语

前言

渲染需要呈现最终结果,所以和游戏引擎是“耦合”的

写一个简单的渲染引擎,其实和写一个游戏引擎也没什么区别,因为物理和动画的呈现依赖于渲染

这里所说的渲染应该不包含各种shader效果,更类似于怎么调图形api

所以写渲染引擎,本质还是写游戏引擎,那么最终还是要参考游戏引擎的架构

学vulkan也一样,最终都会写成渲染引擎,所以提前架构一下比较好。这样在使用vulkan tutorial学习时,不局限于单文件恶心自己

调api渲染的流程

加载数据到cpu/gpu,在gpu描述数据的布局,如何操作数据

虽然就短短一行字,但拆分下来每一部分都可以讲很多

资产管理

资产管理,可以简单自定义一个自己的资产文件格式,可以参考vulkan guide

我的想法是,定义一个最底层的存储格式,如 metadata + data,data 可以使用lz4算法进行压缩

metadata 可以是格式版本、data 的大小、是否加密……

然后又可以自定义一个 texture 和 mesh 的格式,也是 metadata + data 模式,然后把这些打包塞给上面格式的 data 里

然后我们还需要一个转换器,负责把不同的模型格式(比如obj)转换成我们自定义的格式

思路理清的话,基本上都是一些工程脏活了,实现难度不大

待续

等我过一遍 unity 的 urp

参考

  1. 有关图形学入门的一些思考·谈谈Vulkan
Licensed under CC BY-NC-SA 4.0
最后更新于 Aug 21, 2022