1

我正在用 VBO 编写波前 (.obj) 加载器。

当调用“usemtl”时,我正在考虑将 textureID 与顶点、texCoord 和法线数据一起发送。

使用该纹理 ID,我可以在不调用 glBindTexture 的情况下将纹理绑定到顶点/片段着色器中吗?

4

2 回答 2

2

使用该纹理 ID,我可以在不调用 glBindTexture 的情况下将纹理绑定到顶点/片段着色器中吗?

不。纹理不绑定到着色器;它们与上下文有关。

如果你想获得技术,NV_bindless_texture允许这样的功能,但这是 NVIDIA 特定的。

于 2013-01-13T03:42:31.760 回答
1

这是一般材质的问题,需要在渲染几何体之前切换它们。

最简单的方法是:

foreach object in renderQueue
    set_material()
    draw_geometry()

当然,当一个对象必须用两种不同的材料渲染时,我们会遇到一些麻烦。另一个问题是性能问题,您通常会按材质对对象进行排序并保存切换(纹理、着色器和其他数据)

于 2013-01-13T10:36:12.777 回答