Fehler in Blitz3D?

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

TACITUS

Betreff: Fehler in Blitz3D?

BeitragMi, Feb 22, 2006 15:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin zurzeit an einem 3D-SpaceShooter dran und habe die Kamera
als Child zu meinem SpaceShip hinzugefügt. Beim Starten habe ich bemerkt,
dass die Kamera anfängt ein bisschen zu zittern wenn der pitch oder yaw-
winkel verändert wird. Das wird vor allem bei Blureinsatz sichtbar. Ich hab
schon so ziemlich alles versucht, also kann es sein, dass es sein kann,
dass das ein Fehler in BlitzBasic ist?

Wer sich den kurzen(!) Code durchschauen will kann das hier mit allen
Medien tun

Danke für die Hilfe(?)
AMD Athlon 64 X2 4200+ Dual Core Prozessor _ 1024 MB Dual Channel DDR RAM _ GeForce 7800 GT PCI Express 256 MB GDDR3 RAM _ Festplatte 410 GB _ DirectX 9.0c
User posted image

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMi, Feb 22, 2006 15:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Sieht so aus als würde man in eine Atmosphäre rein fliegen. Im Weltraum sicherlich nicht Sinnvoll... Ich würde die Kamera komplett vom Schiff lösen und so etwas wie eine Ist/Soll-Position einbauen und dann immer von der Istposition in die Sollposition 'sliden'. Der Kamera also eine eigene Geschwindigkeit und Position geben... Dann hättest du auch das 'zucken' weg, was passiert wenn man die Richtung ändert...
 

TACITUS

BeitragMi, Feb 22, 2006 16:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich weiss was du meinst, das hatte ich davor drin, aber das hat dann net
mit der pitcherei gefunzt also hab ich es ganz einfach so gemacht wie es jetzt
ist. Aber der Fehler ist noch immer da, das muss doch wegzubekommen sein
wenn es kein Blitz-Bug ist.

PS: Richtung von was ändern?
AMD Athlon 64 X2 4200+ Dual Core Prozessor _ 1024 MB Dual Channel DDR RAM _ GeForce 7800 GT PCI Express 256 MB GDDR3 RAM _ Festplatte 410 GB _ DirectX 9.0c
User posted image
 

HW

BeitragMi, Feb 22, 2006 16:53
Antworten mit Zitat
Benutzer-Profile anzeigen
TACITUS hat Folgendes geschrieben:
PS: Richtung von was ändern?

Die Richtung vom Raumschiff und somit von der Kamera. Und du könntest dem Vorschlag von hectic gemäß auch eine Soll Rotation einfügen. Wenn du es geschickt anstellst, wird es sicher funktionieren.

Mr.Keks

BeitragMi, Feb 22, 2006 17:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Also derartige Bugs sind bei mir noch nie aufgetreten. Was mit bei deinem Programm auffält: Du benutzt einen wahnwitzig riesigen Maßsstab. Das sollte eigentlich durch Floats egal sein, aber das ist jetzt das einzige, was ich nicht auch schonmal versucht hätte.

Ach, und mal was ganz allgemeines zu deime Codestil: Vielleicht bieten sich bei dir ja Types eher an...
MrKeks.net

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMi, Feb 22, 2006 23:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit Richtung ändern meinte ich... Wenn man zuerst nach links gesteuert hat, dann nach rehts steuert, dann sieht es so aus als würde die Kamera 'sich mal überlegen' plötzlich das ganze aus einem anderem Blickwinkel zu betrachten... Was nicht so gut aussieht, finde ich...

Bob

BeitragDo, Feb 23, 2006 14:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi tacitus

Zitat:
Beim Starten habe ich bemerkt,
dass die Kamera anfängt ein bisschen zu zittern wenn der pitch oder yaw-
winkel verändert wird.


Ich würde sagen das das zittern daran liegt das die Kamera bzw das Schiff permanent in bewegung ist auch wenn Speed roll und pitch angeblich 0 sind.

Text 10,50,entityx(vKamera1) +" " + entityy(vKamera1) + " " +entityz(vKamera1)

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, Feb 23, 2006 22:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Zittern nimmt bei mir mit der Geschwindigkeit zu. Würde mal darauf tip(p)en was Inarie geschrieben hat. Das die Skallierung einfach zu groß ist... Auch wenn es Float ist, kann nicht überall eine der nötigen Genauigkeiten durchgeführt werden. Eine Float ist nur im Nullbereich sehr genau. Je weiter der Nullbereich verlassen wird, wird die Auflösung der Nachkommastellen verringert...

Bob

BeitragFr, Feb 24, 2006 9:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich kann mich täuschen aber ich denke das dass Zittern bei Geschwindigkeitzzunahme beabsichtigt ist. Nicht jedoch wenn die Geschwindigkeit 0 beträgt.
Allerdings denke auch ich das die Skalierung mit dem Problem in zusammenhang steht.
Er soll an den Spielen teilnehmen bis er spielend stirbt. MCP - TRON
 

TACITUS

BeitragFr, Feb 24, 2006 13:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Zittern mit der Geschwindigkeit ist schon richtig, aber natürlich hab ich
den Teil weggemacht, zittert trotzdem.
Naja ich versuch dann mal alles zu verkleinern, danke
AMD Athlon 64 X2 4200+ Dual Core Prozessor _ 1024 MB Dual Channel DDR RAM _ GeForce 7800 GT PCI Express 256 MB GDDR3 RAM _ Festplatte 410 GB _ DirectX 9.0c
User posted image
 

TACITUS

BeitragFr, Feb 24, 2006 21:06
Antworten mit Zitat
Benutzer-Profile anzeigen
huhuhu
schaut mal was passiert, wenn man diese zeile
ScaleEntity VPLAYERSPACESHIPmesh,0.5,0.5,0.5
durch diese ersetzt:
ScaleEntity VPLAYERSPACESHIPmesh,0.05,0.05,0.05
den massstab also verkleinert

Ihr meint dann wackelts weniger? na dann schaut mal
AMD Athlon 64 X2 4200+ Dual Core Prozessor _ 1024 MB Dual Channel DDR RAM _ GeForce 7800 GT PCI Express 256 MB GDDR3 RAM _ Festplatte 410 GB _ DirectX 9.0c
User posted image
 

Dreamora

BeitragFr, Feb 24, 2006 22:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Problem hatte ich auch mal, muss nur schauen ob ich den Sourcecode finde, wo das problem auftratt.

Etwas was du auf jeden Fall noch machen musst, ist die Lichter hiden. 5 Lichter gleichzeitig in der szene würden fast unter garantie zu einem zusammenbruch der FPS führen.

Auch die Maximalekamera Range sollte 1,30000 nicht übersteigen, sonst wirst du grosse bis extrem grosse Probleme bekommen (also Linepick und vieles anderes funktioniert nimmer und was vorne-hinten kommt auch durcheinander)

EDIT:

hahahahahaha

OK der fehler war eigentlich logisch, wir sind doof Leuts, voll die Noobs *ggg* (bzw. wir denken da schon nimmer dran Wink)

Das Problem ist die Zeile Print direkt nach den Lichtern. In 3D musst du Text benutzen. Warum? Ist dir aufgefallen das der text runter geht? Du weisst sicher was bei einer Konsole passiert wenn er unten ankommt: Er schiebt alles eine Zeile hoch um wieder unten zu schreiben ... und nu schau dir ma die Dicke des "flackerstreifens" an *gggg* (wenn du das waittimer raus nimmst, dann siehst du den streifen sehr gut)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

TACITUS

BeitragSa, Feb 25, 2006 12:26
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn ich waittimer rausnehme seh ich erstmal garnichts mehr, ausser den
fps-zähler auf etwa 5.000 springen, mein pc ist zu gut für keinen timer.
amd athlon 64 4200+ dualcore....

ok, also ich werde mal die lichter ausschalten und die range gescheit machen
sry
AMD Athlon 64 X2 4200+ Dual Core Prozessor _ 1024 MB Dual Channel DDR RAM _ GeForce 7800 GT PCI Express 256 MB GDDR3 RAM _ Festplatte 410 GB _ DirectX 9.0c
User posted image
 

Dreamora

BeitragSa, Feb 25, 2006 12:33
Antworten mit Zitat
Benutzer-Profile anzeigen
dann solltest du vielleicht mal VSync im treiber wieder einschalten oder auf application default Wink
Dann würdest du maximal 100 fps bekommen.

der 2te core ist übrigens nutzlos für Blitz (egal welches), da es single threaded ist Wink


Immerhin wissen wir jetzt warum es flackert und konnten das lösen Smile
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

TACITUS

BeitragDi, Feb 28, 2006 10:18
Antworten mit Zitat
Benutzer-Profile anzeigen
VSync ist an und übrigens auch alles andere was man anmachen konnte.
Grafikkarte ist so hoch gestellt wie nur möglich und es läuft trotzdem mit
1000fps. Aber das ist nicht das Problem.
Das Problem besteht immer noch.
Könnte mir vielleicht jemand bitte den kurzen Codeteil reintippen mit der
Nicht-Parent-Kamera, ich glaub ich hab das falsch gemacht, bitte.

Danke
AMD Athlon 64 X2 4200+ Dual Core Prozessor _ 1024 MB Dual Channel DDR RAM _ GeForce 7800 GT PCI Express 256 MB GDDR3 RAM _ Festplatte 410 GB _ DirectX 9.0c
User posted image

d-bug

BeitragDi, Feb 28, 2006 11:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du 1000fps hast, dann ist Vsync mit Sicherheit aus !!!

cheers
 

TACITUS

BeitragDi, Feb 28, 2006 12:54
Antworten mit Zitat
Benutzer-Profile anzeigen
naja, von mir aus.
Jedenfalls musste ich den Speed des Spaceships auf 0.001 setzen, jetzt ist er
auf 1 und VSync ist an...
AMD Athlon 64 X2 4200+ Dual Core Prozessor _ 1024 MB Dual Channel DDR RAM _ GeForce 7800 GT PCI Express 256 MB GDDR3 RAM _ Festplatte 410 GB _ DirectX 9.0c
User posted image
 

Dreamora

BeitragDi, Feb 28, 2006 15:13
Antworten mit Zitat
Benutzer-Profile anzeigen
So kannste das Spiel net programmieren.

Die Geschwindigkeit muss FPS abhängig sein, damit es auch auf langsameren Systemen gleich schnell fliegt. Am besten fängste damit von Anfang an an, denn später alles umschreiben ist recht umständlich.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

TACITUS

BeitragMi, März 01, 2006 9:30
Antworten mit Zitat
Benutzer-Profile anzeigen
??Ich hab doch'n Timer eingebaut.

Wieso nochmal anfangen? Es ist doch alles ganz gut, bis auf diesen
Wackel-Fehler der aber nicht meine Schuld ist... Confused
AMD Athlon 64 X2 4200+ Dual Core Prozessor _ 1024 MB Dual Channel DDR RAM _ GeForce 7800 GT PCI Express 256 MB GDDR3 RAM _ Festplatte 410 GB _ DirectX 9.0c
User posted image

d-bug

BeitragMi, März 01, 2006 9:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Niemand hat gesagt du sollst von vorne anfangen, Dreamora sagte lediglich,
daß man von Anfang an Frame sein Werk unabhängig gestalten sollte, da
das nachträgliche Einbauen sehr umständlich und Motivations fressend ist.
Trotzdem empfehle auch ich dir es zu machen, denn es hat definitiv nur
Vorteile.

Solltest du nicht wissen wie es geht findest du hier ein wenig Lektüre zu
dem Thema.

Wenn dein Timer aus der allseits beliebten Waittimer oder Delay Methode
besteht, dann schmeiß ihn am besten gleich wieder raus, denn das ist
nicht sehr empfehlenswert. Delay stoppt das ganze Programm, also auch
alle Berechnungen die in der Zeit machen könntest.

cheers

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group