Что хороший путь состоит в том, чтобы загрузить структуры динамично в OpenGL?

Хорошо, у меня была опечатка. Конечно, имя драйвера-модуля должно точно соответствовать пути к файлу module.xml (без «main»).

6
задан Nick Bolton 22 April 2009 в 00:10
поделиться

2 ответа

Вы можете загрузить текстуру с диска в память в любом потоке, который вам нравится, используя любой инструмент для чтения файлов.

Однако, когда вы связываете ее с OpenGL, она собирается необходимо обрабатывать в том же потоке, что и рендеринг для этого контекста OpenGL. При этом это обсуждение предполагает, что использование PBO во втором потоке является опцией и может ускорить процесс.

4
ответ дан 17 December 2019 в 04:52
поделиться

You can certainly load the texture from disk into RAM in any number of threads you like, but OpenGL won't upload to VRAM in multiple threads for the reason mentioned in Reed's answer.

Given the loading from disk is the slowest part, thats the bit you'll probably want to thread. The loading thread(s) build up a queue of textures to be uploaded, then this queue is consumed by the thread that owns the GL context (mind your access to that queue by the various threads however). You could also consider a non-threaded approach of uploading N textures per frame, where N is a number that doesn't slow the rendering down too much.

1
ответ дан 17 December 2019 в 04:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: