Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Zitat
Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.
Zitat
Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.
Ah das Gimbal Lock Problem erklärt so einiges auch in meine Editor... Wie genau kann man das umgehen?
Das Ergebnis soll aussehen, also ob Sonne in das Fenster scheint und GodRays in den Raum scheinen (wie auf Bild 2). Das Problem ist nur wenn man sich nun an den Billboards vorbeibewegt, sieht man stark das es nur Billboards sind. Deswegen dachte ich mir, ich drehe die Billboards etwas zur Seite. So erkannt man nicht sofort das es Billboards sind wenn man exakt gerade reinguckt. Man guckt dann ja auf die Oberseite der Billboards.
Zitat
Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Nein nicht um eine Achse. Ich möchte quasi das Schritt drei meine Billboards auf die Seite dreht, ohne die Richtung zu verändern.
Lässt das ganze sich mit Quaternionen lösen?
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
FF_API Matrix MatrixRotationAxis( const Vector3& v, const float f ) { const float fSin = sinf( -f ); const float fCos = cosf( -f ); const float fOneMinusCos = 1.0f - fCos; const Vector3 vAxis( Vector3Normalize( v ) ); return Matrix( ( vAxis.x * vAxis.x ) * fOneMinusCos + fCos, ( vAxis.x * vAxis.y ) * fOneMinusCos - ( vAxis.z * fSin ), ( vAxis.x * vAxis.z ) * fOneMinusCos + ( vAxis.y * fSin ), 0.0f, ( vAxis.y * vAxis.x ) * fOneMinusCos + ( vAxis.z * fSin ), ( vAxis.y * vAxis.y ) * fOneMinusCos + fCos, ( vAxis.y * vAxis.z ) * fOneMinusCos - ( vAxis.x * fSin ), 0.0f, ( vAxis.z * vAxis.x ) * fOneMinusCos - ( vAxis.y * fSin ), ( vAxis.z * vAxis.y ) * fOneMinusCos + ( vAxis.x * fSin ), ( vAxis.z * vAxis.z ) * fOneMinusCos + fCos, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f ); } |
Zitat
Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.
Zitat
Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.
Werbeanzeige