博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
matlab练习程序(渲染三原色)
阅读量:7033 次
发布时间:2019-06-28

本文共 1004 字,大约阅读时间需要 3 分钟。

这里我用的空间是x向右为正,y向下为正,z向屏幕里面为正。相当于标准右手系绕x轴旋转了180度。

将三个点光源放在

r = [0.3,0,0.5];

g = [0.3,-0.5*cos(pi/6),-0.5*sin(pi/6)];
b = [0.3,0.5*cos(pi/6),-0.5*sin(pi/6)];

这三个位置上,向四周发射光线,取光线到y-z平面的模的倒数作为光的强度。

图像如下:

程序如下:

clear all;close all;clc;r = [0.3,0,0.5];g = [0.3,-0.5*cos(pi/6),-0.5*sin(pi/6)];b = [0.3,0.5*cos(pi/6),-0.5*sin(pi/6)];imgr1=[];imgr2=[];imgg1=[];imgg2=[];imgb1=[];imgb2=[];for y=-1:0.004:1   imgr1=[];imgg1=[];imgb1=[];   for z=-1:0.004:1              pm=[0,y,z];                lightr=pm-r;       lightg=pm-g;       lightb=pm-b;       imgr=1/norm(lightr);       imgg=1/norm(lightg);       imgb=1/norm(lightb);              imgr1=[imgr1 imgr];       imgg1=[imgg1 imgg];             imgb1=[imgb1 imgb];              end   imgr2=[imgr2;imgr1];   imgg2=[imgg2;imgg1];     imgb2=[imgb2;imgb1]; end[h w]=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')

 

转载于:https://www.cnblogs.com/tiandsp/p/8947429.html

你可能感兴趣的文章
Miller-Rabin随机性素数测试算法(Miller_Rabin模板)
查看>>
转eclipse failed to create the java virtual machine
查看>>
研究float的一些好文章
查看>>
我的友情链接
查看>>
TCP/IP(二) —— TCP 概述
查看>>
ROS-Indigo版在Ubuntu上的安装
查看>>
Spark for Spatial,相关资源
查看>>
oracle数据导入导出
查看>>
Flask-RESTful构建小型REST服务
查看>>
LB集群--LVS部署
查看>>
AIX磁带备份
查看>>
ELK 6.4 实时日志分析系统
查看>>
Zend Studio使用教程之在Linux上进行安装
查看>>
linux下上传本地文件至github
查看>>
Android VelocityTracker
查看>>
oracle 修改表名几种方法
查看>>
deepin15.4配置nginx时出现主页展现,其他全部找不到的问题
查看>>
python基础一:之字符串
查看>>
用emacs进行批量查找替换的例子
查看>>
开源 免费 java CMS - FreeCMS-数据对象-link
查看>>