Attribuuttien ristiriita tai ristiriita on grafiikka , joka näkyy vanhoissa kotitietokoneissa ja liittyy laitteistorajoituksiin. Tunnettu parhaiten ZX-Spectrumin käyttäjille .
Yritystietokoneet, toisin kuin kotitietokoneet, kavensivat väripalettia, mutta eivät sallineet tällaisia rajoituksia; mikä tahansa pikseli voidaan kirjoittaa minkä tahansa värin N :stä . CGA :ssa oli vain 4 väriä, kun taas Apple Macintosh oli yleensä yksivärinen.
Muistin säästämiseksi ja työn nopeuttamiseksi ensimmäiset väritietokoneet eivät sallineet värin määrittämistä millekään pikselille . Sen sijaan näyttö jaettiin lohkoihin, ja jokaiselle lohkolle annettiin kaksi väriä - etuala ja tausta. Jokaisessa lohkossa pikselillä oli yksi näistä kahdesta väristä (ja se oli koodattu yhdellä bitillä). Kun yritetään näyttää kolmea väriä yhdessä lohkossa, yksi näistä kolmesta väristä katoaa, mikä johtaa tiettyihin artefakteihin [1] .
Erityisesti ZX-Spectrum määritti 1-tavuisen attribuutin jokaiselle 8 × 8 pikselin merkkiavaruudelle - kolmibittisen etualan värin INK, kolmen bitin taustavärin PAPER, 1 bitin kirkkautta BRIGHTja 1 bitin vilkkumista FLASH[2] [3 ] . Tämä antoi 15 väriä (vain tietyissä "video-ohjain + TV" -yhdistelmissä musta on jotenkin erotettavissa kirkkaasta mustasta) [3] . Siten 256×192 resoluutiolla videomuisti vei vain 6912 tavua [2] [3] . Muuten, vilkkuvaa vaikutusta käytettiin erittäin harvoin, myös siksi, että vilkkuva alue koostuu selvästi neliöpaloista.
MSX 1: ssä attribuutti on määritetty vaakasuuntaisille 8 × 1 pikselin lohkoille. Lisäksi oli laitteistosprittejä , jotka eivät olleet ristiriidassa keskenään ja taustan kanssa. ZX-Spectrumista siirrettäessä attribuuttitavuja kuitenkin usein kerrottiin, mutta spritejä ei käytetty, mikä johti lähes erottamattomaan peliin. NES: ssä konfliktialue on 8 × 8 pikseliä - mutta laitteistospriteillä, laitteiston vierimisellä ja laajalla paletilla (yhteensä 52 väriä, samanaikaisesti 8 palettia 3 väriä + pohja [4] ) tätä tuskin huomaa.
Staattiset kuvat on tietysti rakennettu ottaen huomioon videomuistin rajoitukset. Peleissä imagoa rakennetaan dynaamisesti ja ongelmaa on käsiteltävä jotenkin.
Tämä on helpoin tapa ohjelmoida - ohjelmoija käsittelee vain pikseleitä koskematta määritetasoon. Tässä tapauksessa ei ole väriä "tiili", mutta sprite katoaa taustalle ( Double Dragon [1] [5] ).
Jotta tämä menetelmä tuottaisi laadukkaita tuloksia, kehitettiin erityinen tyyli ( Saboteur!, Bomb Jack , Cyclone , Strike Force Cobra ). Pelin suunnittelu perustuu mustaan , musta väri on melkein kaikkialla: seinäkuvioissa, koristeissa, vihollisten vaatteissa... Ei-mustalla värillä on valaistuksen rooli: esimerkiksi musta ninja juoksee pitkin keltainen seinä muuttuu mustaksi ja keltaiseksi, sinisen taivaan taustalla, että ninja on musta ja sininen. Syntyy konflikti, jos musta hylätään jossain tutussa ( Saboteur II: Avenging Angel -pelin tuolien selkänojat ).
+ : mielenkiintoinen visuaalinen tyyli; värikuva on yhdistetty pieniin esineisiin; ei attribuuttien hallintaa.
− : Merkkien on oltava mustia, vähintään vaaleita viivoja ja taustan mustavalkoisia. Jos näin ei ole, tuttuus näkyy selvästi.
Sprite laajentaa ominaisuutensa taustalle, jolloin saadaan värillinen "tiili", joka seuraa sankaria. Tätä mekanismia käytetään harvoin, yleensä vain päähenkilölle, mutta ei vihollisille - esimerkiksi Pac-Mania [6] tai sarja Wallya koskevia pelejä ( Every's a Wally , jne.)
+ : sprite erotetaan värillä taustasta; ei tyyli- tai liikerajoituksia.
− : Artefaktit näkyvät selvästi.
Yksi suosituimmista tavoista. Tausta on maalattu yksiväriseksi (useimmiten mustaksi), koristeltu mahdollisimman vähän, ja pelattavuus on rakennettu siten, että kahden erivärisen esineen törmäyksen todennäköisyys on minimaalinen. Useimmat tason elementit ovat läpäisemättömiä eivätkä aiheuta konflikteja; harvat ovat kävelykelpoisia joko etualalla ja päällekkäisillä spriteillä ( Exolon , Rex ) tai laajentavat ominaisuutensa spriteille ( Dizzy ).
Useimmat sokkelotyyppiset pelit näytetään tällä tavalla: Manic Miner [5] , Monty -sarja , Abu Simbel Profanation , Cybernoid , Into The Eagle's Nest . Tyypillistä myös space scrolling -ampujille ( Zynaps , R-Type ), sillä musta tausta pienellä määrällä pisteitä sopii hyvin avaruuden kuvaamiseen.
+ : äärimmäinen yksinkertaisuus.
− : Vaalea taustagrafiikka.
Pelikentän sisällä koko kuva muuttuu kaksisävyiseksi ( Elite , Chimera , Head Over Heels , Robocop , Quazatron , Terra Cresta ). Kuitenkin väri, jolla pelikenttä on maalattu, voi myös sisältää tietoa. Pelissä Robocop nämä ovat eri tasoja, Quazatronissa nämä ovat eri paikkoja, Terra Crestassa nämä ovat tason sisällä olevia vyöhykkeitä. Usein ( Draconus , Turbo Esprit ) kuvan pääosa on kaksisävyinen ja vain jotkin tärkeät kohteet renderöidään muilla väreillä.
Useimmat pseudo-3D (kilpa-) ja isometriset pelit renderöidään tällä tavalla.
+ : artefaktien täydellinen puuttuminen; ei liikkumisrajoituksia; ei attribuuttien hallintaa.
− : kyky piirtää värillä menetetään.
Sprite-liikkeen vaihe on rajoitettu 8 pikselin ruudukkoon. Tämä menetelmä sopii hyvin peleihin, jotka eivät vaadi kohtausten dynaamista renderöintiä (strategia-, logiikkapelit), mutta sitä käytetään myös dynaamisissa peleissä - näin saatiin nopea peli Centipede [5] . Sprite-liike ja taustan vieritys 8 pikselin välein näkyvät hyvin Savagessa , Astro Marine Corpsissa , Dan Dare III :ssa ja Extremessä .
Tämä mekanismi ei aina auta, ja sitä täydennetään usein muilla menetelmillä. Esimerkiksi pelit Trapdoor ja Flunky käyttävät suuria spritejä, joissa on yksivärinen täyttö, ja suuri taustakuva toistaa värinsä etuspriiten taustaväriksi.
Joissain tapauksissa käytetään ns. sprite- siirtymää , kun vain yksi sprite (ja mahdollisesti tausta) piirretään yhteen 8x8-tuttuun. Savage and Astro Marine Corpsissa etusprite korvaa kokonaan takasprien. Sprite-siirtymä on erittäin havaittavissa Golden Axe -pelissä , mikä pilaa kokonaisvaikutelman pelin grafiikasta.
+ : yksinkertaisuus; tämä vaihe yksinään vähentää merkittävästi esineitä.
− : ei aina sovi, dynaamisissa peleissä johtaa nykivään liikkeeseen.
Jotkut demot muuttavat attribuutteja dynaamisesti ja synkronoidaan näytön vaakasuuntaisen skannauksen kanssa. Ristiriidat eivät katoa, mutta konfliktialue pienenee 8x1 pikseliin.
+ : Yritä ohittaa videomuistin rajoitukset.
− : Menetelmä vie paljon CPU-aikaa.