OpenGL, вопросы |
Здравствуйте, гость ( Вход | Регистрация )
OpenGL, вопросы |
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); какие значения на что влияют и как их расставлять? -------------------- |
|
|
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. -------------------- |
|
|
Oct 22 2007, 19:59
Сообщение
#3
|
|
Продвинутый пользователь Группа: Posters Сообщений: 229 Регистрация: 31.8.2007 Пользователь №: 8,988 |
будем ковырятся - погода все равно не ахти на улице.
GLUT хорош тем, что переносится на другие платформы, не надо рисовать окна кучами строками кода - в винде - это же пипец извращения. Запомнить названия апи функции вобще нереально, тем более для любителя и того кто просто этим увлекатеся а не зарабатывает. Сообщение отредактировал el- - Oct 22 2007, 20:02 -------------------- |
|
|
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-буфер не работает, в чём делао может быть? -------------------- |
|
|
Oct 22 2007, 20:48
Сообщение
#5
|
|
Мега постер Группа: Local moder Сообщений: 1,712 Регистрация: 21.8.2006 Пользователь №: 1,269 |
glEnable(GL_DEPTH_TEST);
-------------------- |
|
|
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 -------------------- |
|
|
Oct 27 2007, 08:36
Сообщение
#7
|
|
Новичок Группа: Members Сообщений: 33 Регистрация: 29.9.2006 Из: Чебоксары Пользователь №: 2,128 |
Код 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“, люди просто тупо смотрят на тебя и отвечают: „Да мне такие программы вместе с системой достались, причем совершенно бесплатно.(с) Линус Торвальдс
|
|
|
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“, люди просто тупо смотрят на тебя и отвечают: „Да мне такие программы вместе с системой достались, причем совершенно бесплатно.(с) Линус Торвальдс
|
|
|
Oct 27 2007, 09:00
Сообщение
#9
|
|
Продвинутый пользователь Группа: Posters Сообщений: 229 Регистрация: 31.8.2007 Пользователь №: 8,988 |
Отражения шара от стен всё равно не получается как в арканоиде допустим, шар гуляет по дуге вверх и вниз. Чёта тут не хватает ему.
Если if(x>=15) то шар уходит за пределы экрана / пипец Сообщение отредактировал el- - Oct 27 2007, 09:02 -------------------- |
|
|
Oct 27 2007, 09:09
Сообщение
#10
|
|
Новичок Группа: Members Сообщений: 33 Регистрация: 29.9.2006 Из: Чебоксары Пользователь №: 2,128 |
Отражения шара от стен всё равно не получается как в арканоиде допустим, шар гуляет по дуге вверх и вниз. Чёта тут не хватает ему. Если if(x>=15) то шар уходит за пределы экрана / пипец 1)все работает как я написал во 2ом исправлении 2)умеьш границы экрана что не выходило за пределы или отдали точку наблюдения. -------------------- Когда ты говоришь, „Я написал программу, которая роняет Windows“, люди просто тупо смотрят на тебя и отвечают: „Да мне такие программы вместе с системой достались, причем совершенно бесплатно.(с) Линус Торвальдс
|
|
|
Oct 27 2007, 10:05
Сообщение
#11
|
|
Продвинутый пользователь Группа: Posters Сообщений: 229 Регистрация: 31.8.2007 Пользователь №: 8,988 |
как во весь экран сделать? ковырял glutFullScreen(); Вылетает ошибка связанная с GLUT.DLL примеры бы очень помог.
-------------------- |
|
|
Oct 27 2007, 12:12
Сообщение
#12
|
|
Мега постер Группа: Local moder Сообщений: 1,712 Регистрация: 21.8.2006 Пользователь №: 1,269 |
Покажи код.
-------------------- |
|
|
Oct 27 2007, 16:30
Сообщение
#13
|
|
Продвинутый пользователь Группа: Posters Сообщений: 229 Регистрация: 31.8.2007 Пользователь №: 8,988 |
Покажи код. Убрал рисования окон и всё что связанно с окнами и оставил одну glutFullScreen(); -------------------- |
|
|
Oct 27 2007, 16:59
Сообщение
#14
|
|
Мега постер Группа: Local moder Сообщений: 1,712 Регистрация: 21.8.2006 Пользователь №: 1,269 |
Убрал рисования окон и всё что связанно с окнами и оставил одну glutFullScreen(); в том числе и glutCreateWindow()? Окно должно быть создано: Цитата glutFullScreen requests that the current window be made full screen
Сообщение отредактировал Amp - Oct 27 2007, 16:59 -------------------- |
|
|
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 -------------------- |
|
|
Oct 27 2007, 18:21
Сообщение
#16
|
|
Новичок Группа: Members Сообщений: 33 Регистрация: 29.9.2006 Из: Чебоксары Пользователь №: 2,128 |
фулл скрин заработал, поставил его после cretaewindow. Пришлось ещё подбирать glOrtho(-25,25,-20,20,0,12); Amp, спасибо! Ни как нее мог найти как определить положения объекта. Допустим я передвигаю щар по оси Y вверх и мне нужно поймать момент его пересечения определённой прямой и остановить на определённом значение. или glTranslatef(); передвигает всю систему координать? Запутался чёт немного. Гибкость OpenGL позволяет менять систему координат не только глобально,но и локально ,например,для шара .При этом не сбивая координаты всей твоей системы в целом. Кароч экспериментируй , импровизируй) -------------------- Когда ты говоришь, „Я написал программу, которая роняет Windows“, люди просто тупо смотрят на тебя и отвечают: „Да мне такие программы вместе с системой достались, причем совершенно бесплатно.(с) Линус Торвальдс
|
|
|
Oct 28 2007, 14:50
Сообщение
#17
|
|
Продвинутый пользователь Группа: Posters Сообщений: 229 Регистрация: 31.8.2007 Пользователь №: 8,988 |
Как установить глобальную систему координат и её нулевые точки как узнать где находтся? Допутимя для шара есть своя система координат, то как это потом всё будет выглядить, освещение шара, текстурирование? Для нормальной работы всё должно находится в одной системе координат?
-------------------- |
|
|
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 -------------------- |
|
|
Текстовая версия | Сейчас: 4th May 2024 - 16:44 |