ah... mist.. mein denkfehler... >__<"
ja kagge, tut mir leid. war ein fehler in meiner logig. du bräuchtest OR statt XOR, son phak.
dann wirst du wohl eine ASM-lösung brauchen, also ein OR-Line Algo selber schreiben... 9_9""
Additive Farbmischung für alle Grafikbefehle?
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
FPS ade...
Die Anforderungen sind, daß es nicht schon bei einem 3-Punkte Objekt ohne Flächen; nur Linien; anfängt zu rucken! 
Ab 10000 Punkte darf es, aber in dieser Phase sollte das Prog irgendwie schneller laufen als die manchmal 8 FPS, die es jetzt macht, wenn es Lust hat! Naja, meist schießt es sich auf 20 ein, aber das bei gerade mal 4 abzubildenden 3d-punkten (von flächen rede ich gerade nicht... die kommen später ind kosten mich garantier nochmal jede Menge FPS)
Das Objekt flüssig drehn sollte man können, sollte nicht unter 20 FPS gehn.
Habe übrigens die Idee mit dem Alpha-Blending (nach ein paar seltsam aussehenden Fehlschlägen) irgendwie hingekriegt. Er rendert jetzt im normalen drawingmode das grüne Bild auf einen Sprite und das Rote auf ein anderes (zum Glück nimmt er die Regel "Texturen müssen quadratisch sein!" irgendwie nicht so ernst...), dann werden beide per AlphaBlendingMode=... (Nr gerade vergessen, aber er mischt sie zusammen...) übereinander angezeigt.
Aber die FPS nehmen mit das 2fache Startdrawing(spriteoutput()) auf jeweils einen sprite und das startdrawing(srceenoutput()) das ich noch für die Anzeige von Koordinaten o.ä. brauche, irgendwie übel; jetzt geht die FPS schon von 61 auf 30 runter, nur weil ich auf den rotgrün-Bild-anzeigen-Modus schalte....
Und im Gegensatz zum "nicht ständig startdrawing oder start3d aufrufen, sondern alles an einem stück zeichnen" fällt mir nichmal ein, wie ich das weiter optimieren könnte...
ich muß ja von einem Sprite auf das andere schalten und ohne start3d muß auch zusätzlich zu startdrawing(screen..) vorkommen, sonst werden sie nur berechnet und nicht angezeigt.
Naja, soweit funktioniert es, wenn auch langsamer als vorher...; trotzdem Danke!

Ab 10000 Punkte darf es, aber in dieser Phase sollte das Prog irgendwie schneller laufen als die manchmal 8 FPS, die es jetzt macht, wenn es Lust hat! Naja, meist schießt es sich auf 20 ein, aber das bei gerade mal 4 abzubildenden 3d-punkten (von flächen rede ich gerade nicht... die kommen später ind kosten mich garantier nochmal jede Menge FPS)
Das Objekt flüssig drehn sollte man können, sollte nicht unter 20 FPS gehn.
Habe übrigens die Idee mit dem Alpha-Blending (nach ein paar seltsam aussehenden Fehlschlägen) irgendwie hingekriegt. Er rendert jetzt im normalen drawingmode das grüne Bild auf einen Sprite und das Rote auf ein anderes (zum Glück nimmt er die Regel "Texturen müssen quadratisch sein!" irgendwie nicht so ernst...), dann werden beide per AlphaBlendingMode=... (Nr gerade vergessen, aber er mischt sie zusammen...) übereinander angezeigt.
Aber die FPS nehmen mit das 2fache Startdrawing(spriteoutput()) auf jeweils einen sprite und das startdrawing(srceenoutput()) das ich noch für die Anzeige von Koordinaten o.ä. brauche, irgendwie übel; jetzt geht die FPS schon von 61 auf 30 runter, nur weil ich auf den rotgrün-Bild-anzeigen-Modus schalte....
Und im Gegensatz zum "nicht ständig startdrawing oder start3d aufrufen, sondern alles an einem stück zeichnen" fällt mir nichmal ein, wie ich das weiter optimieren könnte...

Naja, soweit funktioniert es, wenn auch langsamer als vorher...; trotzdem Danke!
If OSVersion() <> #PB_OS_Windows_ME : End : EndIf !!!
Sprite3D oder Sprite Ausgabe umleiten
Ich benutze jetzt die Methode mit den 2 Bildern, die per Blending (ich glaube 5,3 oder so sind die Parameter...) gemischt werden. Allerdings habe ich auch 2 und 3D Sprites, die angezeigt werden.
Die landen aber immer auf dem Screen, weil ich nicht wie für 2D Befehle (LineXY) ein DrawingOutput auf SpriteOutput stellen kann.
Ich weiß ich hab's irgendwo mal gelesen, aber ich finde es nicht mehr; da wa irgendwas, was man verstellen konnte, damit auch Sprites auf dem angegebenen Output (oder einem Image oder irgendwas anderem als dem Screen) angezeigt werden. (bzw. mit dem entsprechenden Bild gemischt werden; angezeigt wird später alles auf einmal mit dem BlendingMode...).
Aber ich finde den Befehl nicht wieder... Weiß einer, was das gewesen sein könnte?
Die landen aber immer auf dem Screen, weil ich nicht wie für 2D Befehle (LineXY) ein DrawingOutput auf SpriteOutput stellen kann.
Ich weiß ich hab's irgendwo mal gelesen, aber ich finde es nicht mehr; da wa irgendwas, was man verstellen konnte, damit auch Sprites auf dem angegebenen Output (oder einem Image oder irgendwas anderem als dem Screen) angezeigt werden. (bzw. mit dem entsprechenden Bild gemischt werden; angezeigt wird später alles auf einmal mit dem BlendingMode...).
Aber ich finde den Befehl nicht wieder... Weiß einer, was das gewesen sein könnte?
If OSVersion() <> #PB_OS_Windows_ME : End : EndIf !!!
Ich werd nicht ganz schlau draus, was Du jetzt auf was zeichnen willst, aber vielleicht meinst Du ja UseBuffer()?
Übrigens:
Sven
Übrigens:
Versuchs trotzdem mal mit quadratischen 2^n-Pixel-Sprites, sonst geht das auf anderen Grafikkarten irgendwann schief.zum Glück nimmt er die Regel "Texturen müssen quadratisch sein!" irgendwie nicht so ernst...
Mach doch die Koords auch auf ein (kleines) Sprite und zeige das mit an, das dürfte schneller gehen. Und Du musst den Text nicht jedesmal neu zeichnen, da er auf dem Sprite ja erhalten bleibt. Dann kannst Du dem Text sogar eine Transparenz geben...startdrawing(srceenoutput()) das ich noch für die Anzeige von Koordinaten o.ä. brauche
Sven
Ich werd nicht ganz schlau draus, was Du jetzt auf was zeichnen willst, aber vielleicht meinst Du ja UseBuffer()?
Übrigens:
Sven
Übrigens:
Versuchs trotzdem mal mit quadratischen 2^n-Pixel-Sprites, sonst geht das auf anderen Grafikkarten irgendwann schief.zum Glück nimmt er die Regel "Texturen müssen quadratisch sein!" irgendwie nicht so ernst...
Mach doch die Koords auch auf ein (kleines) Sprite und zeige das mit an, das dürfte schneller gehen. Und Du musst den Text nicht jedesmal neu zeichnen, da er auf dem Sprite ja erhalten bleibt. Dann kannst Du dem Text sogar eine Transparenz geben...startdrawing(srceenoutput()) das ich noch für die Anzeige von Koordinaten o.ä. brauche
Sven