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

VBO и фоновая загрузка моделей - Android

Восстановить пароль Регистрация
 
Gerbasha
6 / 6 / 1
Регистрация: 04.10.2011
Сообщений: 115
30.03.2014, 18:35     VBO и фоновая загрузка моделей #1
Добрый день. Изучаю OpenGl ES на Android. Пытаюсь реализовать загрузку моделей в фонов потоке, чтобы отобразить прогресс бар. Когда загружа модель в основном потоке все нормально, но фонов режиме экран пустой.
Фоновый процесс реализовал так :
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class AsyncTaskLoader extends AsyncTask<Void, Integer, Boolean> {
…
    @Override
    protected Boolean doInBackground(Void... voids) {
       for (IAsyncCallback cal : callbacks) {
          cal.workToDo();
       }
       return null;
    }
    @Override
    protected void onPostExecute(Boolean aBoolean) {
       for (IAsyncCallback cal : callbacks) {
          cal.onComplete();
 
       }
       isFistLoaded=false;
       isDopLoaded=false;
       super.onPostExecute(aBoolean);
    }
Модели отобржаю через VBO :
class VertexBufferedObject {

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
    static void bufferData(int target, Buffer buf, int size, int bufferId) {
       GLES20.glBindBuffer(target, bufferId);
       GLES20.glBufferData(target, size, buf, GLES20.GL_STATIC_DRAW);
       GLES20.glBindBuffer(target, 0);
    }
    protected void genBuffer() {
       Log.d(TAG, "genBuffer");
       // Second, copy these buffers into OpenGL's memory. After, we don't need to keep the client-side buffers around.
       int bufferSize = textures.size() + 1;
       final int buffers[] = new int[bufferSize];
       GLES20.glGenBuffers(bufferSize, buffers, 0);
       mVertexBufferIdx = buffers[0];
       indexBufferId = new int[2][textures.size()];
       System.arraycopy(buffers, 1, indexBufferId[0], 0, buffers.length - 1);
 
       Log.d(TAG, "buffers ");
       for (int i = 0; i < buffers.length; i++)
          Log.d(TAG, " " + buffers[i]);
 
        bufferedVertex(vertexBuffer, mVertexBufferIdx);
       for (int i = 0; i < indexBufferId[0].length; i++) {
          bufferedIndex(indexTextureMap.get(textures.get(i)), indexBufferId[0][i]);
          indexBufferId[1][i] = indexTextureMap.get(textures.get(i)).capacity();
//        Log.d(TAG, "buffers "+indexBufferId[0][i] +" "+indexBufferId[1][i]);
       }
       indexTextureMap.clear();
       indexTextureMap = null;
       vertexBuffer.limit(0);
       vertexBuffer = null;
    }
    public void compilte() {
       genBuffer();
       loaderComplite = true;
    }
Парсер работает так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
   @Override
    public void workToDo() {
       parse();
    }
 
    @Override
    public void onComplete() {
       Log.d(FileIO.TAG, "onComplete");
       for (String key : keyList) {
          modelList.get(key).compilte();
 
       }loaderComplite = true;
    }
В дебаге прохожу в обомих режимах данные загружаются, и каждая функция проходит без ошибок. Может кто-нибудь подскажет хотя-бы в какую сторону смотреть.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2014, 18:35     VBO и фоновая загрузка моделей
Посмотрите здесь:

Фоновая музыка Android
Android Фоновая музыка в приложении
Android Загрузка картинки
долгая загрузка Android
Android Загрузка изображения
различие в GPS для различных моделей телефонов Android
Загрузка 3D модели Android
Редактор 3D-моделей Android
Android Opengl es: загрузчик 3D моделей
Opengl es: вывод 3D моделей Android
Фоновая музыка в сплэш активити Android
Android Сохранение и загрузка

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
snake32
 Аватар для snake32
1322 / 965 / 123
Регистрация: 26.02.2009
Сообщений: 3,535
Записей в блоге: 5
31.03.2014, 01:24     VBO и фоновая загрузка моделей #2
Каждый поток должен иметь свой OpenGL контекст. Которые можно шарить между собой
http://www.gamedev.ru/community/ogl/...multithreading
Наверное в ES есть что-то такое же
Yandex
Объявления
31.03.2014, 01:24     VBO и фоновая загрузка моделей
Ответ Создать тему
Опции темы

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