Форум программистов, компьютерный форум, киберфорум
OpenGL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
58 / 57 / 15
Регистрация: 15.09.2012
Сообщений: 557
1

Мой первый треугольник

07.03.2014, 22:45. Показов 2284. Ответов 26
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Делаю для андроид
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
package com.example.opengl;
 
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.FloatBuffer;
import java.util.Random;
 
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
 
import android.opengl.GLES10;
import android.opengl.GLES20;
import android.opengl.GLSurfaceView;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.Window;
import android.view.WindowManager;
 
public class MainActivity extends Activity {
    GLSurfaceView glSurfaceView;
    myRender renderer;
    ByteBuffer bytebuffer;
    FloatBuffer floatbuffer;
    float[] vertices;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE); // Убираем заголовок
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN);  // Устанавливаем полноэкранный режим
 
        bytebuffer = ByteBuffer.allocateDirect(3*3*4);
        bytebuffer.order(ByteOrder.nativeOrder());
        floatbuffer= bytebuffer.asFloatBuffer();
        vertices = new float[] {0,0,500,0,250,1000};
        floatbuffer.put(vertices);
        floatbuffer.flip();
        
        
        GLES10.glColor4f(1.0f, 0.0f, 0.0f, 1.0f);
        GLES10.glMatrixMode(GL10.GL_PROJECTION);
        GLES10.glLoadIdentity();
        GLES10.glOrthof(0, 720, 0, 1280, 1, -1);
        
        GLES10.glEnableClientState(GL10.GL_VERTEX_ARRAY);
        GLES10.glVertexPointer(2, GL10.GL_FLOAT, 0, floatbuffer);
        
        
        try{    // пытаемся инициализировать OpenGL
            glSurfaceView = new GLSurfaceView(this);
 
            // Далее устанавливаем версию OpenGL ES, равную 2
            glSurfaceView.setEGLContextClientVersion(2);
 
            renderer = new myRender();
        
            glSurfaceView.setRenderer(renderer); // устанавливаем нашу реализацию GLSurfaceView.Renderer для обработки событий
 
            glSurfaceView.setRenderMode(GLSurfaceView.RENDERMODE_CONTINUOUSLY); // режим смены кадров
            // RENDERMODE_CONTINUOUSLY - автоматическая смена кадров,
            // RENDERMODE_WHEN_DIRTY - по требованию ( glSurfaceView.requestRender(); )
 
            setContentView(glSurfaceView);
 
        }catch(RuntimeException e){} 
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
    
    public class myRender implements GLSurfaceView.Renderer {
        
        public void onDrawFrame(GL10 glUnused) { // Отрисовка кадра
 
                
            GLES20.glClear(GL10.GL_COLOR_BUFFER_BIT);
            GLES10.glDrawArrays(GL10.GL_TRIANGLES, 0, 3);
            
        }
 
            public void onSurfaceChanged(GL10 glUnused, int width, int height) { // изменение поверхности, например изменение размера
            
                GLES20.glViewport(0, 0, width, height);
            
            // Устанавливаем положение и размер вьюпорта
                
            }
 
            @Override
            public void onSurfaceCreated(GL10 gl, EGLConfig config) {
            
                }
    }
    
     @Override
        protected void onResume()
        {
            super.onResume();
            glSurfaceView.onResume();
        }
        
        @Override
        protected void onPause()
        {
            super.onPause();
            glSurfaceView.onPause();
        }
не работает...
где должно задаваться сосотояние машины, тоесть строчки
Java
1
2
3
4
5
6
7
 GLES10.glColor4f(1.0f, 0.0f, 0.0f, 1.0f);
        GLES10.glMatrixMode(GL10.GL_PROJECTION);
        GLES10.glLoadIdentity();
        GLES10.glOrthof(0, 720, 0, 1280, 1, -1);
        
        GLES10.glEnableClientState(GL10.GL_VERTEX_ARRAY);
        GLES10.glVertexPointer(2, GL10.GL_FLOAT, 0, floatbuffer);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.03.2014, 22:45
Ответы с готовыми решениями:

мой первый ноут
3 дня назад я купила ноут.и у меня уже 1000000 вопросов

Мой первый тетрис
Пишу тетрис ). Подскажите есть ли способ попроще? Например как-то без массива... (мигает). Вот...

Мой первый сайт :)
Раздел юмор я здесь не нашел, поэтому вопрос в топик. У кого какой сайт был первым? :) Я вот тут...

Мой первый сайт...
Здравствуйте дороги читатели этой темы!Если вы зашли сюда посмотреть "Что за" то лучше сразу...

26
510 / 272 / 60
Регистрация: 14.12.2010
Сообщений: 548
09.03.2014, 21:38 21
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от ASDFD12 Посмотреть сообщение
я не знаю, что ты там заметили, у тебя работает исправленный код?
Ага. Ну как вот эти следующие сточки можно не заметить? :
Цитата Сообщение от EVP Посмотреть сообщение
Нужно:
строка 55:
Java
1
" gl_FragColor = vec4(1.0,0.0,0.0,1.0); " +
строка 76:
Java
1
vertices = new float[] { 0.0f, 0.5f, 0.0f, -0.5f, -0.5f, 0.0f, 0.5f, -0.5f, 0.0f };
0
58 / 57 / 15
Регистрация: 15.09.2012
Сообщений: 557
09.03.2014, 21:50  [ТС] 22
а что с ними не так?
0
EVP
09.03.2014, 22:04
  #23

Не по теме:

Цитата Сообщение от ASDFD12 Посмотреть сообщение
а что с ними не так?
та ну тебя зелёный...закрывай тему :)

0
58 / 57 / 15
Регистрация: 15.09.2012
Сообщений: 557
09.03.2014, 22:09  [ТС] 24
может найдется человек, который может реально помочь, а не флудить
0
37 / 37 / 25
Регистрация: 19.11.2012
Сообщений: 197
09.03.2014, 22:47 25
ASDFD12, во, тут прекрасные уроки под андроид
и вынеси шейдеры в отдельные файлы, так будет удобнее
1
58 / 57 / 15
Регистрация: 15.09.2012
Сообщений: 557
09.03.2014, 22:56  [ТС] 26
EagleAlex, что то по ошибкам в выложеном коде можешь сказать?

Добавлено через 6 минут
EagleAlex, кстати я этот блог и читал, когда разбирался с шейдерами
0
37 / 37 / 25
Регистрация: 19.11.2012
Сообщений: 197
09.03.2014, 23:08 27
ASDFD12, хз, если чесно ОГЛ у меня очень быстро выветривается, месяц без практики и теории - ничего не помню
Тут вот мои разработки (но они на самом деле практически в топке) и судя по ним вершины рисовались так
Java
1
2
GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, getVertexHandle());
GL11.glVertexPointer(getVertCoordSize(), GL11.GL_FLOAT, 0, 0)
ток это на движке LWJGL, хотя там в принципе всё аналогично
0
09.03.2014, 23:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.03.2014, 23:08
Помогаю со студенческими работами здесь

Мой первый сайт
Доброе время суток аксакалам веб-паутины :) Пришло время когда мне понадобилось выходить на...

мой первый сайт
здравствуйте решил побаловаться и написать сайт вот что пока есть <!doctype html> <html>...

Мой первый Hello, world!
Вот решил научиться писать на асм и столкнулся со следующим, есть код, который я написал с помощью...

Мой первый jQuery
Вчера весь день убил на написание первого скрипта. Сам больше дизайнер, но тут прям затянуло :) ...

Мой первый инструмент
Вот пока что не большой список моего инструмента) С каждой зарплаты, запасы пополняются. Начал с...

Первый мой ЛУТ
я сегодня первый раз подготовил плату ЛУТом, с первого раза :)) спасибо Ди за видео. Опустил в...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru