Jeg holder på å lage et script som attaches til hovedkamera, slik at det blant annet skal kunne gi ortografisk- og persketiv-projeksjon. Siden det ikke er mulig å endre kameraet sine matriser direkte, genereres matrisene for så å tilordnes kameraet, slik:
Den ortografiske delen er jo veldig rett frem, med kameramatrisen M
http://s4.postimg.org/kzrcnkcex/orthomatrise.jpg
Den neste er der problemet oppstår, eller under der igjen. Dette er mye samme (helt samme?) som OpenGL.,
http://s13.postimg.org/ywkpjlonn/Open_GL.jpg
Og kameramatrisen WorldCam():
http://s14.postimg.org/mx2b9pz0t/world_To_Cam.jpg
HVORFOR ender jeg opp med å se feil vei?? Jeg perspektivet går feil vei, altså objektene er mindre foran og eser ut bakover.
Og HVORDAN implementerer jeg rotasjon av vinkelen på kameraet? Forklar gjerne teoretisk, jeg forstår jeg bare prinsippet så skal jeg finne det ut
EDIT: De er feil vei om jeg stiller meg på baksiden, de er egentlig riktig vei, men da er jeg opp ned. Slik ser det ut:
http://s30.postimg.org/4gdi4hgt9/resultate.jpg
Siste bildet, uten fult navn, lol.
http://s24.postimg.org/6bfzg16qp/resultate.jpg
Kode
Camera camera = GetComponent<Camera>(); camera.projectionMatrix = CreateM(); camera.worldToCameraMatrix = CreateWorldCam();
http://s4.postimg.org/kzrcnkcex/orthomatrise.jpg
Kode
Matrix4x4 CreateOrtho() { Matrix4x4 M_orth = new Matrix4x4(); M_orth[0,0] = 2/(r-l); M_orth[0,3] = -((r+l)/(r-l)); M_orth[1,1] = 2/(t-b); M_orth[1,3] = -((t+b)/(t-b)); M_orth[2,2] = 2/(n-f); M_orth[2,3] = -((n+f)/(n-f)); M_orth[3,3] = 1; return M_orth; }
http://s13.postimg.org/ywkpjlonn/Open_GL.jpg
Kode
Matrix4x4 CreatePerspective() { Matrix4x4 M_per = new Matrix4x4(); M_per[0, 0] = (2.0F * n) / (r - l); M_per[0, 2] = (r + l) / (l-r); M_per[1, 1] = (2.0F * n) / (t - b); M_per[1, 2] = (t + b) / (b-t); M_per[2, 2] = -(f+ n) / (n-f); M_per[2, 3] = -(2.0F * f * n) / (f - n); M_per[3, 2] = -1.0F; return M_per; }
http://s14.postimg.org/mx2b9pz0t/world_To_Cam.jpg
Kode
Matrix4x4 CreateWorldCam() { Matrix4x4 W2C = new Matrix4x4(); W2C = Matrix4x4.identity; W2C [0, 3] = u; W2C [1, 3] = v; W2C [2, 3] = w; return W2C; }
HVORFOR ender jeg opp med å se feil vei?? Jeg perspektivet går feil vei, altså objektene er mindre foran og eser ut bakover.
Og HVORDAN implementerer jeg rotasjon av vinkelen på kameraet? Forklar gjerne teoretisk, jeg forstår jeg bare prinsippet så skal jeg finne det ut
EDIT: De er feil vei om jeg stiller meg på baksiden, de er egentlig riktig vei, men da er jeg opp ned. Slik ser det ut:
http://s30.postimg.org/4gdi4hgt9/resultate.jpg
Siste bildet, uten fult navn, lol.
http://s24.postimg.org/6bfzg16qp/resultate.jpg
Sist endret av Tøffetom; 23. oktober 2015 kl. 13:28.
Grunn: Automatisk sammenslåing med etterfølgende innlegg.