資源簡(jiǎn)介
顯示曲面(x-120)^2+z^2<=40(20<=y<=100),其中視點(diǎn)坐標(biāo)P(120,0,100),點(diǎn)光源坐標(biāo)為(120,80,100),屏幕坐標(biāo)系為z平面,即坐標(biāo)系為(i,j,0),顯示曲面。
代碼片段和文件信息
%本程序是一個(gè)三維曲面光照模型,描述如下:
%顯示曲面(x-120)^2+z^2<=40(20<=y<=100)其中視點(diǎn)坐標(biāo)P(1200100)點(diǎn)光源坐標(biāo)為
%(12080100)屏幕坐標(biāo)系為z平面,即坐標(biāo)系為(ij0),以真實(shí)感顯示曲面。
%分析,絕大部分分析工作老師上課已經(jīng)講過(guò),大體過(guò)程如下:
%按行掃描屏幕,每次填一個(gè)像素a(ij0),計(jì)算a點(diǎn)應(yīng)為背景點(diǎn)還是對(duì)應(yīng)曲面上的哪個(gè)點(diǎn)
%上課已經(jīng)講過(guò),另外如何計(jì)算漫反射和鏡面反射公式中的夾角也講過(guò),相關(guān)內(nèi)容見筆記
%下面介紹本程序在此基礎(chǔ)上改進(jìn)的地方
%原本老師講的方法是每次掃描一個(gè)像素點(diǎn)就求方程組判斷是否是背景點(diǎn)。
%如此若背景很大的話計(jì)算會(huì)很耗時(shí),本程序中先根據(jù)條件計(jì)算出可能是曲面投影點(diǎn)的區(qū)域,
%對(duì)這個(gè)區(qū)域進(jìn)行計(jì)算確定應(yīng)為前景還是背景,再進(jìn)行填充,其他區(qū)域直接填充背景色。以
%此加快速度
%說(shuō)明:
%本程序只為了表達(dá)光照模型的思想,所以其中中的相關(guān)參數(shù)是隨便取的,沒有查資料確定
%是什么材料的參數(shù)。
ka?=?0.8;%環(huán)境反射參數(shù)
kd?=?0.5;%漫反射參數(shù)
ks?=?0.7;%鏡面反射參數(shù)
acolor?=?[5015020]‘;%環(huán)境光強(qiáng)
dcolor?=?[2553078]‘;%漫反射光強(qiáng)
scolor?=?[23050144]‘;%點(diǎn)光源光強(qiáng)
backcolor?=?[14415523]‘;%背景色
m?=?200;%畫布高度
n?=?200;%畫布寬度
pixels?=?zeros(mn3);%存儲(chǔ)畫面像素信息,其中第三維的每層分別表示RGB顏色分量
%以下計(jì)算可能是曲面投影點(diǎn)區(qū)域的左右邊界
left?=?ceil(120?-?100*tan(asin(0.4)));%畫布上前景的左邊緣
評(píng)論
共有 條評(píng)論