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

Kasenoru

Frischling

Beiträge: 79

Beruf: Softwareentwickler

  • Private Nachricht senden

11

27.09.2007, 14:19

Zitat

hmm, was meinst du denn jetzt, lohnt es sich SDL im OpenGL modus zu betreiben (ich meine, ich kann ja auch einfach die grafik komplett in OGL coden und SDL nur für input und sound benutzen. ich meine damit jetz die SDL Grafik mit OpenGL flag) oder sollte ich lieber etwas zeit investieren und richtig opengl lernen?


Das was du da machst ist "richtiges" OpenGL.
Die SDL hilft dir nur dabei das Fenster zu erzeugen und den OpenGL Context damit zu verbinden.
Und das alles Plattformunabhänig.

Wie das alles ohne SDL geht zeigen die Nehe Tutorials, das ist aber dann an Windows gebunden.

EDIT:
Für 32-Bit mache folgendes:

Quellcode

1
2
3
4
SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 8);


Mit freundlichen Grüßen

Kasenoru

12

27.09.2007, 14:30

@Kasanoru: also wär es praktisch möglich mit SDL nur die Fenster zu initialisieren etc aber die ganze Grafikausgabe praktisch mit reinem OpenGL code zumachen. (wofür ich dann ja auch die Nehe tuts zu Rate ziehen könnte für bestimmte effekte) ?
thx das du mir das mit dem 32 Bit erläutert hast, danach hätte ich sonst nämlich noch gefragt ;)

so, bei 32 Bit hab ich im Durschnitt noch 2,5ms für einen Blittvorgang. Das ist langsam akzeptabel oder sollte ich das noch weiter optimieren? Ich könnte mir denken das das wenn ich mal mehr als 3 texturen blitte immernoch zulangsam seien könnte.

Kasenoru

Frischling

Beiträge: 79

Beruf: Softwareentwickler

  • Private Nachricht senden

13

27.09.2007, 15:24

Zitat

@Kasanoru: also wär es praktisch möglich mit SDL nur die Fenster zu initialisieren etc aber die ganze Grafikausgabe praktisch mit reinem OpenGL code zumachen. (wofür ich dann ja auch die Nehe tuts zu Rate ziehen könnte für bestimmte effekte) ?


Richtig, du kannst sogut wie alles was in den Nehe Tuts steht und mit OpenGL zutun hat anwenden.

Mit freundlichen Grüßen

Kasenoru

14

27.09.2007, 15:33

meinst du es würde trotzdem sinn machen NeHe von vorne nach hinten durchzuarbeiten oder sollte ich lieber nur tuts zu speziellen effekten lesen die mich interessieren?

was würdet ihr mir für eine GUI lib empfehlen für SDL?

DarioFrodo

Treue Seele

Beiträge: 349

Wohnort: Kerkau, 100km nördlich von Magdeburg

Beruf: Selbstständig

  • Private Nachricht senden

15

28.09.2007, 21:54

Du hattest auch einen fehler bei den 16 Bit drin.
3*5 != 16

C-/C++-Quelltext

1
2
3
4
SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 5);
SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE,   6  );
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 5);
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16); 

So müsste es richtig heißen.

Ich verwende auch OpenGL zusammen mit SDL. Sehr empfehlenswert, der einzige Unterschied zu "reinem" OpenGL ist, das du dir den ganzen Initalisierungskram unter Windos sparst, welches dir SDL abnimmt. Und deine Programme sind gleich Theoretisch auf allen Plattformen lauffähig, für dies es OpenGL und SDL gibt.
Erst wenn der letzte Fluss vergiftet,
der letzte Baum gefällt,
der letzte Fisch gefangen,
dann werdet ihr merken, dass man Geld nicht essen kann

Man verkauft die Erde nicht, auf der die Menschen wandeln.

- Indianerweisheiten

Ich bin auch ein einhornimmond ;)

16

28.09.2007, 21:57

oh, du hast recht ;)

ja, SDL mit OGL ist echt nett :)

17

02.10.2007, 09:30

So sry für Doppelpost aber ich habe noch ein Problem was mit der Optimierungsgeschichte bei der Grafikausgabe eng zusammenhängt.

Ich hatte jetzt folgende idee:

Ich teile meine Objekte in MovableObjects und StaticObjects auf und hab auch 2 listen dafür.
Bei MovableObjects ruf ich jeden Frame eine Methode clear auf, die dann ein schwarzes quad über das objekt zeichnet und blitte dann die textur nach der bewegung.
Bei staticObjects passiert das nicht, diese werden nur überschriebne falls sie zurstört werden.
Jetzt meine erste Frage: Was haltet ihr von der Idee? So kannich etwa 140-160 blits pro frame umgehn (je nach level).
Ich schätze das würde mir Selbst bei Hardwareblits einiges an Zeit sparen oder?

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

18

02.10.2007, 10:31

Zitat von »"Eldarion72"«

Was haltet ihr von der Idee?

Ehrlich? Diese Idee ist für die Tonne ;)

Normalerweise macht man es so: einmal pro Frame alles löschen (clear) und alle(!) Objekte rendern. Wenn du magst, kannst du die statischen Objekte auch einmalig in eine Textur rendern und den Inhalt dieser Textur dann vor bzw. nach den dynamischen Objekten darstellen (damit könntest du ein bisschen was an Zeit sparen).

19

02.10.2007, 10:43

ok, alles klar ;)
ne ehrliche meinung ist besser als eine geschönte dir mir im Endeffekt nicht weiterhilft. Also doch alles rendern. Danke :)

Werbeanzeige