Unity-Technologies / Unity-Technologies/Unity.Mathematics

Multiplication operator behaves differently between Unity.Mathematics.float4x4 and UnityEngine.Matrix4x4

Offen
#83 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
C#
Sterne
1.4k
Forks
159
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

The multiplication operator is defined for both float4x4 and Matrix4x4, but has different semantics. The traditional Unity Matrix4x4 does the intuitive thing, which is a matrix multiplication, whereas float4x4 does a componentwise multiplication (like HLSL) and requires using mul to get the matrix multiplication.

This can lead to bugs that are very hard to spot while porting over math code from C# to HPC#, so it could be worth considering changing this, or at least very clearly highlighting this in the documentation and possible best practice / upgrade guides.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, die Definitionen der Multiplikationsoperatoren von float4x4 und Matrix4x4 zu finden und ihre Semantik mit der in der Issue beschriebenen mul-Funktion zu vergleichen. Prüfe die vorhandene Dokumentation und die Upgrade-Hinweise für diese Typen. Als abgeschlossen gilt die Aufgabe, wenn eine gemeinsame Entscheidung zwischen der Änderung des Operatorverhaltens und einer klaren Dokumentation des Unterschieds getroffen wurde und die entsprechende Dokumentations- oder Implementierungsarbeit erfolgt ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
csharp, unity
Bereich
game-dev
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
20/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.