![f8761f189a484dd7845af07c20f3ba9f.png](https://img-blog.csdnimg.cn/img_convert/f8761f189a484dd7845af07c20f3ba9f.png)
没错我现在算是入坑图形学了,这是我在知乎的第一篇有关文章。我决定还是分享一些自己的图形学随笔,也许没那么高端,但一定是原创。既是展示自己,也说不定能帮到别人。大佬若有看到瑕疵还望轻喷~
这篇文章适合正在学图形学,尤其是在造渲染器轮子的同学看。
这篇文章并没有讲实质的图形学技术,但应该还是很有价值的,如果你之前没听说过glTF的话。
自己动手造轮子写渲染器的人都会知道,很麻烦的原因之一,就是需要自己写模型导入的部分。
这部分并不能简单地使用一行代码调库来解决,因为最终你总得将parse过的模型数据(无论是你自己parse的,还是调库parse的)填入你自己定义的Primitive, Material, Mesh之类的对象里面。
这时通常会有2种选择:
- 使用万能的assimp库导入,它支持常见的3D模型/场景格式的解析。然后自己再从assimp定义的中间格式填入自己的类里面。这样可以省一部分力,因为我自己是懒得写parser的,即使自己写了,完整性也会差很多,到时导入可能会遇到各种不兼容的解析失败问题。
于是当时我就用assimp从obj文件里仅读入网格数据,满足了当时的需求。
后来我实现了PBR材质,模型自然也就需要三种贴图(使用metallic workflow)。我也想从obj文件读出有关贴图文件的信息,