我在互联网上搜索了教程、实现和帮助。没有。
我唯一能找到的是将 mat4 的左上角 3x3 矩阵设置为标识的广告牌着色器实现。这确实丢弃了旋转,但实际上也丢弃了缩放。
有没有办法做不会丢弃(非均匀)缩放的广告牌?
注:我不是在寻找任何人为我做我的编程。只是我无法理解细节。欢迎任何指向正确方向的指针。
最佳答案
左上角的 3x3 矩阵包含旋转和缩放。如您所见,对上层 3x3 进行核弹会同时对两者进行核弹。您需要先从 3x3 中提取比例来保留比例。将 3x3 的每一列作为一个向量,通过获取每个列向量的大小来告诉您每个方向的比例。
如果您的 4x4 矩阵是
RSX RSY RSZ T
0 0 0 1
那么尺度因子是
xScale = ||RSX||
yScale = ||RSY||
zScale = ||RSZ||
保存这些,然后形成一个新的 4x4 矩阵,做你已经在做的事情,但也要合并比例。
xScale 0 0 xT
0 yScale 0 yT
0 0 zScale zT
0 0 0 1
关于math - GLSL |广告牌着色器,保持缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15937842/