Seite 2 von 2

Re: Basic Plot / Drawto in Assembler

Verfasst: 26.05.2023 10:21
von Dr. Irata
... nochmal ein kurzes Wort zu MADS:

Eingebunden mit WUDSN in Eclipse mit dem Emulator ist das für mich wirklich eine optimale Umgebung, um mit moderner Technik Assemblercode für unseren geliebten Atari zu entwickeln!! Ich könnte mir nichts besseres vorstellen - vielleicht wäre Action! mal interessant. Kann man das in Eclipse einbinden???

Re: Basic Plot / Drawto in Assembler

Verfasst: 26.05.2023 11:49
von cas
[quote="Dr. Irata" post_id=15255 time=1685089261 user_id=250]
Kann man das in Eclipse einbinden???
[/quote]

ACTION! läuft auf dem Atari als Cart, da müsste man den Emulator per Script "fernsteuern". Das habe ich noch nicht getestet, ob es einen Emulator gibt, der das kann. Wäre Interessant das mal herauszufinden.

Unter

New Frontiers in High-Level 6502 Programming
https://8bitworkshop.com/docs/posts/201 ... rogramming

gibt es eine lange Liste von sehr interessanten (zum Teil neuen) Programmiersprachen für den A8. Ich suche noch Mitstreiter, welche an einer Artikel-Serie für das ABBUC Magazin mitmachen um diese Sprachen zu testen und auch von der Code-Qualität zu vergleichen.

Bei Interesse bitte melden.

Re: Basic Plot / Drawto in Assembler

Verfasst: 26.05.2023 12:11
von Dr. Irata
... interessant mit den Sprachen, zeitlich schaffe ich das leider im Moment nicht, auch habe ich ja nur Mac und die meisten Entwicklungen laufen nur auf Windows...


Thema Plot/Drawto:

Habe jetzt mal kurz in der Vormittagszeit den Code wie oben geschrieben vervierfacht und so das "Problem" mit der Phasenverschiebung sehr einfach gelöst... Geschwindigkeitszuwachs von ca. 90 Linien/Sekunde auf 220 Linien/Sekunde. Mal sehen, ob ich das noch weiter steigern kann...

Re: Basic Plot / Drawto in Assembler

Verfasst: 26.05.2023 14:57
von Dr. Irata
... 250 ... mehr geht nicht! Das betrifft natürlich gemessenen Linien, die zwischen mittellang und sehr lang geplottet werden - also die ganze Diagonale des Bildschirmes bei 160/96 Auflösung betrifft.
Wenn ich jetzt in einem 3D Spiel von deutlich kürzeren Linien ausgehe, dann schaffe ich so ca. 500-600 Linien oder mehr pro Sekunde.
Das weitere Vorgehen wird jetzt sein, eine komplette Plotroutine für alle Gerade zu schreiben, dann möchte ich eine Linie animiert darstellen. Danach wird das ganze fürs nächste Heft aufgearbeitet incl. Dokumentation und Code.

Anschließend wird dieses Thema hier geschlossen und ich gehe weiter in die nächste Planung von 3D TempleOfEris, wo ich zunächst ein reines 3D-Raumgerüst erstellen möchte, was man mit dem Joystick entsprechend der Bewegung durch den Raum steuern kann.
Danach kommen die Wandfüllroutinen - also die mögliche Oberfläche (diesen Part stelle ich mir sehr schwierig vor).

Danach sollten (wenn ich überhaupt so weit komme) die Aliens, Schüsse, Kollisionserkennung folgen, dann das gesamte Labyrinthdesign... (in ca. 10 Jahren bin ich dann vielleicht fertig :lol: )

Re: Basic Plot / Drawto in Assembler

Verfasst: 31.05.2023 08:49
von Dr. Irata
... jetzt habe ich die Plotroutine fertig und alle Spezialfälle (Richtungen, Steigungen) sind drin und funktionieren - ein kleiner Fehler muss noch drin sein habe ich gerade gesehen - und kurz mal eine kleine allerdings nicht sehr gute Routine geschrieben, um eine Linie zu zeichnen und die per Random über den Bildschirm zu bewegen.
Damit ist das Kapitel hier fertig... ich arbeite das noch fürs Magazin auf und gehe dann zurück zu Temple Of Eris!
draw.mov
(1003.69 KiB) 36-mal heruntergeladen

Re: Basic Plot / Drawto in Assembler

Verfasst: 31.05.2023 16:33
von Olix
vielleicht noch per Pageflipping arbeiten und dann Quasi die neue Zeile erst anzeigen wenn sie fertig gezeichnet ist...

Re: Basic Plot / Drawto in Assembler

Verfasst: 31.05.2023 18:22
von Dr. Irata
... ich habe jetzt auch die Drawfehler raus und mache den Plot jetzt im VBI, damit das etwas besser aussieht (Danke Janko für den Hinweis). Die Bewegung ist zufallsgesteuert und daher nicht so schön "rund", man müsste Bewegungsmuster hinterlegen, damit es eine feine Demo wird, das habe ich jetzt nicht noch gemacht...
Hier aber nochmal ein kleiner Ausschnitt aus der Draw-Bewegung:
draw2.mov
(1.25 MiB) 45-mal heruntergeladen

Re: Basic Plot / Drawto in Assembler

Verfasst: 31.05.2023 18:36
von DjayBee
Wozu willst du die Linie eigentlich verwenden?

Re: Basic Plot / Drawto in Assembler

Verfasst: 31.05.2023 18:54
von Dr. Irata
ursprünglich wollte ich für mein nächstes Spiel schauen, ob es möglich ist eine Art Ego-Shooter zu machen mit einem 3D Labyrinth... da wurde mir schnell klar, daß ich dafür ganz viele Linien zeichnen lassen muss.
Linien zeichnen in Assembler - gar nicht so einfach. Daher jetzt dieser Beitrag incl. Bresenham- Algorithmus.
Ob ich das am Ende hinbekomme? Fraglich... erstmal alles im Rahmen einer Machbarkeitsstudie ;-)

Re: Basic Plot / Drawto in Assembler

Verfasst: 02.06.2023 12:33
von cas
Noch gefunden (und gerade geschaut):

Let's Code MS DOS 0x20: Bresenham Line Drawing
https://www.youtube.com/watch?v=pMZ-nWpHJdo

Re: Basic Plot / Drawto in Assembler

Verfasst: 02.06.2023 13:44
von Dr. Irata
sehr cool... allerdings brauche ich jetzt noch einen Füllalgorithmus ;-)

Re: Basic Plot / Drawto in Assembler

Verfasst: 02.06.2023 14:37
von Irgendwer
Dr. Irata hat geschrieben:
02.06.2023 13:44
sehr cool... allerdings brauche ich jetzt noch einen Füllalgorithmus ;-)
Na ja, wenn Du ein ausgefülltes "Labyrinth" haben möchtest, brauchst Du keine Linienzeichenroutine.
Der einzig gangbare Weg, so etwas einigermaßen zügig auf dem Atari hinzubekommen ist ein sogenannter "Raycaster". Zu diesem Thema gibt es sehr viel Literatur, Youtube-Tutorials, Beispielcode.

Deine Linienroutine ergibt allerdings Sinn, falls Du eine Drahtgitter 3d-Umgebung erstellen möchtest. Dann brauchst Du aber keinen 'Füllalgorithmus'...

Re: Basic Plot / Drawto in Assembler

Verfasst: 02.06.2023 17:12
von Dr. Irata
... bin mir da noch nicht so ganz sicher, wie es wird.... zunächst probiere ich mal aus die Flächen auch mit vertikalen Drawlinien zu "füllen" - so war mein Plan. Die Routinen sind ja schnell und einfach und wenn ich die schrägen Geraden zeichne, dann kann ich gleichzeitig die Linien mit vertikalen verbinden. Ob das gut funktioniert, weiß ich nicht... so etwas habe ich ja noch nie gemacht.

Re: Basic Plot / Drawto in Assembler

Verfasst: 04.06.2023 18:34
von cas
Das Thema lässt mich nicht los ... heute gab es auf HackerNews (https://news.ycombinator.com) einen Link zu diesem Blog-Post

BRR Lines
A new line drawing method for the cycle savvy
http://www.quiss.org/boo/

Dort hat jemand aus dem C64-Land einen Linien-Algorithmus, welcher oft schneller als Bresenham ist. Ist C64, also anderer Speicher-Layout, aber vielleicht für den A8 adaptierbar.

Re: Basic Plot / Drawto in Assembler

Verfasst: 04.06.2023 21:01
von Dr. Irata
vielen Dank ... mega spannend

Re: Basic Plot / Drawto in Assembler

Verfasst: 08.06.2023 09:59
von LarsImNetz
Hi,
hier mal eine simple Line-Demo.
LINE-DEMO.XEX
(3.78 KiB) 33-mal heruntergeladen
Die zeichnet 17 Pixel auf den Screen. Die Pixel bewegen sich alle gleich schnell in unterschiedliche Richtungen. Erreicht ein Pixel den Rand, fängt er wo anders wieder an.

Wenn der Abstand zwischen 2 Pixeln eine gewisse Schwelle erreicht hat, wird zwischen ihnen eine Linie gezeichnet. Je nach Abstand unterschiedlich hell.
Der Algorithmus für die Abstände ist teuer (~O(n^2/2))

Als Line-Routine hab ich die von ERU verwendet (mal in AtariAge gefunden), da dieser saubere Linien zeichnet. Die Rattenschnelle Line-Version hab ich auch mal probiert, aber die Animation ist nicht merklich flotter, dafür fällt extrem stark auf, wie schlecht der Line-Algorithmus wirklich ist.

Als DoubleBuffer habe ich mir etwas zusammengezimmert, es ist nicht perfekt, aber besser als Flackern oder immer den ganzen Screen kopieren.

Nett anzusehen, aber als Speed-Test nicht zu gebrauchen.

LG
Lars

Re: Basic Plot / Drawto in Assembler

Verfasst: 09.06.2023 00:10
von Dr. Irata
... wie funktioniert denn der Algorithmus von Eru??

Re: Basic Plot / Drawto in Assembler

Verfasst: 09.06.2023 12:46
von LarsImNetz
Wie genau, hab ich nicht analysiert, aber hier hab ich den her:
https://forums.atariage.com/topic/23169 ... lgorithms/

Der superschnelle ist hier:
https://forums.atariage.com/topic/21162 ... e-drawing/

Und Lines in Chars gibt es dann hier:
http://codebase64.org/doku.php?id=base:lines

LG
Lars

Re: Basic Plot / Drawto in Assembler

Verfasst: 07.08.2023 09:10
von cas
Neues Video über schnelle Computergrafik von PCRetroTech:

Animating Ellipses on a Vintage 386 Computer
https://www.youtube.com/watch?v=d8ulXJZD0P8

erklärt die Algorithmen hinter Linien, Kreise und Ellipsen