【发布时间】:2021-05-29 13:58:12
【问题描述】:
对于每种类型的纹理(环境、漫反射、镜面反射等),assimp 将返回一个纹理列表。我们如何处理这么多纹理?
似乎每个模型的纹理绑定数量可能会急剧增加。如果我们能够将纹理类型的每个列表转换为单个纹理数组或贴图,那会很有趣,这可能吗?
只是为了让您形象化,在我的代码中我有这个 Material 类:
class Material {
private:
Shader* shader;
Texture* diffuseMap;
Texture* specularMap;
Texture* emissiveMap;
float shineness;
public:
[...]
};
所以我正在尝试将纹理列表转换为与其类型对应的单个贴图。
【问题讨论】:
-
放置多个纹理是一种称为“纹理图集”。请注意,您必须调整 uv 坐标,并且您可能必须自己处理夹紧/重复。
-
我明白了,谢谢。要搜索这个,你有什么好的来源或建议我可以去哪里寻找它?
-
我记得的唯一参考是whitepaper from NVIDIA。还有一个talk from SIGGRAPH 2014,尽管它是一种比将图像粘贴在一起更复杂的方法。
-
谢谢!我快速阅读了 NVIDIA 论文,它看起来就像我正在寻找的东西。我会看看我是否能理解并尝试实施它。希望我能让它工作,然后我会回到这里更新帖子。