Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

stef

Treue Seele

  • »stef« ist der Autor dieses Themas

Beiträge: 246

Wohnort: Kassel

Beruf: Softwareentwickler

  • Private Nachricht senden

1

07.01.2013, 00:17

GLEW: Vorteile vs. Nachteile

Hallo Forum

Ich spiele mit der Idee mein Derzeitiges Projekt auf GLEW umzustellen,
wollte aber vorher nochmal eine unabhängige Meinung einholen.
Habt Ihr Erfahrungen mit der LIB und wenn ja welche ?

Danke

P.S. Ist Montag 00:00 Backup angesagt ?
spieleprogrammierer.de war eben für 2-3 Minuten nicht zu erreichen.
"In C++ it's harder to shoot yourself in the foot, but when you do, you blow off your whole leg." — Bjarne Stroustrup.

2

07.01.2013, 10:45

Von was wolltest du denn darauf umsteigen?
Ich habe neulich mal glLoadGen getestet, ein Vorteil davon ist, dass man damit auch z.B. einen OpenGL 4.0 Header generieren kann, in dem dann die ganzen deprecated Funktionen fehlen, so dass man schon beim Entwickeln gezwungen wird, auf alte Sachen zu verzichten.

https://bitbucket.org/alfonse/glloadgen/wiki/Home
Lieber dumm fragen, als dumm bleiben!

LukasBanana

Alter Hase

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

3

07.01.2013, 11:42

Ich verstehe nicht so ganz, warum immer alle scharf darauf sind, alle 'deprecated' OpenGL Funktionen nicht mehr zu verwenden.
Hier mal ein Zitat von dieser NVIDIA Seite:

Zitat

The Compatibility profile has full support for all features, including the deprecated ones. Both profiles are available in our OpenGL 4.3 drivers.

NVIDIA recommends that developers always create a Compatibility profile context, to ensure full backwards compatibility of existing OpenGL code.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

07.01.2013, 11:53

Der Key ist "to ensure full backwards compatibility", nicht der von dir manuell fett gemachte Teil.
Aber klar, verwende ruhig das deprecated Zeug, es hat ja keine Bedeutung, dass es deprecated ist, oder etwa doch? :thinking: Deprecated zeigt immerhin an, dass es mal in einer späteren Version removed wird. Zudem bin ich mir nicht sicher, ob dieser "full support for all features" auch für die Karten/Treiber der anderen Hersteller gilt. Man möchte am Ende ja nicht unbedingt alle seine Features nur auf einer Karte verfügbar haben oder wie Du es in der Softpixel-Engine machst es speziell auf jede einzelne Karte zuschneiden müssen.

Ferner:

Zitat von »http://www.opengl.org/wiki/Core_And_Compatibility_in_Contexts«

An implementation is only required to define core, so compatibility is not guaranteed to be available. However, it's a safe bet that it is (unless you're using Mac OSX 10.7, in which case 3.2 core or 2.1 are your only choices).

Und warum man Legacy OpenGL vermeiden sollte
Aus eben jenem Artikel:

Zitat

OpenGL ES 2 and 3 don't support immediate mode. If the application is supposed to portable or compatible with mobile devices, the legacy options is not available. Also, although a new application which is supposed to work on more than one platform, e.g. Windows and Linux, drivers might not expose the compatibility extension and thus only support OpenGL 3.0 or higher core features. If so, the application will not work if only a legacy code path exists. Furthermore, if vendors should decide to drop the compatibility extension at some point, i.e. publish drivers only implementing the core profile, the same problem will arise. Writing applications that use only OpenGL 3.0 or higher core features have the advantage of being not only conforming to version 3.0 but also all other versions up to 4.3 and currently there are no known plans to deprecate more features. This means that applications are future proof regarding driver support on all major platforms until explicitly stated otherwise by hardware vendors.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Dieser Beitrag wurde bereits 8 mal editiert, zuletzt von »BlueCobold« (07.01.2013, 12:09)


LukasBanana

Alter Hase

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

5

07.01.2013, 12:09

Wenn man gegen das Core Profile entwickelt, dann sind auch die meisten 'deprecated' Funktionen entfernt. Aber genau dafür ist ja das Compatibility Profile da.
Dass der Support da bei OSX eingeschränkt ist wunder mich jetzt allerdings nicht :P

Klar, wenn ich jetzt noch mal was komplett Neues anfangen würde mit purem OpenGL, würde ich wahrscheinlich auch gleich mit OpenGL 4 los legen.
Aber dass da immer so ein Wind drum gemacht wird, als wenn GL 2.0 nächste Woche nicht mehr zur Verfügung stünde verstehe ich halt nicht ^^.

... wie Du es in der Softpixel-Engine machst es speziell auf jede einzelne Karte zuschneiden ...

Meinst du das, weil ich Cg als Zusatz anbiete?

Gruß,
Lukas

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

6

07.01.2013, 12:12

Du sollst die von mir zitierten Dinge nochmals lesen. Das Compatibility Profile bietet mehr Nachteile, als es Vorteile bringt. gerade für jemanden, der OpenGL komplett neu lernen will. Wieso sollte er deprecated Schrott lernen, statt das vernünftige Zeug, was ab 3.1 spezifiziert ist, sprich das Core Profile.
Niemand hat behauptet OpenGL 2.X sei morgen nicht mehr da. Aber es macht keinen Sinn einen Neuling diesen uralten Kram lernen zu lassen, wenn es ihm außer Ärger und noch mehr überflüssiger Lernerei keinen Vorteil bringt. Statt nur eine neue 3.1 GL Funktionalität zu lernen, die heute verwendet wird, soll er auch noch legacy OpenGL lernen?

Edit: Ich befand mich im absolut falschen Topic. Da es dennoch nicht ganz falsch ist (und stattdessen lediglich nur halb zum eigentlichen Thema passt), lasse ich es trotzdem stehen.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »BlueCobold« (07.01.2013, 12:21)


LukasBanana

Alter Hase

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

7

07.01.2013, 12:16

Klar, wenn ich jetzt noch mal was komplett Neues anfangen würde mit purem OpenGL, würde ich wahrscheinlich auch gleich mit OpenGL 4 los legen.
;)

LukasBanana

Alter Hase

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

8

07.01.2013, 12:31

Naja weil ...
... immer so ein Wind drum gemacht wird, als wenn GL 2.0 nächste Woche nicht mehr zur Verfügung stünde

Ich habe übrigens nie behauptet, dass exakt das irgend jemand gesagt hat ;)
Und wann habe ich in diesem Thread einem Anfänger empfohlen es so zu machen?

Du sollst die von mir zitierten Dinge nochmals lesen.

Und du meine ^^.

Damit "stef" aber auch noch was von dem Thread hat, @stef:
Ich habe mit GLEW noch nicht gearbeitet aber alles was ich davon weiß ist, dass du dich eben genau um dieses 'Extension Chaos' was OpenGL nun mal mit sich bringt (
egal ob jetzt in den deprecated Profiles oder in den Neuen) nicht kümmern brauchst.
Ein Nachteil wäre denke ich mal, dass du nicht immer Gebrauch vom ganz neuen Standard machen kannst.
Aber für den Einstieg in OpenGL sollte GLEW sicher eher Vorteile haben.

Gruß,
Lukas

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

9

07.01.2013, 13:47

Ich habe Teile meiner Aussagen revidiert, ich befand mich in einem anderen Topic als ich dachte.
Ich denke ebenfalls, dass es keine großen Vorteile bringt ein bereits bestehendes Projekt auf Teufel komm raus umzustellen, sofern nicht absolut notwendig. Lieber beim nächsten Mal einfach anders machen.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

stef

Treue Seele

  • »stef« ist der Autor dieses Themas

Beiträge: 246

Wohnort: Kassel

Beruf: Softwareentwickler

  • Private Nachricht senden

10

07.01.2013, 14:00

Von was wolltest du denn darauf umsteigen?

Genau genommen von nichts ! Bisher habe ich mir jeden einzelnen Entrypoint selber mit wglGetProcAddress ausgeben lassen.

Damit "stef" aber auch noch was von dem Thread hat

Stört mich nicht wenn Ihr ein wenig vom eigentlichen Thema abkommt. Dümmer wird man dabei nie.
(Außerdem ist der Blaue doch jetzt SuperModerator und kann bei bedarf ja abspalten ... :D Ist nur ein Scherz ...)

Ein Nachteil wäre denke ich mal, dass du nicht immer Gebrauch vom ganz neuen Standard machen kannst.

GLEW 1.9.0 unterstützt 4.3 laut GLEW Homepage.
"In C++ it's harder to shoot yourself in the foot, but when you do, you blow off your whole leg." — Bjarne Stroustrup.

Werbeanzeige