Войти
ПрограммированиеФорумГрафика

А что, квады на разных видеокартах рисуются по разному? ( OpenGL ) (4 стр)

Страницы: 1 2 3 4
#45
16:00, 11 мая 2012

костыль
> А вообще о чем спорить - то что с квадами иногда удобнее и однозначно 
> экономнее это очевидно.
Согласен. Но переход на законный примитив рестарт позволяет вернуть функциональность близкую к квадам, да ещё и в расширенном виде.
Например так: glPrimitiveRestartIndex (65535). Рисуем через TRIANGLE_STRIP. И индексы твоих квадов: 0 1 2 3 63535 4 5 6 7 65535 8 9 10 11 и т.д. Индекс 65535 не рисуется, он сбрасывает примитив. Это очень чумовая тема, на самом деле, так как позволяет в виде одной длинной стрипованной портянки хранить и стрипы, и квады, и полигоны, и отдельные треугольники (если они кому-то нужны).


#46
16:17, 11 мая 2012

haper
> Госспади, ты прикалываешься? Где удобней? Изобретать дополнительные (не побоюсь
> этого слова) костыли?
> Делай сразу всё трианглами и не парься.

Я не понимаю в чем ты меня пытаешься убедить.
То что я переделаю то что нужно на трианглы я еще написал на первой странице.
Если размер файла можно уменьшить на четверть разве это плохо?
И таких файлов может быть очень очень много, например, мы генерируем лес.

#47
16:21, 11 мая 2012

Еще был хак для glDrawArrays про рисование вырожденных треугольников между кусками GL_TRIANGLE_STRIP в местах разрыва, чтобы получить что-то похожее на PrimitiveRestart.

костыль
Используй zip для данных.

#48
17:01, 11 мая 2012

костыль
> Я не понимаю в чем ты меня пытаешься убедить.

Тебя хотят убедить в том, что ты занимаешься ерундой.

> Если размер файла можно уменьшить на четверть разве это плохо?

Предположим у тебя 1 млн квадов. То есть количество индексов = 1 млн * 4 вершины = 4 млн индексов.
Теперь мы внезапно используем треугольники. Количество индексов на квад увеличивается на 2 индекса и соответственно получаем 6 лямов.
Берём даже int индексы (но это бред, надо в 99% юзать short). Получаем:

4 000 000 * sizeof(int) = 16 000 000 байт = ~15.258 мбайт
6 000 000 * sizeof(int) = 24 000 000 байт = ~22.888 мбайт

7 мбайт выигрышь в ситуации, которая реально врядли когда либо случится. А на фоне гигабайтного контента игры этот выигрышь ещё менее заметен.

> И таких файлов может быть очень очень много, например, мы генерируем лес.

Стопицот уникальных деревьев леса?
Так никто не делает.

#49
17:44, 11 мая 2012

Такое ощущение что с пустотой разговариваю.

Для квадов:
1) размер файлов на диске меньше
2) скорость загрузки с диска в память меньше
3) скрость загрузки из памяти в память видеокарты меньше
4) размер занимаемой памяти меньше
5) размер занимаемой видиопамяти меньше
6) время генерации меньше, а для меня это критично, потому что генерируется в реальном времени, и должно быть максимально интерактивно.
7) short под индексы конкретно в моем случае реально может и не хватить
8) визуально, с включенным режимом wireframes с квадами структура модели лучше смотрится.

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

#50
17:47, 11 мая 2012

костыль
Храни квады, грузи в видеокарту стрипы с примитив рестарт. Что сложного?

#51
17:50, 11 мая 2012

SNVampyre
Да это я Executor'у отвечаю.  :)

#52
18:05, 11 мая 2012

костыль
Ну как знаешь.

#53
18:24, 11 мая 2012

Т. е, вопрос в том, что делать, если в obj-модельке встретились полигоны, у которых вершины не лежат в одной плоскости?

#54
19:07, 11 мая 2012

Chipmunk
> Т. е, вопрос в том, что делать, если в obj-модельке встретились полигоны, у
> которых вершины не лежат в одной плоскости?

Ну да, и это тоже вопрос.

Страницы: 1 2 3 4
ПрограммированиеФорумГрафика

Тема в архиве.