{"id":2029,"date":"2024-07-17T07:36:40","date_gmt":"2024-07-17T07:36:40","guid":{"rendered":"https:\/\/research.swissdigitization.ch\/?p=2029"},"modified":"2024-07-19T08:58:30","modified_gmt":"2024-07-19T08:58:30","slug":"double-buffering-oder-der-amiga-blitter","status":"publish","type":"post","link":"https:\/\/research.swissdigitization.ch\/?p=2029","title":{"rendered":"Sprites, DoubleBuffering oder der Amiga mit Blitter ohne DoubleBuffering und mit"},"content":{"rendered":"\n<p>(Interaktive) Echtzeitgrafik beginnt (vereinfacht) zu flackern, wenn die Hardware nicht mehr schnell genug ist, die Grafik schneller als der Rasterstrahl zu zeichnen. <\/p>\n\n\n\n<p><strong>Double-Buffering<\/strong><\/p>\n\n\n\n<p>In diesem Fall benutzt man zwei Screens, die man hin- und herzeigt, um auf dem nicht-gezeigten Screen zu zeichnen. <a href=\"https:\/\/wiki.osdev.org\/Double_Buffering\">Mehr dazu findet sich hier &gt;<\/a>  Dies ist ein Verfahren, das bei einem Grossteil der Anwendungen eigentlich keine Rolle spielt, da vieles Tools sind. <\/p>\n\n\n\n<p><strong>Games und Double-Buffering<\/strong><\/p>\n\n\n\n<p>Anders im Gamebereich &#8211; hier gilt das Flackern als &#8222;S\u00fcnde&#8220; (Todo: Gibt es Spiele, die mit grossfl\u00e4chigem Flackern arbeiten als Gamemechanik? Mission Impossible?). Denn &#8211; es zerst\u00f6rt offensichtlich die &#8218;Immersion&#8216; und deutet auf ein techniches System hin. Es wird als St\u00f6rung gedeutet. <\/p>\n\n\n\n<p><\/p>\n\n\n\n<!--more-->\n\n\n\n<p><br><br>Computer wie der Atari ST etwa besitzen gar keine Hardwaresprites und so muss alles per Software (Prozessor) erledigt werden. Was nichts anderes heisst, als meist per DoubleBuffering.<\/p>\n\n\n\n<p>Interessanterweise haben die meisten Gamehardwares\/Consolen aber einen Bereich, der keine Rechenzeit ben\u00f6tigt, weil die Hardware das macht. Es sind das Hardware-Chips f\u00fcr Sprites und etwa Scrolling. Dies geh\u00f6ren zum Standard bei Consolen. Und je nach Hardware kommt die Hardware mit flackerfreien 8,20,30 Sprites daher. <\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Der Amiga (auch als Gamehardware konzipiert) besitzt f\u00fcr 1985 eigentlich ungen\u00fcgende 8 Sprites. Und so bleibt den Entwicklern* nichts anderes \u00fcbrig, als den Blitter zu benutzen. Und damit auch wohl oder \u00fcbel &#8211; bei hohem Workload, auch DoubleBuffering zu benutzen. Im Folgenden sieht man den Blitter (sehr ungetimed = man k\u00f6nnte das auch besser machen) ohne Double Buffering. Dabei wird der Screen im gesamten \u00fcberschrieben und danach werden die Objekte dar\u00fcber gezeichnet. Selbstverst\u00e4ndlich ist der n\u00e4chste Schritt nur noch die betroffenen Bereich zu \u00fcberschreiben, was das Flackern deutlich verkleinert.<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"720\" style=\"aspect-ratio: 938 \/ 720;\" width=\"938\" controls src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2024\/07\/Screen-2024-07-17-093258.mp4\"><\/video><\/figure>\n\n\n\n<p>Diesselbe Szene mit GesamtscreenL\u00f6schen und DoubleBuffering:<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"720\" style=\"aspect-ratio: 938 \/ 720;\" width=\"938\" controls src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2024\/07\/Screen-2024-07-19-105540.mp4\"><\/video><\/figure>\n\n\n\n<p><strong>Vorteile Blitte<\/strong>r<\/p>\n\n\n\n<p>Selbstverst\u00e4ndlich hat der Blitter auch massive Vorteile gegen\u00fcber Sprites. Diese sind meist eingeschr\u00e4nkt in Breite oder H\u00f6he oder beides. Hier ist der Blitter das Gegenteil, er arbeitet mit offenen Breiten und H\u00f6hen &#8211; kann also auch grosse Fl\u00e4chen bedienen. Allerdings muss der Gamedev* die gesamte Verwaltung dieser Objekte selbst erledigen: das heisst Zeichnen, Restoren und Verwalten der Objekte oder die &#8222;Kollisionen&#8220;. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>(Interaktive) Echtzeitgrafik beginnt (vereinfacht) zu flackern, wenn die Hardware nicht mehr schnell genug ist, die Grafik schneller als der Rasterstrahl zu zeichnen. Double-Buffering In diesem Fall benutzt man zwei Screens, die man hin- und herzeigt, um auf dem nicht-gezeigten Screen zu zeichnen. Mehr dazu findet sich hier &gt; Dies ist ein Verfahren, das bei einem [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[52,99,81,98],"tags":[],"class_list":["post-2029","post","type-post","status-publish","format-standard","hentry","category-amiga","category-double-buffering","category-gamedev","category-sprites"],"_links":{"self":[{"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/posts\/2029","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2029"}],"version-history":[{"count":11,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/posts\/2029\/revisions"}],"predecessor-version":[{"id":2050,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/posts\/2029\/revisions\/2050"}],"wp:attachment":[{"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2029"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2029"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2029"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}