2013-01-13 118 views
1

我正在用VBO编码wavefront(.obj)加载器。在着色器中绑定纹理

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

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

+0

“*当”usemtl“被调用时*”什么是“usemtl”? –

回答

2

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

编号纹理未绑定到着色器;他们被绑定到上下文中。

如果你想获得技术,NV_bindless_texture允许这样的功能,但这是NVIDIA的具体情况。

1

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

简单的方法是:

foreach object in renderQueue 
    set_material() 
    draw_geometry() 

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