Я пытаюсь нарисовать машину для игры, которую я делаю, используя OpenGL. Объект car хранится в файле .obj с сопровождающим файлом .mtl.
Машина имеет более 500 вершин, более 100 граней и требует более 50 различных текстур, примененных к ним, используя мой собственный вершинный и фрагментный шейдер. Я пошел об этом, используя буферные объекты, которые отправляют всю информацию о моем объекте сразу. Моя проблема заключается в попытке применить разные текстуры к разным поверхностям одного и того же объекта.
Ответы, которые я нашел на эту проблему, заключаются в том, чтобы привязать текстуру к определенному номеру текстуры (т. Е. GL_TEXTURE0, GL_TEXTURE1 и т. Д.) И передать Sampler2D фрагментному шейдеру, ссылающемуся на него. Тем не менее, я могу хранить более 50 текстур таким образом? Насколько я могу сказать, это идет к GL_TEXTURE32.
Кроме того, как бы я сказал шейдеру применить текстуру только к определенному лицу автомобильного объекта?