学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