В зависимости от того, откуда приходит InputStream, вы не сможете его сбросить. Вы можете проверить, поддерживаются ли mark()
и reset()
с помощью markSupported()
.
Если это так, вы можете вызвать reset()
в InputStream, чтобы вернуться к началу. Если нет, вам нужно снова прочитать InputStream из источника.
Я думаю, что если вы хотите сопоставление по лицу, то вам, возможно, придется дублировать вершины. В основном уникальная вершина + нормальный + ультрафиолетовый комбо для всего. В противном случае вам понадобится несколько индексных буферов, один для вершин, один для нормалей, один для uvs. Я склонен не слишком беспокоиться о количестве вершинных данных. Что действительно влияет на производительность, так это вызовы отрисовки. Большинство графических процессоров могут обрабатывать> 1 м вершин в кадре, но максимально в 300 - 1000 вызовов отрисовки. Я упрощаю, но это приблизительная оценка.