體積渲染
編輯在科學可視化和計算機圖形學中,體積渲染是一組用于顯示3D離散采樣數據集(通常是3D標量場)的2D投影的技術。
典型的3D數據集是由CT、MRI或MicroCT掃描儀獲取的一組2D切片圖像。通常,這些是以規則模式(例如,每毫米深度一個切片)獲取的,并且通常在規則模式中具有規則數量的圖像像素。這是規則體積網格的示例,每個體積元素或體素由單個值表示,該值是通過對體素周圍的直接區域進行采樣而獲得的。
要渲染3D數據集的2D投影,首先需要在相對于體積的空間中定義相機。此外,還需要定義每個體素的不透明度和顏色。這通常使用RGBA(用于紅色、綠色、藍色、alpha)傳遞函數來定義,該函數可以將任何可能的體素值映射到RGBA值。
例如,可以通過從體積中提取等值面(相等值的表面)并將它們渲染為多邊形網格或直接將體積渲染為數據塊來查看體積。的移動立方體算法是用于從體數據中提取等值面的常用技術。直接體繪制是一項計算密集型任務,可以通過多種方式執行。
體積渲染的范圍
編輯體積渲染不同于薄層斷層掃描演示,通常也不同于3D模型的投影,包括xxx強度投影。盡管如此,從技術上講,當在二維顯示器上觀看時,所有體積渲染都變成了投影,使得投影和體積渲染之間的區別有點模糊。盡管如此,體積渲染模型的縮影以混合著色和著色為特征,以創建逼真的和/或可觀察的表示。
直接體積渲染
編輯直接體積渲染器要求將每個樣本值映射到不透明度和顏色。這是通過“傳遞函數”完成的,該函數可以是簡單的斜坡、分段線性函數或任意表格。一旦轉換為RGBA顏色模型(用于紅色、綠色、藍色、alpha)值,組合的RGBA結果就會投影到幀緩沖區的相應像素上。這樣做的方式取決于渲染技術。
這些技術的組合是可能的。例如,剪切扭曲實現可以使用紋理硬件在屏幕外緩沖區中繪制對齊的切片。
體積光線投射
體積射線投射技術可以直接從渲染方程推導出來.它提供了非常高質量的結果,通常被認為提供了xxx的圖像質量。體積射線投射被歸類為基于圖像的體積渲染技術,因為計算來自輸出圖像,而不是像基于對象的技術那樣的輸入體積數據。在這種技術中,為每個所需的圖像像素生成一條射線。使用簡單的相機模型,光線從相機的投影中心(通常是眼點)開始,并穿過漂浮在相機和要渲染的體積之間的假想圖像平面上的圖像像素。為了節省時間,光線會被體積的邊界剪掉。然后在整個體積中以規則或自適應間隔對射線進行采樣。數據在每個樣本點進行插值,傳遞函數應用于形成RGBA樣本,樣本被合成到光線的累積RGBA上,重復這個過程直到光線離開體積。RGBA顏色被轉換為RGB顏色并沉積在相應的圖像像素中。對屏幕上的每個像素重復該過程以形成完整的圖像。
噴濺
這是一種以質量換取速度的技術。在這里,正如LeeWestover所說,每個體積元素都像雪球一樣,按從后到前的順序散布在觀看面上。這些splats被渲染為磁盤,其屬性(顏色和透明度)以正常(高斯)方式徑向變化。根據應用的不同,也使用平面磁盤和具有其他類型屬性分布的磁盤。
剪切變形
體積渲染的剪切扭曲方法是由Cameron和Undrill開發的,由PhilippeLacroute和MarcLevoy推廣。在這種技術中,觀察變換被變換,使得體積的最近面變成軸與屏幕外圖像數據緩沖區對齊,具有固定的體素到像素的比例。然后使用更有利的內存對齊和固定的縮放和混合因子將體積渲染到此緩沖區中。一旦渲染了體積的所有切片,緩沖區就會扭曲到所需的方向并在顯示的圖像中縮放。
與光線投射相比,這種技術在軟件中相對較快,但代價是采樣精度較低,圖像質量可能更差。存儲卷的多個副本會產生內存開銷,以便能夠擁有近軸對齊的卷。可以使用運行長度編碼來減輕這種開銷。
基于紋理的體積渲染
許多3D圖形系統使用紋理映射將圖像或紋理應用于幾何對象。商用PC顯卡在紋理化方面速度很快,并且可以有效地渲染3D體積的切片,并具有實時交互功能。工作站GPU速度更快,并且是醫學成像、石油和天然氣和其他市場中使用的大部分生產量可視化的基礎(2007)。早些年,專用3D紋理映射系統用于圖形系統,例如SiliconGraphicsInfiniteReality、HPVisualizeFX圖形加速器等。這種技術首先被描述為比爾·希巴德和戴夫·桑泰克。
這些切片可以與體積對齊并與觀察者成一定角度渲染,或者與觀察平面對齊并從穿過體積的未對齊切片中采樣。第二種技術需要對3D紋理的圖形硬件支持。
體積對齊的紋理會產生質量合理的圖像,盡管在旋轉體積時通常會有明顯的過渡。
硬件加速體積渲染
編輯由于直接體渲染極其并行的特性,在GPU體渲染變得足夠快之前,專用體渲染硬件是一個豐富的研究課題。最被廣泛引用的技術是的VolumePro實時光線投射系統,通過開發漢斯皮特·菲斯特和科學家在三菱電氣研究實驗室,它采用了高內存帶寬和蠻力使用光線投射算法,以呈現。該技術轉移到TeraRecon,Inc.并生產和銷售了兩代ASIC。VP1000于2002年發布,VP2000于2007年發布。
最近開發的一種加速傳統體積渲染算法(如光線投射)的技術是使用現代顯卡。從可編程像素著色器開始,人們認識到了對多個像素進行并行操作的能力,并開始在圖形處理單元(GPGPU)上執行通用計算。在像素著色器能夠讀取和顯存隨機寫入和執行一些基本的數學和邏輯運算。這些SIMD處理器用于執行一般計算,例如渲染多邊形和信號處理。在最近幾代GPU中,像素著色器現在可以用作MIMD處理器(現在能夠獨立分支)利用高達1GB的浮點格式紋理內存。有了這樣的能力,幾乎任何具有可以并行執行的步驟的算法,例如體射線投射或斷層掃描重建,都可以以極大的加速度執行。可編程像素著色器可用于模擬照明、陰影、反射、發光顏色等特性的變化。可以使用高級著色語言編寫此類模擬。
優化技術
編輯優化的主要目標是盡可能多地跳過音量。典型的醫療數據集的大小可能為1GB。要以30幀/秒的速度渲染,需要極快的內存總線。跳過體素意味著需要處理的信息更少。
空格跳過
通常,體繪制系統將具有用于識別不包含可見材料的體區域的系統。該信息可用于避免渲染這些透明區域。
早期光線終止
這是在按從前到后順序呈現體積時使用的一種技術。對于穿過像素的光線,一旦遇到足夠密集的材料,進一步的樣本將對像素沒有顯著貢獻,因此可以忽略。
八叉樹和BSP空間細分
使用八叉樹和BSP樹等分層結構對于體積數據的壓縮和體積射線投射過程的速度優化都非常有幫助。
音量分割
體積分割包括自動去骨,例如在此CT血管造影的右側圖像中使用的。胸部3D渲染CT掃描的體積分割:前胸壁、氣道和肺根前方的肺血管已被數字化去除,以顯示胸腔內容:-藍色:肺動脈-紅色:肺靜脈(還有腹壁)-黃色:縱隔-紫色:橫膈膜
圖像分割是一種手動或自動過程,可用于在渲染之前將人們認為無趣的大部分體積分割出來,可以顯著減少必須通過光線投射或紋理混合進行的計算量。對于n個順序索引的體素,這種減少可以從O(n)到O(logn)。體積分割對于其他光線追蹤算法也具有顯著的性能優勢。隨后可以使用體積分割來突出顯示感興趣的結構。
多重和自適應分辨率表示
通過以較粗的分辨率表示體積中不太有趣的區域,可以減少數據輸入開銷。仔細觀察,這些區域中的數據可以通過從內存或磁盤讀取或通過插值來填充。與從原始圖像創建2Dmipmap圖像的方式相同,將較粗分辨率的體積重新采樣為較小的尺寸。這些較小的體積也可以在將體積旋轉到新方向時單獨使用。
預集成體積渲染
預集成體渲染是一種可以通過預計算大部分所需數據來減少采樣偽影的方法。它在硬件加速應用程序中特別有用,因為它可以提高質量而不會對性能產生很大影響。與大多數其他優化不同,這不會跳過體素。相反,它減少了準確顯示體素區域所需的樣本數量。這個想法是渲染樣本之間的間隔而不是樣本本身。這種技術捕捉快速變化的材料,例如從肌肉到骨骼的過渡,計算量要少得多。
基于圖像的網格劃分
基于圖像的網格劃分是從3D圖像數據(例如MRI、CT、工業CT或顯微斷層掃描)創建計算機模型的自動化過程,用于計算分析和設計,例如CAD、CFD和FEA。
體素的時間重用
對于完整的顯示視圖,每個像素(前一個)只需要顯示一個體素(雖然可以使用更多的體素來平滑圖像),如果需要動畫,可以緩存要顯示的前體素及其位置相對于相機可以在它移動時重新計算。在顯示體素相距太遠而無法覆蓋所有像素的情況下,可以通過光線投射或類似方法找到新的前體素,并且在一個像素中有兩個體素的情況下,可以保留前體素。
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/128715/