999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

并行計算在光線追蹤中的應用

2012-10-20 08:35:48陳是權
微型電腦應用 2012年9期

陳是權

0 引言

光線追蹤,是一種將真實三維物體顯示在二維屏幕上的方法,它由 Appel在1968年提出。光線追蹤的優點在于其真實地模擬光線的傳播方式,從而能夠產生照片級逼真的渲染效果。而其最大的缺點在于其性能。

本文介紹的就是基于硬件的兩種并行加速方法,一種是線程級別的多核并行,這是基于Intel的TBB的編程工程。而另一種則是指令級別的并行,即SIMD (Single Instruction Multiple Data,單指令多數據流)。

1 光線追蹤原理

1.1 光線追蹤的介紹

如圖1所示:

圖1 光線追蹤原理圖

光線追蹤的原理,是由人眼到屏幕的每個像素點發出光線,找出這條光線與物體表面的相交點P0,并找出影響P0點光強的所有光源,從而算出P0點上精確的光線強度,最后結合P0點表面的材質算出屏幕上像素點的像素值。

1.2 光線追蹤核心計算

由后面的2.1節可以看出,光線追蹤的核心在于計算射線(以人眼為原點,人眼到像素點為方向)與場景中的物體是否相交并求出相交點的坐標(參照參考文獻[1])。在計算圖形學中,物體的表示方式以三角形面片最為普遍。所以判斷射線與物體是否相交的核心,實際上可以演變為判斷射線與三角形是否相交。

圖2 三角形的重心坐標表示方法

一個三角形可以用三個點a、b、c表示,如果這3個點不在一條線上或重合的話,則這3個點可組成一個面,此面上的任一點則可表示為(參照參考文獻[2]),如圖2所示:而三角形內部的點則當0<α< 1, 0<β< 1, 0<γ<1,簡化為一個參數:P (β,γ) =α +β (b-a) +γ(c-a)其中β+γ < 1, 0<β,0<γ。同理,射線可表示為P (t) = o +td(o為原點,d為方向),其中t>0。求相交實際上則是求方程P(β,γ) = P (t), 即

o + td = a +β (b-a) +γ(c-a) 展開整理得:

其中A為

算出t,β,γ則根據條件判斷,如果t>0, 0<β,0<γ,0<β+γ<1則射線與三角形相交, 并將t代入o + td求出相交點。注:如果射線與三角形的某條邊或頂點相交,則仍計為不相交。

2 加速實現

2.1 并行加速

2.1.1 TBB加速

TBB (Thread Building Blocks, 線程構建模塊)是Intel公司開發的并行編程開發的工具。TBB能充分利用CPU的多核特點進行有效的并行計算。如果一個核心已經完成其工作,而其它核心仍然有相當數量的工作在它們的隊列中,TBB會重新分配一些工作繁忙的核心之一給閑置的核。從射線與三角形相交的算法我們可以看出:每根射線與三角形簇求交實際上是獨立的,這就為我們提供了線程算法優化的可能。我們將每根射線與三角形簇求交作為一個單獨的任務,然后利用TBB將這些獨立的任務,分配到機器的多個CPU,即多核上來運行。核心算法偽代碼如下:

2.1.2 SIMD加速

SIMD(Single Instruction Multiple Data,單指令多數據流)是一組能夠復制多個操作數,并把它們打包在大型寄存器的指令集中。借助 SIMD,我們可以一次處理4個單精度浮點值(參照參考文獻[3]58頁)。

使用 SIMD的優勢還在于可以同時對4個三角形和 4條射線進行運算。在這里我們需要定義一個triangle4和ray4的類型:

Triangle4實際在內存中的數據表達,如表1所示:

表1 內存中的數據表達

Ray4實際在內存中的數據表達,如表2所示:

表2 內存中的數據表達

它將進行SIMD操作如_mm_sub_ps(t0_v0x, t0_v1x),則實際的結果是進行了4次減操作,得到的結果為:

將其代入三角形射線求交算法中:

3 結論

本論文中共測試了4組數據,并在3種類型的機器上試驗過。4組數據主要區別在和射線與三角形數目的不同,如表3所示:

表3 數據表達

測試的機器主要包括單核、雙核、以及8核的機器,如表4所示:

表4 測試的機器

測試結果數據(單位:秒(s) ),如表5所示:

表5 測試結果

結論:從以上數據可以看出在雙核的情況下,利用本文的加速算法,可以使射線與三角形相交的算法提高1.5倍速度以上,核越多則提高得越明顯,如圖3、圖4、圖5所示:

圖3 機器1

圖4 機器2

圖5 機器3

[1]Tomas Nikodym (June).Ray Tracing Algorithm For Interactive Applications[D].Czech Technical University,FEE, 2010.

[2]Keith Morley.RealisticRayTracing [M].2009.

[3]Reinders, James.Intel Threading Building Blocks:Outfitting C++ for Multi-core Processor Parallelism(Paperback) [S].2007.

[4]劉剛, 梁曉庚.基于SIMD硬件指令加速的并行光線跟蹤算法[J].第十屆中國科協年會論文集, 2008.

主站蜘蛛池模板: 欧美亚洲一二三区| 制服丝袜一区二区三区在线| 播五月综合| 亚洲AV无码乱码在线观看裸奔 | 中文字幕精品一区二区三区视频 | 一区二区三区四区在线| 亚洲天堂精品视频| 精品偷拍一区二区| 色国产视频| 亚洲va精品中文字幕| 一区二区三区四区日韩| 久久久久免费看成人影片| 国产精品主播| 久久精品娱乐亚洲领先| 91娇喘视频| 成年人国产网站| 久久国产黑丝袜视频| 波多野结衣一区二区三区四区| AV在线麻免费观看网站 | 在线99视频| 国产在线观看一区精品| 欧美激情视频在线观看一区| 成人a免费α片在线视频网站| 欧美成人综合在线| 国产精品99久久久| 69视频国产| 中文字幕无线码一区| 亚洲首页国产精品丝袜| 91麻豆国产在线| 无码专区国产精品第一页| 欧美视频在线第一页| 日本日韩欧美| 男女男精品视频| 精品视频一区二区观看| 国内精自视频品线一二区| 国产区在线观看视频| 色丁丁毛片在线观看| 亚洲无码精彩视频在线观看| 久久五月视频| 日本一本在线视频| 91在线播放免费不卡无毒| 亚洲精品第五页| 91精品免费久久久| 在线一级毛片| 青青草91视频| 九九热精品免费视频| 午夜毛片免费看| 亚洲九九视频| 成年人午夜免费视频| 国产亚洲精品自在线| 91免费国产高清观看| 国产国语一级毛片在线视频| 女人天堂av免费| 亚洲一区二区无码视频| 精品久久久久久久久久久| 国产精品福利导航| 国产成年女人特黄特色毛片免| 极品国产一区二区三区| 久久久久九九精品影院| 亚洲精品视频在线观看视频| 国产激情无码一区二区APP| 久久精品亚洲热综合一区二区| 欧美亚洲国产精品第一页| 久久精品一卡日本电影| 人人爽人人爽人人片| 亚洲成人在线网| 国产一区二区在线视频观看| 九九久久99精品| 99久久精品国产麻豆婷婷| 一本色道久久88综合日韩精品| 久久久精品无码一二三区| 三上悠亚精品二区在线观看| 亚洲天堂网在线播放| 日日拍夜夜嗷嗷叫国产| 久久一本精品久久久ー99| 精品久久久久无码| 国产成人资源| 91精品免费久久久| 麻豆国产在线不卡一区二区| 久久性视频| 日韩欧美国产中文| 欧美亚洲国产精品久久蜜芽|