国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于WebGL的三維圖形渲染系統(tǒng)的設(shè)計(jì)研究

2022-10-31 07:54:26吳文蔚
山西電子技術(shù) 2022年5期
關(guān)鍵詞:著色器調(diào)用光源

吳文蔚

(山西職業(yè)技術(shù)學(xué)院,山西 太原 030006)

0 引言

早期的三維圖像處理技術(shù)有很多,例如虛擬現(xiàn)實(shí)建模語言(Virtual Reality Modeling Language,VRML)技術(shù),它是一種面向WEB應(yīng)用的三維建模語言,雖然集合了XML、JAVA等先進(jìn)技術(shù),具有較強(qiáng)的三維圖像計(jì)算能力,但在模型渲染質(zhì)量與交互性等方面卻差強(qiáng)人意;Shockwave 3D是基于Shockwave多媒體播放軟件拓展了英特爾的3D渲染功能的三維圖像處理技術(shù),Shockwave 3D在三維交互與實(shí)時渲染兩方面的處理性能較好,但其本質(zhì)是一種播放器程序,應(yīng)用于WEB服務(wù)時,只要更換環(huán)境,用戶就需要下載新的插件,并且對數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)帶寬要求很高,使其在WEB應(yīng)用中很難被普及。WebGL技術(shù)就是在這樣的背景下發(fā)展起來的專門面向WEB應(yīng)用開發(fā)的一款三維圖像處理技術(shù),一方面WebGL提供有硬件調(diào)用接口,可以直接調(diào)用GPU部件實(shí)現(xiàn)硬件加速圖形處理[1],另一方面WebGL通過JavaScript語言封裝以標(biāo)簽的形式嵌入在HTML頁面中[2],便于WEB應(yīng)用的直接調(diào)用,而無需下載任何插件。因此本研究采用WebGL技術(shù)構(gòu)建一個基于WEB應(yīng)用的三維圖形渲染系統(tǒng),既可以大大提高圖形的處理效率,還便于系統(tǒng)的應(yīng)用推廣。

1 系統(tǒng)采用的核心技術(shù)

1.1 WebGL技術(shù)

WebGL是WEB 3D圖形應(yīng)用開發(fā)的標(biāo)準(zhǔn)應(yīng)用程序編程接口(Application Programming Interface,API),WebGL在OpenGL基礎(chǔ)上將JavaScrip與OpenGL相結(jié)合,實(shí)現(xiàn)了基于WEB前端三維圖形的硬件加速渲染功能[3],大大提高了WEB瀏覽器中三維圖形的處理速度。WebGL通過JavaScrip封裝了對各類硬件接口的功能調(diào)用方法,再通過HTML5(HyperText Markup Language 5)的Canvas元素獲取WebGL的上下文環(huán)境,如此WEB前端的開發(fā)人員就可以實(shí)現(xiàn)對底層硬件的直接訪問和功能調(diào)用。

1.2 HTML5

HTML5實(shí)現(xiàn)了對移動端的顯示支持和突破性的多媒體支持,特別是增加了JavaScript 的通用API,為基于WEB服務(wù)的圖形處理提供了先進(jìn)的技術(shù)。HTML5瀏覽器支持多線程、并發(fā)式線程管理、全雙工實(shí)時通信、數(shù)據(jù)存儲本地化等功能,大大提高了WEB應(yīng)用的事件響應(yīng)效率和數(shù)據(jù)通信效率。除此之外,HTML5在圖形處理方面,新增了Canvas功能,通過在Canvas元素中嵌入JavaScrip腳本語言實(shí)現(xiàn)二維圖形的繪制、著色,也為三維圖形處理的功能擴(kuò)展提供了技術(shù)基礎(chǔ)。

1.3 JavaScript語言

JavaScript是一款輕量級的、即時編譯型語言,核心語言庫簡小精干,可以通過各類語法糖來實(shí)現(xiàn)功能擴(kuò)展[4]。在圖形處理方面,WebGL、Canvas 2D都是JavaScript的API擴(kuò)展,集合了圖形處理的所有軟、硬件優(yōu)勢。

2 三維圖形渲染系統(tǒng)設(shè)計(jì)

三維圖形渲染系統(tǒng)整體架構(gòu)設(shè)計(jì)見圖1。

上層應(yīng)用基于HTML5的Canvas元素,以標(biāo)簽形式嵌入JavaScript腳本的API,再通過調(diào)用JavaScript 內(nèi)的WebGL應(yīng)用程序編程接口實(shí)現(xiàn)對三維圖形的各類處理。在WebGL接口調(diào)用之前,訪問用戶可以通過上層應(yīng)用進(jìn)行圖形輔助渲染與渲染要素的參數(shù)配置、模式切換等操作。其中渲染要素用于配置三維圖形的光源模式、著色器類型、渲染視角、相機(jī)、貼圖材質(zhì)等參數(shù);輔助渲染用于對轉(zhuǎn)換為網(wǎng)格對象的三維圖形進(jìn)行渲染前的計(jì)算分析。

圖1 三維圖形渲染系統(tǒng)架構(gòu)

渲染層主要實(shí)現(xiàn)兩方面功能,一是依據(jù)上層應(yīng)用的渲染要素參數(shù)設(shè)置建立要素之間的關(guān)聯(lián)關(guān)系,并調(diào)用對應(yīng)的函數(shù)接口;二是獲取WebGL的繪圖上下文配置接口,建立對應(yīng)的WebGL渲染管線。

WebGL渲染管線用于處理具體的圖形渲染事件,該層上集中了各種三維圖形的渲染算法,包括視圖變換算法、投影變換算法、邊界表示算法等。其中視圖變換算法主要是實(shí)現(xiàn)三維模型——視圖矩陣的轉(zhuǎn)換;投影變換算法用于構(gòu)建三維模型的投影矩陣,著色器使用投影矩陣將三維頂點(diǎn)的坐標(biāo)信息投影在二維空間的坐標(biāo)當(dāng)中;邊界表示算法是針對三維模型曲面進(jìn)行繪制的算法,通過對三維模型的邊界描述來捕獲模型的曲面細(xì)節(jié),邊界描述涉及兩個方面的信息描述,一是三維圖形的拓?fù)湫畔ⅲ糜谇媾c相鄰面的邊界信息,二是三維曲面的幾何信息,也就是以曲面方程表示的信息。邊界表示算法設(shè)計(jì)較為簡單,適用于曲面構(gòu)成沒有過于復(fù)雜的三維圖形渲染。

WebGL渲染管線通過WebGL的應(yīng)用編程接口可以直接調(diào)用底層的圖形處理器硬件,完成三維圖形的加速渲染。GPU是專用于圖形處理的顯示硬件,特別是針對三維圖形的處理,所采用的核心技術(shù)包括光影轉(zhuǎn)換技術(shù)、多矩陣的頂點(diǎn)混合技術(shù)、渲染壓縮技術(shù)等等。

3 系統(tǒng)功能設(shè)計(jì)與實(shí)現(xiàn)

三維圖形渲染系統(tǒng)功能設(shè)計(jì)見圖2。

三維圖形導(dǎo)入/編輯模塊用于實(shí)現(xiàn)外部三維圖形的導(dǎo)入、格式轉(zhuǎn)換、內(nèi)部三維素材編輯等功能。系統(tǒng)支持的文件導(dǎo)入格式包括:MAX、C4D、FBX、OBJ等。可編輯的素材包括貼圖材質(zhì)、光源及場景。貼圖材質(zhì)支持外部導(dǎo)入,文件格式主要包括JPEG、PNG等常見的圖片格式,WebGL通過Image DOM接口調(diào)用實(shí)現(xiàn)外部材質(zhì)的導(dǎo)入,并通過紋理映射函數(shù)將貼圖賦予三維模型表面,同時可以對貼圖材質(zhì)的顏色、明暗、反射、折射、透明度、光澤度等屬性進(jìn)行編輯與調(diào)整。光源編輯提供常規(guī)的幾種光源設(shè)置,包括:定向光、點(diǎn)光源、聚光燈和環(huán)境光,可設(shè)置的光源屬性包括通用屬性與特殊屬性兩種,其中通用屬性指的是所有光源都具備的屬性,例如光源的強(qiáng)度和顏色屬性,特殊屬性是指不同光源所具備的屬性,例如光源位置、方向、光距等,光源屬性的設(shè)置對場景不會產(chǎn)生影響,只針對三維模型的貼圖渲染產(chǎn)生效果。場景編輯用于實(shí)現(xiàn)場景的創(chuàng)建、編輯功能,通過WebGL的Scene對象可以創(chuàng)建一個場景,場景默認(rèn)會添加一個相機(jī)組件和一個網(wǎng)格組件,相機(jī)組件用于提供場景顯示的視角,并且可以對相機(jī)視角的位置坐標(biāo)、旋轉(zhuǎn)角度、寬高比、景深、最近渲染平面、最遠(yuǎn)渲染平面等參數(shù)進(jìn)行設(shè)置。

圖2 三維圖形渲染系統(tǒng)功能設(shè)計(jì)

三維圖形預(yù)處理模塊用于實(shí)現(xiàn)三維圖形的網(wǎng)格計(jì)算、著色器設(shè)置和渲染參數(shù)配置、創(chuàng)建渲染器等功能。三維圖形網(wǎng)格處理就是將三維圖形轉(zhuǎn)換為由若干標(biāo)準(zhǔn)幾何體拼裝而成的網(wǎng)格對象,再通過WebGL的BufferGeometry類的實(shí)例化對象可以對網(wǎng)格對象進(jìn)行渲染前的優(yōu)化。著色器配置用于實(shí)現(xiàn)著色器屬性的相關(guān)設(shè)置,WebGL預(yù)置了多種著色器用來滿足常見的著色需求,例如模擬風(fēng)、雪、雨、霧的天氣環(huán)境等。著色器配置功能可以對風(fēng)速、風(fēng)向、重力模擬、草的密度、高度等屬性進(jìn)行具體設(shè)置。渲染參數(shù)配置是對提取后的三維圖形頂點(diǎn)信息進(jìn)行一定閾值范圍的微調(diào),以矯正部分面的渲染細(xì)節(jié),例如曲面的邊界識別精度、數(shù)值范圍等。

三維圖形渲染管理模塊用于實(shí)現(xiàn)系統(tǒng)內(nèi)所有渲染任務(wù)的管理,以及具體任務(wù)的進(jìn)度管理。系統(tǒng)內(nèi)建立的所有渲染任務(wù)可以通過渲染隊(duì)列模塊進(jìn)行管理,在渲染隊(duì)列中可以查看和管理渲染任務(wù)列表;渲染進(jìn)度管理模塊用于查看和管理具體一個渲染任務(wù)的渲染進(jìn)度。

三維圖形導(dǎo)出模塊用于查看和管理已完成的渲染任務(wù),并提供渲染文件的導(dǎo)出接口,用戶可以通過手動設(shè)置,導(dǎo)出指定格式的渲染文件。

4 結(jié)語

在WEB服務(wù)應(yīng)用開發(fā)中,圖形處理是非常重要的一項(xiàng)功能,本研究針對三維圖形處理技術(shù)在WEB服務(wù)中的應(yīng)用發(fā)展過程和具體的技術(shù)特性進(jìn)行了全面、深入的研究,并提出了以WebGL作為核心技術(shù)的三維圖形處理的解決方案,設(shè)計(jì)與實(shí)現(xiàn)了一個三維圖形渲染系統(tǒng),有效提高了WEB服務(wù)在三維圖形處理方面的系統(tǒng)性能。

猜你喜歡
著色器調(diào)用光源
基于UE4 實(shí)時射線追蹤技術(shù)的研究與探討
基于Unity Shader石油泄漏現(xiàn)象模擬的研究
基于IMx6的opengl圖形著色器開發(fā)研究
中國新通信(2020年2期)2020-06-24 03:06:44
核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
《光源與照明》征訂啟事
光源與照明(2019年3期)2019-06-15 09:21:04
LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
綠色光源
基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
科技連載:LED 引領(lǐng)第三次照明革命——與傳統(tǒng)照明的對比(一)
利用RFC技術(shù)實(shí)現(xiàn)SAP系統(tǒng)接口通信
通城县| 广州市| 平昌县| 娄底市| 隆化县| 天等县| 香河县| 西乡县| 石柱| 宜城市| 南投县| 黄浦区| 水城县| 尚义县| 怀仁县| 株洲县| 苍山县| 罗田县| 政和县| 阜新市| 隆尧县| 咸阳市| 烟台市| 罗城| 京山县| 五台县| 汨罗市| 民丰县| 双辽市| 绥宁县| 大新县| 蓬莱市| 江西省| 报价| 松滋市| 丹寨县| 偏关县| 满城县| 泊头市| 保山市| 保靖县|