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

hanhau

Treue Seele

  • »hanhau« ist der Autor dieses Themas

Beiträge: 80

Wohnort: St. Pölten, Österreich

Beruf: schueler

  • Private Nachricht senden

1

20.06.2015, 15:39

[C++] OpenGL in SFML 2.3 - Gut für den Anfang ?

Hallo :)

Zu meiner Frage:

Ich programmiere schon etwa ein halbes Jahr mit C++ und SFML und habe bereits
einigermaßen Erfahrung gesammelt. Ich würde gerne in das Gebiet der 3D-Grafik
vordringen und möchte mit low-level OpenGL anfangen. Ich möchte bewusst kein
Unity oder anderes für 3D-Spiele nehmen, um besser den grafischen "Hintergrund"
von Spielen zu verstehen.

SFML soll ganz gut mit OpenGL zu benutzen sein, da es ja selber "under the Hood"
mit OpenGL funktioniert ....... ich habe allerdings gehört,
dass es das "alte" und "neue" OpenGL gibt (unter/über 3.3).
Was ist der Unterschied ?

Kennt jemand gute Bücher zu OpenGL ?
Ich habe mir vor kurzen eins gekauft, dieses beherbergt aber nur "altes" OpenGL.

Was meint ihr ?
Wie soll ich anfangen ?
Wie viel Mathematik benötige ich ? (ich bin 15)

Danke !
Oft denke ich an sie, niemals habe ich sie gefragt, niemals etwas gesagt,
nur verzweifelt am PC gesessen und dabei die Zeit vergessen, sie ist weg.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

20.06.2015, 16:59

Der Unterschied zwischen Legacy OpenGL (Fixed Function Pipeline) und aktueller Architektur (Buffer+Shader) ist massiv. SFML arbeitet mit Legacy OpenGL. Es ist zudem nicht ratsam SFML mit 3D zu mischen, da SFML ziemlich viel mit den internen Zuständen herum fingert.
Du benötigst für modernes OpenGL vermutlich mehr Mathematik, als Du verstehst. Vektoren und Matrizen sind absolute Grundlagen.
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]

3

20.06.2015, 20:27

Ich hatte genau wie du vor einigen Monaten den Wunsch mir die Grundlagen in Sachen OpenGl anzueignen und habe mir deswegen dieses OpenGL-Buch gekauft und bin mit ihm sehr zufrieden.
Es wird dort auch mit dem aktuellen OpenGL 4.3 Code gearbeitet und nicht mit lang überholten Funktionen, wie in viele Tutorials und Büchern. Einziges Manko, da du ja sagst du bist erst 15,
es ist komplett auf english. Wenn du dir das zutraust, kann ich dir zumindest sagen, dass es kein schwieriges English ist und sich angenehm liest.

Bevor ich mir dieses Buch angeschafft habe, hatte ich dieses Youtube-Tutorial abgearbeitet. Das hat mir auch sehr gut gefallen und der Tutor kaut auch alles seeehr genau durch.
Leider auch English, aber zumindest codet er alles vor :), daher sollte man auch ohne Englishkenntnisse gut mitkommen. Leider ist das Tutorial vom Code her nicht ganz aktuell, aber bei den
Grundlagen um die es geht macht das keinen großen Unterschied. Mir ist zumindets keiner aufgefallen zwischen dem Code aus dem Tutorial und dem aus dem Buch.

Und von der Mathematik her ... es ist gut zu wissen, aber eigentlich muss man nicht unbedingt wissen was da auf der Schiene passiert. Für Matrizenrechnung und Vektoren gibt es ne OpenGL-Library (GLM),
die einem den Großeteil der Arbeit abnimmt. In dem OpenGL-Buch wird die zugehörige Mathematik in einem eigenen Kapitel sehr ausführlich (so das es möglichste jeder versteht) erklärt.
Gut für jemand so jungen wie dich ist OpenGL möglicherweise sehr hart zu lernen und zu verstehen, aber erstens habe ich keine Ahnung wie gut du schon bist und zweitens je früher du anfängst, desto besser.

MFG

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »QuickAndDirty« (20.06.2015, 20:34)


eXpl0it3r

Treue Seele

Beiträge: 386

Wohnort: Schweiz

Beruf: Professional Software Engineer

  • Private Nachricht senden

4

20.06.2015, 22:07

Es ist zudem nicht ratsam SFML mit 3D zu mischen, da SFML ziemlich viel mit den internen Zuständen herum fingert.
Musst auch noch anfügen, dass das deine persönliche Meinung ist, denn man kann sehr gut SFML mit "3D" verwenden. ;)
Wenn man jedoch sehr wenig Ahnung hat von OpenGL, empfiehlt es sich eher nur das Window Modul und OpenGL zu verwenden, da man beim Graphics Modul schon wissen muss wie OpenGL States verändert werden etc.
Blog: https://dev.my-gate.net/
—————————————————————————
SFML: https://www.sfml-dev.org/
Thor: http://www.bromeon.ch/libraries/thor/
SFGUI: https://github.com/TankOs/SFGUI/

hanhau

Treue Seele

  • »hanhau« ist der Autor dieses Themas

Beiträge: 80

Wohnort: St. Pölten, Österreich

Beruf: schueler

  • Private Nachricht senden

5

20.06.2015, 22:21

Danke für die Antworten :)

Das mit englischen Tuts und Büchern sollte hinhauen, bin ein eigentlich recht guter Schüler in Englisch ;)
Ich traue mir schon auch etwas kompliziertere Mathe-Sachen zu, solange ich alles Stück für Stück abarbeite
und mir immer im Klaren bin, was was ist.

Ich habe ebenfalls gehört, dass eigentlich SFML ideal sein soll, da man später sehr einfach Sachen wie
HUD, Musik, Netzwerk, GUI usw sehr schnell hinzufügen kann.

Ich möchte ja auch nicht gleich hardcore anfangen, mit komplizierter Physik, sondern einfach
mal ein kleines Level wie in Doom bauen. Einfache Beleuchtung, SEHR einfache Physik, keine Effekte.
Es geht mir einfach mal nur um die Kennenlernung von "low-level" Grafikprogrammierung und wie man
damit in einer Spieleengine umgeht. Also mal das "Gefühl bekommt" bei der Anwendung, wie richtig
Umsetzungen gemacht werden usw.

Danke QuickAndDirty, deine Antwort war besonders hilfreich für mich :)
Oft denke ich an sie, niemals habe ich sie gefragt, niemals etwas gesagt,
nur verzweifelt am PC gesessen und dabei die Zeit vergessen, sie ist weg.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

6

21.06.2015, 00:44

denn man kann sehr gut SFML mit "3D" verwenden
Man kann, aber keinesfalls "sehr gut". Das kann dir nun wirklich jeder bestätigen, der es mal gemacht hat. Wie ich schon sagte, SFML fummelt sehr viel mit internen States rum, die man oft auch manuell wieder herstellen muss. Sorry, SFML kann wirklich sehr viel sehr gut, aber 3D gehört nicht dazu.
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]

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

7

21.06.2015, 03:22

Zitat

Es geht mir einfach mal nur um die Kennenlernung von "low-level" Grafikprogrammierung und wie man damit in einer Spieleengine umgeht.

Für die meisten Anweder ist das Umgehen mit Low-level Grafikprogrammierung in einer Engine(welche SFML nicht ist) widersprüchlich. Du nimmst die Engine ja gerade um das zu vermeiden. Die SFML wurde auch geschrieben, um dir die Arbeit abzuehmen, sodass du dich damit nicht beschäftigen musst - aber es kannst, wenn du es benötigst.

Wenn es dir also um das Kennenlernen der Grafikprogrammierung geht, empfiehlt es sich wie schon gesagt direkt in modernes OpenGL einzusteigen (oder DirectX). Dazu einen entsprechenden Math Primer und los gehts. :)
WIP Website: kevinheese.de

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

8

21.06.2015, 12:56

Ich persönlich würde dir empfehlen, die einfach dieses Tutorial hier durchzulesen: https://open.gl/

Darin wird auch erklärt, wie man die SFML zur Kontexterstellung nutzen und ab da mit reinem OGL weiterarbeiten kann.
Ich persönlich empfinde dabei die SFML aber für diese einfache Aufgabe als zu viel Overhead und würde eher GLFW benutzen.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

Werbeanzeige