内容简介:这里我用的空间是x向右为正,y向下为正,z向屏幕里面为正。相当于标准右手系绕x轴旋转了180度。将三个点光源放在r = [0.3,0,0.5];
这里我用的空间是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')
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- webgl滤镜--旋转的三原色
- 华为 HC 的三原色:技术突破、思想输出,和未来智能世界的领导力初现
- Octane渲染入门-渲染设置图文版
- 通过分析 WPF 的渲染脏区优化渲染性能
- React 服务器端渲染和客户端渲染效果对比
- iOS渲染-将视频原始数据(RGB,YUV)渲染到屏幕上
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Visual LISP程序设计
李学志 / 清华大学 / 2006-5 / 29.00元
本书系统地介绍了AutoCAD最新版本(2006)的Visual LISP程序设计技术。全书共分13章。前3章介绍AutoLISP语言的基础知识,第4章介绍Visual LISP的开发环境,第5~7章介绍程序的编辑、调试和设计的方法与技巧,第8章介绍如何定义新的AutoCAD命令及创建图层、线型、文字样式、剖面线、尺寸标注等各种AutoCAD对象,以及如何实现参数化图形设计的方法和技术,第9章介绍......一起来看看 《Visual LISP程序设计》 这本书的介绍吧!