matlab练习程序(渲染三原色)
这里我用的空间是x向右为正,y向下为正,z向屏幕里面为正。相当于标准右手系绕x轴旋转了180度。
将三个点光源放在
r = ;
g = ;
b = ;
这三个位置上,向四周发射光线,取光线到y-z平面的模的倒数作为光的强度。
图像如下:
程序如下:
clear all;
close all;
clc;
r = ;
g =
;
b =
;
imgr1=[];
imgr2=[];
imgg1=[];
imgg2=[];
imgb1=[];
imgb2=[];
for y=-1:0.004:1
imgr1=[];
imgg1=[];
imgb1=[];
for z=-1:0.004:1
pm=;
lightr=pm-r;
lightg=pm-g;
lightb=pm-b;
imgr=1/norm(lightr);
imgg=1/norm(lightg);
imgb=1/norm(lightb);
imgr1=;
imgg1=;
imgb1=;
end
imgr2=;
imgg2=;
imgb2=;
end=size(imgr2);
img=zeros(h,w,3);
img(:,:,1) = mat2gray(imgr2);
img(:,:,2) = mat2gray(imgg2);
img(:,:,3) = mat2gray(imgb2);
imshow(img)
imwrite(img,'img.png')
页:
[1]