Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование игр, графики и искусственного интеллекта > Библиотека "примитивов" OpenGL.


Автор: kemiisto 22.2.2009, 19:59
Всем привет!

Столкнулся с такой проблемой: использование функции из GLU даёт разный результат на разных ОС. На Mac OS X и Windows - ожидаемый, на Linux (Mesa3d) - о ужас! Ну, тут лучше один раз увидеть:
Как оно должно быть. И оно так нам и является на Windows и Mac OS X.
user posted image
А вот это мы увидим в Linux:
user posted image

Поначалу грешил на Java (юзал JOGL), перебрался на С++ (Qt) - те же грабли. smile 

Исследование нескольких OpenSource проектов (Avogadro, GLScene, ...) показало, что разработчики избегают использования GLU и предпочитают строить различные квадрические объекты вручную. Т.е. из примитивов, вручную прописываю нормали, и т.д. 

Я такое однозначно не потяну. Я не в состоянии такое осмыслить. smile Времени нет, да и годы уже не те... smile 

Вот собственно мы и подходим к вопросу: может кто видел где-нибудь набор функций для отрисовки объектов (сферы, конусы, ...)? Нужно что-то простенькое (а-ля упомянутый GLScene) только на С++.

P.S. Игровые движки (а-ля OGRE) не предлагать. Мне так много функционала не нужно. smile 

Автор: kemiisto 23.2.2009, 00:43
Так, ошибку отрисовки поборол! Код использовал http://lifeofaprogrammergeek.blogspot.com/2008/07/rendering-cylinder-between-two-points.html. Вот в этом месте:
Код

//handle the degenerate case of z1 == z2 with an approximation
if(vz == 0)
    vz = .0001;

число .0001 берётся "с потолка". На Linux потребовалось его увеличить на порядок. smile С .001 заработало.
 

Автор: arilou 23.2.2009, 18:09
kemiisto, это для борьбы с z-fighting что-ли? 

Автор: kemiisto 23.2.2009, 20:38
Цитата(arilou @  23.2.2009,  16:09 Найти цитируемый пост)
kemiisto, это для борьбы с z-fighting что-ли?  

Думается мне, тут немного не тот случай...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)