Tapahtumat

Kun kirjaudut sisään näet tässä ilmoitukset sinua kiinnostavista asioista.

Kirjaudu sisään
Tervetuloa lukemaan keskusteluja! Kommentointi on avoinna klo 7 - 23.
Tervetuloa lukemaan keskusteluja! Kommentointi on avoinna klo 7 - 23.

C++ grafiikka

Kysyn C++ ohjelmointikielestä
20.06.2023 |

Miten ohjelmoidaan C++ ohjelmointikielellä grafiikkaa?

Kommentit (16)

Vierailija
1/16 |
20.06.2023 |
Näytä aiemmat lainaukset

Tarviit jonkun kirjaston (openGL esim.).

Vierailija
2/16 |
20.06.2023 |
Näytä aiemmat lainaukset

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.)

Sisältö jatkuu mainoksen alla
Sisältö jatkuu mainoksen alla
Vierailija
3/16 |
20.06.2023 |
Näytä aiemmat lainaukset

Herra jortikka, minkäslaista grafiikkaa?

Vierailija
4/16 |
20.06.2023 |
Näytä aiemmat lainaukset

SDL on helpoin varmaan oppia näistä. OpenGL vaatii kyllä kunnon opettelua.

Vierailija
5/16 |
20.06.2023 |
Näytä aiemmat lainaukset

Jos peligrafiikat kiinnostaa niin kannattaa käyttää Unity:ä. Ohjelmointikieleksi C#.

Vierailija
6/16 |
20.06.2023 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Herra jortikka, minkäslaista grafiikkaa?

No pornografiikkaa.

Sisältö jatkuu mainoksen alla
Vierailija
7/16 |
20.06.2023 |
Näytä aiemmat lainaukset

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. 

Vierailija
8/16 |
20.06.2023 |
Näytä aiemmat lainaukset

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:

Sisältö jatkuu mainoksen alla
Vierailija
9/16 |
20.06.2023 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Vierailija kirjoitti:

Herra jortikka, minkäslaista grafiikkaa?

No pornografiikkaa.

Aivannn...

Vierailija
10/16 |
20.06.2023 |
Näytä aiemmat lainaukset

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ä.

Sisältö jatkuu mainoksen alla
Vierailija
11/16 |
20.06.2023 |
Näytä aiemmat lainaukset

Vierailija
12/16 |
20.06.2023 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Tarviit jonkun kirjaston (openGL esim.).

Ei tarvii. Boottaa vaan dossiin ja tekee jonkun ohjelma mikä kirjoittaa suoraan näytönohjaimen muistiin.

Sisältö jatkuu mainoksen alla
Vierailija
13/16 |
20.06.2023 |
Näytä aiemmat lainaukset

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

Vierailija
14/16 |
20.06.2023 |
Näytä aiemmat lainaukset

..Iltä joka matkii 15 bittisen pelin tunnelmaa.

Sisältö jatkuu mainoksen alla
Vierailija
15/16 |
20.06.2023 |
Näytä aiemmat lainaukset

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
16/16 |
20.06.2023 |
Näytä aiemmat lainaukset

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.