我有一个大小为m
x n
x 3
的法线贴图,其中每个像素都有一个法线向量{Nx,Ny,Nz}。
我想通过旋转矩阵独立地旋转每个法向量。设R
为大小为m
x n
x 3
x 3
的旋转矩阵,其中每个像素的旋转矩阵大小为3
X 3
。
我想将每个像素的旋转矩阵乘以法线向量以获得旋转 法向量。我正在寻找一种优化的方法来完成任务,因为循环每个像素可能不是最好的方法。
请帮忙!!
答案 0 :(得分:1)
我会尝试
res = sum( bsxfun(@times, map, R), 4 );
使用map
m
- 按 - n
- 按 - 3
法线向量,R
加m
- by- { {1}} - 按 - n
- 按 - 3
每个向量的轮换次数。
考虑到这一点,您可能需要使用3
permute
或者,正如Harshit所说:
res = sum( bsxfun(@times, map, permute(R, [1 2 4 3]) ), 4 ); % transposing the vectors