1

我有一个大小为mx nx的法线贴图3,其中每个像素都有一个法线向量 {Nx, Ny, Nz}。我想通过旋转矩阵独立地旋转每个法线向量。设R为大小为mx nx 3x的旋转矩阵3,其中每个像素都有一个大小为3x的旋转矩阵3

我想将每个像素的旋转矩阵乘以法线向量以获得旋转的法线向量。我正在寻找一种优化的方式来完成这项任务,因为循环遍历每个像素可能不是最好的方式。

请帮忙!!

4

1 回答 1

1

我会尝试

res = sum( bsxfun(@times, map, R), 4 );

使用map一个m逐个n法线向量3R一个m逐个n向量的旋转。33

考虑一下,您可能需要使用permute

res = sum( bsxfun(@times, map, permute(R, [1 2 4 3]) ), 4 ); % transposing the vectors

或者,正如Harshit所说:

res = sum( permute( bsxfun(@times, map, R ), [1 2 4 3]), 4 ); % transposing the vectors
于 2013-05-12T09:07:26.120 回答