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

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

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2011, 17:47   #1
AngelOfDeathSX
Пользователь
 
Регистрация: 17.05.2009
Сообщений: 10
По умолчанию Вопросик по OpenGL

Люди,плиз, подскажите, как можно сделать интерфейс в 3d приложении...Тип проекции фрустум,и нужно например сделать кнопки в самой игре...

Точнее даже не кнопки...а хотя бы вывести тест на экран..и т.д..просто если рисовать в матрице,то рисование будет происходить тоже в пространстве...а мне нужно как бы 'на мониторе'

Последний раз редактировалось AngelOfDeathSX; 09.02.2011 в 18:25.
AngelOfDeathSX вне форума Ответить с цитированием
Старый 09.02.2011, 18:43   #2
AngelOfDeathSX
Пользователь
 
Регистрация: 17.05.2009
Сообщений: 10
По умолчанию

Всё, вроде сам разобрался...перед выводом на экран запомнил матрицу,обнулил её,нарисовал,и вернул матрицу которую запоминал...Ведь это так делается?)))


И чтобы не создавать лишних тем, задам тут ещё 1 вопросик...как сделать полупрозрачную модель?На сколько я понял это делается по прозрачной текстуре...пытался делать по книге Краснова, но там даже ни один из его примеров не работает...в смысле нету прозрачности...

Последний раз редактировалось AngelOfDeathSX; 09.02.2011 в 21:17.
AngelOfDeathSX вне форума Ответить с цитированием
Старый 24.02.2011, 18:03   #3
Zeliboba
Новичок
Джуниор
 
Регистрация: 24.02.2011
Сообщений: 2
По умолчанию

По поводу GUI:
перед выводом 3D геометрии:
Код:
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	gluPerspective(FoV,width / height , pNear, pFar);
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
	glEnable(GL_DEPTH_TEST);
	glViewport(0,0, width(), height());
перед выводом 2D геометрии (GUI):
Код:
	glViewport(0,0,width , height );
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	glOrtho(0, width, height, 0, -1, 1);
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
	glDisable(GL_DEPTH_TEST);
По поводу полупрозрачных объектов. Если объект текстурируется, то организуй алгоритм наложения текстуры GL_MODULATE. Цвет объекта установи так:
Код:
glColor4f ( red, green, blue, alpha );
Параметр alpha - степень прозрачности
Так же нужно не забыть про режим смешивания:
Код:
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
И не забудь проконтролировать порядок вывода объектов (как сделать - читай у Краснова)
Zeliboba вне форума Ответить с цитированием
Старый 25.02.2011, 14:47   #4
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Все примеры Краснова работают. Копируй в папку с проектом модуль glut.pas (не помню точно,кажется так называется). Этот модуль сто пудов есть где то у него в исходниках.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Маленький вопросик))) Fintos Компьютерное железо 6 29.04.2009 18:54
вопросик по оформлению shmelvs Microsoft Office Excel 3 24.07.2008 11:10
вопросик по DBGrid-у Tanuska___:) БД в Delphi 4 12.05.2008 15:23
есть вопросик. iamnemo Microsoft Office Excel 2 09.11.2006 16:21