unerwünschte Verzerrung von Sprites

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

AcidRain

Betreff: unerwünschte Verzerrung von Sprites

BeitragFr, Okt 26, 2007 13:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Tach,

Ich habe ein Sprite-interface für einen egoshooter programmiert.Das funktioniert klasse.Nun sollte man ja möglichst die entityOrder herabsetzen(-10 oder so) damit das interface auch garantiert vor allen anderen sachen angezeigt wird.allerdings verzerren sich die sprites wenn ich dies angewand habe und mich bewege.weiß jemad woran das liegen könnte/wie ich das beheben könnte?

mfg
 

Dreamora

BeitragFr, Okt 26, 2007 14:05
Antworten mit Zitat
Benutzer-Profile anzeigen
klingt als hättest du keine quadratische 2er Potenz Textur (128x128, 256x256) genommen für den Sprite.
Texturen müssen zwingend diese Anforderungen erfüllen damit sie gehen. Nicht zweier Potenz führt dazu, dass sie von Blitz gestreckt werden.
Nicht quadratisch verletzt den DX7 Standard und führt auf verschiedenen Karten dazu dass die Textur garnicht geladen wird und es zum Crash kommt (auch neuere NVIDIA, also nicht nur steinzeit karten).
Darüber hinaus sind quadratische Texturen auch besser, da sie weniger Frames verbrauchen, das liegt daran dass die Grafikkarten intern sowieso nur mit quadratischen rumhantieren und bei nicht quadratischen extra arbeit haben.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

AcidRain

BeitragFr, Okt 26, 2007 15:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein,daran liegt es nicht.
alles quadratisch.
ich habe ja extra geschrieben:bei BEWEGUNG gibt es eine extreme Verzerrung,also keine streckung oder so,sondern das sprite verzerrt sich nach obenrechts,untenlinks,zickzack...mh
ich mach n screen:
normal:
user posted image
in bewegung:
user posted image
 

Dreamora

BeitragFr, Okt 26, 2007 15:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Tut mir leid ich seh da nichts was irgendwie irgendwas mit verzerrung und so zu tun hat.


Auch sehe ich da die VSync linien nicht die ich noch am ehesten erwartet hätte.

Aber vielleicht meinst du auch die verzerrung die man bei objekten an der kante immer erhält wenn man den Camera Zoom net anpasst, wodurch es bei weltraum spielen wie ein "fischauge" aussieht.
das hätte dann nichts mit nem sprite oder so zu tun jedoch.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

BladeRunner

Moderator

BeitragFr, Okt 26, 2007 16:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Dream, dann solltest Du nochmal genauer gucken: das Fadenkreuz wird augenscheinlich deformiert auf dem 2en Bild.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

Code der Verwirrung

BeitragFr, Okt 26, 2007 16:42
Antworten mit Zitat
Benutzer-Profile anzeigen
wie das wohl kommen kann?? die sprite besteht ja aus nur 2 dreiecken. wie kann sie dann ab der mitte verzogen werden hm.....
ps: sieht echt gut aus der screen.

mfg CdV

NightPhoenix

BeitragFr, Okt 26, 2007 16:46
Antworten mit Zitat
Benutzer-Profile anzeigen
interessant... sowas rauszufinden find ich immer toll, hatte auch schon öfters solche komischen fehler Wink

Letztendlich lags meistens an meinem Abstand zum Koordinatenmittelpunkt. Meines Wissens nach wird ja bei Entfernung zum absoluten koord. Nullpunkt die Berechnung von allen Koordinaten ungenauer... darunter fallen auch die Sprites. Hab ich bei nem Versuch in einem Weltraumspiel mal ins unendliche zu fliegen bemerkt als sich plötzlich die HUD sprites nicht mehr zur kamera drehten, sondern einfach stur im Raum stehen blieben Wink
Entweder es liegt daran, dass du kein Bewegungssystem entwickelt hast was dies bei großen Entfernungen verhindert, oder es liegt am code.
Könntest du uns paar Zeilen Code aus dem Abschnitt für die Bewegung der Figur geben? Desweiteren wäre vielleicht noch das Laden des Fadenkreuzes, dessen Eigenschaften und natürlich auch der Code der Parentobjekte des Fadenkreuzes interessant.

MfG.
 

Dreamora

BeitragFr, Okt 26, 2007 17:05
Antworten mit Zitat
Benutzer-Profile anzeigen
BladeRunner hat Folgendes geschrieben:
Dream, dann solltest Du nochmal genauer gucken: das Fadenkreuz wird augenscheinlich deformiert auf dem 2en Bild.


Stimmt, darauf hatte ich garnicht geachtet, weil ich nie auf die Idee käme das Fadenkreuz so zu basteln.
Ging von dem Sprite aus der in der Luft hängt.

Und ja der Fehler kommt ziemlich sicher weil das ganze nicht gleichmässig in alle Dimensionen skaliert wurde.
denn auch das erste sieht schon falsch aus irgendwie.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

AcidRain

BeitragFr, Okt 26, 2007 17:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Laden des Fadenkreuzes(tritt aber auch bei allen sprites auf,die parent zur kamera sind):
Code: [AUSKLAPPEN]
aim=LoadSprite("Data/2D/aim.bmp",256)
SpriteViewMode aim,2
MoveEntity aim,0,60,1.2
ScaleSprite aim,0.02,0.02
EntityParent aim,Kamera
EntityOrder aim,-1
RotateEntity aim,0,0,45

Die Kamera wiederum ist parent zu einer kugel,die auf folgende simple weise bewegt wird:
Code: [AUSKLAPPEN]
If KeyDown(32) Then MoveEntity Testc,0.5*speedom,0,0:move=1
If KeyDown(30) Then MoveEntity Testc,-0.5*speedom,0,0:move=1
If KeyDown(17) Then MoveEntity Testc,0,0,0.5*speedom:move=1
If KeyDown(31) Then MoveEntity Testc,0,0,-0.5*speedom:move=1

speedom ist die Variable ,die sich aus den Wunschfps(60) durch die vorhandenen fps ergibt.
Ps:bei niedrigerer fps zahl verstärkt sich der effekt.

NightPhoenix

BeitragFr, Okt 26, 2007 18:08
Antworten mit Zitat
Benutzer-Profile anzeigen
funktionierts denn wenn du spriteviewmode auf 1 stellst und das Sprite nicht um Z=45 rotierst?

EDIT:
Code: [AUSKLAPPEN]
MoveEntity aim,0,60,1.2

60 Einheiten sind schon ziemlich viel, an welcher Raumkoordinate befindet sich denn dein Spieler? (EntityX, usw.)

AcidRain

BeitragSa, Okt 27, 2007 11:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
funktionierts denn wenn du spriteviewmode auf 1 stellst und das Sprite nicht um Z=45 rotierst?

nö.
Zitat:
60 Einheiten sind schon ziemlich viel, an welcher Raumkoordinate befindet sich denn dein Spieler? (EntityX, usw.)

Das ist die Position der Kamera(also,0,60,0).

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group