式的方法中,預(yù)先規(guī)定連結(jié)條件,將該規(guī)定的連結(jié)條件存儲(chǔ)到CPU2。在CPU2中,連結(jié)滿足連結(jié)條件的多個(gè)物體的網(wǎng)格,事先(轉(zhuǎn)送繪制命令前)對(duì)連結(jié)了該網(wǎng)格的多個(gè)物體進(jìn)行頂點(diǎn)屬性變換。若在將作為滿足連結(jié)條件的物體例如數(shù)字(4)、字符(6)、數(shù)字(7)看作為一個(gè)部件而連結(jié)這些物體的網(wǎng)格的情況下,CPU2分別對(duì)連結(jié)了該網(wǎng)格的多個(gè)物體進(jìn)行頂點(diǎn)屬性變換,之后,將進(jìn)行了該頂點(diǎn)屬性變換的多個(gè)物體看作為一個(gè)物體并轉(zhuǎn)送繪制命令。若GPU3依次獲取指示儀表(1)、車速表(2)、指針(3)、轉(zhuǎn)速表(5)、指針(8)的繪制的繪制命令,則分別依次對(duì)其進(jìn)行頂點(diǎn)屬性變換,并依次繪制進(jìn)行了該頂點(diǎn)屬性變換的物體,另一方面,若GPU3獲取指示數(shù)字以及字符(4、6、7)被看作為一個(gè)部件的物體的繪制的繪制命令,由于CPU2已經(jīng)進(jìn)行了頂點(diǎn)屬性變換,因此GPU3不進(jìn)行頂點(diǎn)屬性變換就進(jìn)行繪制。本實(shí)施方式的方法與按每一個(gè)物體轉(zhuǎn)送繪制命令的現(xiàn)有的方法不同,事先對(duì)連結(jié)了網(wǎng)格的多個(gè)物體進(jìn)行頂點(diǎn)屬性變換,通過將進(jìn)行了頂點(diǎn)屬性變換的多個(gè)物體匯集而看作為一個(gè)物體,并轉(zhuǎn)送指示該物體的繪制的繪制命令,從而不同于按每一個(gè)物體轉(zhuǎn)送繪制命令的現(xiàn)有的方法,比現(xiàn)有的方法更能夠抑制繪制單元在繪制命令的函數(shù)調(diào)用的開銷上所花費(fèi)的時(shí)間,能夠提高繪制速度(參照后述的圖8)。
[0037]另外,連結(jié)物體的網(wǎng)格的連結(jié)條件如下。
[0038](I)僅將參照相同材料(質(zhì)地)的物體彼此作為相同連結(jié)組。在此所謂的質(zhì)地是表示顏色、透明度、反射率、折射率、凹凸等物體表面的材質(zhì)的設(shè)定,具體而言,指金屬般的(類金屬)材質(zhì)、玻璃般的(玻璃狀)材質(zhì)、木紋般的(木紋狀)材質(zhì)等。
[0039](2) 一個(gè)物體一次只屬于一個(gè)連結(jié)組。
[0040]接下來,參照?qǐng)D3至圖13對(duì)上述結(jié)構(gòu)的作用進(jìn)行說明。
[0041]在此,本申請(qǐng)所記載的流程圖或流程圖的處理由多個(gè)部分(或者稱為步驟)構(gòu)成,各部分例如表不為SI或Tl。進(jìn)一步,各部分能夠被分割成多個(gè)子部分,另一方面,也可以將多個(gè)部分合成為一個(gè)部分。進(jìn)一步,這樣構(gòu)成的各部分也可以稱為設(shè)備、模塊、手段或單元。
[0042]在本實(shí)施方式的方法中,CPU2進(jìn)行遍歷處理以及繪制命令轉(zhuǎn)送處理,GPU3進(jìn)行繪制處理。遍歷處理包含連結(jié)部分/步驟以及頂點(diǎn)屬性變換部分/步驟。繪制命令轉(zhuǎn)送處理包含繪制命令轉(zhuǎn)送部分/步驟。繪制處理包含繪制部分/步驟。
[0043]若CPU2開始遍歷處理,則決定遍歷目的地的物體(SI)。接下來,CPU2判定該決定的遍歷目的地的物體是否是滿足預(yù)先規(guī)定的連結(jié)條件(是否參照相同材料的條件)的連結(jié)組內(nèi)所包含的物體(S2)。在此,若CPU2判定為物體的網(wǎng)格與預(yù)先規(guī)定的連結(jié)條件一致且為連結(jié)組內(nèi)所包含的物體(S2:是),則CPU2判定是否是在該連結(jié)組內(nèi)最先出現(xiàn)的物體(S3)。
[0044]若CPU2判定為是在該連結(jié)組內(nèi)最先出現(xiàn)的物體(S3:是),則將該連結(jié)組的代表網(wǎng)格存儲(chǔ)到繪制對(duì)象網(wǎng)格列(S4),并進(jìn)行頂點(diǎn)屬性變換(S5?S7),另一方面,若CPU2判定為不是在該連結(jié)組內(nèi)最先出現(xiàn)的物體(是第2個(gè)之后出現(xiàn)的物體)(S3:否),在該情況下也進(jìn)行頂點(diǎn)屬性變換(S5?S7)。作為頂點(diǎn)屬性變換,CPU2進(jìn)行頂點(diǎn)變換,進(jìn)行頂點(diǎn)顏色/a變換,進(jìn)行UV坐標(biāo)變換。頂點(diǎn)變換是指將頂點(diǎn)的坐標(biāo)數(shù)據(jù)移動(dòng)、放大、縮小、旋轉(zhuǎn)等變換的處理。頂點(diǎn)顏色/ a變換是指反映物體的顏色、透明度而變換的處理。UV坐標(biāo)變換是指為了在三維平面粘貼圖像而將圖像位置與平面的頂點(diǎn)關(guān)聯(lián)對(duì)應(yīng)而變換的處理。
[0045]若參照?qǐng)D6A、圖6B進(jìn)行說明,在圖6A、圖6B中,網(wǎng)格I為在連結(jié)組內(nèi)最先出現(xiàn)的物體的網(wǎng)格,即為連結(jié)代表的網(wǎng)格。另外,網(wǎng)格2以及3為在連結(jié)組內(nèi)第2以后出現(xiàn)的物體的網(wǎng)格,即連結(jié)成員(連結(jié)代表以外)的網(wǎng)格。在該情況下,作為連結(jié)代表的網(wǎng)格I的索引數(shù)(頂點(diǎn)數(shù))為連結(jié)后的數(shù)量(還考慮了虛擬頂點(diǎn)后的數(shù)量),作為連結(jié)成員的網(wǎng)格2以及3的索引數(shù)為本身的索引數(shù)。另外,作為連結(jié)成員的網(wǎng)格2以及3參照指向連結(jié)代表的指針,該頂點(diǎn)屬性數(shù)組以及索引數(shù)組均為“NULL”。S卩,在圖6A、圖6B中,CPU2通過連結(jié)網(wǎng)格I?3來對(duì)連結(jié)了網(wǎng)格I?3的三個(gè)物體匯集進(jìn)行頂點(diǎn)屬性變換。
[0046]接下來,CPU2對(duì)像這樣地連結(jié)組內(nèi)所包含的多個(gè)物體進(jìn)行頂點(diǎn)屬性變換后,設(shè)定可見性是否為“O”的標(biāo)志(S8)。然后,CPU2判定其是否是場景圖形內(nèi)的最后的物體(S9),若判定為不是場景圖形內(nèi)的最后的物體(S9:否),則返回SI,反復(fù)進(jìn)行SI之后的步驟,另一方面,若CPU2判定為是場景圖形內(nèi)最后的物體(S9:是),則結(jié)束遍歷處理。另外,若CPU2判定為物體的網(wǎng)格與預(yù)先規(guī)定的連結(jié)條件不一致,該物體為連結(jié)組內(nèi)所不包含的物體(S2:否),則判定該物體是否是場景圖形內(nèi)的最后的物體(S9)。
[0047]若CPU2將事先進(jìn)行了頂點(diǎn)屬性變換的(連結(jié)了網(wǎng)格)物體作為對(duì)象,開始繪制命令轉(zhuǎn)送處理,則參照各個(gè)原網(wǎng)格信息(Sll),判定各個(gè)原網(wǎng)格的可見性是否為“0”(S12)。若CPU2判定為各個(gè)原網(wǎng)格的可見性不為“0”(S12:是),將頂點(diǎn)復(fù)制到繪制用的臨時(shí)連結(jié)頂點(diǎn)列(S13),判定是否為連結(jié)組內(nèi)的最后的各個(gè)原網(wǎng)格(S14)。另一方面,若CPU2判定為各個(gè)原網(wǎng)格的可見性為“O” (S12:否),則不將頂點(diǎn)復(fù)制到繪制用的臨時(shí)連結(jié)頂點(diǎn)列,而判定是否為連結(jié)組內(nèi)的最后的各個(gè)原網(wǎng)格(S14)。
[0048]若CPU2判定為其是連結(jié)組內(nèi)的最后的各個(gè)原網(wǎng)格(S14:是),則將指示事先進(jìn)行了頂點(diǎn)屬性變換的物體的繪制的繪制命令轉(zhuǎn)送給GPU3 (S15)。另外,若CPU2判定為其不是連結(jié)組內(nèi)的最后的各個(gè)原網(wǎng)格(S14:否),則返回S11,反復(fù)進(jìn)行Sll之后的步驟。另外,CPU2即使將未進(jìn)行頂點(diǎn)屬性變換的(未連結(jié)網(wǎng)格)物體作為對(duì)象,也將指示未進(jìn)行頂點(diǎn)屬性變換的物體的繪制的繪制命令轉(zhuǎn)送給GPU3。
[0049]如圖5所示,GPU3執(zhí)行繪制處理。若開始繪制處理,則進(jìn)行頂點(diǎn)變換進(jìn)行頂點(diǎn)顏色/a變換,進(jìn)行UV坐標(biāo)變換(Tl?T3)作為頂點(diǎn)屬性變換。然后,GPU3繪制進(jìn)行了該頂點(diǎn)屬性變換的物體(T4)。另外,GPU3對(duì)CPU2還未進(jìn)行頂點(diǎn)屬性變換的物體進(jìn)行頂點(diǎn)屬性變換,結(jié)果來看對(duì)CPU2事先進(jìn)行了頂點(diǎn)屬性變換的物體不進(jìn)行頂點(diǎn)屬性變換。
[0050]參照?qǐng)D7對(duì)上述一系列的處理進(jìn)行說明。三維計(jì)算機(jī)圖形的流水線包括:準(zhǔn)備繪制所需的數(shù)據(jù)的G (Generat1n (生成))階段、發(fā)行繪制命令的T (Traversal (遍歷))階段,進(jìn)行頂點(diǎn)屬性變換的X (Transformat1n (變換)、Xformat1n (X構(gòu)造))階段,對(duì)存在于物體的頂點(diǎn)的內(nèi)部的像素計(jì)算其像素值或亮度的S (Scan convers1n (掃描轉(zhuǎn)換))階段以及繪制物體的D (Display (顯示))階段。G階段以及T階段是CPU2進(jìn)行處理的階段,X階段、S階段以及D階段是GPU3進(jìn)行處理的階段。
[0051]例如對(duì)以下情況進(jìn)行說明:在CPU2中,對(duì)指針11發(fā)行“90°旋轉(zhuǎn)50%不透明”的繪制命令,對(duì)環(huán)12發(fā)行“100%不透明”的繪制命令,對(duì)搭載于車輛的照相機(jī)所拍攝的車外的影像13發(fā)行“100%不透明”的繪制命令。影像13是例如夜視(照射近紅外線、對(duì)以前大燈難以確認(rèn)的行人或野生動(dòng)物等捕捉并顯示的技術(shù))或后視(拍攝并顯示用于停車輔助的車輛后方的技術(shù))的影像。在現(xiàn)有的方法中,若CPU2發(fā)行各個(gè)物體的繪制命令,則將指示指針11的繪制的繪制命令、指示環(huán)12的繪制的繪制命令以及指示影像13的繪制的繪制命令依次轉(zhuǎn)送給GPU3。在GPU3中,若依次獲取指示指針11的繪制的繪制命令、指示環(huán)12的繪制的繪制命令以及指示影像13的繪制的繪制命令,則對(duì)各個(gè)物體進(jìn)行頂點(diǎn)屬性變換,并繪制進(jìn)行了該頂點(diǎn)屬性變換的物體。
[0052]對(duì)此,在本實(shí)施方式的方法中,若CPU2判定為指針11與環(huán)12滿足連結(jié)條件,則連結(jié)指針11的網(wǎng)格與環(huán)12的網(wǎng)格,事先進(jìn)行對(duì)應(yīng)指針11的頂點(diǎn)屬性變換與對(duì)應(yīng)環(huán)12的頂點(diǎn)屬性變換。換言之,CPU2在對(duì)指針11進(jìn)行了頂點(diǎn)屬性變換,對(duì)環(huán)12進(jìn)行了頂點(diǎn)屬性變換的基礎(chǔ)上,將指針11與環(huán)12看作為一個(gè)物體。并且,將指示該物體的繪制的繪制命令轉(zhuǎn)送給GPU3。
[0053]即在現(xiàn)有的方法中,在GPU3中,進(jìn)行了對(duì)指針11的頂點(diǎn)屬性變換與對(duì)環(huán)12的頂點(diǎn)屬性變換,但在本實(shí)施方式的方法中,在CPU2中,進(jìn)行對(duì)應(yīng)指針11的頂點(diǎn)屬性變換與對(duì)應(yīng)環(huán)12的頂點(diǎn)屬性變換,將指針11與環(huán)12看作為一個(gè)物體,來轉(zhuǎn)送繪制命令。
[0054]圖8表示通過本實(shí)施方式的方法來實(shí)現(xiàn)的性能改善的理論模型。在現(xiàn)有的方法中,在GPU3中,每次為了繪制一個(gè)物體而從CPU2調(diào)用繪制命令而花費(fèi)時(shí)間(開銷(Overhead)),每次獲取繪制命令而進(jìn)行頂點(diǎn)屬性變換,進(jìn)行物體的繪制(主處理(Mainprocess)) ο對(duì)此,在本實(shí)施方式的方法中,如上所述,在CPU2中,將滿足連結(jié)條件的多個(gè)物體的網(wǎng)格的連結(jié)作為特殊處理(Special process for mesh Concatenat1n)來進(jìn)行,對(duì)連結(jié)了該網(wǎng)格的多個(gè)物體進(jìn)行頂點(diǎn)屬性變換。在圖8中,例示了 CPU2連結(jié)了三個(gè)物體的網(wǎng)格的情況,但只要滿足上述連結(jié)條件,連結(jié)網(wǎng)格的物體數(shù)可以是任意數(shù)。
[0055]通過本實(shí)施方式的方法進(jìn)行的頂點(diǎn)屬性變換所需要的處理時(shí)間依賴于計(jì)算