我有一个大小为mx nx的法线贴图3,其中每个像素都有一个法线向量 {Nx, Ny, Nz}。我想通过旋转矩阵独立地旋转每个法线向量。设R为大小为mx nx 3x的旋转矩阵3,其中每个像素都有一个大小为3x的旋转矩阵3。
我想将每个像素的旋转矩阵乘以法线向量以获得旋转的法线向量。我正在寻找一种优化的方式来完成这项任务,因为循环遍历每个像素可能不是最好的方式。
请帮忙!!
我有一个大小为mx nx的法线贴图3,其中每个像素都有一个法线向量 {Nx, Ny, Nz}。我想通过旋转矩阵独立地旋转每个法线向量。设R为大小为mx nx 3x的旋转矩阵3,其中每个像素都有一个大小为3x的旋转矩阵3。
我想将每个像素的旋转矩阵乘以法线向量以获得旋转的法线向量。我正在寻找一种优化的方式来完成这项任务,因为循环遍历每个像素可能不是最好的方式。
请帮忙!!
我会尝试
res = sum( bsxfun(@times, map, R), 4 );
使用map一个m逐个n法线向量3和R一个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