本發(fā)明實施例涉及虛擬現(xiàn)實技術(shù)領(lǐng)域,尤其涉及一種三維場景模型渲染方法和裝置。
背景技術(shù):
虛擬現(xiàn)實技術(shù)是一種計算機(jī)仿真系統(tǒng),在該系統(tǒng)中可以創(chuàng)建和體驗虛擬世界。本質(zhì)上,該系統(tǒng)利用計算機(jī)生成一種模擬環(huán)境,該模擬環(huán)境是一種多源信息融合的交互式的三維動態(tài)視景和對實體行為的系統(tǒng)仿真,可以達(dá)到沉浸式體驗。
虛擬現(xiàn)實涉及的多源信息包括實時三維計算機(jī)圖形技術(shù)、廣角(寬視野)立體顯示技術(shù)、對觀察者頭、眼和手的跟蹤技術(shù),以及觸覺/力覺反饋、立體聲、網(wǎng)絡(luò)傳輸、語音輸入輸出技術(shù)等。除此之外,還涉及雙目立體視覺,雙目立體視覺起了較大的作用。在雙目立體視覺技術(shù)中,兩只眼睛看到的不同圖像是分別產(chǎn)生的,分別顯示在兩個不同的顯示器上。另外,也有虛擬現(xiàn)實系統(tǒng)采用單個顯示器,但帶上特殊的眼鏡后,一只眼睛只能看到奇數(shù)幀圖像,另一只眼睛只能看到偶數(shù)幀圖像,由于奇、偶幀之間不同即存在視差,從而產(chǎn)生了立體感。
上述虛擬現(xiàn)實技術(shù)的實現(xiàn)過程中,需要對所有的對象進(jìn)行三維場景渲染,在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn),在渲染時,對三維場景模型中所有對象的所有像素點進(jìn)行,像素點數(shù)量較多,導(dǎo)致渲染處理的次數(shù)也就越多,從而導(dǎo)致渲染的效率較低。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例的目的在于提供一種三維場景模型渲染方法和裝置,用于解決現(xiàn)有技術(shù)中在渲染時,對三維場景模型中所有對象的所有像素點進(jìn)行導(dǎo)致的渲染效率較低的缺陷。
本發(fā)明實施例采用的技術(shù)方案如下:
本發(fā)明實施例提供一種三維場景模型渲染方法,其包括:
獲取預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點;
根據(jù)預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點對三維場景模型進(jìn)行渲染處理。
在本發(fā)明的一具體實施例中,獲取預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點之前包括:獲取重構(gòu)后的所述三維場景模型。
獲取預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點包括:從重構(gòu)的所述三維場景模型中獲取預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點。
在本發(fā)明的一具體實施例中,根據(jù)預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點對三維場景模型進(jìn)行渲染處理包括:根據(jù)預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點在頂點著色器中對三維場景模型進(jìn)行渲染處理。
在本發(fā)明的一具體實施例中,獲取根據(jù)選定的頂點數(shù)據(jù)預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點之前包括:獲取在頂點緩沖區(qū)對象中存儲的選定的頂點數(shù)據(jù),以獲取根據(jù)選定的頂點數(shù)據(jù)預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點。
在本發(fā)明的一具體實施例中,根據(jù)預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點對三維場景模型進(jìn)行渲染處理包括:
對預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點進(jìn)行插值處理以對三維場景模型進(jìn)行渲染處理。
本發(fā)明提供一種三維場景模型渲染裝置,包括:
獲取單元,用于獲取預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點;
渲染單元,用于根據(jù)預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點對三維場景模型進(jìn)行渲染處理。
可選地,在本發(fā)明的任意實施例中,所述獲取單元進(jìn)一步用于獲取重構(gòu)后的所述三維場景模型;以及從重構(gòu)的所述三維場景模型中獲取預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點。
可選地,在本發(fā)明的任意實施例中,所述渲染單元進(jìn)一步用于根據(jù)預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點在頂點著色器中對三維場景模型進(jìn)行渲染處理。
可選地,在本發(fā)明的任意實施例中,所述獲取單元進(jìn)一步用于獲取在頂點緩沖區(qū)對象中存儲的選定的頂點數(shù)據(jù),以獲取根據(jù)選定的頂點數(shù)據(jù)預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點。
可選地,在本發(fā)明的任意實施例中,所述渲染單元進(jìn)一步用于對預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點進(jìn)行插值處理以對三維場景模型進(jìn)行渲染處理。
由以上技術(shù)方案可見,本發(fā)明實施例中,通過獲取預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點;以及根據(jù)預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點對三維場景模型進(jìn)行渲染處理。因此,由于只是對預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點進(jìn)行,而非對三維場景模型中所有的像素點進(jìn)行,因此,減少了渲染的數(shù)據(jù)量,從而減少了渲染的處理次數(shù),加快了渲染速度。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例一三維場景模型渲染流程示意圖;
圖2為本發(fā)明實施例二三維場景模型渲染流程示意圖;
圖3為本發(fā)明實施例三三維場景模型渲染裝置結(jié)構(gòu)示意圖;
圖4為本發(fā)明實施例四虛擬現(xiàn)實終端結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
下面結(jié)合本申請附圖進(jìn)一步說明本申請具體實現(xiàn)。
圖1為本發(fā)明實施例一三維場景模型渲染流程示意圖;如圖1所示,本發(fā)明實施例中的技術(shù)方案具體包括:
S101、獲取預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點;
本實施例或其他任一實施例中,步驟S101中可以由圖形處理接口(Graphic Processing Unit,簡稱GPU)獲取預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點,可以具體圖形處理接口GPU獲取根據(jù)選定的頂點數(shù)據(jù)預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點。
本實施例中,頂點數(shù)據(jù)可是三維場景模型中各對象的輪廓相關(guān)在世界坐標(biāo)系XYZ下的坐標(biāo),以這些坐標(biāo)為參考,設(shè)定一定的采樣步長,從而可以確定出采樣像素點。
需要說明的是,在本實施例或其他實施例中,頂點數(shù)據(jù)還可以包括頂點在二維坐標(biāo)系下的坐標(biāo)/頂點法線/頂點顏色等信息,詳細(xì)補(bǔ)在贅述。
本實施例或其他任一實施例中,由頂點數(shù)據(jù)預(yù)先存儲在內(nèi)存中,通過中央處理器將預(yù)存在內(nèi)存中的頂點數(shù)據(jù)發(fā)送至圖形處理接口GPU。
本實施例或其他實施例中,步驟S101中獲取預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點時可以從重構(gòu)的所述三維場景模型中獲取預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點。
本實施例中,由于可以從重構(gòu)的三維場景模型中獲取包括具有關(guān)鍵特征的圖像素點,比如這些像素點可以是對播放效果具有較大影響的特征點、特正面特征區(qū)域,比如三維影院場景模型中,燈光、幕布等對象的特征點、特正面、特征區(qū)域等,丟棄了無特征信息的像素點,降低了需要進(jìn)行渲染處理的數(shù)據(jù)量。
本實施例中,可以3DMAX、Maya、AutoCAD、UG等常用軟件來生成重構(gòu)的三維場景模型,詳細(xì)不再贅述。
S102、根據(jù)預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點對三維場景模型進(jìn)行渲染處理。
步驟S102中,在對采樣像素點渲染處理時,使用圖形處理器GPU中的著色器(Shader)對三維場景模型進(jìn)行渲染處理。比如在OpenGl處理中,Shader分為頂點著色器(vertex shader)和片段著色器(fragmentShader)兩種。
其中,頂點著色器主要負(fù)責(zé)頂點數(shù)據(jù)的幾何關(guān)系等的運算,頂點著色器渲染頂點、法線等的數(shù)據(jù),操作的數(shù)據(jù)量比較少,渲染效率比較高;本發(fā)明中,除了要使用頂點著色器渲染三維場景模型中的頂點數(shù)據(jù),還包括對根據(jù)頂點數(shù)據(jù)確定的采集像素點進(jìn)行渲染,具體地,比如通過對這些像素點進(jìn)行差值處理,從而完成三維場景模型的渲染。
本實施例中,通過圖形處理接口中的頂點著色器獲取預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點;以及并根據(jù)預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點對三維場景模型進(jìn)行渲染處理。因此,由于在頂點著色器中對預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點進(jìn)行,而非對三維場景模型中所有的像素點進(jìn)行,因此,減少了渲染的數(shù)據(jù)量,從而減少了渲染的處理次數(shù),加快了渲染速度。
圖2為本發(fā)明實施例二三維場景模型渲染流程示意圖;如圖2所示,本發(fā)明實施例中的技術(shù)方案具體包括:
S201、從頂點緩沖區(qū)對象中獲取預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點;
本實施例中,步驟S201類似上述實施例中的步驟S101,由圖形處理接口(Graphic Processing Unit,簡稱GPU)獲取預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點等,詳細(xì)不再贅述??梢詤⒄丈鲜鰧嵤├恢械捻旤c數(shù)據(jù)確定出采樣像素點。
本實施例或其他任一實施例中,由于頂點緩沖區(qū)對象(Vertex Buffer Objects,簡稱VBO)中為存儲頂點數(shù)據(jù)的容器,用于存儲頂點坐標(biāo)、頂點向量、頂點法線、頂點顏色等數(shù)據(jù)信息。頂點數(shù)據(jù)預(yù)先存儲在該頂點緩沖區(qū)對象VBO中。通過頂點緩沖區(qū)對象VBO可以把頂點數(shù)據(jù),直接上傳圖形處理器(Graphics Processing Unit,簡稱GPU)的顯存中,相對于從中央處理器(Central Processing Unit,簡稱CPU)把頂點數(shù)據(jù)發(fā)送到顯卡來說,該頂點緩沖區(qū)對象VBO可以快速地一次性發(fā)送較多的頂點數(shù)據(jù)到顯存中,當(dāng)頂點數(shù)據(jù)發(fā)送到顯卡的內(nèi)存中時,在獲取頂點數(shù)據(jù)時的速率較快,從而進(jìn)一步加快了獲取根據(jù)頂點數(shù)據(jù)預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點的速率。
可選地,本實施例中,步驟S201中獲取預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點時可以從重構(gòu)的所述三維場景模型中獲取預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點,詳細(xì)可參見上述實施例一。
S202、根據(jù)預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點對三維場景模型進(jìn)行渲染處理。
步驟S202中,在對采樣像素點渲染處理時,使用圖形處理器GPU中的著色器(Shader)對三維場景模型進(jìn)行渲染處理。比如在OpenGl處理中,Shader分為頂點著色器(vertex shader)和片段著色器(fragmentShader)兩種。
其中,頂點著色器主要負(fù)責(zé)頂點數(shù)據(jù)的幾何關(guān)系等的運算,頂點著色器渲染頂點、法線等的數(shù)據(jù),操作的數(shù)據(jù)量比較少,渲染效率比較高;頂點著色器用于對頂點數(shù)據(jù)進(jìn)行渲染,而由片段著色器對根據(jù)頂點數(shù)據(jù)確定的采集像素點進(jìn)行渲染,處理光、陰影、遮擋、環(huán)境等對對象表面的影響,從而完成三維場景模型的渲染。
本實施例中,通過圖形處理接口中的片源著色器從頂點緩沖區(qū)對象VBO獲取預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點;以及并根據(jù)預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點對三維場景模型進(jìn)行渲染處理。因此,由于片源著色器直接從頂點緩沖區(qū)對象VBO中獲取并對預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點進(jìn)行渲染,而非對三維場景模型中所有的像素點進(jìn)行,因此,減少了渲染的數(shù)據(jù)量,從而減少了渲染的處理次數(shù),加快了渲染速度。
圖3為本發(fā)明實施例三三維場景模型渲染裝置結(jié)構(gòu)示意圖;如圖3所示,所述裝置具體包括:獲取單元301,用于獲取預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點;
渲染單元302,用于根據(jù)預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點對三維場景模型進(jìn)行渲染處理。
可選地,在本實施例或其他任一實施例中,所述獲取單元301進(jìn)一步用于獲取重構(gòu)后的所述三維場景模型;以及從重構(gòu)的所述三維場景模型中獲取預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點。
可選地,在本實施例或其他任一實施例中,所述渲染單元302進(jìn)一步用于根據(jù)預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點在頂點著色器中對三維場景模型進(jìn)行渲染處理。
可選地,在本實施例或其他任一實施例中,所述獲取單元301進(jìn)一步用于獲取在頂點緩沖區(qū)對象中存儲的選定的頂點數(shù)據(jù)。
可選地,在本實施例或其他任一實施例中,所述渲染單元302進(jìn)一步用于對預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點進(jìn)行插值處理以對三維場景模型進(jìn)行渲染處理。
本實施例中,有關(guān)所述獲取單元301、以及所述渲染單元302進(jìn)一步實現(xiàn)的功能,詳細(xì)可參見上述圖1-2的記載,詳細(xì)不再贅述。
本實施例中,通過獲取單元獲取預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點;以及由渲染單元根據(jù)預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點對三維場景模型進(jìn)行渲染處理。因此,由于只是對預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點進(jìn)行,而非對三維場景模型中所有的像素點進(jìn)行,因此,減少了渲染的數(shù)據(jù)量,從而減少了渲染的處理次數(shù),加快了渲染速度。
圖4為本發(fā)明實施例四虛擬現(xiàn)實終端結(jié)構(gòu)示意圖;如圖4所示,虛擬系現(xiàn)實終端400包括:處理器401,所述處理器用于獲取預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點;以及根據(jù)預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點對三維場景模型進(jìn)行渲染處理。
可選地,在本實施例或其他任一實施例中,所述處理器401進(jìn)一步用于獲取重構(gòu)后的所述三維場景模型;以及從重構(gòu)的所述三維場景模型中獲取預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點。
可選地,在本實施例或其他任一實施例中,所述處理器401進(jìn)一步用于根據(jù)預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點在頂點著色器中對三維場景模型進(jìn)行渲染處理。
可選地,在本實施例或其他任一實施例中,所述處理器401進(jìn)一步用于獲取在頂點緩沖區(qū)對象中存儲的選定的頂點數(shù)據(jù)。
可選地,在本實施例或其他任一實施例中,所述處理器401進(jìn)一步用于對預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點進(jìn)行插值處理以對三維場景模型進(jìn)行渲染處理。
本實施例中,有關(guān)所述處理器401進(jìn)一步實現(xiàn)的功能,詳細(xì)可參見上述圖1-2的記載,詳細(xì)不再贅述。
本發(fā)明實施例中還提供一種存儲裝置,該存儲裝置上存儲有可執(zhí)行上述圖1-圖2任意方法實施例的指令,詳細(xì)不再贅述。
本實施例中,通過處理器獲取預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點;以及由處理器根據(jù)預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點對三維場景模型進(jìn)行渲染處理。因此,由于只是對預(yù)先設(shè)定的在渲染處理時所涉及的采樣像素點進(jìn)行,而非對三維場景模型中所有的像素點進(jìn)行,因此,減少了渲染的數(shù)據(jù)量,從而減少了渲染的處理次數(shù),加快了渲染速度。
本申請的實施例所提供的裝置可通過計算機(jī)程序?qū)崿F(xiàn)。本領(lǐng)域技術(shù)人員應(yīng)該能夠理解,上述的單元以及模塊劃分方式僅是眾多劃分方式中的一種,如果劃分為其他單元或模塊或不劃分塊,只要信息對象的具有上述功能,都應(yīng)該在本申請的保護(hù)范圍之內(nèi)。
本領(lǐng)域的技術(shù)人員應(yīng)明白,本申請的實施例可提供為方法、裝置(設(shè)備)、或計算機(jī)程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機(jī)可用程序代碼的計算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機(jī)程序產(chǎn)品的形式。
本申請是參照根據(jù)本申請實施例的方法、裝置(設(shè)備)和計算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機(jī)程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機(jī)程序指令到通用計算機(jī)、專用計算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機(jī)器,使得通過計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機(jī)程序指令也可存儲在能引導(dǎo)計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機(jī)可讀存儲器中,使得存儲在該計算機(jī)可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機(jī)程序指令也可裝載到計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機(jī)實現(xiàn)的處理,從而在計算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本申請的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本申請范圍的所有變更和修改。顯然,本領(lǐng)域的技術(shù)人員可以對本申請進(jìn)行各種改動和變型而不脫離本申請的精神和范圍。這樣,倘若本申請的這些修改和變型屬于本申請權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請也意圖包含這些改動和變型在內(nèi)。