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

OpenGL не работают текстурные координаты - Программирование Android

01.04.2014, 10:58. Просмотров 682. Ответов 1
Метки нет (Все метки)

начало тут, с паденим приложения справился:
http://www.cyberforum.ru/android-dev/thread1120692.html#post5907296

вобщем результат наложения со страшными артефактами, может кто видел такие симптомы
0
Миниатюры
OpenGL не работают текстурные координаты  
Изображения
 
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2014, 10:58
Я подобрал для вас темы с готовыми решениями и ответами на вопрос OpenGL не работают текстурные координаты (Программирование Android):

Как узнать координаты проекции вертексов на экране (Opengl es)?
opengl es как узнать координаты проекции вертексов на экране (очень нужны для...

Текстурные координаты
Почему крайние текстурные координаты могут отличаться от 1.0? Например,...

OpenGL координаты
Проблема следующая: прикрутил OpenGL к C# через Tao Framework. В ней есть почти...

Координаты OpenGL
Всем привет. Я хотел бы поднять тему, касающуюся перевода координат из WinForm...

OpenGL: координаты курсора
Доброго времени суток! Пишу небольшую програмку на DelphiXE3 в 2D и там для...

Координаты экрана в OpenGL
Здравствуйте, пишу заставку вращающийся и двигающийся куб, подскажите...

1
rian
0 / 0 / 0
Регистрация: 21.02.2009
Сообщений: 42
06.04.2014, 22:53  [ТС] #2
убился полностью... как это может происходить?
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
        gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
        gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_NICEST);
        gl.glEnable(GL10.GL_DEPTH_TEST);
        gl.glEnable(GL10.GL_TEXTURE_2D);
        gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
 
        // Get all the buffers ready
        setAllBuffers();
        
        uvCoordsBuffer = ByteBuffer.allocateDirect(uvCoords.length*4).order(ByteOrder.nativeOrder()).asFloatBuffer();
        uvCoordsBuffer.put(uvCoords).position(0);
        
        AssetManager assetManager = mContext.getAssets();
        InputStream istr = null;
        try {
            //istr = assetManager.open("Resources/obj/tex.jpg");
            istr = assetManager.open("Resources/bricks.png");
            
        } catch (IOException e) {
            e.printStackTrace();
        }
        Log.w(TAG, "e118");
        Bitmap bitmap = BitmapFactory.decodeStream(istr);
        Log.d(TAG, "w:"+bitmap.getWidth());
 
        gl.glGenTextures(1, textures, 0);
 
        gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0] );
 
        gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST);
        gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR);
 
        GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
    
        bitmap.recycle();
 
    }
 
public void onDrawFrame(GL10 gl) {
        gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
        gl.glMatrixMode(GL10.GL_MODELVIEW);
        gl.glLoadIdentity();
 
        gl.glTranslatef(0.0f, 0.0f, -3.0f);
        gl.glRotatef(mAngleX, 1, 0, 0);
        gl.glRotatef(mAngleY, 0, 1, 0);
        gl.glRotatef(mAngleZ, 0, 0, 1);
        
 
        gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]);
        gl.glEnableClientState(GL10.GL_COLOR_ARRAY);
        gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
        
        for (int i = 0; i < models.length; i++) {
            
            gl.glVertexPointer(3, GL10.GL_FLOAT, 0, models[i].verticesBuf);
            gl.glColorPointer(4, GL10.GL_FLOAT, 0, models[i].colorsBuf);
            
            gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0] );
            gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, /*uvCoordsBuffer*/models[i].texCoordsBuf);
    
            // Set line color to green gl.glColor4f(0.0f, 1.0f, 0.0f, 1.0f);    
    
            // Draw all
            gl.glDrawElements(GL10.GL_TRIANGLES, models[i].elements.length,
                    GL10.GL_UNSIGNED_SHORT, models[i].elementsBuf);
        }
        //gl.glDisableClientState(GL10.GL_TEXTURE_2D);
        gl.glDisableClientState(GL10.GL_COLOR_ARRAY);
        gl.glDisableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
    }
Добавлено через 1 час 17 минут
гребаный я копипастер, я все таки впихнул буфер вершин в буфер текстурных координат, извиняюсь
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2014, 22:53
Привет! Вот еще темы с решениями:

Координаты окна в OpenGL
glutInitWindowSize(WinWidth, WinHeight); glutInitWindowPosition(50, 50); ...

Не работают даже основы в openGL
Начал учить openGL по учебнику Краснова, использую delphiXE2 под win7....

Координаты, возвращаемые мышью, в opengl
Добрый день! Помогите, пожалуйста, разобраться с системой координат в opengl. ...

Ubuntu QtCreator не работают приложения с OpenGL
Ubuntu скачал QtCreator. Запускаю проект-пример с использованием OpenGL. При...


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

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

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