Size: a a a

pro.graphon (and gamedev)

2020 December 06

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Но это с большой вероятностью бесполезно
источник

U

UsernameAK in pro.graphon (and gamedev)
UsernameAK
то есть это бесполезно?
если да, то что дешевле, mat3*vec3 или mat3x4*vec4?
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
UsernameAK
а помните как мне скидывали что можно упаковать матрицу проекции в vec4?
Там не то, чтобы упаковка. Просто нули выкинуты из умножения
источник

U

UsernameAK in pro.graphon (and gamedev)
Vitaliy ◀️TriΔng3l▶️ Kuzmin
Там не то, чтобы упаковка. Просто нули выкинуты из умножения
ну так, дешевле и места меньше занимает)
источник

U

UsernameAK in pro.graphon (and gamedev)
UsernameAK
если да, то что дешевле, mat3*vec3 или mat3x4*vec4?
или одинаково?
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
UsernameAK
если да, то что дешевле, mat3*vec3 или mat3x4*vec4?
mat3 * vec3, потому что не будешь делать умножение-прибавление единицы или ноля три раза
источник

U

UsernameAK in pro.graphon (and gamedev)
кстати, хотите поржать? в JOML (джавовский аналог glm) есть операция умножения двух mat4x3
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
UsernameAK
кстати, хотите поржать? в JOML (джавовский аналог glm) есть операция умножения двух mat4x3
А где её нет?
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Ну, хотя бы как 4x4
источник

U

UsernameAK in pro.graphon (and gamedev)
ну с точки зрения математики так нельзя
источник

U

UsernameAK in pro.graphon (and gamedev)
но да, семантика там как у двух 4x4, просто нижняя строчка обрезается
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
UsernameAK
ну с точки зрения математики так нельзя
С точки зрения математики и vec * mat нельзя, можно mat * vec, ну или vec^T * mat, это то, что как раз в языках шейдинга и реализовано :)
источник

U

UsernameAK in pro.graphon (and gamedev)
кстати, я в UBO храню матрицы как row-major, это нормально?
источник

U

UsernameAK in pro.graphon (and gamedev)
просто так они несколько компактнее
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
UsernameAK
кстати, я в UBO храню матрицы как row-major, это нормально?
Без разницы, как тебе удобнее с ними работать, и как меньше места занимают в std140
источник

U

UsernameAK in pro.graphon (and gamedev)
нет лишнего выравнивания
источник

U

UsernameAK in pro.graphon (and gamedev)
потому что в std140 vec3 выравниваются как vec4, а mat4x3 это по сути в случае с column-major vec3[4], а с row-major vec4[3]
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Если тебе надо отдельные оси вытаскивать (при этом ты не читаешь матрицу целиком… в 12 SGPR, либо тебе ось как xmm на CPU нужна), тогда удобнее, когда в осях компоненты плотно лежат
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Если надо отдельно смещение как вектор часто — удобнее наоборот
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Много факторов, короче
источник