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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> OpenGL - очередная пара вопросов, Glut, glutKeyboardFunc 
:(
    Опции темы
sandland
Дата 31.5.2007, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



1. Недавно перешел на библиотеку GLUT и возник вопрос, как использовать  ф-цию glutKeyboardFunc
киньте небольшой примерчик использования этой ф-ции, пожалуйста.

2. Существуют ли готовые ф-ции загрузки 3д объектов в OpenGL проект? к примеру изи 3d Max 
Подскажите пожалуйста литературу по этому поводу, только не надо основ OpenGL 

3. До сих пор не получается вывести текст, сколько ф-ций на форуме првоерял, и ничего...0 ошибок, п
 ытаюсь вывести текст, и черный экран...и поворачивать пытался(векторный), и цвет менял


PM MAIL WWW ICQ Jabber   Вверх
DigitSphinx
Дата 31.5.2007, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 28.4.2007
Где: Москва

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



На счет вопроса № 3
При инициализации OpenGL добавь это
Код

wglUseFontBitmaps (hDc, 0, 255, 1000);

и юзай эту функцию
Код

void glPrint(GLdouble x, GLdouble y, GLdouble z, COLORREF color,const char *fmt, ...)    // Custom GL "Print" Routine
{
    GLfloat R, G, B;
    R = GetRValue(color);
    G = GetGValue(color);
    B = GetBValue(color);
    R /= 256.0;
    G /= 256.0;
    B /= 256.0;
    GLfloat Color[4];
    glGetFloatv(GL_CURRENT_COLOR, Color);
    char        text[256];                                // Holds Our String
    va_list        ap;                                        // Pointer To List Of Arguments

    if (fmt == NULL)                                    // If There's No Text
        return;                                            // Do Nothing

    va_start(ap, fmt);                                    // Parses The String For Variables
        vsprintf_s(text, fmt, ap);                        // And Converts Symbols To Actual Numbers
    va_end(ap);                                            // Results Are Stored In Text
    glColor3f(R, G, B);
    glPushAttrib(GL_LIST_BIT);                            // Pushes The Display List Bits
    glRasterPos3d(x, y, z);
    glListBase (1000);                            // Sets The Base Character to 32
    glCallLists((GLsizei)strlen(text), GL_UNSIGNED_BYTE, text);    // Draws The Display List Text
    glPopAttrib();    // Pops The Display List Bits
    glColor3f (Color [1], Color [2], Color [3]);
}

я уже приводил тебе эту функцию  smile 
На счет вопроса № 1
ссылочка

Это сообщение отредактировал(а) DigitSphinx - 31.5.2007, 20:25


--------------------
Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image
PM MAIL ICQ   Вверх
sandland
Дата 31.5.2007, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



DigitSphinx, на счет клавиатуры - спасибо!

а по поводу текста. Я сначала провобвал ф-ции из уроков Nehe , потмо перешел к твоей.
если делаю в просто Win32 Console App выдает 1 ошибку помоему на счет ф-ции  vsprintf_s...

если пытаюсь использовать ее в простом Win32 App то тут полный комплект ошибок...он вообще не воспринимает тип GLfloat  - хотя с чего бы...

ну а потом в консольном он же wglUseFontBitmaps (hDc, 0, 255, 1000); к окну это применяет - а у меня инициализация идет сразу через GLUT

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

кстати вот они и ошибки:
C:\Documents and Settings\AAA\Мои документы\ландашафт\Game2\game.cpp(32) : error C2065: 'vsprintf_s' : undeclared identifier
C:\Documents and Settings\AAA\Мои документы\ландашафт\Game2\game.cpp(153) : error C2065: 'hDc' : undeclared identifier 

ну со 2-ой все понятно...
а первая - вот

Это сообщение отредактировал(а) sandland - 31.5.2007, 23:15
PM MAIL WWW ICQ Jabber   Вверх
DigitSphinx
Дата 1.6.2007, 02:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 28.4.2007
Где: Москва

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



vsprintf_s объявлена в <stdio.h> если не ошибаюсь !
Код

HDC hDc; // HDC окна OpenGL я же не знал что ты из консоли !!!
hDc = wglGetCurrentDC();
wglUseFontBitmaps (hDc, 0, 255, 1000);

под Win32 App идет на 100 %
прикрепил проект под WIN 32, и где я его только раскопал   smile 
P.S.
Функция glPrint я тоже с NEHE взял только переделал под себя .

Это сообщение отредактировал(а) DigitSphinx - 1.6.2007, 02:55

Присоединённый файл ( Кол-во скачиваний: 9 )
Присоединённый файл  OpenGL.rar 10,06 Kb


--------------------
Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image
PM MAIL ICQ   Вверх
sandland
Дата 1.6.2007, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Проект на неходит у меян библиотеку <atlstr.h>....но это уже неважно, не представляешь, как я тебе благодарен))
 наконец нарисовался текст, при  чем в кносольном сделал как ты сказал ...а с ф-цией vsprintf_s попробовал stdio.h все равно не работало...ну просто в итоге заменил на vsprintf  и все пошло....единственное, что сейчас разбираюсь с цветом...как и что там..!

я просто как думал, что если создаю окно не через hDc , то присвоить переменной текущее окно, созданное Glut' ом невозможно 

с цветом классно вышло: какой RGB не ставлю, хоть все нули или все 255 255 255 - все равно выдает синий))

Это сообщение отредактировал(а) sandland - 1.6.2007, 16:45
PM MAIL WWW ICQ Jabber   Вверх
DigitSphinx
Дата 1.6.2007, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 28.4.2007
Где: Москва

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



Цитата(sandland @  1.6.2007,  16:16 Найти цитируемый пост)
а с ф-цией vsprintf_s попробовал stdio.h все равно не работало

у тебя по ходу не VS 2005 ?! 
на счет цвета :
glPrint(0, 0, 0, RGB(255, 255, 255), "TEST");
0, 0, 0 координаты.
RGB(255, 255, 255) цвет RGB(red, green, blue)
Далее идет строка например “Test Num %d, тра та та та та %f..”
И параметры int, float………
Пример 
Код

glPrint(3, 3, 5, RGB(255, 0, 0), "TEST Num %d,     some float = %.3f", 1253, 0.256884684);

результат такой



Присоединённый файл ( Кол-во скачиваний: 12 )
Присоединённый файл  __________.JPG 57,41 Kb


--------------------
Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image
PM MAIL ICQ   Вверх
sandland
Дата 1.6.2007, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



именно так и делаю. я ж заменил ф-цию vsprintf_s на vsprintf   это могло повлиять? по идее нет...
glPrint(0,0,0,RGB(255,0, 0),"Score=%d",score);  



Это сообщение отредактировал(а) sandland - 1.6.2007, 16:58
PM MAIL WWW ICQ Jabber   Вверх
DigitSphinx
Дата 1.6.2007, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 28.4.2007
Где: Москва

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



да все  smile 


--------------------
Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image
PM MAIL ICQ   Вверх
sandland
Дата 1.6.2007, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



да, у меня Visual C++ 6.0
причины такого цвета думаю могут быть еще в источнике света...сделал для проверки анимацию поворота текста..ну само собой он остается на месте, а цвет плавно меняется...у меня 3 разноцветных источника стоят..


остался вопрос номер 2)
2. Существуют ли готовые ф-ции загрузки 3д объектов в OpenGL проект? к примеру изи 3d Max 
Подскажите пожалуйста литературу по этому поводу, только не надо основ OpenGL 


ну и если я еще окночательно не надоел, еще 1 вопрос возник...

4. как на практике реализовать анимацию так, чтобы ее скорость не зависила от параметров компьюетра...
был вариант со временем...подскажите варианыт пожалуйста
+ анимация заметно замедляется при расширении окна...тоже проблема...все равно использую фулскрин, но для небольших программ или того же тетриса


Это сообщение отредактировал(а) sandland - 1.6.2007, 21:23
PM MAIL WWW ICQ Jabber   Вверх
DigitSphinx
Дата 1.6.2007, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 28.4.2007
Где: Москва

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



На счет вопроса № 2
Я не знаю таких функций , но в инете видел примеры где все сделано ручками  !
На счет вопроса № 4
Анимация всегда зависит от параметров компа , еще важно то как ты реализовал саму отрисовку , на пример я рисую через таймер (если MFC ( или в функции WinMain если WinAPI, я не гуру программирования не тем более OpenGL и других методов не юзал !
Но очень важно помнить что какой бы комп не был навороченный если у програмера руки не оттуда выросли то прога будет тормозить !
P.S. я думаю что с таймером меньше зависит от параметров компа !

Это сообщение отредактировал(а) DigitSphinx - 1.6.2007, 22:10


--------------------
Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image
PM MAIL ICQ   Вверх
Goganchic
Дата 1.6.2007, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Насчет вопроса 2 советую сделать поиск по сайту www.gamedev.ru
PM Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

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

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


 




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


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

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