本發(fā)明涉及燈光仿真渲染方法,尤其涉及一種在實(shí)時(shí)渲染系統(tǒng)中模擬IES精確光照的方法。
背景技術(shù):
:目前通用的精確IES光照一般使用烘焙貼圖的方法,即根據(jù)IES文件保存的光照物理數(shù)據(jù),計(jì)算出影響范圍內(nèi)的每個(gè)點(diǎn)得亮度,將這些亮度加成到三維模型的表面材質(zhì)中作為光照貼圖。此種方法渲染模擬出的效果較為準(zhǔn)確,但烘焙時(shí)間過長(zhǎng),無法實(shí)現(xiàn)實(shí)時(shí)渲染,并且額外增加了紋理資源的負(fù)載。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的在于克服上述現(xiàn)有技術(shù)的不足,提供一種在實(shí)時(shí)渲染系統(tǒng)中模擬IES精確光照的方法。為實(shí)現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案:一種在實(shí)時(shí)渲染系統(tǒng)中模擬IES精確光照的方法,包括以下步驟:S1、讀取光源的IES文件中大于等于0的N+1個(gè)位置的光照角度A[i](i=0,…,N)及其對(duì)應(yīng)的光照強(qiáng)度數(shù)據(jù)I[i](i=0,…,N),并將光照強(qiáng)度數(shù)據(jù)規(guī)范化為等光強(qiáng)的距離因子D[i](i=0,…,N);S2、求解等光強(qiáng)的距離因子D[i]在極坐標(biāo)中的X軸分量集dx[i]與Y軸分量集dy[i],并找出X軸分量集dx[i]中的最大值dx[m],則有,dx[i]=D[i]*sin(A[i]),(i=0,…,N)式1)dy[i]=D[i]*cos(A[i]),(i=0,…,N)式2)dx[m]=max(dx[i]),(i=0,…,N;0<m<N)式3);S3、對(duì)所述X分量集dx[i]及Y軸分量集dy[i]作歸一化處理,獲得X軸分量集的單位根集d′x[i]及Y軸分量集的單位根集d′y[i],則有,S4、分別累加所述單位根集d′x[i]及d′y[i],獲得點(diǎn)坐標(biāo)(X,Y),則有,S5、求解點(diǎn)坐標(biāo)(X,Y)與坐標(biāo)軸X=0的夾角θ的余弦值,則有,S6、對(duì)光源進(jìn)行分類:尋找光照角度A[i]中的最大角度值當(dāng)時(shí),將光源視為聚光燈模型;當(dāng)?shù)獶[n]≠D[0]時(shí),仍將光源仍視為聚光燈模型,將θ與分別作為聚光燈的內(nèi)角與外角;當(dāng)且D[n]=D[0]時(shí)則將光源視為點(diǎn)光源模型;S7、根據(jù)光源的分類求解對(duì)應(yīng)的光照參數(shù):對(duì)于點(diǎn)光源模型,其光照表達(dá)式為對(duì)于聚光燈模型,其光照表達(dá)式為式中,c為衰減常數(shù),l為一次系數(shù),q為二次系數(shù),θ為內(nèi)角,為外角,d為距離,a為主光軸夾角,不失一般性,令定義IES文件中光照強(qiáng)度數(shù)據(jù)最大時(shí),其光強(qiáng)強(qiáng)度P=1,隨著光照強(qiáng)度的遞減,光強(qiáng)強(qiáng)度線性衰減,則P=1時(shí),c+l*d+q*d2=K,根據(jù)步驟2中dx[m]的下標(biāo)m,取對(duì)應(yīng)位置的距離因子D[m]和光照角度A[m],及坐標(biāo)原點(diǎn)的距離因子D[0]和光照角度A[0]代入方程聯(lián)立方程組:當(dāng)為聚光燈模型時(shí),代入步驟S6中的θ與值;將一次系數(shù)l的取值范圍0<l<1代入式10中求出C的取值范圍[min,max],取代入式10中,求得l與q的值;設(shè)定闕值Pmin作為光強(qiáng)影響最小值,代入式9中,求出此時(shí)的距離因子D[r](D[r]>D[0]),則該距離因子D即為光照影響范圍;S8、發(fā)送步驟S7中求解出的光照參數(shù)到實(shí)時(shí)渲染系統(tǒng)的固定渲染管線或可編程渲染管線中,實(shí)時(shí)模擬出IES文件所描述的精確光照效果。優(yōu)選地,所述步驟S7中的闕值為0.001。采用上述技術(shù)方案后,本發(fā)明與
背景技術(shù):
相比,具有如下優(yōu)點(diǎn):在不增加紋理資源和GPU紋理寄存器負(fù)載的條件下,通過提取IES文件中保存的燈光數(shù)據(jù),計(jì)算出實(shí)時(shí)渲染系統(tǒng)中固定渲染管線或可編程渲染管線光照模型的光照參數(shù),從而模擬出接近IES文件描述的精確光照效果,無需烘焙,快捷高效,實(shí)現(xiàn)了渲染的實(shí)時(shí)化。附圖說明圖1為某IES文件記載的角度-光照強(qiáng)度數(shù)據(jù)繪制的極坐標(biāo)上的配光曲線;圖2為使用貼圖烘焙的方式模擬出的光源渲染效果圖;圖3為本發(fā)明算法模擬出的光源渲染效果圖。具體實(shí)施方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。實(shí)施例一種在實(shí)時(shí)渲染系統(tǒng)中模擬IES精確光照的方法,包括以下步驟:S1、讀取光源的IES文件中大于等于0的N+1個(gè)位置的光照角度A[i](i=0,…,N)及其對(duì)應(yīng)的光照強(qiáng)度數(shù)據(jù)I[i](i=0,…,N),并將光照強(qiáng)度數(shù)據(jù)規(guī)范化為等光強(qiáng)的距離因子D[i](i=0,…,N);本發(fā)明主要適用于對(duì)稱光源或可被認(rèn)為是對(duì)稱的光源的光照模擬,如下所示的是從某一IES文件中提取的角度-輻射度對(duì)應(yīng)數(shù)據(jù):0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990---極坐標(biāo)0到90度109010851074106010401015986.1952.3915875.6835.5795.4755.3714.7675.1636597559.8523.3488.6455.3423.3392.7362.3331.6300.3269.5240.3212.4186162.1140.3120.5102.58774.162.8753.2444.8937.6931.5126.1921.9318.515.7813.6411.9410.629.7148.6986.3594.9074.2413.6713.1082.6342.2721.9111.6251.311.133000000000000000000000000000000---上述角度對(duì)應(yīng)的光照強(qiáng)度數(shù)據(jù)可以看出,該IES文件中沒有從0度到-90的角度及對(duì)應(yīng)的光照強(qiáng)度數(shù)據(jù),則默認(rèn)該光源為對(duì)稱光源,即0度到-90度的光照強(qiáng)度數(shù)據(jù)與0到90度的光照強(qiáng)度數(shù)對(duì)應(yīng),提取光照角度從0-90度的數(shù)據(jù)便可進(jìn)行計(jì)算,下表即為根據(jù)該IES文件列出的角度-輻射度的對(duì)應(yīng)表01234…868788899010901085107410601040省略00000S2、求解等光強(qiáng)的距離因子D[i]在極坐標(biāo)中的X軸分量集dx[i]與Y軸分量集dy[i],并找出X軸分量集dx[i]中的最大值dx[m],則有,dx[i]=D[i]*sin(A[i]),(i=0,…,N)式1)dy[i]=D[i]*cos(A[i]),(i=0,…,N)式2)dx[m]=max(dx[i]),(i=0,…,N;0<m<N)式3);如圖1所示的是根據(jù)該IES文件記載的角度-光照強(qiáng)度數(shù)據(jù)繪制的極坐標(biāo)上的配光曲線,可以看出該配光曲線呈紡錐形。為便于理解,可將該紡錐形曲線等同于一條鋼絲圈,要將鋼絲圈拉扯出該紡錐形曲線的形態(tài)可將鋼絲圈的一端固定(即圖中的坐標(biāo)原點(diǎn))后向下拉扯,則當(dāng)其在X軸上最大的值被確定的時(shí)候,鋼絲圈所拉扯出的形狀便也隨之確定。因此,步驟S2的意義便在于尋找出極坐標(biāo)圖像中最能表征其配光曲線特征的點(diǎn)dx[m],以該IES文件為例,即為圖1中所示20度左右對(duì)應(yīng)光照強(qiáng)度為500的點(diǎn)。S3、對(duì)所述X分量集dx[i]及Y軸分量集dy[i]作歸一化處理,獲得X軸分量集的單位根集d′x[i]及Y軸分量集的單位根集d′y[i],則有,由該IES文件的角度-輻射度對(duì)應(yīng)數(shù)據(jù)及圖1可以看出,在接近坐標(biāo)原點(diǎn)的位置有許多方向平行于X軸的微小向量(即原點(diǎn)附近的角度-光照強(qiáng)度對(duì)應(yīng)值),其對(duì)配光曲線在X軸上存在著拉扯作用。由于其向量長(zhǎng)度極小,考慮向量長(zhǎng)度的話會(huì)導(dǎo)致配光曲線的開口狹小而失真,模擬效果差,因此步驟S3的意義在于去除這些微小向量的長(zhǎng)度影響,只留下向量的方向作為參照,從而實(shí)現(xiàn)在光照外形在被保留的情況下計(jì)算出實(shí)時(shí)光照參數(shù)。由于X分量集dx[i]作了歸一化處理,對(duì)應(yīng)地,Y軸分量集dy[i]也需作歸一化處理。S4、分別累加所述單位根集d′x[i]及d′y[i],獲得點(diǎn)坐標(biāo)(X,Y),則有,S5、求解點(diǎn)坐標(biāo)(X,Y)與坐標(biāo)軸X=0的夾角θ的余弦值,則有,S6、對(duì)光源進(jìn)行分類:尋找光照角度A[i]中的最大角度值當(dāng)時(shí),將光源視為聚光燈模型;當(dāng)?shù)獶[n]≠D[0]時(shí),仍將光源仍視為聚光燈模型,將θ與分別作為聚光燈的內(nèi)角與外角;當(dāng)且D[n]=D[0](即首尾的距離因子相同)時(shí)則將光源視為點(diǎn)光源模型;在該IES文件中,最大角度值即為90°,因此該光源為聚光燈模型。S7、根據(jù)光源的分類求解對(duì)應(yīng)的光照參數(shù):對(duì)于點(diǎn)光源模型,其光照表達(dá)式為對(duì)于聚光燈模型,其光照表達(dá)式為式中,c為衰減常數(shù),l為一次系數(shù),q為二次系數(shù),θ為內(nèi)角,為外角,d為距離,a為主光軸夾角,不失一般性,令定義IES文件中光照強(qiáng)度數(shù)據(jù)最大時(shí),其光強(qiáng)強(qiáng)度P=1,隨著光照強(qiáng)度的遞減,光強(qiáng)強(qiáng)度線性衰減,則P=1時(shí),c+l*d+q*d2=K,根據(jù)步驟2中dx[m]的下標(biāo)m,取對(duì)應(yīng)位置的距離因子D[m]和光照角度A[m],及坐標(biāo)原點(diǎn)的距離因子D[0]和光照角度A[0]代入方程聯(lián)立方程組:當(dāng)為聚光燈模型時(shí),代入步驟S6中的θ與值;將一次系數(shù)l的取值范圍0<l<1代入式10中求出C的取值范圍[min,max],取代入式10中,求得l與q的值;設(shè)定闕值Pmin作為光強(qiáng)影響最小值,本實(shí)施例中設(shè)定闕值為0.001,代入式9中,求出此時(shí)的距離因子D[r](D[r]>D[0]),則該距離因子D即為光照影響范圍;此時(shí),計(jì)算機(jī)已完成光照參數(shù)的求解,如為聚光燈模型,則求解的參數(shù)有:衰減范圍r,衰減常數(shù)c,一次系數(shù)l,二次系數(shù)q,內(nèi)角θ,外角如為點(diǎn)光源模型,求解的參數(shù)有:衰減范圍r,衰減常數(shù)c,一次系數(shù)l,二次系數(shù)q。S8、發(fā)送步驟S7中求解出的光照參數(shù)到實(shí)時(shí)渲染系統(tǒng)的固定渲染管線或可編程渲染管線中,實(shí)時(shí)模擬出IES文件所描述的精確光照效果。圖2為使用
背景技術(shù):
中所述的貼圖烘焙的方式對(duì)文中所述IES文件實(shí)現(xiàn)的光源渲染效果圖,其光照效果接近真實(shí),圖3為使用本發(fā)明采用新算法的實(shí)時(shí)渲染系統(tǒng)對(duì)文中IES文件所模擬出的光源渲染效果圖,可以看出,本發(fā)明的渲染效果接近圖2的光源渲染效果,其犧牲了一定程度的準(zhǔn)確性,但其在渲染時(shí)的高效性是貼圖烘焙方式所不能比擬的,在需要快速渲染的場(chǎng)景(如室內(nèi)設(shè)計(jì)時(shí)的燈具選型,現(xiàn)場(chǎng)展示)具有更強(qiáng)的實(shí)用性。以上所述,僅為本發(fā)明較佳的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本
技術(shù)領(lǐng)域:
的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。當(dāng)前第1頁(yè)1 2 3