一種圖像生成方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及圖像處理技術(shù)領(lǐng)域,尤其涉及一種圖像生成方法和裝置。
【背景技術(shù)】
[0002]在傳統(tǒng)GPU (Graphic Processing Unit,圖形處理器)固定功能圖形管線框架下,由于所有的變換矩陣,如模型變換矩陣M,視圖變換矩陣V,投影變換矩陣P等都是可以指定的,GPU設(shè)備驅(qū)動都可以獲取這些矩陣,因此在應(yīng)用程序不需要做任何修改的情況下,通過GPU設(shè)備驅(qū)動可以直接調(diào)節(jié)視圖變換矩陣V實現(xiàn)攝像機位置的移動,這樣就可以產(chǎn)生不同攝像機位置的圖像,也就是可以產(chǎn)生不同視點的圖像,這樣就很容易產(chǎn)生基于左眼視點的圖像和基于右眼視點的圖像,從而產(chǎn)生有立體感的兩張視差圖像。
[0003]而在GPU可編程管線框架下,所有的變換矩陣都不是顯式指定的,GPU設(shè)備驅(qū)動獲取到的矩陣有可能是最終的混合矩陣,是無法對該矩陣進(jìn)行修改以實現(xiàn)攝像機位置的移動,因此在應(yīng)用程序不支持立體顯示功能的情況下,很難通過修改相關(guān)矩陣實現(xiàn)產(chǎn)生有立體感的圖像。
【發(fā)明內(nèi)容】
[0004]為此,需要提供一種圖像生成方案,解決在應(yīng)用程序不支持立體顯示功能的情況下,很難通過修改相關(guān)矩陣實現(xiàn)產(chǎn)生有立體感的圖像的問題。
[0005]為實現(xiàn)上述目的,發(fā)明人提供了一種圖像生成方法,包括如下步驟:
[0006]根據(jù)視點的第一參數(shù)和第二參數(shù)生成一段指令,把該段指令插入頂點著色程序末尾,用上述修改后的頂點著色程序繪制景物圖像。
[0007]進(jìn)一步地,所述方法包括如下步驟:
[0008]接收到三維場景中一條景物渲染指令;
[0009]執(zhí)行該指令對應(yīng)的修改后的頂點著色程序?qū)拔镞M(jìn)行處理,生成景物圖像;
[0010]重復(fù)上述步驟,直至將整個場景中的所有景物都渲染完畢,生成該場景的視點圖像。
[0011]進(jìn)一步地,本方法包括如下步驟:
[0012]接收到三維場景中一條景物渲染指令;
[0013]判斷該指令是否是3D景物渲染指令;
[0014]如果是則執(zhí)行該指令對應(yīng)的修改后的頂點著色程序?qū)拔镞M(jìn)行處理,生成景物圖像;
[0015]否則執(zhí)行修改前的頂點著色程序?qū)拔镞M(jìn)行處理,生成景物圖像;
[0016]重復(fù)上述步驟,直至將整個場景中的所有景物都渲染完畢,生成該場景的視點圖像。
[0017]進(jìn)一步地,所述方法用于生成第一視點圖像和第二視點圖像,在生成第一視點的景物圖像和第二視點的景物圖像時,存儲第一視點的景物圖像和第二視點的景物圖像到同一平面區(qū)。
[0018]進(jìn)一步地,還包括如下步驟:存儲所述同一平面區(qū)的圖像到存儲設(shè)備或者在顯示設(shè)備上顯示同一平面區(qū)的圖像。
[0019]進(jìn)一步地,所述方法用于生成第一視點圖像和第二視點圖像,在生成第一視點的景物圖像和第二視點的景物圖像時,存儲第一視點的景物圖像和第二視點的景物圖像到不同平面區(qū)。
[0020]進(jìn)一步地,還包括如下步驟:合成第一視點圖像和第二視點圖像為一幅左右格式、上下格式或重疊格式的立體圖像。
[0021]進(jìn)一步地,還包括如下步驟:存儲立體圖像到存儲設(shè)備或者在顯示設(shè)備上顯示立體圖像。
[0022]進(jìn)一步地,還包括如下步驟:存儲第一視點圖像或第二視點圖像到存儲設(shè)備或者在顯示設(shè)備上顯示第一視點圖像或第二視點圖像。
[0023]進(jìn)一步地,還包括如下步驟:存儲圖像(包括上述的立體圖像、第一視點圖像、第二視點圖像等)到存儲設(shè)備或者在顯示設(shè)備上顯示圖像。
[0024]進(jìn)一步地,還包括如下步驟:傳輸或處理所述圖像,存儲處理后的圖像到存儲設(shè)備或者在顯示設(shè)備上顯示圖像。
[0025]以及發(fā)明人還提供一種圖像生成裝置,包括如下模塊:
[0026]修改模塊:用于根據(jù)視點的第一參數(shù)和第二參數(shù)生成一段指令,把該指令插入頂點著色程序末尾;
[0027]繪制模塊:用于用上述修改后的頂點著色程序繪制景物圖像。
[0028]進(jìn)一步地,包括如下模塊:
[0029]接收模塊:用于接收到三維場景中一條景物渲染指令;
[0030]繪制模塊還用于執(zhí)行該指令對應(yīng)的修改后的頂點著色程序?qū)拔镞M(jìn)行處理,生成景物圖像;
[0031]圖像生成模塊:用于重復(fù)使能接收模塊和繪制模塊,直至將整個場景中的所有景物都渲染完畢,生成該場景的視點圖像。
[0032]進(jìn)一步地,包括如下模塊:
[0033]接收模塊:接收到三維場景中一條景物渲染指令;
[0034]判斷模塊:用于判斷該指令是否是3D景物渲染指令;在該指令是3D景物渲染指令時,則使能繪制模塊;在該指令不是3D景物渲染指令時執(zhí)行修改前的頂點著色程序?qū)拔镞M(jìn)行處理,生成景物圖像;
[0035]圖像生成模塊:用于重復(fù)使能接收模塊和判斷模塊,直至將整個場景中的所有景物都渲染完畢,生成該場景的視點圖像。
[0036]進(jìn)一步地,所述裝置用于生成第一視點圖像和第二視點圖像,所述繪制模塊還用于在生成第一視點的景物圖像和第二視點的景物圖像時,存儲第一視點的景物圖像和第二視點的景物圖像到同一平面區(qū)。
[0037]進(jìn)一步地,還包括如下模塊:圖像顯示或存儲模塊,用于存儲所述同一平面區(qū)的圖像到存儲設(shè)備或者在顯示設(shè)備上顯示同一平面區(qū)的圖像。
[0038]進(jìn)一步地,所述裝置用于生成第一視點圖像和第二視點圖像,所述繪制模塊還用于在生成第一視點的景物圖像和第二視點的景物圖像時,存儲第一視點的景物圖像和第二視點的景物圖像到不同平面區(qū)。
[0039]進(jìn)一步地,還包括如下模塊:立體圖像合成模塊,用于合成第一視點圖像和第二視點圖像為一幅左右格式、上下格式或重疊格式的立體圖像。
[0040]進(jìn)一步地,還包括如下模塊:圖像顯示或存儲模塊,用于存儲立體圖像到存儲設(shè)備或者在顯示設(shè)備上顯示立體圖像。
[0041 ] 進(jìn)一步地,還包括如下模塊:圖像顯示或存儲模塊,用于存儲第一視點圖像或第二視點圖像到存儲設(shè)備或者在顯示設(shè)備上顯示第一視點圖像或第二視點圖像。
[0042]進(jìn)一步地,還包括如下模塊:圖像顯示或存儲模塊,用于存儲圖像(包括上述的立體圖像、第一視點圖像、第二視點圖像等)到存儲設(shè)備或者在顯示設(shè)備上顯示圖像,或者用于傳輸或處理圖像,存儲處理后的圖像到存儲設(shè)備或者在顯示設(shè)備上顯示圖像。
[0043]區(qū)別于現(xiàn)有技術(shù),上述技術(shù)方案具有如下優(yōu)點:在應(yīng)用程序不支持立體顯示模式以及不告知視圖變換矩陣的情況下,通過修改頂點著色程序,使其可以產(chǎn)生基于視點的景物圖像,并可用于生成各視點圖像,避免了對變換矩陣的修改,從而解決沒有視圖變換矩陣信息的情況下立體圖像生成問題。
【附圖說明】
[0044]圖1為本發(fā)明一實施例的方法流程圖;
[0045]圖2