1.一種陰影渲染方法,其特征在于,包括:
將六個(gè)光源方向分成N組,將所述N組光源方向的深度信息分別渲染到N張陰影紋理中;所述六個(gè)光源方向與三維空間坐標(biāo)軸的六個(gè)方向相同;1≤N≤3;
對(duì)于待渲染對(duì)象的每個(gè)像素,根據(jù)該像素所在位置對(duì)應(yīng)的光源方向,確定該像素的深度信息所在的陰影紋理以及在陰影紋理中的位置;根據(jù)所述位置從所確定出的陰影紋理上采樣,得到該像素的深度信息;
根據(jù)所述像素的深度信息,確定所述待渲染對(duì)象的陰影并進(jìn)行相應(yīng)的渲染。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,當(dāng)N=2時(shí),所述將六個(gè)光源方向分成N組包括:
從六個(gè)光源方向中選擇出四個(gè)光源方向,將所選擇出的四個(gè)光源方向劃分為一組,將未被選擇的兩個(gè)光源方向劃分為另一組。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述將六個(gè)光源方向分成N組包括:
對(duì)于每個(gè)述光源方向,將該光源方向的序號(hào)與4相除,將相除結(jié)果取整后加1作為該光源方向所在組的序號(hào)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,將所述N組光源方向的深度信息分別渲染到N張陰影紋理中包括:
對(duì)于每組光源方向,根據(jù)陰影紋理的序號(hào)與該組光源方向的組序號(hào)相同的原則,確定該組光源方向的深度信息需要渲染至的陰影紋理;
對(duì)于每組光源方向,根據(jù)預(yù)設(shè)的紋理高度TexHeight和紋理寬度TexWidth,按照Pi=OffsetArray[i]*(TexHeight,TexWidth),計(jì)算其中每個(gè)光源方向的深度信息在需要渲染至的陰影紋理中的位置Pi,并按照所計(jì)算出的位置Pi將對(duì)應(yīng)光源方向的深度信息渲染至對(duì)應(yīng)的陰影紋理中,其中,OffsetArray[i]為光源方向在陰影紋理中對(duì)應(yīng)的紋理坐標(biāo)偏移量,i=Index%k,%表示求余運(yùn)算,Index為光源方向的序號(hào),k為一組光源方向中光源方向數(shù)量的最大值。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述將所述N組光源方向的深度信息分別渲染到N張陰影紋理中包括:
按照textureIndex=int(Index/4)+1,確定每個(gè)所述光源方向的深度信息需要渲染至的陰影紋理,其中,Index為光源方向的序號(hào),textureIndex為所確定出的陰影紋理的序號(hào),int()為取整函數(shù);
按照Pi=OffsetArray[i]*(TexHeight,TexWidth),計(jì)算其中每個(gè)光源方向的深度信息在需要渲染至的陰影紋理中的位置Pi,并按照所計(jì)算出的位置Pi將對(duì)應(yīng)光源方向的深度信息渲染至對(duì)應(yīng)的陰影紋理中;其中,OffsetArray[i]為光源方向在陰影紋理中對(duì)應(yīng)的紋理坐標(biāo)偏移量,i=Index%4,%為求余運(yùn)算,Index為光源方向的序號(hào),OffsetArray[0]=(0,0),OffsetArray[1]=(0.5,0),OffsetArray[2]=(0,0.5),OffsetArray[3]=(0.5,0.5)。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述確定該像素的深度信息所在的陰影紋理以及在陰影紋理中的位置包括:
按照t=int(r/4)+1,確定像素的深度信息所在的陰影紋理,其中,r為像素所在位置對(duì)應(yīng)的光源方向的序號(hào),t為像素的深度信息所在的陰影紋理的序號(hào),int()為取整函數(shù);
按照Qs=OffsetArray[s]+0.5*(u,v),計(jì)算像素的深度信息在陰影紋理中的位置Qs,其中,(u,v)為像素的原始紋理坐標(biāo),OffsetArray[s]為光源方向r在陰影紋理中對(duì)應(yīng)的紋理坐標(biāo)偏移量,s=r%4,%表示求余運(yùn)算。