Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

OpenGL [D6, WinXP]


X-RayMan ©   (2004-09-29 22:53:00) 

Привет олл!

У меня есть вопрос по сабжу. Есть анимация вращающейся Земли (Краснов. OpenGL графика в проектах Delphi. Глава 4, пример 89). По идее точки с преобладанием синего цвета должны быть полупрозрачными. Флаги в описании формата пиксела: pfd_SUPPORT_OpenGL or pfd_Draw_To_Window. Если к этому добавить or pfd_DoubleBuffer - анимация идет нормально, но точки не прозрачные. Если еще добавить or pfd_SUPPORT_GDI, то точки прозрачны, но анимация мигает.
Может кто знает, что надо сделать, чтобы и не мигало и было прозрачным. Заранее спасибо...

P.S. Пример можно скачать на http://d3dengine.narod.ru/books.html.Там есть ссылка - скачать дискету к книге.


WondeRu   (2004-09-30 09:50:00) [1]

?не  знай? у меня вообще прозрачности нет при любых флагах! еще совет: переделай процедуру инициализации - работать быстрее будет.
procedure TfrmGL.Init;
const
LightPos : Array [0..3] of GLFloat = (10.0, 10.0, 0.0, 1.0);
var
Quadric : GLUquadricObj;
begin
Quadric := gluNewQuadric;
gluQuadricTexture (Quadric, TRUE);

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);

glEnable(GL_TEXTURE_2D);

glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
prepareImage ('earth.bmp');//вынес из дисплейного списка

glNewList (Earth, GL_COMPILE);
   glEnable (GL_BLEND);
   glEnable(GL_CULL_FACE);
   glCullFace(GL_FRONT);
   gluSphere (Quadric, 1.0, 24, 24);
   glCullFace(GL_BACK);
   gluSphere (Quadric, 1.0, 24, 24);
   glDisable(GL_CULL_FACE);
   glDisable (GL_BLEND);
glEndList;

gluDeleteQuadric (Quadric);

glEnable(GL_DEPTH_TEST);
end;


X-RayMan   (2004-09-30 00:23:00) [2]

Что-то я свое мыло в прошлой мессаге не правильно написал...


Наверх

Титульная страница Поиск, карта сайта Написать письмо