3D-tilaan siirtyminen

Jos haluat käyttää 3D:tä, sinun on ensin asetettava Game Maker 3D-tilaan. Voit siirtyä takaisin 2D-tilaan halutessasi. Tähän tarkoitukseen on kaksi funktiota.

d3d_start() Aloittaa 3D-tilan käyttämisen. Palauttaa arvon, joka ilmoittaa, onnistuiko tilan vaihtaminen.
d3d_end() Lopettaa 3D-tilan käyttämisen. Palauttaa arvon, joka ilmoittaa, onnistuiko tilan vaihtaminen.

Huomaa, että kaikkien 3D-funktioiden alussa on d3d_.

3D-tilan aloittamisesta aiheutuvat seuraavat muutokset. Ensinnäkin piilopintojen poistaminen asetetaan päälle (käyttämällä 16-bittistä z-puskuria). Tämä tarkoittaa, että jokaista ruudun pikseliä kohden vain piste, jolla on pienin z-arvo (=syvyysarvo) piirretään. Jos instansseilla on sama syvyys, on epäselvää, mitä tapahtuu ja tulokset voivat olla rumia. Pidä huolta, että instansseilla, jotka saattavat leikata toisensa, ei ole samaa syvyyttä!

Toiseksi, normaali ortografinen projektio korvataan perspektiivisellä. Tämä tarkoittaa seuraavaa: tavallisesti instanssien koko ruudulla on riippumaton niiden syvyydestä. Perspektiivisessä projektiossa instanssit, joilla on suurempi syvyys, piirretään pienempinä. Kun syvyys on 0, se on sama, kuin alkuperäinen koko (paitsi jos muutat projektiota; tästä myöhemmin lisää). Kameran katselupiste asetetaan tietylle etäisyydelle huoneen yläpuolelle. (Tämä matka on yhtenevä huoneen leveyden kanssa, jolloin saavutetaan järkevänoloinen oletusprojektio.) Vain instanssit, jotka ovat kameran edessä, piirretään. Älä siis käytä instansseja, joiden syvyys on pienempi kuin 0 (tai älä ainakaan instansseja, joiden syvyys on pienempi kuin -w, jossa w on huoneen tai kuvakulman leveys).

Kolmanneksi, pystysuuntainen y-koordinaatti muuttuu käänteiseksi. Kun normaalisti sijainti (0,0) on kuvakulman ylävasemmassa kulmassa, 3D-tilassa (0,0) on alavasemmassa nurkassa, mikä on tavallista kolmiulotteisille peleille.

Voit itse asiassa asettaa piilopintojen poistamisen ja perspektiivisen projektion päälle tai pois päältä käyttämällä seuraavia funktioita.

d3d_set_hidden(enable) Asettaa piilopintojen poistamisen päälle (tosi) tai pois päältä (epätosi).
d3d_set_perspective(enable) Asettaa perspektiivisen projektion päälle (tosi) tai pois päältä (epätosi).