Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как проткнуть текстуру в OpenGL? C++, OpenGL 
V
    Опции темы
Roont
Дата 25.2.2010, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 31.8.2009

Репутация: нет
Всего: нет



доброго времени суток!
 
Такой вопрос: хочу продырявить текстуру, т.е. произвольным пикселям назначить альфу ноль.  
Вся идея состояла в том, что бы glGetTexImage выдавал мне пиксели, я им по bmpшной маске обнулял альфу и glTexImage или glTexSubImage запихивал бы обратно в фрамебуфер.
На первый взгляд все логично, но glGetError после glGetTexImage() дает  GL_INVALID_ENUM, что бы я не делал..  
 
Код

  COLOR* pixels = new COLOR [ tex->m_nRealW * tex->m_nHeight ];
    glGetTexImage( tex->texture, 0, GL_RGBA, GL_UNSIGNED_BYTE, pixels );
    int err = glGetError();// 1280 всегда ...%)
 
 
    for ( int x = 0; x < pen->Size().cx; x ++ )
    {
        for ( int y = 0; y < pen->Size().cy; y ++ )
        {
            POINT inmask_pt = {x,y};
            if ( 0x00000000 != pen->Get( inmask_pt )  ) // pen- bmpешка, рисуем по белому
            {
                pixels[ ( pt.x + x ) + tex->m_nWidth * ( pt.y + y ) ] &= 0xffffff00;
            }
        }
    }
 
    glTexImage2D( tex->texture, 0, GL_RGBA8, tex->m_nRealW, tex->m_nRealH, 0, GL_RGBA, GL_UNSIGNED_BYTE, pixels );
 
err = 1280 ( INVALID_ENUM );

GL_ALPHA_BLENDING is enabled, и текстура 2Dшная...  
В чем проблема?
P.S. А вообще приму любой совет, как это ( дырку в текстуре ) можно оргаинзавать. 
PM MAIL   Вверх
Roont
Дата 26.2.2010, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 31.8.2009

Репутация: нет
Всего: нет



все, разобрался... glGetTexImage( GL_TEXTURE_2D, 0, GL_RGBA, GL_UNSIGNED_BYTE, pixels ); надо было...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0597 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.