amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Suche [ - Suche - Neue Beiträge - Registrieren - Login - ]

Erste << 6 7 8 9 10 -11- 12 13 14 15 16 >> Letzte Ergebnisse der Suche: 707 Treffer (30 pro Seite)
bubblebobble   Nutzer

11.04.2006, 11:46 Uhr

[ - Direktlink - ]
Thema: Glaskörpertrübung - schwarze Flecken vor den Augen. Was tun?
Brett: Get a Life

Willkommen im Club!

Ich habe das seit ca. 5 Jahren, und man gewöhnt sich nicht dran, d.h. man sieht die Flecken. Das ist wie ein Pixelfehler auf dem TFT Monitor, sehr ärgerlich. Meistens wird es auch noch etwas schlimemr, d.h. die Flecken dunkler und größer.

Falls es eine Behandlung gibt, lass es mich bitte wissen. Mein Arzt meinte nein.


[ Dieser Beitrag wurde von bubblebobble am 11.04.2006 um 11:46 Uhr geändert. ]
 
bubblebobble   Nutzer

10.04.2006, 12:22 Uhr

[ - Direktlink - ]
Thema: Typisch Deutsch ?
Brett: Get a Life

Typisch deutsch ist:

1. fleissig und produktiv
So wenig arbeitende Menschen ernähren so viele bei so wenig Arbeitszeit, das gabs noch nie in der Geschichte der Menschheit.
(und das obwohl wir auch noch einen grossen Overhead an Bürokratie haben)

2. wohlhabend aber trotzdem bescheiden und sparsam
Weltmeister im Energie sparen, recyceln, 13% des Gehalts wird gespart, vgl. USA mit -0.5%

3. ehrlich
Wenig Korruption und Kleinkiminalität. Ich meine jetzt bewusst nicht auf hoher Ebene, das kann man schwer abschätzen und fällt nicht in meinen Erfahrungsbreich. Ich meine kleine Dinge wie beim Wechsel Geld übers Ohr gehauen werden, höhere Preise für Ausländer. Kauft mal auf einem polnischen Markt als (offensichtlich) Deutscher ein, oder z.B. "Strafen" seitens der Polizei für zu-schnell-fahren oder Falschparken in der Tschechei oder Spanien richten sich nach der Nationalität.

4. erfinderisch
Deutschland hat immer noch die meisten Patent-Anmeldungen pro Jahr,
sehr viele Grundlegende Erfindungen kommen aus Deutschland.

5. chronische Selbst-Unterschätzung und kein Stolz
Unsere Fussball Nationalmannschaft wird eigentlich immer runtergeputzt von der eigenen Presse. Und am Ende stehen sie doch im Finale, und es ist einfach eine der besten Mannschaften der Welt.

Wer dagegen widerspricht, gibt das beste Beispiel für 5. ab.

--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de



[ Dieser Beitrag wurde von bubblebobble am 10.04.2006 um 12:24 Uhr geändert. ]
 
bubblebobble   Nutzer

08.04.2006, 17:51 Uhr

[ - Direktlink - ]
Thema: HD-Rec DSP Effecte PPC native für OS4
Brett: Programmierung

Habs dir geschickt.

Gibt es noch jemand, der für Amithlon kompilieren kann?
Das wäre das i-Tüpfelchen. ;-)

--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de

 
bubblebobble   Nutzer

07.04.2006, 10:58 Uhr

[ - Direktlink - ]
Thema: HD-Rec DSP Effecte PPC native für OS4
Brett: Programmierung

Ok, super. Dann schicke ich dir mal was ich bis jetzt an Sourcen habe heute abend.
Es wäre wirklich wichtig, einmal ein gutes Framework zu haben, sodass das portieren von neuen Effekten leicht geht, also man wenig an den eigentlichen Funktionen rumpfuschen muss. Das Framework so wie es jetzt ist, benötigt beim eigentlichen Effekt keine MOS oder 68K Switches, das hilft sehr beim Portieren.

--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de

 
bubblebobble   Nutzer

06.04.2006, 19:29 Uhr

[ - Direktlink - ]
Thema: HD-Rec DSP Effecte PPC native für OS4
Brett: Programmierung

Ja, deshalb ist ein blosser Recompile nicht ausreichend.
Es müssen einige Headerdateien angepasst werden, mit OS4 switches.
Bei MOS war das wohl einfacher. Wie und ob es bei Amithlon geht, weiss ich nicht. Cool wäre es aber x86 native Effekte zu haben, vorrausgesetzt es ist schneller als der JIT+Amiblitz.

Die Effekte an sich sind aber schon nach C portiert und recht simpel, da sie quasi kaum API des OS benutzen, dürften sich also überall compilieren lassen.

--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de

 
bubblebobble   Nutzer

06.04.2006, 11:55 Uhr

[ - Direktlink - ]
Thema: HD-Rec DSP Effecte PPC native für OS4
Brett: Programmierung

Hallo Alle!

Dank der Hilfe von Pasi habe ich jetzt einige DSP Effekte für HD-Rec nach C portiert und für MOS und 68K compiliert.
Für 68K bringt es zwar nichts, weil Amiblitz genauso schnell ist, aber ich kann selbst Effekte bei mir auf dem Amithlon/WinUAE portieren und testen.

Die DSP Effekte von HD-Rec sind normale Amiga Shared Libraries, die alle die gleichen Funktionen besitzen, wie z.B. fx_create, fx_remove, fx_process, fx_reset etc., nur der Name der Libraries ist jeweils anders, also fx_pitchshifter.library, fx_reverb.library etc.

Das Projekt ist so aufgebaut, dass es ein Framework gibt, das von allen Effekten genutzt wird. Die eigentlichen Funktionen der Effekte sind in einer Effekt-spezifischen Datei. Somit ist eine neuer Effekt auf eine .c und eine .h Datei beschränkt, ohne dass man jedesmal tausende von extra Dateien anlegen muss.

Jetzt meine Frage, hätte jemand Lust das ganze für OS4 und/oder für Amtihlon zu kompilieren ?
(und natürlich zuzustimmen, dass ich die Libs veröffentlichen kann)

Ich denke für OS4 wäre ein spürbarer Speedup möglich durch native Effekte. In C gibt es auch den kompletten Audio Renderer und das CPU Meter. Dadurch wäre quasi alles Speed-Kritische von HD-Rec nativ.

Als Belohnung gibts ein Vollversion-Keyfile für HD-Rec, Sweeper und Ultra-FX pack. (... und natürlich native DSP Effekte!)

--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de



[ Dieser Beitrag wurde von bubblebobble am 06.04.2006 um 11:56 Uhr geändert. ]
 
bubblebobble   Nutzer

05.04.2006, 17:45 Uhr

[ - Direktlink - ]
Thema: UAE vom Stick starten ohne Installation?
Brett: AROS und Amiga-Emulatoren

Da das ist kein Problem, auch auf CD ist kein Problem.
Du musst nur die PFade alle relativ zur Isntallation setzen,
z.B. zum kickrom etc. also nicht etwa

C:\Programme\WinUAE\kick.rom
sondern
.\kick.rom

Du startest dann die WinUAE exe und es startet in AmigaOS hinein,
wenn man "show GUI" abschaltet unter "misc".

Das einzige was nach der Benutzung auf dem PC übrig bleibt sind ein paar Registy Einträge. Evtl. könnte man das dem Author mal schreiben, ich bin der Meinung die Einträge sind überflüssig und erschweren mehrere parallel Installtionen auf dem gleichen System.

--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de

 
bubblebobble   Nutzer

18.03.2006, 19:33 Uhr

[ - Direktlink - ]
Thema: Geschwindigkeit
Brett: MorphOS

@DJBase

Stimmt, du hast recht.
D.h., dass die FPU des PPC 1GHz vs. Athlon 1,3GHz etwa 3x langsamer ist, aber Integer ist etwa 3x schneller und der Datendruchsatz ist in etwa gleich.
Allerdings gibt es heute deutlich schnellere Rechner auf x86 Basis, bei PPC nicht (auf denen auch AmigaOS & Co läuft).

Aber trotzdem Respekt, das hatte ich glatt übersehen dass der Compressor Effket so schnell ist auf dem PPC, weil der Reverb normalerweise das Nadelör darstellt. Dann werde ich den Reverb mal PPC nativ machen und schauen, obs was bringt. Wenn ja, wäre HD-Rec auf auch PPC gut nutzbar, ohne gleich alles zu portieren. Auch der Softsynth dürfe gut laufen, weil her hautpsächlich Integer Operationen benutzt.




--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de

 
bubblebobble   Nutzer

18.03.2006, 12:53 Uhr

[ - Direktlink - ]
Thema: Geschwindigkeit
Brett: MorphOS

Um nochmal on topic zu werden, möchte ich auf diesen thread verweisen:

http://www.amiga-news.de/forum/thread.php?id=21264&BoardID=1

Da wurden HD-Rec DSP Effekte auf allen Systemen gebencht, und das Ergebnis ist, dass die 68KEmu auf einem 1,3GHz Athlon ganz grob 2-3 mal so schnell ist wie auf einem G3 oder G4. Dabei ist MOS einen Tick schneller als OS4, beide aber weit abgeschlagen gegenüber dem Athlon,
der auch noch die Custom Chips emuliert und einen ByteSwap bei jedem Speicherzugriff machen muss.

Benchmarks können allerdings von Code zu Code variieren, wie jeder weiss. Bei dem Test wurden allerdings 4 DSP Effekte verglichen, die sehr unterschiedeliche Anforderungen an FPU, CPU und Speicherdruchsatz haben, das Ergebis fiel aber bei allen ähnlich aus. Ich denke, dass die schnellere Speicheranbindung (266MHzFSB) des Athon einen deutlichen Vorteil bringt, oder was für einen FSB hat so ein Peg2 ?
Auch dürfte die FPU des Athlon wesentlich schneller sein, aber auch schneller als bei einem P3/P4. Zu erwähnen sei auch noch, dass der JIT für den Befehlssatz für eine P3 oder Athlon optimiert ist, und soz. auf einem P4 oder AthlonXP mit "angezogener Handbremse" läuft, da aktuelle Befehle (vergleichbar zu Altivec) auch nicht unterstützt werden.


--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de

 
bubblebobble   Nutzer

16.03.2006, 14:14 Uhr

[ - Direktlink - ]
Thema: Windows/DOS - Platzhalter (wild cards) ?
Brett: Andere Systeme

... oder WinUAE starten und die AmigaDos Wildcards benutzen... :rotate:
--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de

 
bubblebobble   Nutzer

14.03.2006, 16:55 Uhr

[ - Direktlink - ]
Thema: Koordinatentransformation, Überdeckung
Brett: Programmierung

@Reth:
>>Schade! Wollte mal den Unterschied zwischen gepixelt und gezeichnet begutachten.

Der utnerschied ist, dass gepixelte Grafiken mehr stilisiert aussehen und weniger "dreck" enthalten. Siehe z.B. die Figur vs. den Baum.

>>Dann muss man aber die Objektarten unterscheiden statisch vs beweglich

Nein, nicht in der Refresh Routine. Alle Objekte werden gleich behandelt, höchstens die Blit Routinen unterscheiden sich (Block, Bit Maske, Alpha, Transparent (Wasser), Add (Lichter), Sub (Schatten).

Die Figuren sind natürlich nochmal woanders gespeichert. Wenn sich eine Figur bewegt, wird sein altes Bild aus dem Array genommen und und der neuen Stelle eingefügt, bzw. nur seine Koordinaten verändert falls es im gleichen Raster bleibt.

>> Für Dein "sind weiter vorn" ohne HotSpot brauchst Du doch aber ne z-Information, oder nicht?
Nein. Ein Tile was weiter vorne ist im Tile Array ist auch immer sichrbar weiter vorne. Dadruc ist die Z-Information durch die zugehörigkeit eines Objektes zu einem Tile implizit gegeben.
Innerhalb eines Tiles wird dann per Hotspot entschieden.
Deshalb können Zäune nur an Tile-Grenzen verlaufen oder exakt horizontal oder vertikal sein, das ist die einzige Einschränkung der Engine, ist aber vertretbar finde ich.

>>Wie unterscheidet sich das dann im Handling der Tiles, wenn diese unterschiedliche Höhen haben (in der Optik isses ja klar)?
Im Tile-Array gar nicht, nur das jedes Tile eine Höhenangabe hat.
Die Steigungen muss man entweder durch Texture-Berechnugn ausgleichen oder "Rampen" Objekte positioneiren, die genau die Höhe ausgleichen, man will ja keine "Säulen" haben sondern Hügel.

Im Sichtbarkeits-Array steht es dann natürlich woanders, weil es ja z.B. "höher" liegt. An der Z-Tiefe, als Tile Zugehörigkeit ändert sich aber nichts.

Aber du siehtst jetzt, warum man dazu eigentlich ein paar Grafiken braucht, das wird schnell zu kompliziert in Worte zu fassen, obwohl es eigentlich einfach ist.

--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de

 
bubblebobble   Nutzer

14.03.2006, 15:14 Uhr

[ - Direktlink - ]
Thema: Koordinatentransformation, Überdeckung
Brett: Programmierung

@Reth:
>> Lecker, gibts noch mehr davon zu sehen oder testen? Ist das schon "released" oder noch in Entwicklung?
Ja, davon gibts noch mehr, aber nichts released und noch nichts programmiert. Nur Studien bis jetzt.

Ja, Objekte die sich bewegen muss man "umhängen" im Array, aber egal ob das direkt auf dem Tile array ist oder dem "imaginären", rechteckigen Array. Allerdings kann dann ein Objekt auch in mehreren Arrays sein. Aber ich denke der Overhead lohnt sich. Wieviele sich bewegende Objekte planst du denn? Ich meine nicht feststehende Anims, wie z.B. eine wehende Fahne, weil da kann man einfach die Maximum Größe aller AnimFrames angeben und fix lassen.

Speichern würde ich das ganze in einem dynamischen, eindimensionalen Array pro Rechteck Feld. Das ist also ein Array, was dynamisch erweitert wird, falls es zu klein ist.

Es wird also nicht zwischen Boden-Tile, stehenden Objekten und beweglichen Objekten unterschieden. Alle sind in der gleichen Struktue gespeichert. Wenn sich ein Objekt bewegt, wird diese eben manipuliert.

Die Überdeckung ist eigentlich ganze einfach.Grob wird nach ISO Tiles sortiert, also Objekte auf einem ISO Tile weiter vorne sind auch immer im Bild weiter vorne. Objekten innerhalb eines Tiles gehen dann nach Hotspot. Dadruch kann man z'.B. immer och Zäune entlange der Tilegrenzen machen, wo man einmal davor und einmal dahinter stehen kann. Nur mit Hotspot geht das nicht, das funktioniert nur bei punktuellen Objekten wie Bäumen, Figuren etc.

Bei meiner Methode gibt es aber noch den vorteil, das Tiles höher sein können als andere, ohne mehraufwand. Dadruch lassen sich z.B. sehr hohe Berge machen, sodass die Boden Tiles eigentlich mehrere Tile Ebenen höher liegen (optisch). Gespeichert sind sie aber schon brav auf ihrem Platz im Tile Netz.

--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de

 
bubblebobble   Nutzer

13.03.2006, 16:52 Uhr

[ - Direktlink - ]
Thema: Koordinatentransformation, Überdeckung
Brett: Programmierung

@Reth
Ja, der Screenshot ist von meinem Spiel. Die Figur ist allerdings aus einer (sehr viel) älteren Version, als die Landschaft noch gepixelt war. Jetzt ist sie richtig gezeichnet, was mir besser gefällt, obwohl gepixelt auch seinen Charme hat, aber eben old-school aussieht.

Also so wie ich das jetzt implementieren werde ist etwas kompliziert zu beschreiben, habe jetzt leider auch keine Zeit ein Tutorial mit Bildern vorzubreiten.

Kurz gesagt: Man baut die Landschaft in Tiles auf, so wie gehabt. Allerdings nimmt man nicht das Tile Array, um herauszufinden welches Object neu gezeichnet werden muss, sondern ein nochmals imaginär darüberliegendes Array, was dann auch Rechteckig sein kann. Das Array enthält dann für alle Raster-Rechtecke die Information, welches Objekt darinliegt. Das kann man in aller Ruhe berechnen, bevor das Spiel los geht. Objekte die sich bewegen müssen natürlich geupdated werden, aber das kostet kaum Zeit, das sind ein paar Bytes verschieden.
Muss ich einen Bereich neu zeichnen (es wird grundsätzlich immer alles neu gezeichnet), lege ich ein ClipRect um diesen Bereich, schaue in welche Rechtecke des Raster-Arrays die Refresh-Region hineinragen, und erhalte sofort alle Objekte, die ich dann stumpfsinnig blitte. Das ist alles.

Vorteil: Schnelles auffinden aller Bilder, die neu geblittet werden müssen, und Objekte können beliebig gross/hoch sein. Auch kann man Hügel machen, sodass Tiles "angehoben" werden. Der Refresh engine ist das völlig egal woher die Bildchen kommen, weil sie nur in das Raster-Array schaut.

--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de

 
bubblebobble   Nutzer

11.03.2006, 10:54 Uhr

[ - Direktlink - ]
Thema: suche ein User Thilo
Brett: Amiga, AmigaOS 4

Ich ?
Welches Geld ?
--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de

 
bubblebobble   Nutzer

10.03.2006, 10:55 Uhr

[ - Direktlink - ]
Thema: UAE und Linux
Brett: AROS und Amiga-Emulatoren

Bei WinUAE kann man einfach alle Pfadangaben relativ zur Executable machen. Dadruch kann man WinUAE+AmigaOS in einem einzigen Verzeichniss installieren, welches man dann auf CD brennen oder auf einen USB Stick kopieren kann.

Mann kann dann also mit der CD zu einem Rechner gehen, der nie zuvor WinUAE gesehen hat, und mit doppelklick direkt in AmigaOS booten.

Ich denke, dass sollte auch mit E-UAE gehen. Direkt booten ohne vorher das Host OS zu starten (Linux oder Windows) wird bedeutend schwieriger, aber das hattest du ja uch nicht gemint, oder?
--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de

 
bubblebobble   Nutzer

09.03.2006, 16:55 Uhr

[ - Direktlink - ]
Thema: JPEG->teilweise laden
Brett: Programmierung

Du kannst auch selbst einen JPEG decoder schreiben, der
dann Blockweise decodiert. Theoretisch geht das beim JPEG format, da es in 8x8 pixel Blöcken gespeichert wird. Ganz so schwer ist das nicht, aber ein bisschen proggen muss man dazu können.

--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de

 
bubblebobble   Nutzer

08.03.2006, 10:56 Uhr

[ - Direktlink - ]
Thema: Kann es sein das ArtEffect 3 einen BUG in der Speicherverwaltung hat?
Brett: AROS und Amiga-Emulatoren

AE3.0 oder 4.0 ?

Ohne StormWizzard geht es nicht. Man muss es in Stormwizzard reinladen, das Häckchen für SMART_REFREH setzen und wieder speichern.
Ich kann das aber für dich tun.

Verstehe ich soweiso nicht, warum man gerade AE simplerefresh gemachthat, wo das Herstellen eines Fensters doch so aufwendig und langsam ist.

--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de

 
bubblebobble   Nutzer

06.03.2006, 15:52 Uhr

[ - Direktlink - ]
Thema: Koordinatentransformation, Überdeckung
Brett: Programmierung

Zitat:
Original von Reth:
@bubblebobble:

Hm, Alpha-Channel wäre für mich auch mal interessant. Momentan erreiche ich "Transparenz", in dem ich z.B. bei den Turm-Cursors nur jedes 2. Pixel setze.

Das ist natürlich sehr oldschool!
Alpha ist aber nicht notwendigerweise für Transparenz Effekte da, sondern vor allem kann man Objekte mit Antialiasing auf den Hintergrund blitten, was ein sehr schönes Bweiches Bild ergibt, man hat also keine Treppchen mehr bei vordergrundobjekten, ähnlich wie Pixelfonts vs. Antialiased Fonts.
Aber auch schatten lassen sich damit gut machen, oder, wenn man die entsprechenden Blit routinen schreibt, auch Beleuchtung etc.
Allerdings brauchst du auf jedenfall 16 oder 24 bit screens.

Zitat:
Wieso meinst Du eigentlich, dass C++ hier ein Kropf wäre (bin gern für Argumente offen)? Ich finde sogar, es bietet sich hier an, da man für alles seine Objekte mit ihrem Verhalten definieren kann.
Ich finde, C++ lohnt sich nur bei großen Projekten mit mehreren Leuten, ansonsten steht es einem mehr im Weg als dass es hilfreich ist. Aber das ist meine persönliche Meinung, weil ich C oder AB2 mehr gewöhnt bin. Wenn man sich gut in C++ auskennt, sieht man das vielleicht anders.

Zitat:
Methoden zum Auffinden von 6-Ecken zu X,Y-Koordinaten hab ich ja schon. Es bleibt nur ein "Problem" ich muss die Damagelist für alle sich änderenden Objekte mit den Koordinaten vor und nach ihrer Änderung bestimmen, damit an der alten Position alles wieder hergestellt wird.
Für jedes Tile in der Damagelist wird folgendes gemacht:

Du bist der sache schon näher, aber ignorierst ziemlich hartnäckig was ich versuche sei mehreren Posts zu vermitteln. Vielleicht drücke ich mich nicht klar genug aus, ist aber auch schwierig ohne Grafiken.

Ich habe mir jetzt aber die Ultimative Lösung ausgedacht, mit der Landschaften auch Hügel und beliebig hohe Objekte haben können, und man beim Refreshen trotzdem effizient bleibt.
Dazu muss ich aber ein paar Grafiken machen.
Grundsätzlich ist es aber so, wie ich weiter oben beschrieben habe, aber das auffinden der neu zu zeichnenden Objekte wird effizienter.

--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de

 
bubblebobble   Nutzer

05.03.2006, 12:28 Uhr

[ - Direktlink - ]
Thema: Koordinatentransformation, Überdeckung
Brett: Programmierung

Interessant wäre da noch der Ansatz eines Z-Buffers, wie man es in richtigen 3D Berechnungen hat. Dafür müsstest du dir aber einen extra Blit Befehl schreiben.
Beim Z-Buffer blittest du nicht nur auf das sichtbare Bild, sondern auch noch deine Maske in den sog. Z-Buffer, mit jeweils der Z Koordinate pro Pixel. Blitte ich das zweite Bild, werden nur Pixel geblittet, deren Z Koordinate weiter vorne liegen, und auch dort der Z-Buffer neu gesetzt. Am Ende hast du im Z Buffer quasi ein Tiefen Bild.
Aber ich denke das wäre hier übertrieben und nicht so performant, obwohl man dann tatsächlich keine Pixel redundant setzen muss.
Schwierig wird es allerdings, wenn man, wie ich, Alpha Channels benutzt, denn dann gibt es Pixel, die u.U. die Information von ALLEN übereinander geblitteten Objekten brauchen, um die korrekte Farbe zusammen zu mischen.

--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de

 
bubblebobble   Nutzer

03.03.2006, 20:51 Uhr

[ - Direktlink - ]
Thema: Koordinatentransformation, Überdeckung
Brett: Programmierung

Ok, ich hab ein kleines Bild vorbereitet:

Bild: http://www.hd-rec.de/pics/RefreshISO.png

Das blau umrandete ist ein Rechteck, was in die DamageList eingetragen wird, weil sich der Spieler bewegt hat.

Nach dem Gameloop ist die DamageList voll von solchen Rechtecken, wobei überlappende zusammengefügt werden können. Dadruch wird nichts doppelt gezeichnet.

Jetzt muss einfach nur dieses Rechteck neu gezeichnet werden.
Dafür werden die drei Tiles (ok, eins ist nur ganz wenig mit drin)
komplett neu gezeichnet. Das macht aber nichts, weil die Clipregion, die vorher über das blaue Rechteck gelegt wurde, das meiste abclippt, und die Blitts sehr schnell sind. Der grüne Orb neben dem Spieler würde z.B. komplett verworfen, aber wir blitten ihn, als wenn er da wäre. Also egal was passiert, man braucht nur eine einzige Funktion zum malen.
z.B. das Haus wird auch neu geblittet, dank CliRegion wird aber der Baum nicht zerstört, muss also nicht neu gezeichnet werden, das meintest du doch mit rekusiv gucken, was man noch wiederherstellen muss.

Man würde also alle Tiles ermitteln, die in das Rechteck fallen, und einfach alles neu zeichnen.Natürlich könnte ein weiterer Baum auf dem untern Tile z.B. den Haustür zerstören, aber wegen der ClipRegion passiert das nicht.

Würde ein Baum weiter unten in das Rechteck hineinragen, hätten wir allerdings ein problem. Deshalb kann man die For schleife einfach noch eine Tile Zeile (oder mehr, wenn es höhere Objekte gibt) weiterlaufen lassen. Blitts, die nicht in der ClipRegion liegen, verbrauchen so gut wie keine Rechenzeit.Und das bisschen For Schleife ist auch kein Problem.

So ähnlich funktioniert z.B. AsteroidsTR, und das ist doch recht performant, oder?

--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de

 
bubblebobble   Nutzer

03.03.2006, 20:12 Uhr

[ - Direktlink - ]
Thema: Koordinatentransformation, Überdeckung
Brett: Programmierung

@whose

Nein, da verstehen wir uns etwas falsch.

Eine DamageRegion wird bei mir in Pixeln gemessen (Bildschirm oder Playfield Koordinaten), nicht in Tiles.
Ich markiere keine Tiles sondern direkt die Bildschirmkoordinaten, die neu gezeichnet werden müssen, daher meine Funktion drawTiles().

Wenn ein Turm in ein oberes Tile hineinragt, und sich neu zeichnen muss, dann wird selbstversändlich auch das obere Tile neu geblittet, aber dank ClipRegion eben nur der Teil, der innerhalb des Turm-Bildes ist. Ich blitte nicht das ganze Tile, sondern möglicherweise nur ein paar Pixel davon. Dadurch muss ich auch nicht gucken, was durch dieses Tile wiederum beeinflusst wird, keine Rekursion mölglich. Alles was sich verändert liegt ja in meinem x1,y2,x2,y2 Pixel-Bereich.
Und der wird im Game Loop ermittelt, indem ich z.B. das Turm Bildchen imaginär "blitte", in wirklickeit wird einfach ein eintrag in die DamageList gemacht, die Abmessungen und Zielkoordinaten des Bildes kenne ich ja.

Ich denke diese Arbeitsweise hat nichts mit der Programmiersprache zu tun. Das lässt sich genauso auch in C++ machen.
(wobei angemerkt sei, dass ich C++ in diesem Fall für einen Kropf halte).


--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de

 
bubblebobble   Nutzer

03.03.2006, 18:41 Uhr

[ - Direktlink - ]
Thema: Koordinatentransformation, Überdeckung
Brett: Programmierung

@whose
Auch deine Erklärung/Methode finde ich noch recht kompliziert.
Die DamageRegion muss überhaut nicht "berechnet" oder "überprüft" werden. Die ist doch vorgegeben durch die Objekte, die sich bewegen oder animiert sind.

Gehe so vor:

Also im Gameloop wird erstmal gar nichts gezeichnet.
Es werden nur die neuen Koordinaten z.B. des Spielers berechnet und Animationsstufen weitergeschaltet. Dabei fügt man in die DamageList alle Rechteckigen Bereiche ein, die sich geändert haben, also das alte Rechteck des Spielers, das neue Rechteck des Spielers, das alte Rechteck einer Animation und das neue Rechteck der jetzigen Anim Stufe(falls es anders ist).
Optimierung:
Dabei kann man natürlich überlappende Rechtecke gleich zu einem zusammenfassen, was bei einem sich nicht allzuschnell bewegenden Objekt praktisch immer der Fall ist. (aber auch das kann später kommen).

Wenn der Gameloop fertig ist, also alle Objekte ihren Schritt ausgeführt haben, zeichnest du einfach alle rechteckigen Bereiche aus der DamageList pixelgenau neu mit dem drawTile(). Wenn alle Objekte auf einem Tile nach Y-Koo sortiert sind, kannst du die einfach der Reihe nach malen.

Du musst keine Hintergründe retten, keine Z -layer machen, keine Listen grossartig umschieben, Überlappungen prüfen oder sonstwas.

Dadurch, dass du nur den rechteckigen Bereich, der sich geändert hat, neu malst und eine ClipRegion drumherum legst, brauchst du nichts rekusiv überprüfen etc.

Ich glaube ich muss mal ein Tutorial darüber schreiben ... ;-)


--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de

 
bubblebobble   Nutzer

03.03.2006, 15:16 Uhr

[ - Direktlink - ]
Thema: CPU Monitor
Brett: Programmierung

Ich habe jetzt doch Extrwürste gebraten, bzw. Pasi hat das getan, und einen CPU Monitor für HD-Rec native für MOS geschrieben (in C). Für OS4 geht das wahrscheinlich ähnlich, indem man Statistiken auslesen kann. Gibt es freiwillige, die das für OS4 machen würden ?

Vermutlich muss nur 1 Zeile in etwa 200 Zeilen C Code geändert werden.

--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de

 
bubblebobble   Nutzer

03.03.2006, 15:03 Uhr

[ - Direktlink - ]
Thema: Koordinatentransformation, Überdeckung
Brett: Programmierung

Zitat:
Original von Reth:
Ja so hab ich das ja auch immer gemeint.
Vor den Listen schrecke ich noch immer ein bischen zurück, da ein Objekt fast immer mehrere andere überdeckt und die Listen ständig umgebaut werden müssten.

Die müssen nur umgebaut werden, wenn sich die verdeckung Ändert oder eine Figur in ein anderes Tile reinwandert. So gross ist der Aufwand nicht, bei Listen ist das ja einfach, nur Pointer verbiegen.
Oder dynamisch Array, wäre auch eine Lösung. Wenn die Listeneelemente klein sind, als z.B. nur ein Index auf das Objekt, wäre das vermutlich schneller.

Zitat:
Meine Objekte sind eh schon mit Layern versehen (z-Index) und da ich STL-Konstrukte verwende, kommen die automatisch richtig sortiert raus.
Wofür brauchst du einen Z Layer ? Die Y-Koordinate des Hotspots als Sortier- Kriterium reicht vollkommen.

Zitat:
Zum Blitten werde ich in einem ersten Versuch immer die gesamte Objektgröße (ca. 30x50 bis 80x80 Pixel) nehmen, dann spar ich erstmal die Clippingberechnungen, die zu den Überdeckungsberechnungen ja noch dazukommen.
Du must dich um das Clipping überhaut nicht kümmern. Durch InstallClipRegion wird das alles erledigt. Du blittest einfach alles wie du es gewohnt bist.

Zitat:
Ich muss "nur" ne möglichst performante Methode finden, meine Objekte einzuordnen, so dass sich überdeckende möglichst leicht finden lassen, ohne immer alle zu durchlaufen. Zu jedem Objekt aber ne Überdeckungsliste machen ist m.E. zu viel Aufwand!?
Eine Art der Sortierung ist auf alle Fälle der Layer, dann braucht man nur in den anderen zu suchen. Aber dann? Um Überdeckungen festzustellen, muss ich ja alle Objekte durchgehen. Wenn dann überdeckte gefunden werden, muss ich mit diesen wieder durchgehen. Letzteres kann ich umgehen, wenn ich die ClippingRegions setze (oder zumindest stark einschränken).

Ist ClipBlit eigentlich schneller als BltBitmap?

Nein.
Ich verstehe nicht ganz was du mit der Überdeckung hast. Schau dir doch nochmal meinen Code an, der zeichnet einfach alles neu, was in den Damage-Bereich hineinfällt. Das ist viel einfacher.
Die Listen die an den Tiles hängen müssen lediglich nach Y Koordinate sortiert sein, das ist alles.
Du musst dir keine Gedankten über Uberdeckung, Clipping oder sonstwas machen.

--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de

 
bubblebobble   Nutzer

03.03.2006, 13:57 Uhr

[ - Direktlink - ]
Thema: Amiga MIDIS
Brett: Amiga, AmigaOS 4

MIDI hat eine Auswahl an 128 festen Instrumenten, die sich normalerweise auf der Soundkarte oder sonstwo befinden, also von system zu system anders klingen.
MOD bringt alle Instrumente (Sample) gleich mit, und klint daher individueller.

Mit HD-Rec könntest du theoretisch MODs reinladen, ihnen General MIDI Intrumente zuweisen und das ganze wieder als .mid abspeichern. So habe ich das z.B. mit Sarcophaser gemacht (gibts als Remix auf meiner HP). Aber da muss man ein bisschen Arbeit reinstecken. Es ist auch so, das viel des Characters der MODs von den verwedneten Samples abhängt, was sich oft nur schwer mit MIDI Instrumenten nachbilden lässt, z.B. Sprachsamples oder andere Spezialeffekte.

--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de

 
bubblebobble   Nutzer

03.03.2006, 13:31 Uhr

[ - Direktlink - ]
Thema: Koordinatentransformation, Überdeckung
Brett: Programmierung

@whose
Ja, so ähnlich meinte ich das auch.
Also in der Damage List sind lediglich Rechtecke drin mit x1,y1,x2,y2, mehr nicht, die während dem Gameloop entstanden sind. Also keine Tiles oder Objekt Informationen.
Welche Tiles nun neu zu zeichnen sind kannst du dir dann ja in drawTile() berechnen, und wenn du alle Objekte an die Tiles hängst mittels einer Liste, dann weisst du auch sofort welche Objetke du neu zeichnen musst. Die Listwe sortiert du schon beim Einfügen nach der Y Koordinate, dann kannst du sie in einem Rutsch abarbeiten.

Du zeichnest dann immer stur alles neu. Das ist schon ok. Durch die ClipRegion zeichnest du von einem Tile, was nur zu einem Pixel in deine Fläche hineinragt auch nur ein Pixel, und das geht entsprechend schnell. Vertaue einfach auf das OS, das Clippen mit Layern macht das schon sehr flott. Einen Domino Effekt gibts dadurch nicht.
Scrollen ist dann auch kinderleicht.

--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de

 
bubblebobble   Nutzer

03.03.2006, 12:01 Uhr

[ - Direktlink - ]
Thema: Koordinatentransformation, Überdeckung
Brett: Programmierung

Hoppla! Das kommt vom vielen Amiblitz2 coden.

Das muss natürlich "." oder "->" sein in C, also

struct Rectangle cliprect.MinX = ...

Den Sourcode bitte nicht als syntaktisch korrekt ansehen, der ist nur als Pseudo Code gedacht, den habe ich nur einfach so zusammengeschrieben. Du musst das natürlich überarbeiten.

--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de

 
bubblebobble   Nutzer

03.03.2006, 11:12 Uhr

[ - Direktlink - ]
Thema: Koordinatentransformation, Überdeckung
Brett: Programmierung

Also, du versucht schon bevor du irgendetwas zum laufen gebracht hast das ganze komplett zu optimieren, das geht immer schief.
Mach es, wie ich schon sagte, ganz einfach:

Schreibe eine Funktion drawTiles(x1,y1,x2,y2), die deinen Ausschnitt in einen nicht sichtbaren Rastport malt. Den Ausschnitt blittest du dann nach Beendigung des Zeichnens auf den Screen. Du bekommst dadurch überhaupt kein Problem mit rekusiven Überlappungen.

drawTiles sieht ungefähr so aus:

code:
/* rp ist der versteckte RastPort */
/* scr ist der sichtbare Screen, kann auch Window sein */

drawTiles (int x1,int y1, int x2, int y2) {
  struct Rectangle cliprect\MinX = x1,y1,x2,y2;
  struct Region *new_region = NewRegion();

  /* Erzeuge eienen Clip auf den gewünschten Bereich*/
  LockLayer (0,rp\Layer); // braucht man nur, wenn es ein Public Screen ist
  if (new_region) {
    if OrRectRegion (new_region, &cliprect) {
      old_region = InstallClipRegion(rp\Layer, new_region); 
    }
  }

  /* ... StartTile, Höhe und Breite in Tiles des Rechtecks ermitteln */
  /* ... Tiles in einer verschachtelten For/ For Schleife malen ... */
  For (TileY = StartTile; Tile<StartTile+Höhe*MapBreite; Tile=Tile+MapBreite) {
    For (TileX = TileY; Tile<TileX+Breite; Tile++) {
       ... Hintergrund Tiles malen ...
       ... ggf. Objekte auf dem Tile malen wie Bäume, Mauern, Figuren, nach Hotspot sortiert ...
       ... bewegliche Objekte sollten auch auf dem Tile gespeichert sein,
           und müssen immer mitwandern wenn sie auf ein anderes Tile "treten",
           dafür wäre eine Linked List nicht schlecht pro Tile ...
    }
  }

  /* stelle den alten Clip wieder her... */
  new_region = InstallClipRegion(rp\Layer, old_region); 
  if (new_region) DisposeRegion(new_region);
  UnlockLayer (rp\Layer);

  /* Blitte das Rechteck auf den Screen */
  BltBitmapRastPort (rp\Bitmap,x1,y1,scr\RastPort,x1,y1,x2,y2,$c);
}



Dann definierst du die eine DamageList, eine Liste mit Rechteck Regionen, die während des Game Loops zerstört werden, z.B. wenn eine Animation einen Frame weiter schaltet, oder wenn sich eine Figur fortbewegt, oder wenn gescrollt wird (einfach den neu hereingescrollten Bereich als damaged definieren), oder am Anfang einfach den ganzen Screen eintragen.

Die Tiles können ja auf deine Aminations Klassen zeigen, dadurch weisst du welches Bild gezeichnet werden muss. So lässt sich ganz einfach bewegtes Wasser machen etc.

In einzelnen Fällen ist das oben natürlich nicht optimal, weil z.B. ein Hintergund gezeichnet wird, der dann aber komplett wieder von einer Figur bedeckt wird oder so. Aber sowas passier nur bei kleinen Ausschnitten, und da ist die Speed egal, bei grossen Ausschnitten wirst du garantiert irgendwo bis auf die hinterste Ebene sehen können, und daher muss sie gezeichent werden.

Das oben ist sehr einfach und bei vielen Objekten sogar effizient.

Wenn du Objekte hast, die sehr hoch sind, sodass sie in andere Tiles hineinragen (z.B. Bäume), dann lässt du die äusserste For Schleife einfach noch eine oder zwei Tile Reihen tiefer laufen. Die nicht sichtbaren Tiles werden zwar versucht zu blitten, aber dank der ClipRegion sofort verworfen. Nur wenn z.B. ein Baum in die ClipRegion hineinragt, wird dieser Teil gezeichnet. Das gleiche kannst du bei Breiten Objekten mit der X Achse machen, ein Tile früher anfangen und ein Tile später aufhören. Das hört sich nach viel overhead an, ist es aber nicht, da es nur CPU Operationen sind. Ein einziger Blit auf die Graka verschlingt schon sehr viel mehr reale Zeit als ein paar Schleifen zu durchlaufen.

Nimm dir bitte die Zeit und schau dir das genau an. So funktioniert das was du machen willst!

--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de



[ Dieser Beitrag wurde von bubblebobble am 03.03.2006 um 11:23 Uhr geändert. ]
 
bubblebobble   Nutzer

02.03.2006, 17:22 Uhr

[ - Direktlink - ]
Thema: Amiga MIDIS
Brett: Amiga, AmigaOS 4

Das sind dann aber Stücke nachgespielt, und klingen auf jedenfall anders als die Originale. Mir ist kein einziges Amiga Spiel bekannt, was midi musik benutzt hätte(von PC konvertierungen wie DOOM mal angesehen). Wie auch, es ist sehr aufwendig auf dem Amiga MIDIs abzuspielen, da es keinen Standard Softsynth oder Sounekarten mit MIDI Synth gibt, und ein A500 ist von der Rechenleistung her gar nicht in der Lage dazu.

--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de

 
bubblebobble   Nutzer

02.03.2006, 17:04 Uhr

[ - Direktlink - ]
Thema: Amiga MIDIS
Brett: Amiga, AmigaOS 4

Amiga Spiele nutzen so gut wie nie .mid Dateien, weil der Amiga die nicht ohne weiteres abspielen kann. Das am meisten verbeitete Format von Spiele Musik ist MOD.

--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de

 
 
Erste << 6 7 8 9 10 -11- 12 13 14 15 16 >> Letzte Ergebnisse der Suche: 707 Treffer (30 pro Seite)

Suchbegriffe
Schlüsselwörter      Benutzername
Suchoptionen
Nur in diesen Foren suchen
   nur ganze Wörter
Nur Titel anzeigen
alle Treffer anzeigen

.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2021 by amiga-news.de - alle Rechte vorbehalten.
.