Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Matrix layout is only partially documented

Aperta
#1,895 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
45/100
Tipo di issue
Documentazione
Chiarezza
Abbastanza chiara
Stato di attività
Ferma

Direzione di ricerca

Individua la documentazione di matrix(), incluso il relativo costruttore a 16 valori float e l’operatore [][]. Documenta se i vettori di base sono righe o colonne e indica la moltiplicazione tra matrici e l’ordine delle trasformazioni risultanti; il lavoro è completato quando entrambe le ambiguità sono risolte esplicitamente.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

The documentation of matrix() points out that the 16-float constructor form accepts values in row major order, and the [][] operator accepts first a row and then a column. However that by itself is not meaningful, it also needs to specify if matrices have basis vectors in rows or columns. Depending on that choice:

  • A translation matrix may be either matrix(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1), or
    matrix(1, 0, 0, tx, 0, 1, 0, ty, 0, 0, 1, tz, 0, 0, 0, 1).
  • The expression point p3 = transform(M1 * M2, p1) may be equivalent to either
    point p2 = transform(M1, p1) ; point p3 = transform(M2, p2);, or
    point p2 = transform(M2, p1) ; point p3 = transform(M1, p2);

In algebraic terms, that matrix multiplication would look like $\mathbf{p}\mathbf{M}_1\mathbf{M}_2$ (if vectors are rows), or $\mathbf{M}_2\mathbf{M}_1\mathbf{p}$ (if vectors are columns).

Lingua principale
C++
Stelle
2.3k
Fork
414
Merge medio
2g 14h
PR unite (30g)
13

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di AcademySoftwareFoundation/OpenShadingLanguage

Tutte le issue di AcademySoftwareFoundation/OpenShadingLanguage

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.