Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
#1

OpenGL ES 2.0: Асинхронная подгрузка сцены - Программирование Android

27.09.2015, 06:57. Просмотров 277. Ответов 8
Метки нет (Все метки)

Здравствуйте!
Никак не могу разобраться, как на Android в OpenGL ES 2.0 динамически сменить отрисовываемые сцены.
То есть, у меня в некоторый момент времени рисуется одна сцена, мне необходимо, продолжая отрисовывать первую сцену, скомпилировать шейдеры и загрузить текстуры для второй, и только затем их переключить. Это как-то возможно сделать? GLSurfaceView.queueEvent, как я понял, не имеет или не всегда имеет доступ к GLES20 контексту?
Буду очень признателен за помощь, уже все перерыл, ничего толкового по данной теме.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2015, 06:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос OpenGL ES 2.0: Асинхронная подгрузка сцены (Программирование Android):

OpenGL обновление сцены - Программирование Android
Столкнулся со следующей проблемой: при попытке нарисовать что-либо на OpenGL после его первой прорисовке ничего не рисуется. Пробовал и...

Асинхронная подгрузка скриптов в wordpress - WordPress
В гугле требуется добавить асинхронную подгрузку всех скриптов в шапке. Нужно к коду: <script type='text/javascript'...

Асинхронная подгрузка данных при скролле страницы - C# MVC
всем привет. может кто то делал такую вещь? Асинхронная подгрузка данных при скроллинге страницы. Т.е. когда доходим до конца страницы...

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

клик по объекту сцены OpenGL - OpenGL
У меня такой вопросик, пишу сцену на OpenGL и хотелось бы обрабатывать сообщения по клику на определенный объект. Их надо вроде в боксы...

Сохранение сцены OpenGL в bmp - C#
Доброго времени суток. Передо мной стоит такая задача: Имеется некоторая сцена, которая отображается в OpenGL. От меня требуется: ...

8
dvnisawesome
27 / 27 / 2
Регистрация: 03.04.2015
Сообщений: 105
Завершенные тесты: 1
28.09.2015, 19:03 #2
Тут главное помнить, что работу с GL нельзя распаралелить (т.е. вызывать gl* функции из разных потоков), не знаю, что делает queueEvent, но думаю, что он тут не поможет. Нужен отдельный класс loader, который будет управлять загрузкой ресурсов в GPU, и чтоб он умел эту загрузку размазывать по кадрам. Например, кадр 1 - загрузили текстуру, кадр 2 - сгенерили для неё mipmaps, и т.д. Так же нужен флаг ready у каждого ресурса, чтоб не заюзать его случайно, пока он не загружен. Гугли на тему стриминга ресурсов, через классы андроида это никак не сделать. Через какой нибудь AsyncTask можно загрузить данные в память, считать код шейдера или вершины мешей, но в GPU грузить только в основном потоке.
2
akyma40
16 / 15 / 3
Регистрация: 20.05.2015
Сообщений: 115
28.09.2015, 19:48 #3
то чувство когда не понимаешь как вообще работать с opengl(((
0
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
28.09.2015, 21:09  [ТС] #4
Цитата Сообщение от dvnisawesome Посмотреть сообщение
Тут главное помнить, что работу с GL нельзя распаралелить (т.е. вызывать gl* функции из разных потоков), не знаю, что делает queueEvent, но думаю, что он тут не поможет. Нужен отдельный класс loader, который будет управлять загрузкой ресурсов в GPU, и чтоб он умел эту загрузку размазывать по кадрам. Например, кадр 1 - загрузили текстуру, кадр 2 - сгенерили для неё mipmaps, и т.д. Так же нужен флаг ready у каждого ресурса, чтоб не заюзать его случайно, пока он не загружен. Гугли на тему стриминга ресурсов, через классы андроида это никак не сделать. Через какой нибудь AsyncTask можно загрузить данные в память, считать код шейдера или вершины мешей, но в GPU грузить только в основном потоке.
Спасибо, уже нашел как: через управление контекстами

Добавлено через 1 минуту
Цитата Сообщение от akyma40 Посмотреть сообщение
то чувство когда не понимаешь как вообще работать с opengl(((
Да, в библиотеку не сразу въехал) Да, и сейчас не особо разбираюсь
1
dvnisawesome
27 / 27 / 2
Регистрация: 03.04.2015
Сообщений: 105
Завершенные тесты: 1
28.09.2015, 21:11 #5
Цитата Сообщение от contedevel Посмотреть сообщение
через управление контекстами
Я бы не рекомендовал это делать, но можешь попробовать. Если андроид вообще умеет несколько контекстов на одно приложение.
0
akyma40
16 / 15 / 3
Регистрация: 20.05.2015
Сообщений: 115
28.09.2015, 21:11 #6
contedevel, да я не понимаю как работать вообще с ней, нарисовал модели, а как их впехнуть не знаю
0
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
29.09.2015, 10:11  [ТС] #7
Цитата Сообщение от akyma40 Посмотреть сообщение
да я не понимаю как работать вообще с ней, нарисовал модели, а как их впехнуть не знаю
Нужен загрузчик модели, который ее преобразует в понятный OpenGL ES формат, в нете есть статьи по этой теме.
0
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 731
29.09.2015, 11:17 #8
contedevel, про какой формат вы пишете?
0
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
29.09.2015, 12:37  [ТС] #9
Цитата Сообщение от Valakin Посмотреть сообщение
про какой формат вы пишете?
Преобразовать данные в файле о вершинах в формат понятный OpenGL ES. Для простых моделей, где не требуется анимация или еще что либо подобное, это легко сделать. В свое время писал загрузчик модели на С.
0
29.09.2015, 12:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2015, 12:37
Привет! Вот еще темы с ответами:

Асинхронная загрузка - JavaScript
Здравия! имеется index.php страница такого вида <form id="form1" name="form1" method="get" action="show.php"> <select name="cg"...

Асинхронная функция - Node.js
Всем добый день. В nodejs совсем недавно. Опыт работы только в .net Перечитал массу информации и статей, но так и не нашел ответа. ...

Асинхронная задержка - Lazarus
Доброго дня, товарищи, я полнейший newbee, такой вопрос, допустим, на какое-либо событие запускается цикл, есть такая функция Sleep,...

Асинхронная отправка данных - jQuery
Всем привет! Народ, есть у меня страничка: http://fenix-63.hol.es/autosalon/ В самом низу есть кнопка "Заказать звонок". Появляется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru