Пятница, 26 Апреля 2024, 07:25

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Записи участника » afq [893]
Результаты поиска
afqДата: Понедельник, 06 Января 2020, 19:39 | Сообщение # 361 | Тема: какой то глюк в opengl чтоли.
Разработчик
Сейчас нет на сайте
Xakep,
Цитата
в glVertexAttribPointer ты задаешь 2 компонента для вершины, следовательно у тебя на один квад идет вместо 4х вершин - 6. Отсюда могут быть и проблемы.

точно могут быть проблемы? я в шейдере принимаю vec2 и преобразую к vec3. вот так.
Код

#version 300 es
layout ( location = 0 ) in vec2 position;
layout ( location = 1 ) in vec2 texCoord;
uniform mat4 transform;
uniform mat4 ortho;
out vec2 v_tex_coord;
void main ( )
{
        gl_Position = ortho * transform * vec4 ( position, 0.0, 1.0 );
        v_tex_coord = texCoord;
}
afqДата: Понедельник, 06 Января 2020, 19:36 | Сообщение # 362 | Тема: какой то глюк в opengl чтоли.
Разработчик
Сейчас нет на сайте
Xakep,
по поводу твоего шейдера. я не очень понял совет. тот код, который я привел, там
Код

                        data [ 4 * i + 3 ] = w->w [ i ];

здесь я задаю aplha канал. а в остальные компоненты цвет rgb. а твой пример не понял. что если текстуру умножить на цвет, а откуда я цвет возьму? ведь у каждого пикселя буквы свой aplha цвет.
afqДата: Понедельник, 06 Января 2020, 17:42 | Сообщение # 363 | Тема: какой то глюк в opengl чтоли.
Разработчик
Сейчас нет на сайте
nadgobonom,
Цитата
В атлас шрифт засунь и выводи прямоугольники с батчингом.

это как?
afqДата: Понедельник, 06 Января 2020, 17:18 | Сообщение # 364 | Тема: Мои работы blender+painter
Разработчик
Сейчас нет на сайте
прикольно, прикольно.
afqДата: Понедельник, 06 Января 2020, 17:16 | Сообщение # 365 | Тема: какой то глюк в opengl чтоли.
Разработчик
Сейчас нет на сайте
DivES, не знаю. вроде нет. по крайней мере в opengl es 3.0 и далее нет таких функций glRaster*, и т.д. или ты знаешь как вывести текст с помощью opengl? я видел ещё примеры и все они наточены на то, чтобы выводить текст и запрограммированы по разному. то есть скорее всего да, opengl не может вывести текст сразу, надо подготовить ресурсы.
afqДата: Понедельник, 06 Января 2020, 16:56 | Сообщение # 366 | Тема: какой то глюк в opengl чтоли.
Разработчик
Сейчас нет на сайте
Xakep, не может быть. вот смотри. я создаю область куда наложить текстуру. эта область проверена. с помощью неё я рисую и прямоугольники и другие спрайты. то есть я создаю область для вершин и область для текстуры. вот так.
Код

void Font::word_set_size ( struct word *word, int w, int h ) {
        if ( !word->vertex ) word->vertex = new float [ 12 ];
        if ( !word->texture ) word->texture = new float [ 12 ];

        word->vertex[0] = 0;
        word->vertex[1] = 0;
        word->vertex[2] = 0;
        word->vertex[3] = h;
        word->vertex[4] = w;
        word->vertex[5] = 0;
        word->vertex[6] = w;
        word->vertex[7] = 0;
        word->vertex[8] = w;
        word->vertex[9] = h;
        word->vertex[10] = 0;
        word->vertex[11] = h;

        word->texture[0] = 0;
        word->texture[1] = 1;
        word->texture[2] = 0;
        word->texture[3] = 0;
        word->texture[4] = 1;
        word->texture[5] = 1;
        word->texture[6] = 1;
        word->texture[7] = 1;
        word->texture[8] = 1;
        word->texture[9] = 0;
        word->texture[10] = 0;
        word->texture[11] = 0;
}

они получаються либо квадратными, либо прямоугольными.
вот как я создаю текстуру. есть ещё функция по вставке другого цвета. она аналогична почти.
Код

void Font::build_texture ( struct word *w ) {
        unsigned int size = w->width * 4 * w->height;
        unsigned char *data = (unsigned char *) calloc ( size, 1 );

        for ( unsigned int i = 0, y = 0; y < w->height; y++ ) {
                for ( int x = 0; x < w->width; x++ ) {
                        data [ 4 * i + 3 ] = w->w [ i ];
                        data [ 4 * i + 0 ] = ( w->color >> 16 & 0xff );
                        data [ 4 * i + 1 ] = ( w->color >>  8 & 0xff );
                        data [ 4 * i + 2 ] = ( w->color >>  0 & 0xff );
                        i++;
                }
        }

        if ( w->textureid > 0 ) glDeleteTextures ( 1, &w->textureid );

        glGenTextures ( 1, &w->textureid );
        glBindTexture ( GL_TEXTURE_2D, w->textureid );
        glTexImage2D ( GL_TEXTURE_2D, 0, GL_RGBA, w->width, w->height, 0, GL_RGBA, GL_UNSIGNED_BYTE, data );

#if 0
        glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
        glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
#endif
        glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
        glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );

        free ( data );

        word_set_size ( w, w->width, w->height );
}

для каждой буквы создаётся своя текстура и свои вершины и текстуры с нужными размерами.
а потом это всё выводиться в буфер или на экран как правильно?
Код

void Font::draw ( ) {
        glUseProgram ( this->program );

        glActiveTexture ( GL_TEXTURE0 );
        glEnableVertexAttribArray ( 0 );
        glEnableVertexAttribArray ( 1 );
        for ( int i = 0; i < this->size_of_word; i++ ) {
                struct word *w = &this->word[i];
                glBindTexture ( GL_TEXTURE_2D, w->textureid );
                glUniform1i ( this->sampler_location, 0 );

                glUniformMatrix4fv ( this->transform_location, 1, GL_FALSE, &w->translate[0][0] );
                glUniformMatrix4fv ( this->proj_location, 1, GL_FALSE, &this->proj[0][0] );

                glVertexAttribPointer ( 0, 2, GL_FLOAT, GL_FALSE, 0, w->vertex );
                glVertexAttribPointer ( 1, 2, GL_FLOAT, GL_FALSE, 0, w->texture );

                glDrawArrays ( GL_TRIANGLES, 0, 12 );
        }
        glDisableVertexAttribArray ( 0 );
        glDisableVertexAttribArray ( 1 );
}
afqДата: Понедельник, 06 Января 2020, 06:50 | Сообщение # 367 | Тема: Несколько вопросов по float
Разработчик
Сейчас нет на сайте
alexsilent, используй тип unsigned long, он же есть такой в твоем языке?
afqДата: Понедельник, 06 Января 2020, 06:42 | Сообщение # 368 | Тема: какой то глюк в opengl чтоли.
Разработчик
Сейчас нет на сайте
drcrack, спасибо.
afqДата: Понедельник, 06 Января 2020, 04:08 | Сообщение # 369 | Тема: какой то глюк в opengl чтоли.
Разработчик
Сейчас нет на сайте
никто не знает что это такое. линии где кнопки. они того же цвета что и шрифт. но код вроде нормальный.
afqДата: Суббота, 04 Января 2020, 00:31 | Сообщение # 370 | Тема: flatingo — блог разработчика игр
Разработчик
Сейчас нет на сайте
Wite, вау. а ты покажи свои игры. дай ссылки. я хочу посмотреть их. а может и поиграть.
afqДата: Суббота, 04 Января 2020, 00:24 | Сообщение # 371 | Тема: flatingo — блог разработчика игр
Разработчик
Сейчас нет на сайте
Wite, а заработать получается нормально?
afqДата: Суббота, 04 Января 2020, 00:23 | Сообщение # 372 | Тема: flatingo — блог разработчика игр
Разработчик
Сейчас нет на сайте
flatingo, ну да. там нет рекламы. не продается. бесплатные игры. смысла нет рекламировать и тратить на это деньги. но я рад что хоть кто-то играет в них до сих пор.
afqДата: Пятница, 03 Января 2020, 12:18 | Сообщение # 373 | Тема: flatingo — блог разработчика игр
Разработчик
Сейчас нет на сайте
Wite, но эту игру уже скачали более 5000 раз. Я вообще не пойму как такое возможно. мою игру за год скачали всего более 100 раз.
afqДата: Четверг, 02 Января 2020, 22:01 | Сообщение # 374 | Тема: flatingo — блог разработчика игр
Разработчик
Сейчас нет на сайте
CodeMyGod, нифига у тебя репутация на этом форуме. А ты думаешь что форум умер )
afqДата: Понедельник, 23 Декабря 2019, 04:37 | Сообщение # 375 | Тема: Хакерский движок для линукс
Разработчик
Сейчас нет на сайте
tduk, пока не развиваю. Но исходники где-то лежат. Я не смог придумать сюжет для игры и поэтому забросил.
afqДата: Среда, 18 Декабря 2019, 13:50 | Сообщение # 376 | Тема: Выбор темы на Конкурс №13
Разработчик
Сейчас нет на сайте
бродилка типа nethack.
afqДата: Понедельник, 09 Декабря 2019, 05:16 | Сообщение # 377 | Тема: Аккуратный парсинг
Разработчик
Сейчас нет на сайте
непонятно. Парсить всмысле бота хочешь использовать?
afqДата: Среда, 04 Декабря 2019, 02:13 | Сообщение # 378 | Тема: twitch бот
Разработчик
Сейчас нет на сайте
Версия 0.7
Появилась поддержка звуковых уведомлений. Поддержка мониторинга сети - если интернет отключился, то сетевые потоки не будут работать пока связь не возобновиться.
afqДата: Понедельник, 02 Декабря 2019, 00:08 | Сообщение # 379 | Тема: twitch бот
Разработчик
Сейчас нет на сайте
Версия 0.6
Появилась поддержка уведомлений, которые оповещают, если кто-то подписался на ваш канал.
afqДата: Суббота, 30 Ноября 2019, 17:48 | Сообщение # 380 | Тема: twitch бот
Разработчик
Сейчас нет на сайте
Обновил до версии 0.5. Теперь можно управлять плеером rhythmbox.
Форум игроделов » Записи участника » afq [893]
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг