C++ grafiikka
Miten ohjelmoidaan C++ ohjelmointikielellä grafiikkaa?
Kommentit (16)
Pelkällä ohjelmointikielellä ei nykyään yleensä tehdä mitään muuta kuinka käskytetään jotain erillistä "kirjastoa" tai "komponenttia" tai "käyttöjärjestelmää", joka sitten tekee asioita. Erilaisia "kirjastoja" grafiikan tekoon C++:lla on pilvin pimein erilaisia ja riippuu tietysti paljon mille laitteellekin olet tekemässä.
(Joskus ennen vanhaan oli BASIC yms kieliä, joissa itse kielessä oli valmiina esimerkiksi grafiikka-asioita.)
Herra jortikka, minkäslaista grafiikkaa?
SDL on helpoin varmaan oppia näistä. OpenGL vaatii kyllä kunnon opettelua.
Jos peligrafiikat kiinnostaa niin kannattaa käyttää Unity:ä. Ohjelmointikieleksi C#.
Vierailija kirjoitti:
Herra jortikka, minkäslaista grafiikkaa?
No pornografiikkaa.
Riippuu grafiikasta. Jos jotain paint-tyylistä eli siis piirustelua niin yhdenlaiset kirjastot. Jos peliin kelpaavaa grafiikkaa niin opengl tai mikrosoftin vastaava tai vulcan jos haluat olla spesiaali :) Helpompi kuitenkin käyttää jotain valmista pelimoottoria kuin rakentaa kokonaan oma. Eli esim. unity tai unreal engine tms.
Jos esim. (valo)kuvan käsittelyä niin siihen löytyy omat kirjastonsa.
Jos teet grafiikkasoftaa Amigalle, et tarvitse mitään grafiikkakirjastoja, ne vain hidastaisivat piirtoa. Mikäli teet 3D textuurimapattua grafiikkaa, niin tarvitset chunky-to-planar (c2p) rutiinin, joka tekee framebufferin FAST-muistiin, jossa grafiikka on vaikka 8-bit chunky pikseleinä. Muuten jokaisen pikselin piirtämiseen tarvittaisiin bset-komento jokaiseen bittitasoon, koska Amigassa bittikarttagrafiikka.
Muuten liikutat grafiikkaa Amigan blitterillä, tai Amiga-koneilla jossa on nopeampi prosessori, teet tiukan assembler-rutiinin, joka piirtää prosessorilla chip-grafiikkamuistiin, ja minimoi chip-muistin hitauden taustalla tekemällä prosessorilla muuta työtä.
Hardware spritet ovat sitten toinen tapa tehdä grafiikkaa Amigalla, niitä on yhteensä vain 8 kpl, mutta niitä voi multipleksata x-suunnassa copper-apuprosessorilla tai y-suunnassa, jolloin niitä saa enemmän näytölle kuin 8 kpl.
HAM6- ja HAM8-moodilla saa paljon värejä näytölle Amigalla (4096 ja noin 262800) mutta niillä näyttömoodeilla on rajoituksena, koska värit sekoavat helposti, jossa niiden päälle laittaa tavallisia blitter/CPU-objekteja. Yleensä HAM-tilassa joutuu Amigalla käyttämään vain riippumattomia hardware spritejä taustan päällä.
Katso uusin Hamulet-peli, joka toimii pelkällä A500-koneella, jossa 512 kb muistia, siinä HAM6-tilaa on käytetty hyväksi hardware spriteillä.
Näyttää ihan modernilta peliltä, vaikka pyörii vanhalla Amiga 500-tietokoneella:
Vierailija kirjoitti:
Vierailija kirjoitti:
Herra jortikka, minkäslaista grafiikkaa?
No pornografiikkaa.
Aivannn...
Vierailija kirjoitti:
Jos teet grafiikkasoftaa Amigalle, et tarvitse mitään grafiikkakirjastoja, ne vain hidastaisivat piirtoa. Mikäli teet 3D textuurimapattua grafiikkaa, niin tarvitset chunky-to-planar (c2p) rutiinin, joka tekee framebufferin FAST-muistiin, jossa grafiikka on vaikka 8-bit chunky pikseleinä. Muuten jokaisen pikselin piirtämiseen tarvittaisiin bset-komento jokaiseen bittitasoon, koska Amigassa bittikarttagrafiikka.
Muuten liikutat grafiikkaa Amigan blitterillä, tai Amiga-koneilla jossa on nopeampi prosessori, teet tiukan assembler-rutiinin, joka piirtää prosessorilla chip-grafiikkamuistiin, ja minimoi chip-muistin hitauden taustalla tekemällä prosessorilla muuta työtä.
Hardware spritet ovat sitten toinen tapa tehdä grafiikkaa Amigalla, niitä on yhteensä vain 8 kpl, mutta niitä voi multipleksata x-suunnassa copper-apuprosessorilla tai y-suunnassa, jolloin niitä saa enemmän näytölle kuin 8 kpl.
HAM6- ja HAM8-moodilla saa paljon värejä näytölle Amigalla (4096 ja noin 262800) mutta niillä näyttömoodeilla on rajoituksena, koska värit sekoavat helposti, jossa niiden päälle laittaa tavallisia blitter/CPU-objekteja. Yleensä HAM-tilassa joutuu Amigalla käyttämään vain riippumattomia hardware spritejä taustan päällä.
Katso uusin Hamulet-peli, joka toimii pelkällä A500-koneella, jossa 512 kb muistia, siinä HAM6-tilaa on käytetty hyväksi hardware spriteillä.
Näyttää ihan modernilta peliltä, vaikka pyörii vanhalla Amiga 500-tietokoneella:
Jopas oli pitkä viesti ihan asian vierestä.
Vierailija kirjoitti:
Tarviit jonkun kirjaston (openGL esim.).
Ei tarvii. Boottaa vaan dossiin ja tekee jonkun ohjelma mikä kirjoittaa suoraan näytönohjaimen muistiin.
Vierailija kirjoitti:
Jos teet grafiikkasoftaa Amigalle, et tarvitse mitään grafiikkakirjastoja, ne vain hidastaisivat piirtoa. Mikäli teet 3D textuurimapattua grafiikkaa, niin tarvitset chunky-to-planar (c2p) rutiinin, joka tekee framebufferin FAST-muistiin, jossa grafiikka on vaikka 8-bit chunky pikseleinä. Muuten jokaisen pikselin piirtämiseen tarvittaisiin bset-komento jokaiseen bittitasoon, koska Amigassa bittikarttagrafiikka.
Muuten liikutat grafiikkaa Amigan blitterillä, tai Amiga-koneilla jossa on nopeampi prosessori, teet tiukan assembler-rutiinin, joka piirtää prosessorilla chip-grafiikkamuistiin, ja minimoi chip-muistin hitauden taustalla tekemällä prosessorilla muuta työtä.
Hardware spritet ovat sitten toinen tapa tehdä grafiikkaa Amigalla, niitä on yhteensä vain 8 kpl, mutta niitä voi multipleksata x-suunnassa copper-apuprosessorilla tai y-suunnassa, jolloin niitä saa enemmän näytölle kuin 8 kpl.
HAM6- ja HAM8-moodilla saa paljon värejä näytölle Amigalla (4096 ja noin 262800) mutta niillä näyttömoodeilla on rajoituksena, koska värit sekoavat helposti, jossa niiden päälle laittaa tavallisia blitter/CPU-objekteja. Yleensä HAM-tilassa joutuu Amigalla käyttämään vain riippumattomia hardware spritejä taustan päällä.
Katso uusin Hamulet-peli, joka toimii pelkällä A500-koneella, jossa 512 kb muistia, siinä HAM6-tilaa on käytetty hyväksi hardware spriteillä.
Näyttää ihan modernilta peliltä, vaikka pyörii vanhalla Amiga 500-tietokoneella:
Näyttää modernilta indy pel
..Iltä joka matkii 15 bittisen pelin tunnelmaa.
Pelkässä C++:ssa ei ole mitään standardia grafiikkakirjastoa. Qt on hyvä ja toimii monella alustalla, jos sen lisenssiehdot ahdistavat, koita GTK+.
Googlella löytää jos etsii. Vai pitäisikö nykyään sanoa että kysy ChatGPT:ltä :)
Vierailija kirjoitti:
Vierailija kirjoitti:
Jos teet grafiikkasoftaa Amigalle, et tarvitse mitään grafiikkakirjastoja, ne vain hidastaisivat piirtoa. Mikäli teet 3D textuurimapattua grafiikkaa, niin tarvitset chunky-to-planar (c2p) rutiinin, joka tekee framebufferin FAST-muistiin, jossa grafiikka on vaikka 8-bit chunky pikseleinä. Muuten jokaisen pikselin piirtämiseen tarvittaisiin bset-komento jokaiseen bittitasoon, koska Amigassa bittikarttagrafiikka.
Muuten liikutat grafiikkaa Amigan blitterillä, tai Amiga-koneilla jossa on nopeampi prosessori, teet tiukan assembler-rutiinin, joka piirtää prosessorilla chip-grafiikkamuistiin, ja minimoi chip-muistin hitauden taustalla tekemällä prosessorilla muuta työtä.
Hardware spritet ovat sitten toinen tapa tehdä grafiikkaa Amigalla, niitä on yhteensä vain 8 kpl, mutta niitä voi multipleksata x-suunnassa copper-apuprosessorilla tai y-suunnassa, jolloin niitä saa enemmän näytölle kuin 8 kpl.
HAM6- ja HAM8-moodilla saa paljon värejä näytölle Amigalla (4096 ja noin 262800) mutta niillä näyttömoodeilla on rajoituksena, koska värit sekoavat helposti, jossa niiden päälle laittaa tavallisia blitter/CPU-objekteja. Yleensä HAM-tilassa joutuu Amigalla käyttämään vain riippumattomia hardware spritejä taustan päällä.
Katso uusin Hamulet-peli, joka toimii pelkällä A500-koneella, jossa 512 kb muistia, siinä HAM6-tilaa on käytetty hyväksi hardware spriteillä.
Näyttää ihan modernilta peliltä, vaikka pyörii vanhalla Amiga 500-tietokoneella:
Jopas oli pitkä viesti ihan asian vierestä.
Kaverilla on kova pätemisen tarve, ja taidot on jääneet 30 vuoden päähän.
Tarviit jonkun kirjaston (openGL esim.).