Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> OpenGL, gluLookAt 
:(
    Опции темы
Vetos
Дата 27.8.2008, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Здрасте!
На сцене есть кубик.
Его можно обсмотреть со всех сторон с помощью мыши.
Как можно нарисовать чтото поверх всей сцены, чтоб при повороте кубика чтото так и оставалось на своем месте.
Прорисовка получается так:
Код

glClear (GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);

    glLoadIdentity;
    gluLookAt(Position.x,Position.y,Position.z,Target.x,Target.y,Target.z,
              Up.x,Up.y,Up.z);

glColor3f(0.5,0.9,0.6);
glBegin (GL_QUADS);
glNormal3f(0.0, 0.0, 1.0);
glVertex3f (1.0, 1.0, 1.0);
glVertex3f (-1.0, 1.0, 1.0);
glVertex3f (-1.0, -1.0, 1.0);
glVertex3f (1.0, -1.0, 1.0);
glEnd;
.......//Все грани рисовать не буду энто кубик.
glBegin(GL_QUADS);
   glNormal3f(0.0, -1.0, 0.0);
glVertex3f (-1.0, -1.0, -1.0);
glVertex3f (1.0, -1.0, -1.0);
glVertex3f (1.0, -1.0, 1.0);
glVertex3f (-1.0, -1.0, 1.0);
glEnd;

SwapBuffers(DC);


потом я немогу нарисовать чтонибудь поверх всей сцены, допустим две перпендикулярные полоски проходящие через центр экрана
они рисуются рядом с кубиком(так в принцыпе оно и будет)и вращаются вместе с ним.
Код

glBegin(GL_LINES);
glVertex3f(0.09,0,0);
glVertex3f(1.5,0,0);
glVertex3f(-0.09,0,0);
glVertex3f(-1.5,0,0);
glVertex3f(0.0,0.09,0);
glVertex3f(0.0,1.5,0);
glVertex3f(0.0,0.09,0);
glVertex3f(0.0,1.5,0);
glEnd;

Что можно придумать, я просто незнаю.
Думал просчитывать каждый раз координаты, и рисовать полоски тупо перед камерой, но чтото мне подсказывает что есть более оптимальный вариант, помогите  smile 

















--------------------
Строить нужно так, чтоб никто не сломал!
А ломать, чтоб никто не знал 8) :ne_huliganit 
PM MAIL ICQ   Вверх
Qu1nt
Дата 27.8.2008, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 2
Всего: 50



glOrtho!?
PM MAIL   Вверх
Vetos
Дата 28.8.2008, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Попробовал перед рисованием полосок перейти в режим lgOrtho, не помогает, полоски все равно рисуются не там, и вращаются вместе с кубом:(


--------------------
Строить нужно так, чтоб никто не сломал!
А ломать, чтоб никто не знал 8) :ne_huliganit 
PM MAIL ICQ   Вверх
TDM
Дата 29.8.2008, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Так пробани:
Код

glClear (GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  glLoadIdentity;
  рисуем фон

  gluLookAt(Position.x,Position.y,Position.z,Target.x,Target.y,Target.z,Up.x,Up.y,Up.z);
  рисуем кубик

SwapBuffers(DC);

PM MAIL ICQ   Вверх
Vetos
Дата 31.8.2008, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Так тоже пробовал, тогда вообще полосок невидно, как-то странно, что ни рисуешь после вызова glLoadIdentity не выводится на экран, выводятся обьекты нарисованные после gluLookAt.
Код

glClear (GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  glLoadIdentity;
  рисуем фон
        -------------------------- Здесь что ни рисуй на экран не попадет вообще:(

  gluLookAt(Position.x,Position.y,Position.z,Target.x,Target.y,Target.z,Up.x,Up.y,Up.z);
  рисуем кубик

SwapBuffers(DC);



--------------------
Строить нужно так, чтоб никто не сломал!
А ломать, чтоб никто не знал 8) :ne_huliganit 
PM MAIL ICQ   Вверх
Qu1nt
Дата 31.8.2008, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 2
Всего: 50



Выложи тестовый проект, я поколдую.
PM MAIL   Вверх
Vetos
Дата 31.8.2008, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вот собрал, шо токо не пробовал:(


Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  ______.rar 8,55 Kb


--------------------
Строить нужно так, чтоб никто не сломал!
А ломать, чтоб никто не знал 8) :ne_huliganit 
PM MAIL ICQ   Вверх
Vetos
Дата 31.8.2008, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Соори небольшая ошибочка
Код

procedure pricel(x,y,z:GLDouble);
begin
glDisable(GL_LIGHTING);
glBegin(GL_LINES);
glVertex3f(x+0.09,y+0,z+0);
glVertex3f(x+1.5,y+0,z+0);
glVertex3f(x-0.09,y+0,z+0);
glVertex3f(x-1.5,y+0,z+0);
glVertex3f(x+0.0,y+0.09,z+0);
glVertex3f(x+0.0,y+1.5,z+0);
glVertex3f(x+0.0,y-0.09,z+0);
glVertex3f(x+0.0,y-1.5,z+0);
glEnd;
glEnable(GL_LIGHTING);
end;

Но даже так все равно надо просчитывать координаты, тоесть получается каждый кадр проводить вычисления, но чот мне такой способ не нравится


--------------------
Строить нужно так, чтоб никто не сломал!
А ломать, чтоб никто не знал 8) :ne_huliganit 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




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


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

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