• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-01-02
  • 语言: Matlab
  • 标签: 光照模型  

资源简介

显示曲面(x-120)^2+z^2<=40(20<=y<=100),其中视点坐标P(120,0,100),点光源坐标为(120,80,100),屏幕坐标系为z平面,即坐标系为(i,j,0),显示曲面。

资源截图

代码片段和文件信息

%本程序是一个三维曲面光照模型,描述如下:
%显示曲面(x-120)^2+z^2<=40(20<=y<=100)其中视点坐标P(1200100)点光源坐标为
%(12080100)屏幕坐标系为z平面,即坐标系为(ij0),以真实感显示曲面。

%分析,绝大部分分析工作老师上课已经讲过,大体过程如下:
%按行扫描屏幕,每次填一个像素a(ij0),计算a点应为背景点还是对应曲面上的哪个点
%上课已经讲过,另外如何计算漫反射和镜面反射公式中的夹角也讲过,相关内容见笔记

%下面介绍本程序在此基础上改进的地方
%原本老师讲的方法是每次扫描一个像素点就求方程组判断是否是背景点。
%如此若背景很大的话计算会很耗时,本程序中先根据条件计算出可能是曲面投影点的区域,
%对这个区域进行计算确定应为前景还是背景,再进行填充,其他区域直接填充背景色。以
%此加快速度

%说明:
%本程序只为了表达光照模型的思想,所以其中中的相关参数是随便取的,没有查资料确定
%是什么材料的参数。

ka = 0.8;%环境反射参数
kd = 0.5;%漫反射参数
ks = 0.7;%镜面反射参数
acolor = [5015020]‘;%环境光强
dcolor = [2553078]‘;%漫反射光强
scolor = [23050144]‘;%点光源光强
backcolor = [14415523]‘;%背景色

m = 200;%画布高度
n = 200;%画布宽度

pixels = zeros(mn3);%存储画面像素信息,其中第三维的每层分别表示RGB颜色分量

%以下计算可能是曲面投影点区域的左右边界
left = ceil(120 - 100*tan(asin(0.4)));%画布上前景的左边缘

评论

共有 条评论

相关资源