Что самый легкий путь состоит в том, чтобы потянуть структуру с OpenGL ES?

Я видел эту сессию Google IO: http://code.google.com/intl/iw/events/io/2009/sessions/WritingRealTimeGamesAndroid.html
Он говорит, что функция draw_texture является самой быстрой, и VBO является 2-м быстрее.
Но я не понимаю, как использовать его (draw_texture метод или путь VBO).

Какое-либо предложение?

14
задан genpfault 18 June 2010 в 15:04
поделиться

2 ответа

Да и нет. Основная идея CSP используется довольно мало. Например, защищенные от потоков очереди в той или иной форме часто используются в качестве основного (часто единственного) механизма связи для построения конвейера из отдельных процессов (потоков).

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

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

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

-121--3101584-

Исходный код для теста метода sprite, упомянутого в видео, доступен здесь:
http://code.google.com/p/apps-for-android/source/browse/ # svn/trunk/SpriteMethodTest

Вот пример использования VBO:
http://code.google.com/p/apps-for-android/source/browse/SpriteMethodTest/src/com/android/spritemethodtest/Grid.java#237

Вот пример того, где используется расширение текстуры:
http://code.google.com/p/apps-for-android/source/browse/SpriteMethodTest/src/com/android/spritemethodtest/GLSprite.java

Однако, следует помнить, что расширение текстуры не является самым быстрым для всех игр с помощью спрайтов. Многие игры имеют группы спрайтов, которые имеют одно и то же состояние рендеринга, например. В этом случае гораздо быстрее поместить все спрайты с одинаковым состоянием визуализации в один и тот же буфер и нарисовать их одной и той же командой рисования. Команда draw texture не допускает этого. С помощью команды draw texture необходимо вызывать ее один раз за спрайт.

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

20
ответ дан 1 December 2019 в 10:02
поделиться

Вот несколько отличных рабочих примеров Android OpenGL ES.

http://code.google.com/p/android-gl/

7
ответ дан 1 December 2019 в 10:02
поделиться
Другие вопросы по тегам:

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