Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2013, 23:31   #1
Alexandr555
Форумчанин
 
Регистрация: 23.03.2011
Сообщений: 310
По умолчанию Прозрачность цвета в текстуре

Кто нибудь может подкинуть инструкцию где говорится как сделать определенный цвет в текстурке прозрачным в Open GL?

в одном из уроков говорится что...
Цитата:
Альфа из картинки текстуры

Альфа значение, которое используется для прозрачности, может быть получено из картинки текстуры точно также как цвет, для того чтобы сделать это, вы должны извлечь альфа из изображения, которое Вы хотите загрузить, и затем использовать GL_RGBA для формата цвета при вызове glTexImage2D().
Но как там рекомендуют извлечь альфа из изображения?
Мне просто нужно что бы белый цвет был не видимым
Изображения
Тип файла: bmp pl.bmp (17.6 Кб, 144 просмотров)
Alexandr555 вне форума Ответить с цитированием
Старый 04.10.2013, 02:04   #2
Alexandr555
Форумчанин
 
Регистрация: 23.03.2011
Сообщений: 310
По умолчанию

Так вроде бы сделал картинку четырех канальной, но
Код:
texture2 = auxDIBImageLoad(TEXT("pl.bmp"));
tga файл не читает, а с bmp четырех канальным не работает
Код:
GLvoid LoadGLTextures()
{
	// Загрузка картинки
	AUX_RGBImageRec *texture1;
	texture1 = auxDIBImageLoad(TEXT("lvl.bmp"));
	// Создание текстуры
	glGenTextures(1, &texture[0]);
	glBindTexture(GL_TEXTURE_2D, texture[0]);
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
	glTexImage2D(GL_TEXTURE_2D, 0, 3, texture1->sizeX, texture1->sizeY, 0,
		GL_RGB, GL_UNSIGNED_BYTE, texture1->data);
	AUX_RGBImageRec *texture2;
	texture2 = auxDIBImageLoad(TEXT("pl.bmp"));
	// Создание текстуры
	glGenTextures(1, &texture[1]);
	glBindTexture(GL_TEXTURE_2D, texture[1]);
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
	glTexImage2D(GL_TEXTURE_2D, 0, 4, texture2->sizeX, texture2->sizeY, 0,
		GL_RGBA, GL_UNSIGNED_BYTE, texture2->data);
}



int InitGL(GLvoid)                // Все установки касаемо OpenGL происходят здесь
{
	LoadGLTextures();			// Загрузка текстур
	glEnable(GL_TEXTURE_2D);		// Разрешение наложение текстуры
	glShadeModel(GL_SMOOTH);            // Разрешить плавное цветовое сглаживание
	glClearColor(0.0f, 0.0f, 0.0f, 0.0f);          // Очистка экрана в черный цвет
	glClearDepth(1.0f);              // Разрешить очистку буфера глубины
	glEnable(GL_DEPTH_TEST);            // Разрешить тест глубины
	glDepthFunc(GL_LEQUAL);            // Тип теста глубины
	// базирующаяся на значении альфы(НОВОЕ)
	glColor4f(1.0f, 1.0f, 1.0f, 0.5f);   // Полная яркость, 50% альфа (НОВОЕ)
	glBlendFunc(GL_SRC_ALPHA, GL_ONE); // Функция смешивания для непрозрачности,
	glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);      // Улучшение в вычислении перспективы

	return true;                // Инициализация прошла успешно
}
Alexandr555 вне форума Ответить с цитированием
Старый 04.10.2013, 22:47   #3
Alexandr555
Форумчанин
 
Регистрация: 23.03.2011
Сообщений: 310
По умолчанию

Разбрался, для тех у кого будет такая же проблема, делаете загрузку TGA http://pmg.org.ru/nehe/nehe33.htm
можно там перейти на оригинальный урок и скачать заголовочные файлы.
а затем просто включаете функцию glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
Alexandr555 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дельфи и OpenGL + прозрачность цвета ImmortalAlexSan Мультимедиа в Delphi 8 21.11.2010 17:24
прозрачность sergei64_89 Общие вопросы .NET 1 29.07.2008 21:43
Прозрачность Лубышев Помощь студентам 3 23.01.2008 00:05
Прозрачность ЧИЖ HTML и CSS 5 24.10.2007 17:18
Прозрачность MAcK Общие вопросы Delphi 2 21.03.2007 19:24