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无码区| 91青青草视频在线观看的| 伊人精品成人久久综合| 亚洲无码A视频在线| 日韩二区三区无| 啊嗯不日本网站| 欧美五月婷婷| 伊人久久大香线蕉影院| 香蕉久久国产超碰青草| 欧美精品啪啪一区二区三区| av午夜福利一片免费看| 国产成人综合日韩精品无码首页| 国产视频一二三区| 国产一区二区三区免费观看| 亚洲第一视频区| 亚洲一级无毛片无码在线免费视频| 天天色天天综合网| 韩日午夜在线资源一区二区| 欧美日本在线播放| 久久久久国产精品熟女影院| 国产v精品成人免费视频71pao| 亚洲国产黄色| 午夜一区二区三区| 欧美国产综合色视频| 精品1区2区3区| vvvv98国产成人综合青青| 欧美激情成人网| 视频在线观看一区二区| 99免费在线观看视频| 国产丝袜一区二区三区视频免下载| 国产成人精品2021欧美日韩 | 精品福利网| 亚州AV秘 一区二区三区| 一级成人a毛片免费播放| 日韩中文欧美| 成人一级免费视频| 在线无码私拍| 欧美 亚洲 日韩 国产| 波多野结衣亚洲一区| 一级毛片在线免费视频| 激情無極限的亚洲一区免费| 伊人激情久久综合中文字幕| 精品丝袜美腿国产一区| 国产91无码福利在线| 精品国产成人a在线观看| 成人精品视频一区二区在线| 久热精品免费| 丁香六月激情综合| 99久久国产自偷自偷免费一区| 丰满少妇αⅴ无码区| 国产日韩精品欧美一区喷| 国产无码性爱一区二区三区| 99成人在线观看| 91视频青青草| 2018日日摸夜夜添狠狠躁| 中文字幕不卡免费高清视频| 99热6这里只有精品| 国产欧美自拍视频| 日本一本在线视频| 国产91精品久久| 久久人搡人人玩人妻精品一| 欧美a√在线| 免费国产在线精品一区| 无码福利日韩神码福利片| 欧美福利在线观看| 欧美精品高清| 免费在线不卡视频| 午夜无码一区二区三区在线app| 欧美色香蕉| 98精品全国免费观看视频| 人妻精品久久无码区| 国产在线拍偷自揄观看视频网站| 欧美激情首页| 国产美女91呻吟求| 强奷白丝美女在线观看| 成人亚洲国产| 伊人久久青草青青综合| 久久精品人人做人人综合试看| 中文无码毛片又爽又刺激|