JirkaDellOro / FUDGE

Furtwangen University Didactic Game Editor
https://jirkadelloro.github.io/FUDGE
MIT License
33 stars 27 forks source link

Orthographische Kamera Fix #323

Open KohlerAl opened 2 years ago

JirkaDellOro commented 2 years ago

Ich trage erstmal zusammen, was Jonathan herausgefunden hatte, das ging über Discord und deswegen unter und vergessen

Snowy — 02/09/2022 Hat sich erledigt habs jetzt verstanden wie die Orthografische kamera funktioniert 😄 Bei der Matrix fehlt eigentlich nur n minus das Problem wieso die nicht aktiviert ist das die kamera einen AdjustCamera methode hat die wandelt die Camera wieder in die normale Perspektive um Jirka — 02/09/2022 Ah, ok. Hast Du was gefixt, bzw. was muss gefixt werden? Snowy — 02/09/2022 Die Projection_Orthographic matrix in der Matrix4x4 Klasse umändern zu: mtxResult.data.set([ 2 / (_right - _left), 0, 0, 0, 0, - 2 / (_top - _bottom), 0, 0, 0, 0, 2 / (_far - _near), 0, (_left + _right) / (_left - _right), (_bottom + _top) / (_bottom - _top), (_near + _far) / (_near - _far), 1 ]); das einzige was daran geändert wurde ist im set in zeile zwei ein minus wenn das nicht drin ist ist das bild gespiegelt und für die AdjustCamera Methode hab ich einfach die Variable adjustingCamera auf false gesetzt Jirka — 02/10/2022 Ah... dann war die Projektion noch weitestgehend in Ordnung. Wenn Du nun die Kamerajustierung abschaltest, was geschieht wenn Du deine Viewportgröße veränderst, also das Browserfenster skalierst oder die Entwicklerkonsole öffnest? Snowy — 02/10/2022 Das Bild verzerrt Die Standartwerte bei der Orthografischen methode sind auch "falsch" Jirka — 02/10/2022 Genau dafür ist adjustCamera gedacht, nur waren da unterschiedliche Projektionen erstmal nicht mitgedacht. Was meinst Du mit Standardwerte (man beachte das d!) sind falsch? Snowy — 02/10/2022 Die Projektion funktioniert so das man mit den werten das sichtfeld der Kamera einstellt, bedeutet wie viel von Links/Rechts/Oben/Unten. Die Standartwerte zeigen aber 0 Links und canvas.clientwidth rechts. Richtig wäre aber - canvas.width/2 links und canvas.width/2 rechts, das gleiche auch mit oben und unten. Dadurch zeigt die Kamera den ursprung mittig an

JirkaDellOro commented 2 years ago

Ich habe die Fixes eingebaut. Derzeit würde ich aber weiter empfehlen, stattdessen eine weiter entfernte Kamera mit sehr engem FieldOfView zu nutzen. Manches andere baut noch auf der Annahme einer Zentralprojektion auf, z.B. Picking, und müsste erst an die Orthographie angepasst werden...

Im Editor habe ich nun eine orthgraphische Kamera integriert