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

Aktuelle Zeit: Fr Jul 18, 2025 16:42

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



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Texturfehler bei Spriteanimation
BeitragVerfasst: Mo Jul 17, 2006 20:48 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
hi, ich habe ein kleines problem bei meiner sprite engine, die textur landet nicht exakt so auf dem quad wie sie soll, unten und oben sind reste von anderen bildern zu sehen.

zum test verwende ich eine explosionsanimation, die mit dem explosiongenerator generiert wurde.


so wird gezeichnet:
Code:
  1.  
  2.   with Animations[aIndex] do
  3.   begin
  4.     glTexCoord2f( Coordx      * (1 / AnimCountX), (CoordY + 1) * (1 / AnimCountY));
  5.     glVertex3f(-TmpWidth, -TmpHeight, Z - MaxDepth + 2);
  6.     glTexCoord2f((CoordX + 1) * (1 / AnimCountX), (CoordY + 1) * (1 / AnimCountY));
  7.     glVertex3f( TmpWidth, -TmpHeight, Z - MaxDepth + 2);
  8.     glTexCoord2f((CoordX + 1) * (1 / AnimCountX),  CoordY      * (1 / AnimCountY));
  9.     glVertex3f( TmpWidth,  TmpHeight, Z - MaxDepth + 2);
  10.     glTexCoord2f( CoordX      * (1 / AnimCountX),  CoordY      * (1 / AnimCountY));
  11.     glVertex3f(-TmpWidth,  TmpHeight, Z - MaxDepth + 2);
  12.   end;
  13.  


und so wird gerechnet:
Code:
  1.  
  2.   with Animations[aIndex] do
  3.   begin
  4.     if (CoordX > -1) and (Coordy > -1) and
  5.     (Coordx <= AnimCountX) and (CoordY <= AnimCountY) then
  6.       Position := Position + 1000 * pEngine.Timestep;
  7.  
  8.     if (Position >= ((Duration) / (AnimCountX * AnimCountY))) then
  9.     begin
  10.       Position := 0;
  11.       inc(CoordX);
  12.  
  13.       if CoordX > (AnimCountX - 1) then
  14.       begin
  15.         CoordX := 0;
  16.         inc(CoordY);
  17.       end;
  18.  
  19.       // Wiederholen ?
  20.       if (CoordY > AnimCountY - 1)  then
  21.         if ploop then
  22.         begin
  23.           CoordX := 0;
  24.           CoordY := 0;
  25.         end else
  26.         begin
  27.           Coordx := -1;
  28.           Coordy := -1;
  29.         end;
  30.     end;
  31.   end;
  32.  


ich hoffe ihr könnt mir helfen :( die rechnung scheint richtig zu sein, es handelt sich ja nur um ein paar pixel Oo

das ding ist ja, dass das ganze bei meiner tileengine, die auf dem code basiert nicht auftritt Oo


mfg und danke schonmal ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 17, 2006 21:06 
Offline
DGL Member

Registriert: Di Jun 06, 2006 09:59
Beiträge: 474
Stell mal testweise auf Nearest-filterung um. Wenn die Fehler dann noch da sind, liegts an deiner Berechnung, ansonsten beieinflussen umliegende pixel über Linear-Filterung dein Ergebnis.
Wenn es an der Filterung liegt hilft es um jedes Frame einen Rahmen in der Farbe des nächsten Pixels innerhalb des Frames zu malen. Dein Auswahlbereich sollte diese Rahmenpixel jedoch nicht mit auswählen. Sie dienen nur zum vermeiden von fehlern am Rand.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jul 18, 2006 13:32 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
danke, das hat geholfen ;)


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder 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 | 15 Queries | GZIP : On ]