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

OpenGL не работают текстурные координаты

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

начало тут, с паденим приложения справился:
OpenGL наложение текстуры, падает приложение

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

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

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

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

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

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

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
Здравствуйте, пишу заставку вращающийся и двигающийся куб, подскажите...

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

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


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

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

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