Сохранение текстуры треугольника в vram с OpenGL - PullRequest
2 голосов
/ 16 ноября 2011

Можно ли как-то сохранить и нарисовать текстуру треугольника, не создавая прямоугольный буфер (и используя в два раза больше памяти, чем мне нужно).

(я знаю, что мог бы упаковать много треугольников в большую текстуру прямоугольника, но я хотел бы посмотреть, есть ли способ сделать это без необходимости тратить место или написать сложный алгоритм упаковки)

Ответы [ 3 ]

4 голосов
/ 16 ноября 2011

Нет, но вы можете попытаться использовать этот довольно простой алгоритм для разворачивания текстур UV, например:

|\
|1\
|__\
|   \
| 2  \
-------

 _____
|   \1|
| 2  \|
-------

Создание прямоугольной текстуры POT с обрезкой вершины треугольника (1) и размещением еев свободном пространстве возле своей базы (2).

1 голос
/ 16 ноября 2011

Обычная тактика для ситуаций, подобных этой, состоит в том, чтобы упаковать несколько нечетных фигур в одну прямоугольную текстуру (они должны быть отделены друг от друга, чтобы выборка не отбирала цвета из соседних фигур ...).Если вы используете несколько текстур для своего треугольника, вы, вероятно, также можете упаковать их таким образом.

Если у вас есть только одна текстура, вероятно, проще всего тратить пространство - скорее всего, ваше приложение не особенно ресурс-intensive

0 голосов
/ 16 ноября 2011

Насколько мне известно, ни OpenGL, ни какие-либо расширения не поддерживают то, что вы ищете.

...