Прозрачные эффекты OpenGL отображаются на Meego довольно ужасно - PullRequest
5 голосов
/ 21 июля 2011

мы создали несколько полупрозрачных 3D-кубов в сцене с помощью OpenGL, который очень хорошо отображается в Windows 7 и Fedora 15, но стал довольно ужасным в системе Meego.

Вот как это выглядитв моей системе Fedora 15:

This is what it looks like on my Fedora 15 system.

Вот как это выглядит на Meego.Мы изменили цвет линии, иначе кубы, которые вы видите, будут более жалкими:

This is what it looks like on Meego. The color of the line has been changed by us, otherwise the cubes you see would be more pathetic.

Эффекты реализуются с помощью обычной функции glColor4f и выполняютсябыть прозрачным, просто установив значение альфа.Как это могло быть так?

Как freeglut, так и openglut были опробованы в системе Meego и не смогли отобразить что-либо лучше.

Я даже пытался использовать движок вроде irrlicht для реализацииэто вместо этого, но на экране ничего не было бы, кроме черного, когда аргумент zBuffer метода beginScene был установлен в false (и нормальный, когда он истинен, но это не то, что мы хотим).

Это не должно быть проблемой видеокарты или драйвера, потому что мы видели трехмерную игру с прозрачным шариком на том же нетбуке и системе.

Нам не удалосьнайти причину здесь.Может ли кто-нибудь помочь, почему это произойдет, пожалуйста?

Ответы [ 2 ]

6 голосов
/ 21 июля 2011

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

Вы явно устанавливаете какие-либо свойства наложения OpenGL, такие как glBlendFunc ?Если да, это может помочь опубликовать соответствующий код, который делает это.

Один из упомянутых комментариев сортирует ваши прозрачные объекты.Если вы этого не сделаете, вы можете подумать об этом, чтобы добиться более точных результатов.В любом случае, это поведение должно быть одинаковым для разных платформ, поэтому я бы предположил, что это не ваша проблема.

Редактировать:

Еще одна мысль.Вы устанавливаете glCullFace ?Возможно, ваши прозрачные лица отбракованы из-за вашей обмотки вершины .

1 голос
/ 22 июля 2011

Как freeglut, так и openglut были опробованы в системе Meego и не смогли лучше отображаться.

Это простые оконные фреймворки, которые никак не влияют на выполнение OpenGL.

Где-то в вашем коде смешивания вы все испортили. Исходя из правильного рендеринга, я бы сказал, что ваша функция смешивания есть glBlendFunc(GL_ONE, GL_ONE), а в Meego это что-то вроде glBlendFunc(GL_SRC_ALPHA, GL_ONE).

...