内容简介:这里我用的空间是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)渲染到屏幕上
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深入理解程序设计
[美] Jonathan Bartlett / 郭晴霞 / 人民邮电出版社 / 2014-1 / 49.00
是否真正理解汇编语言,常常是普通程序员和优秀程序员的分水岭。《深入理解程序设计:使用Linux汇编语言》介绍了Linux平台下的汇编语言编程,教你从计算机的角度看问题,从而了解汇编语言及计算机的工作方式,为成就自己的优秀程序员之梦夯实基础。 很多人都认为汇编语言晦涩难懂,但New Medio技术总监Jonathan Bartlett的这本书将改变人们的看法。本书首先介绍计算机的体系结构,然后......一起来看看 《深入理解程序设计》 这本书的介绍吧!