Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 14:01

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Colorbuffermix statt textur !?
BeitragVerfasst: Mo Nov 07, 2005 14:44 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Jan 31, 2005 11:02
Beiträge: 432
Wohnort: Rheinlandpfalz
Problem:
In meinem Spiel soll es im Menü eine andere Auflösung als im Spiel geben. Also wechsel ich die Auflösung entsprechend.
Im Menü wird ein sich drehender Ball gezeichnet und das 2D Menü.
Wenn ich vom Spiel ins Menü komme dann ist manchmal (warum auch immer) statt der normalen Ball-tetxur eine andere unbeschreibliche Textur (ein mix aus der Skybox und der tatsächlichen balltextur). Je geringer die Auflösung im Spiel (Menüauflösung bleibt bei 1152*864) desto öfter kommt diese MixTetxur statt meiner Balltextur, was ich an sich schon sehr komisch finde.


Für das laden des Bitmaps benutze ich die glBMP.pas.

Der Ball wird in einer DListe gerendert:
glNewList(ball.dList, GL_COMPILE);
TextureManager.BindTexture('ball.bmp');
DrawSphere(0,0,0,radius,precision);
glEndList();


Hier ein Ablaufbeispiel:

Change Res 1152*864

On Idle: Zeichne Menu
- restliches Menü im Ortho-Modus
- Ball mit richtiger Textur


Change Res 800*600 -> ins Spiel

On Idle: Zeichne Game
- Skybox...
- Ball
- Level etc.


Change Res 1152*864 -> wieder zurück ins menü

OnIdle: Zeichne Menu
- restliches Menü im Ortho-Modus
- Ball mit Mix-textur

-> jetzt wird der Ball manchmal mit einer komischen Textur gerendert (Siehe angehängte Bilder).
Am 'Nordpol' des Balles ist auch die eigentliche Ball-Textur vorhanden.



Code:
  1. procedure ChangeResolution(pWidth, pHeight, pBPP, pFrequency: Word);
  2. var dmScreenSettings: DevMode;
  3. begin
  4.   // Fenster vor Vollbild vorbereiten
  5.   ZeroMemory(@dmScreenSettings, SizeOf(dmScreenSettings));
  6.  
  7.   with dmScreenSettings do begin
  8.     dmSize             := SizeOf(dmScreenSettings);
  9.     dmPelsWidth        := pWidth;     // Breite
  10.     dmPelsHeight       := pHeight;    // Höhe
  11.     dmBitsPerPel       := pBPP;       // Farbtiefe
  12.     dmDisplayFrequency := pFrequency; // Frequenz
  13.     dmFields := DM_PELSWIDTH or DM_PELSHEIGHT or DM_BITSPERPEL or DM_DISPLAYFREQUENCY;
  14.   end;
  15.  
  16.   glViewport(0,0,ScrWidth,ScrHeight);
  17. End;



Hat irgendjemand vielleicht so ein ähnliches Problem schon mal gehabt ?
Irgendeine Vermutung ???
Brauche dringend Hilfe, bin total ratlos!


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
http://texelviews.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Nov 07, 2005 15:40 
Offline
DGL Member
Benutzeravatar

Registriert: Di Nov 26, 2002 22:12
Beiträge: 259
Wohnort: Dresden
Wenn du die Auflösung des Bildschirms änderst, dann musst du auch deinen RC neu erstellen.

_________________
Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jederman ist überzeugt, dass er genug davon habe.
Rene Descartes, frz. Mathematiker u. Philosoph, 1596-1650


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Nov 07, 2005 15:45 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 20, 2005 13:18
Beiträge: 1054
Wohnort: Dresden
Programmiersprache: C, C++, Pascal, OPL
Und auch, wenn es ansich keine Fehlerhilfe ist:
Warum gehst du davon aus, dass der Nutzer 1152*864 als Auflösung hat?
Ich würde an deiner Stelle nicht über 1024 gehen!

_________________
Denn wer nur schweigt, weil er Konflikte scheut, der macht Sachen, die er hinterher bereut.
Und das ist verkehrt, denn es ist nicht so schwer, jeden Tag zu tun als ob's der letzte wär’.
Und du schaust mich an und fragst ob ich das kann.
Und ich denk, ich werd' mich ändern irgendwann.

_________________Farin Urlaub - Bewegungslos


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Nov 07, 2005 16:41 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Also bei mir ist nach dem Ändern der Auflösung noch alles intakt. Sogar, wenn ich die Farbtiefe mit veränedert habe, was mich selber ein wenig verwundert hat. Was mich persönlich ein wenig irritiert ist, dass lediglich dein Ball davon betroffen ist. Also weder deine Skybox noch deine Schrift oder sonst etwas. Und dann kann es ja eigentlich mehr am RC liegen. Aber ausschließen möchte ich das nicht unbedingt. Kann mir schon vorstellen, dass evtl die ein oder andere Implementation da etwas anders macht als man es erwarten würde.

Cyberpuer muss ich außerdem auch recht geben. Ich würde so eine Auflösung nicht zwingend setzen. Es gibt auch noch Leute mit 15"er oder kleinen 17"ern. Wenn es sich einrichten ließe würde ich die Auflösung gar nicht ändern, da ich die Auflösungsänderung immer als recht nervig empfinde.

Du solltest auf jeden Fall auch mal schauen ob du mit glError Fehler bekommst. Also am Besten nach jedem Frame.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 08, 2005 09:46 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Jan 31, 2005 11:02
Beiträge: 432
Wohnort: Rheinlandpfalz
Ok, danke
dann werde ich wohl mal versuchen einen neuen RC zu erzeugen.
Das mit glError werde ich auch noch ausprobieren!!
THX

_________________
http://texelviews.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 08, 2005 11:38 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Noch ne kleine Anmerkung. In der Entwicklung sollte man das glError grundsätzlich IMMER benutzen. Also nach jedem Frame ein mal abfragen tut keines wegs weh und man sieht sofort wenn man vom Standard abgekommen ist. Dann wundert man sich auch nicht warum der Befehl XYZ nicht geht.

Das solltest du evtl. vor den Neu erstellen des RCs tun! Also bevor du das in deinem Code änderst. Das glError ist lediglich ein zusatz.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 6 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 16 Queries | GZIP : On ]