您的位置:首页 > 编程语言 > MATLAB

Matlab中显示法线方向 display normal map in matlab

2015-09-30 13:07 393 查看
% X and Y components of the normals vectors are between -1 and 1.

% The step number specifies the size of the output image.

range = -1:0.01:1;

% Repeat the range to build a matrix

X = repmat(range, [size(range, 2), 1]);

Y = flipud(repmat(range', [1, size(range, 2)]));

% These normals must be of unit norm, so find an Z component which

% solves sqrt(X^2 + Y^2 + Z^2) = 1

Z = (1 - (X.^2 + Y.^2)).^0.5;

% Change the display range of X and Y to 0..1 instead of -1..1

X = (X + 1) / 2;

Y = (Y + 1) / 2;

Z = (Z + 1) / 2;

% Mask pixels outside the sphere (in which the Z component is complex)

X(Z ~= real(Z)) = 0;

Y(Z ~= real(Z)) = 0;

Z(Z ~= real(Z)) = 0;

% Build the map

map = cat(3,X,Y,Z);

imshow(map);

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: