Показать сообщение отдельно
  #10  
Старый 22.12.2009, 16:24
DungeonLords DungeonLords вне форума
Активный
 
Регистрация: 21.07.2008
Сообщения: 257
Репутация: 14
По умолчанию

Цитата:
Сообщение от T_N_W
Ага, кое что я уже нашел. То что у меня в private нужно перенести в public, а процедуры походу и прописывать не надо. procedure TForm1.GLInit; этоя так понял включает свет и цвет объекта.
Блин, я ввёл тебя в заблуждение. В реальности можно это запихнуть и в public и в private и вообще в глобальную переменную: ничего не изменится.

А GLInit м... я её удалил уже вчера.

Цитата:
Сообщение от T_N_W
Проблема частичьно решена. Таймер убрал полностью и все что с ни связвно. SwapBuffers(DC) перенес в конец процедуры WMPaint.
А вот это точно твоя ошибка! Верни таймер и зубудь про WMPaint. Вот есть книга именно о OpenGL в Delphi: http://c-books.info/books/load.php?ty=delphi

Плюс посмотри на это:
procedure TForm1.WMPaint(var Msg: TWMPaint);
var
quadObj : gluQuadricObj;
begin
quadObj := gluNewQuadric;//новый объект
glRotate(5.0, 0.0, 1.0, 0.0);//повернём
glPushMatrix;//перейдём к новым координатам, сохранив старые
glRotated(-90,1.0,0.0,0.0);//ещё раз повернём
gluSphere(quadObj,1.3,20,20);//а теперь нарисуем сферу "1.3 - радиус",
// а 20 и 20 - это колличество разбиений
glPopMatrix;//перейдём к старым координатам
gluDeleteQuadric(quadObj);//эта функция сделает "чёрную" работу
end;
Ага, "повернём" . Да так повернём, что потом все объекты будут поворачиваться т.к. сначало нужно запомнить текущую матрицу трансформации функцией glPushMatrix. И ещё раз повторяю, верни таймер на место!

Есть у меня одна хорошая для тебя демка: http://rapidshare.de/files/48877305/gl_demo.rar.html [только учти (!), там не включай "FBO текстуру", а то просто зависнит, я там с ней неправильно работал]
__________________
Делаем'c разные игры. Искать на glscene.ru
Ответить с цитированием