Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование мобильных систем
Войти
Регистрация
Восстановить пароль
 
Donny322
0 / 0 / 0
Регистрация: 21.06.2015
Сообщений: 1
#1

Падает программа при отрисовке графики в opengl под android - Программирование

21.06.2015, 01:32. Просмотров 373. Ответов 0
Метки нет (Все метки)

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

Вернул всё к тому моменту, когда работало. Но эмулятор продолжает падать.
Код Activity:
Java
1
2
3
4
5
6
7
8
9
private GLSurfaceView mTestHarness;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mTestHarness = new GLSurfaceView(this);
        mTestHarness.setEGLConfigChooser(false);
        mTestHarness.setRenderer(new CubeRenderer());
        setContentView(mTestHarness);
    }
Сам инициализация buffer'ов:
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
ByteBuffer vbb = ByteBuffer.allocateDirect(8 * 3 * 4);
        vbb.order(ByteOrder.nativeOrder());
        mFVertexBuffer = vbb.asFloatBuffer();
 
        ByteBuffer ibb = ByteBuffer.allocateDirect(36 * 2);
        ibb.order(ByteOrder.nativeOrder());
        mIndexBuffer = ibb.asShortBuffer();
//вершины
        float[] coords = { -0.5f, 0.5f, 0.5f, // 0
                -0.5f, 0.5f, -0.5f, // 1
                0.5f, 0.5f, -0.5f, // 2
                0.5f, 0.5f, 0.5f, // 3
                -0.5f, -0.5f, 0.5f, // 4
                -0.5f, -0.5f, -0.5f, // 5
                0.5f, -0.5f, -0.5f, // 6
                0.5f, -0.5f, 0.5f }; // 7
 
        for (int i = 0; i < 8; i++) {
            for (int j = 0; j < 3; j++) {
                mFVertexBuffer.put(coords[i * 3 + j]);
            }
        }
//Порядок отрисовки треугольников
        short[] myIndecesArray = { 0, 1, 2, 0, 3, 2, 0, 4, 5, 5, 0, 1, 4, 7, 5,
                5, 7, 6, 6, 5, 1, 1, 6, 2, 3, 2, 6, 3, 7, 6, 3, 4, 0, 4, 7, 3 };
        for (int i = 0; i < 36; i++) {
            mIndexBuffer.put(myIndecesArray[i]);
        }
        mFVertexBuffer.position(0);
        mIndexBuffer.position(0);
Метод draw:
Java
1
2
3
4
5
6
7
8
@Override
    protected void draw(GL10 gl) {
 
        gl.glColor4f(1.0f, 0, 0, 0.5f);
        gl.glVertexPointer(8, GL10.GL_FLOAT, 0, mVertexBuffer);
        gl.glDrawElements(GL10.GL_TRIANGLES, 36, GL10.GL_UNSIGNED_SHORT,
                mIndexBuffer);
    }
Если уменьшить количество вершин до 4, а длину массива, по которому рисуются треугольники соответственно до 6, то всё прекрасно работает, но с 6+ вершинами уже всё валится.
В чем может быть проблема? Долго пытался найти решение, но безуспешно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2015, 01:32
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Падает программа при отрисовке графики в opengl под android (Программирование):

Ищу уроки по opengl под android
Здравствуйте! С друзьями хотим написать игру под android, 2d аркаду (с...

При запуске новой деятельности вылетает с ошибкой (программа легкая для тех, кто программирует под android)
Здравствуйте! Начал недавно изучать программирование под android, реализовал...

Можно ли писать игры на OpenGL ES под Android вообще без Java?
Можно ли писать программки под андройд полностью без джавы на чистом NDK? Может...

Вылетает программа, написанная под Android
Программа под Android Вылетает когда работает на переднем плане. Когда работает...

Программа для написания карточной игры под Android
Подскажите в какой проге писать карточную игру чтоб потом ее можно было...

Первая программа под Android в Netbeans - найти ошибку в коде
Всем привет! Ребята, установил эмулятор Android для NetBeans, создал проект,...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2015, 01:32
Привет! Вот еще темы с решениями:

Программа падает при попытке задать текст TextView в диалоговом окне
Лог: java.lang.IllegalStateException: Could not execute method of the...

OpenGL наложение текстуры, падает приложение
после того как выполняю gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0,...

OpenGL на Android 4.4 и Android 5.0 - нет текстур
Всем доброго дня. Пишу 2D игру с использование OpneGL. На устройстве с...

Ошибка при создании приложения под Android
Здравствуйте, уже неделю не пойму как исправить несколько ошибок в коде....


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

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

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