IPB

Здравствуйте, гость ( Вход | Регистрация )

> OpenGL, вопросы
el-
сообщение Oct 22 2007, 18:54
Сообщение #1


Продвинутый пользователь
***

Группа: Posters
Сообщений: 229
Регистрация: 31.8.2007
Пользователь №: 8,988



Где справочник по функциям GLUT на русском языке найти?

А именно:
glutInitWindowSize(640,480);
изображение получается растянутым
как работать с
glOrtho(-5,5,-5,5,2,12);
gluLookAt( 0,0,5, 0,0,0, 0,1,0);
какие значения на что влияют и как их расставлять?


--------------------


Вернуться к началу страницы
 
+Цитировать сообщение
 
Создать новую тему
Ответов (1 - 17)
Amp
сообщение Oct 22 2007, 19:40
Сообщение #2


Мега постер
Иконка группы

Группа: Local moder
Сообщений: 1,712
Регистрация: 21.8.2006
Пользователь №: 1,269



Существует в природе официальная спецификация от Марка Килгара "The OpenGL Utility Toolkit (GLUT) Programming Interface".
На английском, но написана ясно.

То, что изображение получается растянутым - это уже не вина glut. Значит матрица проекции так установлена.
По вопросам, связанным с библиотеками OpenGL и GLU, рекомендую читать MSDN.

Если интересует на русском, то могут подойти переводные уроки Nehe - http://pmg.org.ru/nehe/index.html (в тамошних уроках правда glut для создания оконного интерфейса не используют, ну это мелочи жизни).

Книга Игоря Тарасова - http://opengl.org.ru/books/open_gl/ - там используется для aux, но интерфейсные ф-ции сходны с glut-вскими

Еще полистать здесь - http://www.gamedev.ru/links/?sect=2.


--------------------
irc-капец

#КартинкА#
Вернуться к началу страницы
 
+Цитировать сообщение
el-
сообщение Oct 22 2007, 19:59
Сообщение #3


Продвинутый пользователь
***

Группа: Posters
Сообщений: 229
Регистрация: 31.8.2007
Пользователь №: 8,988



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

Сообщение отредактировал el- - Oct 22 2007, 20:02


--------------------


Вернуться к началу страницы
 
+Цитировать сообщение
el-
сообщение Oct 22 2007, 20:36
Сообщение #4


Продвинутый пользователь
***

Группа: Posters
Сообщений: 229
Регистрация: 31.8.2007
Пользователь №: 8,988



glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );

glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);

всё равно Z-буфер не работает, в чём делао может быть?


--------------------


Вернуться к началу страницы
 
+Цитировать сообщение
Amp
сообщение Oct 22 2007, 20:48
Сообщение #5


Мега постер
Иконка группы

Группа: Local moder
Сообщений: 1,712
Регистрация: 21.8.2006
Пользователь №: 1,269



glEnable(GL_DEPTH_TEST);


--------------------
irc-капец

#КартинкА#
Вернуться к началу страницы
 
+Цитировать сообщение
el-
сообщение Oct 27 2007, 08:11
Сообщение #6


Продвинутый пользователь
***

Группа: Posters
Сообщений: 229
Регистрация: 31.8.2007
Пользователь №: 8,988



Код
x=x+mx;
        y=y+my;
        if(x>=1) mx=-0.1;
        if(x<=0) mx=0.1;
        if(y>=1) my=-0.1;
        if(y<=0) my=0.1;


    glTranslated(x,y,0);
    glColor3d(1,0,0);
    glutSolidSphere(3,64,64)


шар уходит по горизонтали вправо вверх
вместо glTranslated(); нужно использовать что-то другое? Что достигая кооординать в x>=1 и y>=1 он менял своё движение в противоположную сторону.

Сообщение отредактировал el- - Oct 27 2007, 08:16


--------------------


Вернуться к началу страницы
 
+Цитировать сообщение
OREZ
сообщение Oct 27 2007, 08:36
Сообщение #7


Новичок
*

Группа: Members
Сообщений: 33
Регистрация: 29.9.2006
Из: Чебоксары
Пользователь №: 2,128



Цитата(el- @ Oct 27 2007, 09:11) *
Код
x=x+mx;
        y=y+my;
        if(x>=1) mx=-0.1;
        if(x<=0) mx=0.1;
        if(y>=1) my=-0.1;
        if(y<=0) my=0.1;
    glTranslated(x,y,0);
    glColor3d(1,0,0);
    glutSolidSphere(3,64,64)


шар уходит по горизонтали вправо вверх
вместо glTranslated(); нужно использовать что-то другое? Что достигая кооординать в x>=1 и y>=1 он менял своё движение в противоположную сторону.

попробуй пАкурить это:
float x=0,mx=1,y=0,my=1;

if(x>=10) mx=-mx;
if(x<=-10) mx=-mx;
if(y>=10) my=-my;
if(x<=-10) my=-my;
x+=mx;
y+=my;
glTranslatef(x,y,0);
glColor3d(1,0,0);
glutSolidSphere(3,64,64)


--------------------
Когда ты говоришь, „Я написал программу, которая роняет Windows“, люди просто тупо смотрят на тебя и отвечают: „Да мне такие программы вместе с системой достались, причем совершенно бесплатно.(с) Линус Торвальдс
Вернуться к началу страницы
 
+Цитировать сообщение
OREZ
сообщение Oct 27 2007, 08:41
Сообщение #8


Новичок
*

Группа: Members
Сообщений: 33
Регистрация: 29.9.2006
Из: Чебоксары
Пользователь №: 2,128



float x=0,mx=1,y=0,my=1;

if(x>=10) mx=-mx;
if(x<=-10) mx=-mx;
if(y>=10) my=-my;
if(y<=-10) my=-my;
x+=mx;
y+=my;
glTranslatef(x,y,0);
glColor3d(1,0,0);
glutSolidSphere(3,64,64)


так вернее будет)


--------------------
Когда ты говоришь, „Я написал программу, которая роняет Windows“, люди просто тупо смотрят на тебя и отвечают: „Да мне такие программы вместе с системой достались, причем совершенно бесплатно.(с) Линус Торвальдс
Вернуться к началу страницы
 
+Цитировать сообщение
el-
сообщение Oct 27 2007, 09:00
Сообщение #9


Продвинутый пользователь
***

Группа: Posters
Сообщений: 229
Регистрация: 31.8.2007
Пользователь №: 8,988



Отражения шара от стен всё равно не получается как в арканоиде допустим, шар гуляет по дуге вверх и вниз. Чёта тут не хватает ему.

Если if(x>=15) то шар уходит за пределы экрана / пипец

Сообщение отредактировал el- - Oct 27 2007, 09:02


--------------------


Вернуться к началу страницы
 
+Цитировать сообщение
OREZ
сообщение Oct 27 2007, 09:09
Сообщение #10


Новичок
*

Группа: Members
Сообщений: 33
Регистрация: 29.9.2006
Из: Чебоксары
Пользователь №: 2,128



Цитата(el- @ Oct 27 2007, 10:00) *
Отражения шара от стен всё равно не получается как в арканоиде допустим, шар гуляет по дуге вверх и вниз. Чёта тут не хватает ему.

Если if(x>=15) то шар уходит за пределы экрана / пипец


1)все работает как я написал во 2ом исправлении
2)умеьш границы экрана что не выходило за пределы или отдали точку наблюдения.


--------------------
Когда ты говоришь, „Я написал программу, которая роняет Windows“, люди просто тупо смотрят на тебя и отвечают: „Да мне такие программы вместе с системой достались, причем совершенно бесплатно.(с) Линус Торвальдс
Вернуться к началу страницы
 
+Цитировать сообщение
el-
сообщение Oct 27 2007, 10:05
Сообщение #11


Продвинутый пользователь
***

Группа: Posters
Сообщений: 229
Регистрация: 31.8.2007
Пользователь №: 8,988



как во весь экран сделать? ковырял glutFullScreen(); Вылетает ошибка связанная с GLUT.DLL примеры бы очень помог.


--------------------


Вернуться к началу страницы
 
+Цитировать сообщение
Amp
сообщение Oct 27 2007, 12:12
Сообщение #12


Мега постер
Иконка группы

Группа: Local moder
Сообщений: 1,712
Регистрация: 21.8.2006
Пользователь №: 1,269



Покажи код.


--------------------
irc-капец

#КартинкА#
Вернуться к началу страницы
 
+Цитировать сообщение
el-
сообщение Oct 27 2007, 16:30
Сообщение #13


Продвинутый пользователь
***

Группа: Posters
Сообщений: 229
Регистрация: 31.8.2007
Пользователь №: 8,988



Цитата(Amp @ Oct 27 2007, 13:12) *
Покажи код.

Убрал рисования окон и всё что связанно с окнами и оставил одну glutFullScreen();


--------------------


Вернуться к началу страницы
 
+Цитировать сообщение
Amp
сообщение Oct 27 2007, 16:59
Сообщение #14


Мега постер
Иконка группы

Группа: Local moder
Сообщений: 1,712
Регистрация: 21.8.2006
Пользователь №: 1,269



Цитата(el- @ Oct 27 2007, 17:30) *
Убрал рисования окон и всё что связанно с окнами и оставил одну glutFullScreen();

в том числе и glutCreateWindow()?

Окно должно быть создано:
Цитата
glutFullScreen requests that the current window be made full screen


Сообщение отредактировал Amp - Oct 27 2007, 16:59


--------------------
irc-капец

#КартинкА#
Вернуться к началу страницы
 
+Цитировать сообщение
el-
сообщение Oct 27 2007, 17:17
Сообщение #15


Продвинутый пользователь
***

Группа: Posters
Сообщений: 229
Регистрация: 31.8.2007
Пользователь №: 8,988



фулл скрин заработал, поставил его после cretaewindow. Пришлось ещё подбирать glOrtho(-25,25,-20,20,0,12); Amp, спасибо!

Ни как нее мог найти как определить положения объекта.
Допустим я передвигаю щар по оси Y вверх и мне нужно поймать момент его пересечения определённой прямой и остановить на определённом значение.
или glTranslatef(); передвигает всю систему координать? Запутался чёт немного.

Сообщение отредактировал el- - Oct 27 2007, 17:19


--------------------


Вернуться к началу страницы
 
+Цитировать сообщение
OREZ
сообщение Oct 27 2007, 18:21
Сообщение #16


Новичок
*

Группа: Members
Сообщений: 33
Регистрация: 29.9.2006
Из: Чебоксары
Пользователь №: 2,128



Цитата(el- @ Oct 27 2007, 18:17) *
фулл скрин заработал, поставил его после cretaewindow. Пришлось ещё подбирать glOrtho(-25,25,-20,20,0,12); Amp, спасибо!

Ни как нее мог найти как определить положения объекта.
Допустим я передвигаю щар по оси Y вверх и мне нужно поймать момент его пересечения определённой прямой и остановить на определённом значение.
или glTranslatef(); передвигает всю систему координать? Запутался чёт немного.

Гибкость OpenGL позволяет менять систему координат не только глобально,но и локально ,например,для шара .При этом не сбивая координаты всей твоей системы в целом. Кароч экспериментируй , импровизируй)


--------------------
Когда ты говоришь, „Я написал программу, которая роняет Windows“, люди просто тупо смотрят на тебя и отвечают: „Да мне такие программы вместе с системой достались, причем совершенно бесплатно.(с) Линус Торвальдс
Вернуться к началу страницы
 
+Цитировать сообщение
el-
сообщение Oct 28 2007, 14:50
Сообщение #17


Продвинутый пользователь
***

Группа: Posters
Сообщений: 229
Регистрация: 31.8.2007
Пользователь №: 8,988



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


--------------------


Вернуться к началу страницы
 
+Цитировать сообщение
Amp
сообщение Oct 28 2007, 15:28
Сообщение #18


Мега постер
Иконка группы

Группа: Local moder
Сообщений: 1,712
Регистрация: 21.8.2006
Пользователь №: 1,269



Как такового понятия "глобальная система координат" нет, есть единичная матрица модели.
Все преобразования, которые делаются с помощью вызовов glRotate, glTranslate, glScale меняют текущую матрицу(модели, текстуры..), которую в последствии можно помещать в стек матриц функцией glPushMatrix() и извлекать через glPopMatrix().

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

Сообщение отредактировал Amp - Oct 28 2007, 15:32


--------------------
irc-капец

#КартинкА#
Вернуться к началу страницы
 
+Цитировать сообщение

ОтветитьСоздать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 30th April 2024 - 20:56