国产精品成人免费视频_91丝袜美腿美女视频网站_国产一区二区三区在线看_亚洲欧美另类中文字幕_在线电影av不卡网址_国产视频丨精品|在线观看_日韩一区二区三区国产_国产欧美va欧美va香蕉在线_热re91久久精品国99热蜜臀_亚洲第一精品电影_久久九九亚洲综合_国产成人综合精品_97视频在线观看网址_精品视频久久久久久_日韩av片免费在线观看_久久精品国产99国产精品澳门

聚集網(jujiwang.com) - 收錄免費分類目錄信息軟文發布網址提交
免費加入

光柵化入門:掌握數字圖像處理的基礎 (光柵化流程)

文章編號:11823時間:2024-10-01人氣:


光柵化入門

什么是光柵化?

掌握數字圖像處理的基礎

光柵化是將矢量圖形或文本轉換為像素陣列的過程。像素陣列是一組有顏色值的點,共同形成圖像。

光柵化流程

光柵化流程分為以下步驟:

  1. 預處理:修復輸入圖像中的任何缺陷或噪點。
  2. 采樣:將輸入圖像劃分為更小的區域,稱為像素。每個像素指定一個顏色值。
  3. 量化:將采樣得到的顏色值近似為一系列有限的離散顏色值。
  4. 繪制:將量化后的像素值繪制到輸出設備上,例如顯示器或打印機。

采樣

采樣是光柵化過程的關鍵步驟。它決定了輸出圖像的分辨率和質量。

有兩種主要的采樣技術:

  • 均勻采樣:將輸入圖像均勻地劃分為像素。
  • 非均勻采樣:根據輸入圖像的屬性,以不同的速率對不同區域進行采樣。

非均勻采樣通常用于提高圖像質量,特別是對于包含細微細節或高頻成分的圖像。

量化

量化是將采樣得到的連續顏色值近似為一系列有限的離散顏色值的過程。

量化會導致精度損失,因為原始圖像中一些細微的顏色差別可能會丟失。

有兩種主要的量化技術:

  • 均勻量化:將顏色范圍均勻地劃分為離散值。
  • 非均勻量化:根據人類視覺系統對不同顏色敏感性的差異,以不同的精度

簡化渲染流程的7 個強大的軟件

簡化渲染過程的軟件正在將模型轉換為計算機內的 2D 或 3D 圖片。 渲染引擎通過處理不同的數據(例如紋理、顏色或其他一些專門特征)來創建這些圖像。 此外,您在模擬、動畫或視頻游戲中看到的所有內容都是這些圖像的混搭。 采用光柵化的實時渲染引擎和使用“光線追蹤”概念的生產質量渲染引擎是兩種類型的3D 渲染引擎。 顧名思義,光線追蹤會跟蹤光線從模型反射并返回虛擬相機的情況。 另一方面,光柵化是將矢量圖形轉換為光柵圖像的快速過程。 光柵圖片只不過是作為圖像出現在屏幕上的離散像素的集合。 有哪些可以簡化渲染過程的最佳軟件?Qlone、Shapr3D、Onshape、Prisma3D、Sculptura、Putty3D和渲云渲染插件。 Qlone是一款流行的 3D 掃描程序,不需要激光雷達即可運行。 即使您沒有配備激光雷達傳感器的最新 iPad 或 iPhone,該程序也可讓您在3D 掃描過程中實時記錄深度信息。 掃描3D 模型后,您可以對其進行編輯、渲染并以標準 3D 格式導出。 企業和個人使用該軟件生成現實世界事物的逼真 3D 表示。 Qlone 還提供獨一無二的快速入門指南,解釋如何將 3D 模型納入您的網站并提高整體參與度。 它還包括用于修改 3D 對象并在增強現實中查看它們的工具。 雖然免費版缺少這種 AR 視角和 4K 掃描,但您可以一次性付費升級到專業版。 值得注意的是,Qlone 還兼容 MacOS(Monterey 及更高版本)。 Shapr3D 允許您使用 iPad 和 Apple Pencil 隨時隨地創建3D 模型。 由于 Shapr3D 由運行 SolidWorks 的同一引擎驅動,因此渲染圖形并將其導入桌面變得輕而易舉。 該應用程序的用戶友好界面使其成為 CAD 軟件新手的絕佳選擇。 在 iPad 上使用 Apple Pencil 繪制 3D 模型就像用鉛筆在紙上繪圖一樣簡單。 其高分辨率渲染將使您能夠以生產質量查看您的設計,并且它也可以離線工作。 Shapr3D 還提供有用的支持系統和活躍的論壇,以獲取問題的答案并了解新功能。 Onshape 是一款基于云的 CAD 軟件,帶有適用于 Android 和 iOS 智能手機的配套應用程序。 您可以直接在移動設備上使用完整版本,因為它在網絡瀏覽器上運行。 該應用程序允許您在任何地方處理項目,只要您有有效的互聯網連接。 iPad 版 Onshape 還可以與 Apple Pencil 配合使用,非常適合實時繪制草圖和渲染。 Prisma3D 允許您直接從 Android 設備創建 3D 模型并制作動畫。 您所需要的只是一些基本的綁定和關鍵幀技術,您的 3D 角色就可以制作一些精彩的動畫。 通過使 3D 環境和操作 3D 模型的能力可以在任何地方訪問,可以簡化各個級別的藝術家的渲染過程。 Prisma3D 可實現高達 4K 的渲染,但這需要高端移動設備或平板電腦處理器。 然而,大多數智能手機應該能夠快速渲染高清素材。 它還支持導入和導出主要的3D 文件格式,包括 OBJ。 Sculptura 是一款具有簡單雕刻工具并能生成照片級真實渲染效果的應用程序的有力競爭者。 它與 iPad 兼容,您可以快速導入 3D 模型以開始雕刻。 如果您喜歡隨時隨地進行 3D 工作,可以通過將 Sculptura 集成到您的工作流程中來簡化渲染過程。 它還具有 OBJ 和 STL 導出選項,您可以將工作快速傳輸到您的 PC。 Putty3D 是一款強大的 3D 雕刻程序,可利用集成圖形處理器 (IGP) 創建無縫的用戶體驗。 由于它同時使用 CPU 和 GPU,因此渲染速度更快、質量更高。 較新的 iPad 擁有強大的 CPU,可以在更短的時間內實現更好的渲染,這一事實也許是不言而喻的。 這種移動工作的能力將大大簡化藝術家的渲染過程。 渲云渲染插件 3D項目渲染慢、渲染卡頓、渲染崩潰,本地硬件配置不夠,想要加速渲染,在不增加額外的硬件成本投入的情況下,最好的解決方式是使用渲云云渲染,在云端批量渲染,批量出結果,maya可分塊渲染,享受高配置、高內存、高性能服務器帶來極致的渲染速度,節省渲染時間,提高工作效率。 渲云支持的軟件囊括D5、Unreal Engine、3ds Max、Maya、C4D、Houdini、Clarisse、keyshot、katana、Blender、NUKE、VRAY Standalone、Vred、AE等,基本涵蓋業內CG人會使用到的各類常規軟件,目前還在不斷增加,滿足不同用戶的軟件差異性需求。 簡化渲染過程的軟件能幫助藝術家提高生產力、創造力和成本效益。 通過采用這些簡化方法,藝術家可以專注于他們的藝術愿景,而不會受到技術障礙的困擾。 簡化渲染的好處包括更快的項目完成、資源優化、更愉快的創作體驗、即時反饋、創意探索、更好的協作和客戶互動。

柵格化的基本實現方法

最基礎的柵格化算法將多邊形表示的三維場景渲染到二維表面。 多邊形由三角形的集合表示,三角形由三維空間中的三個頂點表示。 在最簡單的實現形式中,柵格化工具將頂點數據映射到觀察者顯示器上對應的二維坐標點,然后對變換出的二維三角形進行合適的填充。 一旦三角形頂點轉換到正確的二維位置之后,這些位置可能位于觀察窗口之外,也可能位于屏幕之內。 裁剪就是對三角形進行處理以適合顯示區域的過程。 最常用的技術是Sutherland-Hodgeman裁剪算法。 在這種方法中,每次測試每個圖像平面的四條邊,對于每個邊測試每個待渲染的點。 如果該點位于邊界之外,就剔除該點。 對于與圖像平的面邊相交的三角形邊,即邊的一個頂點位于圖像內部一個位于外部,那么就在交叉點插入一個點并且移除外部的點。 傳統的柵格化過程的最后一步就是填充圖像平面中的二維三角形,這個過程就是掃描變換。 第一個需要考慮的問題就是是否需要繪制給定的像素。 一個需要渲染的像素必須位于三角形內部、必須未被裁掉,并且必須未被其它像素遮擋。 有許多算法可以用于在三角形內進行填充,其中最流行的方法是掃描線算法。 由于很難確定柵格化引擎是否會從前到后繪制所有像素,因此必須要有一些方法來確保離觀察者較近的像素不會被較遠的像素所覆蓋。 最為常用的一種方法是深度緩存,深度緩存是一個與圖像平面對應的保存每個像素深度的二維數組。 每個像素進行繪制的時候都要更新深度緩存中的深度值,每個新像素在繪制之前都要檢查深度緩存中的深度值,距離觀察者較近的像素就會繪制,而距離較遠的都被舍棄。 為了確定像素顏色,需要進行紋理或者濃淡效果計算。 紋理圖是用于定義三角形顯示外觀的位圖。 每個三角形頂點除了位置坐標之外都與紋理以及二維紋理坐標 (u,v) 發生關聯。 每次渲染三角形中的像素的時候,都必須在紋理中找到對應的紋素,這是根據在屏幕上像素與頂點的距離在與紋理坐標相關聯的三角形頂點之間插值完成的。 在透視投影中,插值是在根據頂點深度分開的紋理坐標上進行的,這樣做就可以避免透視縮減(perspective foreshortening)問題。 在確定像素最終顏色之前,必須根據場景中的所有光源計算像素上的光照。 在場景中通常有三種類型的光源。 定向光是在場景中按照一個固定方向傳輸并且強度保持不變的光。 在現實生活中,由于太陽距離遙遠所以在地球上的觀察者看來是平行光線并且其衰減微乎其微,所以太陽光可以看作是定向光。 點光源是從空間中明確位置向所有方向發射光線的光源。 在遠距離的物體上的入射光線會有衰減。 最后一種是聚光燈,如同現實生活中的聚光燈一樣,它有一個明確的空間位置、方向以及光錐的角度。 另外,經常在光照計算完成之后添加一個環境光值以補償光柵化無法正確計算的全局照明效果。 有許多可以用于光柵化的濃淡算法。 所有的濃淡處理算法都必須考慮與光源的距離以及遮蔽物體法向量與光照入射角。 最快的算法讓三角形中的所有像素使用同樣的亮度,但是這種方法無法生成平滑效果的表面。 另外也可以單獨計算頂點的亮度,然后繪制內部像素的時候對頂點亮度進行插值。 速度最慢也最為真實的實現方法是單獨計算每點的亮度。 常用的濃淡模型有 Gouraud shading 和 Phong shading。

計算機圖形學-Computer Graphics(1)

計算機圖形學是利用計算機合成和操作視覺信息的學科。 它的應用領域廣泛,包括游戲、電影、虛擬現實(VR)、增強現實(AR)、用戶界面(GUI)、數字照片、地圖繪制、3D打印、建筑設計等。 在計算機圖形學中,涉及到的知識多而復雜。 首先,要解決的是如何建模,例如繪制一個立方體。 假設立方體長寬高為2*2*2,中心在三維坐標軸中心(0,0,0)。 立方體的八個頂點坐標分別為:A(1,1,1),B(-1,1,1),C(1,-1,1),D(-1,-1,1),E(1,1,-1),F(-1,1,-1),G(1,-1,-1),H(-1,-1,-1)。 接下來,需要解決的是如何將三維空間中的立方體投影到二維平面上,即用數字描述在屏幕上顯示立方體的過程。 投影的基本策略包括將三維頂點投影成二維平面上的點,然后將這些點連接起來。 透視投影是基于“近大遠小”的原理,通過小孔成像原理,將三維物體顯示在二維平面上。 具體公式為:v = y/z, u = x/z,其中x, y, z指的是頂點到相機小孔C的水平、豎直和橫向距離,而不是頂點在三維空間中的坐標。 接著,我們需要了解像素(Pixel)的概念。 一個像素由紅綠藍三原色和色彩空間(透明度)信息組成,以32位(相當于一個浮點數)存儲,每個值范圍為0-255。 顯示屏由許多像素組成,1920*1080分辨率表示橫向1080個點,縱向1920個點,共約200萬個點。 顯示像素的方法有LCD和DMD等。 光柵化是指將連續的物體(如線、多邊形)用像素網格表示。 對于線段的光柵化,可以采用Diamond Rule,即只在直線穿過正方形中間的菱形區域時點亮整個正方形像素。 通過求解線段的斜率,可以簡化光柵化過程。 通過建模和光柵化,我們可以在屏幕上顯示3D物體。 下一節將學習如何繪制更復雜的平面圖形,以及處理鋸齒問題。 理解3D物體的建模和光柵化過程是計算機圖形學的基礎,為后續學習更復雜的表面描繪、光照模擬、材質屬性和物體運動做好準備。 學習計算機圖形學是一個循序漸進的過程,從簡單的二維繪圖到復雜的三維渲染,涵蓋了數學、幾何、計算機視覺等多個領域。 通過不斷實踐和學習,可以逐步掌握這一領域的知識和技能。

《計算機圖形學基礎》之圖像的光柵化

輸出設備主要分兩種,一種是 顯示屏類的,一種是 打印機類的。 顯示屏也也分為兩種:

打印機不重要,當科普看看~ 分為兩種:

打印機的分辨率不好確定,因為跟紙的移動速度有關,對熱敏打印機這類能打印連續顏色的設備來說,一般的標準是打印頭上每英寸多少像素(pixels per inch / ppi)。 對于噴墨式這種不能連續的設備來說,一般的標準是每英寸多少個點(dots per inch / dpi)。

所有的不是通過電腦計算出來的圖像,都需要先用光柵化輸入設備獲取,一般是 數碼相機和 掃描儀 。 如果一個相機的分辨率是 3000*2000,那么一般稱他為 600 萬像素(6 MP)。 可以獨立測量紅綠藍的相機要比只有一個馬賽克傳感器的好(mosaic sensor)。 對于掃描儀而已,指標一般跟連續性打印機一樣,每英寸多少像素(ppi)。

一個像素是一個采樣點,對于數碼相機來說,一個像素就是這個格子周圍的光的平均,對于輸出設備來說也是,這個像素只是代表這一小塊方格的平均,比如說,一個屏幕只有一個像素,用它來顯示一張圖片,只能是純色,純色不能代表這張圖片,只能代表一個平均值。 確定像素矩陣的坐標是很重要的,約定使用下面的方式:

我們把顯示器關閉當成 0,把顯示器打開當成 1,中間 0.5 是灰色。 需要明確一點,顯示器對于輸入的數值和顯示出的強度并不是線性對應的,比如說,分別輸入 0,0.5,1,那么顯示器輸出的強度有可能是 0,0.25,1。 對于這種非線性,顯示器通常會有一個伽馬值來表述。 公示為:

比如說,輸入值為 0.5,伽馬值為 2,那么輸出強度為最大強度的 1/4。 輸入強度為 0 的時候就是 0,1 的時候就是最大強度。 可以通過一些方法來確定某塊屏幕的伽馬值,我們假設已經知道了。 這樣就可以對輸入進行 伽馬校正 ,也就是使得輸入值為 0.5 時,輸出強度也恰好是黑與白的一半。 也就是把輸入和輸出變成一個近似線性的對應關系。 另一個需要注意的是,屏幕的顯示顏色范圍都是固定大小的,一般是 0-255,也就是 8-bit 的存儲器。

RGB 是加色模式,全部混合是白色,可以理解為是光;青品黃是減色模式,全部混合是黑色,可以理解為是顏料;我們不需要關心青品黃。 一般都是 24-bit 的顏色系統,也就是 8bit * 3,每個分量有 255 個等級。

對于不透明的物體,前景會直接覆蓋后景;對于半透明的物體,一般會將前景和后景進行混合,一般描述一個顏色都是 RGBA,這里的 A 是指 α,指的就是與后景的混合程度。公式為:

可以看出 0 的時候全部都是后景色,1 的時候全部都是前景色。

(注意并不只有這一種混合模式,你看 ps 里面圖層的疊加方式,正常/正片疊底/線性減淡之類的)

大部分圖像都是使用 8-bit 來存儲每個通道,這樣的話一個 100 萬像素的圖片大概就是 3M 左右。 為了降低存儲空間,有時會將圖片進行壓縮,有的壓縮是有損壓縮,不可逆的,有的是無損壓縮。 常見的圖像存儲格式有:

如何利用performance進行性能優化

Performance可以記錄站點在運行過程中的性能數據,有了這些性能數據,就可以回放整個頁面的執行過程,這樣就方便我們來定位和診斷每個時間段內頁面的運行情況,從而有效的找出頁面的性能瓶頸。

配置Performance

各種配置及說明如圖所示:

Performance不僅可以錄制加載階段的性能數據,還可以錄制交互階段,不過交互階段的錄制需要手動停止錄制過程。

觀察下圖的報告頁,我們可以將它分為三個主要的部分,分別為概覽面板、性能指標面板和詳情面板。

在概覽面板中,Performance就會將幾個關鍵指標,諸如頁面幀速(FPS)、CPU資源消耗、網絡請求流量、V8內存使用量(堆內存)等,按照時間順序做成圖表的形式展現出來,可以參看上圖。

如果FPS圖表上出現了紅色塊,那么就表示紅色塊附近渲染出一幀所需時間過久,幀的渲染時間過久,就有可能導致頁面卡頓。

如果CPU圖形占用面積太大,表示CPU使用率就越高,那么就有可能因為某個JavaScript占用太多的主線程時間,從而影響其他任務的執行。

除了以上指標以外,概覽面板還展示加載過程中的幾個關鍵時間節點,如FP、LCP、DOMContentLoaded、Onload等事件產生的時間點。

Main指標

在性能面板中,記錄了非常多的性能指標項,比如Main指標記錄渲染主線程的任務執行過程,Compositor指標記錄了合成線程的任務執行過程,GPU指標記錄了GPU進程主線程的任務執行過程。 有了這些詳細的性能數據,就可以幫助我們輕松地定位到頁面的性能問題。

簡而言之,我們通過概覽面板來定位問題的時間節點,然后再使用性能面板分析該時間節點內的性能數據。 具體地講,比如概覽面板中的FPS圖表中出現了紅色塊,那么我們點擊該紅色塊,性能面板就定位到該紅色塊的時間節點內了。

因為瀏覽器的渲染機制過于復雜,所以渲染模塊在執行渲染的過程中會被劃分為很多子階段,輸入的HTML數據經過這些子階段,最后輸出屏幕上的像素,我們把這樣的一個處理流程叫做渲染流水線。 一條完整的渲染流水線包括了解析HTML文件生成DOM、解析CSS生成CSSOM、執行JavaScript、樣式計算、構造布局樹、準備繪制列表、光柵化、合成、顯示等一系列操作。

渲染流水線主要是在渲染進程中執行的,在執行渲染流水線的過程中,渲染進程又需要網絡進程、瀏覽器進程、GPU等進程配合,才能完成如此復雜的任務。 另外在渲染進程內部,又有很多線程來相互配合。 具體的工作方式你可以參考下圖:

觀察上圖,一段段橫條代表執行一個個任務,長度越長,花費的時間越多;豎向代表該任務的執行記錄。 我們知道主線程上跑了特別多的任務,諸如渲染流水線的大部分流程,JavaScript執行、V8的垃圾回收、定時器設置的回調任務等等,因此Main指標的內容非常多,而且非常重要,所以我們在使用Perofrmance的時候,大部分時間都是在分析Main指標。

任務vs過程

渲染進程中維護了消息隊列,如果通過setTimeout設置的回調函數,通過鼠標點擊的消息事件,都會以任務的形式添加消息隊列中,然后任務調度器會按照一定規則從消息隊列中取出合適的任務,并讓其在渲染主線程上執行。

Main指標就記錄渲染主線上所執行的全部任務,以及每個任務的詳細執行過程。

觀察上圖,圖上方有很多一段一段灰色橫條,每個灰色橫條就對應了一個任務,灰色長條的長度對應了任務的執行時長。 通常,渲染主線程上的任務都是比較復雜的,如果只單純記錄任務執行的時長,那么依然很難定位問題,因此,還需要將任務執行過程中的一些關鍵的細節記錄下來,這些細節就是任務的過程,灰線下面的橫條就是一個個過程,同樣這些橫條的長度就代表這些過程執行的時長。

直觀地理解,你可以把任務看成是一個Task函數,在執行Task函數的過程中,它會調用一系列的子函數,這些子函數就是我們所提到的過程。為了讓你更好地理解,我們來分析下面這個任務的圖形:

觀察上面這個任務記錄的圖形,你可以把該圖形看成是下面Task函數的執行過程:

function?A(){????A1()????A2()}function?Task(){????A()????B()}Task()分析頁面加載過程

結合Main指標來分析頁面的加載過程。先來分析一個簡單的頁面,代碼如下所示:

????Main????????????????
????
????
????

可以看出,它只是包含了一段CSS樣式和一段JavaScript內嵌代碼,其中在JavaScript中還執行了DOM操作了,我們就結合這段代碼來分析頁面的加載流程。

首先生成報告頁,再觀察報告頁中的Main指標,由于閱讀實際指標比較費勁,所以先手動繪制了一些關鍵的任務和其執行過程,如下圖所示:

通過上面的圖形我們可以看出,加載過程主要分為三個階段,它們分別是:

導航階段,該階段主要是從網絡進程接收HTML響應頭和HTML響應體。

解析HTML數據階段,該階段主要是將接收到的HTML數據轉換為DOM和CSSOM。

生成可顯示的位圖階段,該階段主要是利用DOM和CSSOM,經過計算布局、生成層樹(LayerTree)、生成繪制列表(Paint)、完成合成等操作,生成最終的圖片。

那么接下來,我就按照這三個步驟來介紹如何解讀Main指標上的數據。

導航階段

當你點擊了Performance上的重新錄制按鈕之后,瀏覽器進程會通知網絡進程去請求對應的URL資源;一旦網絡進程從服務器接收到URL的響應頭,便立即判斷該響應頭中的content-type字段是否屬于text/html類型;如果是,那么瀏覽器進程會讓當前的頁面執行退出前的清理操作,比如執行JavaScript中的beforunload事件,清理操作執行結束之后就準備顯示新頁面了,這包括了解析、布局、合成、顯示等一系列操作。

當你點擊重新加載按鈕后,當前的頁面會執行上圖中的這個任務:

該任務的第一個子過程就是Sendrequest,該過程表示網絡請求已被發送。 然后該任務進入了等待狀態。

接著由網絡進程負責下載資源,當接收到響應頭的時候,該任務便執行ReceiveRespone過程,該過程表示接收到HTTP的響應頭了。

接著執行DOM事件:pagehide、visibilitychange和unload等事件,如果你注冊了這些事件的回調函數,那么這些回調函數會依次在該任務中被調用。

這些事件被處理完成之后,那么接下來就接收HTML數據了,這體現在了ReciveData過程,ReciveData過程表示請求的數據已被接收,如果HTML數據過多,會存在多個ReceiveData過程。

等到所有的數據都接收完成之后,渲染進程會觸發另外一個任務,該任務主要執行Finishload過程,該過程表示網絡請求已經完成。

解析HTML數據階段

這個階段的主要任務就是通過解析HTML數據、解析CSS數據、執行JavaScript來生成DOM和CSSOM。那么繼續來分析這個階段的圖形,看看它到底是怎么執行的?可以觀看下圖:

觀察上圖這個圖形,可以看出,其中一個主要的過程是HTMLParser,顧名思義,這個過程是用來解析HTML文件,解析的就是上個階段接收到的HTML數據。

在ParserHTML的過程中,如果解析到了script標簽,那么便進入了腳本執行過程,也就是圖中的EvaluteScript。

要執行一段腳本我們需要首先編譯該腳本,于是在EvaluteScript過程中,先進入了腳本編譯過程,也就是圖中的ComplieScript。 腳本編譯好之后,就進入程序執行過程,執行全局代碼時,V8會先構造一個anonymous過程,在執行anonymous過程中,會調用setNewArea過程,setNewArea過程中又調用了createElement,由于之后調用了方法,該方法會觸發DOM內容的修改,所以又強制執行了ParserHTML過程生成的新的DOM。

DOM生成完成之后,會觸發相關的DOM事件,比如典型的DOMContentLoaded,還有readyStateChanged。

生成可顯示位圖階段

生成了DOM和CSSOM之后,就進入了第三個階段:生成頁面上的位圖。通常這需要經歷布局(Layout)、分層、繪制、合成等一系列操作,同樣,將第三個階段的流程也放大了,如下圖所示:

結合上圖,我們可以發現,在生成完了DOM和CSSOM之后,渲染主線程首先執行了一些DOM事件,諸如readyStateChange、load、pageshow。 具體地講,如果你使用JavaScript監聽了這些事件,那么這些監聽的函數會被渲染主線程依次調用。

接下來就正式進入顯示流程了,大致過程如下所示。

首先執行布局,這個過程對應圖中的Layout。

光柵化流程

然后更新層樹(LayerTree),這個過程對應圖中的UpdateLayerTree。

有了層樹之后,就需要為層樹中的每一層準備繪制列表了,這個過程就稱為Paint。

準備每層的繪制列表之后,就需要利用繪制列表來生成相應圖層的位圖了,這個過程對應圖中的CompositeLayers。

走到了CompositeLayers這步,主線程的任務就完成了,接下來主線程會將合成的任務完全教給合成線程來執行,下面是具體的過程,你也可以對照著Composite、Raster和GPU這三個指標來分析,參考下圖:

首先主線程執行到CompositeLayers過程之后,便會將繪制列表等信息提交給合成線程,合成線程的執行記錄你可以通過Compositor指標來查看。

合成線程維護了一個Raster線程池,線程池中的每個線程稱為Rasterize,用來執行光柵化操作,對應的任務就是RasterizePaint。

當然光柵化操作并不是在Rasterize線程中直接執行的,而是在GPU進程中執行的,因此Rasterize線程需要和GPU線程保持通信。

然后GPU生成圖像,最終這些圖層會被提交給瀏覽器進程,瀏覽器進程將其合成并最終顯示在頁面上。

本文解答了個人一個長期困擾的問題:在某些情況下,比如網速比較慢或者頁面內容很多的時候,頁面是一點一點的顯示出來的,原本以為是網絡數據是加載一點就渲染一點,其實不是的,數據在導航階段就已經全部獲取回來了。 之所以會慢慢渲染出來,是因為瀏覽器的顯示頻率是60hz,也就是16.67ms就刷新下瀏覽器,但是在16.67ms內,渲染流水線可能只進行到一半,但是這個時候也要把渲染一半的畫面顯示出來,所以就會看到頁面是一點一點的繪制出來的。

原文:



相關標簽: 掌握數字圖像處理的基礎光柵化流程、 光柵化入門

上一篇:光柵化與數字攝影捕捉現實的像素化世界光柵

下一篇:光柵化在數字藝術中的作用像素之舞光柵輸出

內容聲明:

1、本站收錄的內容來源于大數據收集,版權歸原網站所有!
2、本站收錄的內容若侵害到您的利益,請聯系我們進行刪除處理!
3、本站不接受違法信息,如您發現違法內容,請聯系我們進行舉報處理!
4、本文地址:http://m.sycxjdsbhs.com/article/b7ee2b5d39227f6a15a0.html,復制請保留版權鏈接!


隨機文章
在 Windows 7 中使用 CrackVS2008 創建并管理解決方案的最佳實踐 (在windows10中下列正確的文件名是)

在 Windows 7 中使用 CrackVS2008 創建并管理解決方案的最佳實踐 (在windows10中下列正確的文件名是)

在Windows10中使用CrackVS2008創建和管理解決方案的最佳實踐引言CrackVS2008是一款功能強大的工具,用于在Windows中創建和管理VisualStudio解決方案,遵循最佳實踐可以幫助您優化工作流程,提高生產力和確保代碼庫的質量,本文將探討在Windows10中使用CrackVS2008創建和管理解決方案的最...。

最新資訊 2024-10-01 12:12:55

揭秘 Objective-C:面向對象的強大語言 (揭秘狂飆兄弟事件車輛鑒定公司)

揭秘 Objective-C:面向對象的強大語言 (揭秘狂飆兄弟事件車輛鑒定公司)

Objective,C,面向對象的強大語言引言Objective,C是一種面向對象的編程語言,最初由蘋果公司開發,用于macOS和iOS操作系統,它基于Smalltalk語言,并融合了C語言的特性,使其成為一種強大且靈活的語言,在本文中,我們將深入了解Objective,C,探討其功能、優點和缺點,并了解其在移動開發和桌面應用程序中的...。

最新資訊 2024-09-28 04:59:05

提升你的博客:使用 Lightbox 創造引人入勝的視覺內容 (提升你的博客能力)

提升你的博客:使用 Lightbox 創造引人入勝的視覺內容 (提升你的博客能力)

提升你的博客,使用Lightbox創造引人入勝的視覺內容前言在現代網絡環境中,引人入勝的視覺內容至關重要,它可以瞬間抓住讀者的注意力,提高參與度并促進轉化,Lightbox是一個強大的工具,可以讓你輕松地將高質量的圖像、視頻和全景視圖整合到你的博客中,從而提升用戶體驗,什么是Lightbox,Lightbox是一種JavaScript...。

互聯網資訊 2024-09-28 03:56:44

activiti建模與部署教程:從BPMN流程圖到可執行工作流 (activities)

activiti建模與部署教程:從BPMN流程圖到可執行工作流 (activities)

簡介Activiti是一個開源的業務流程管理,BPM,和工作流引擎,它允許您建模、部署和管理復雜的業務流程,本教程將指導您完成使用Activiti從BPMN流程圖創建可執行工作流的過程,先決條件安裝Activiti安裝BPMN建模工具,例如,CamundaModeler,了解BPMN基本符號步驟1,建模BPMN流程使用BPMN建模工具...。

本站公告 2024-09-26 21:44:20

CakePHP 中的單元測試:編寫穩健可靠的代碼 (CakePHP)

CakePHP 中的單元測試:編寫穩健可靠的代碼 (CakePHP)

前言單元測試是軟件開發過程中至關重要的技術,它有助于確保代碼的健壯性和可靠性,本文將深入探討CakePHP中的單元測試,指導你編寫穩健可靠的代碼,了解CakePHP單元測試CakePHP中的單元測試是基于PHPUnit框架構建的,并通過CakePHP的測試用例類擴展了其功能,測試用例類提供了特定的方法和助手,簡化了CakePHP應用程...。

技術教程 2024-09-25 08:18:09

Coursera(course是什么意思)

Coursera(course是什么意思)

什么是Coursera,Coursera是一個在線學習平臺,提供各種主題的課程,包括商科、計算機科學、數據科學、健康、藝術等,這些課程由世界領先的大學和組織提供,如斯坦福大學、密歇根大學、谷歌和IBM,Coursera上的課程有兩種主要類型,專業證書課程和學位課程,專業證書課程通常需要幾個月的學習時間,旨在培養特定的技能,而學位課程則...。

互聯網資訊 2024-09-23 08:24:08

探索 fprintf 的強大功能:在 C 中控制輸出格式 (探索后媽的桃花源作文)

探索 fprintf 的強大功能:在 C 中控制輸出格式 (探索后媽的桃花源作文)

簡介fprintf,函數是C語言標準I,O庫中一個強大的函數,它允許開發者以格式化方式輸出數據,通過使用格式說明符,開發者可以控制輸出的寬度、對齊、小數點精度以及其他屬性,本篇文章將深入探討fprintf,函數的用法和功能,并通過示例展示如何使用它來以各種格式輸出數據,語法fprintf,函數的語法如下,```cintfprin...。

互聯網資訊 2024-09-15 11:19:37

Excel 函數庫:了解各種函數及其應用場景 (excel函數公式大全)

Excel 函數庫:了解各種函數及其應用場景 (excel函數公式大全)

指定范圍內的數字的平均值計算平均值或中心趨勢MIN返回指定范圍內的最小值查找最小值或極值MAX返回指定范圍內的最大值查找最大值或極值SQRT計算指定數字的平方根進行幾何或統計計算SIN計算指定角度的正弦值進行三角測量或建模文本函數函數說明應用場景LEFT從文本字符串中返回指定數量的左部字符提取文本字符串的一部分RIGHT從文本字符串中...。

最新資訊 2024-09-13 12:43:32

理解隨機數函數的優勢和局限性:從偽隨機到真隨機 (理解隨機數函數的應用)

理解隨機數函數的優勢和局限性:從偽隨機到真隨機 (理解隨機數函數的應用)

引言隨機數在計算機科學中扮演著至關重要的角色,廣泛應用于密碼學、仿真、游戲和機器學習等領域,并非所有隨機數函數都是平等的,它們具有各自的優勢和局限性,本文將深入探討偽隨機數和真隨機數之間的差異,以及如何選擇適合特定應用的隨機數函數,偽隨機數定義偽隨機數由確定性算法生成,即算法基于一個種子值,該種子值決定了產生的隨機數序列,盡管這些數看...。

最新資訊 2024-09-11 09:26:44

vb.net 源碼解謎:探索編程的奧秘 (vbnet和vb的區別)

vb.net 源碼解謎:探索編程的奧秘 (vbnet和vb的區別)

VB.NET源碼概述VB.NET是面向對象編程語言,擴展了VisualBasic6.0的功能,它采用面向對象技術,將代碼組織成稱為類的模塊,在VB.NET中,聲明變量、方法和屬性時使用關鍵字Dim,并使用.運算符訪問對象成員,VB.NET代碼以.vb擴展名保存,以下是一個簡單的HelloWorld程序示例,ModuleModule1S...。

最新資訊 2024-09-10 01:35:30

可擴展性:開源系統可以隨著機構的需求而輕松擴展,處理大量考生和考試。(可擴展性是什么)

可擴展性:開源系統可以隨著機構的需求而輕松擴展,處理大量考生和考試。(可擴展性是什么)

可擴展性的含義可擴展性是指系統能夠隨著需求的增長而輕松擴展以處理增加的負載和功能的能力,對于考試系統而言,可擴展性至關重要,因為機構的需求會隨著考生數量、考試次數和考試復雜性的增加而不斷變化,開源考試系統的可擴展性優勢開源考試系統通常具有以下可擴展性優勢,無許可證限制開源系統沒有供應商限制,這意味著機構可以根據需要擴展它們,而無需支付...。

互聯網資訊 2024-09-08 10:58:20

從頭到尾理解正則表達式:解鎖文本匹配的強大工具 (從頭到尾理解詞語)

從頭到尾理解正則表達式:解鎖文本匹配的強大工具 (從頭到尾理解詞語)

什么是正則表達式,正則表達式,也稱為正規表達式,是一種用于匹配文本模式的特殊語法,它是一種強大的工具,可用于各種文本處理任務,例如,查找特定單詞或短語提取特定格式的數據,例如日期或電子郵件地址驗證用戶輸入替換文本正則表達式語法正則表達式使用各種符號、元字符和修飾符來定義匹配模式,以下是一些最常用的元素,字符類,匹配任何屬于指定字符類的...。

最新資訊 2024-09-05 22:56:11

Copyright ? 2025 聚集網 All Rights Reserved
此內容系本站根據來路自動抓取的結果,不代表本站贊成被顯示網站的內容或立場。
本頁閱讀量次 | 本站總訪問次 | 本站總訪客人 | 今日總訪問次 | 今日總訪客人 | 昨日總訪問次 | 昨日總訪客人 |
技術支持:聚集網

国产精品成人免费视频_91丝袜美腿美女视频网站_国产一区二区三区在线看_亚洲欧美另类中文字幕_在线电影av不卡网址_国产视频丨精品|在线观看_日韩一区二区三区国产_国产欧美va欧美va香蕉在线_热re91久久精品国99热蜜臀_亚洲第一精品电影_久久九九亚洲综合_国产成人综合精品_97视频在线观看网址_精品视频久久久久久_日韩av片免费在线观看_久久精品国产99国产精品澳门
国产精品成人免费电影| 欧美激情精品久久久| 亚洲成成品网站| 亚洲午夜久久久影院| 久久久人成影片一区二区三区| 美女久久久久久久| 69av视频在线播放| 日韩av中文字幕在线播放| 97免费视频在线播放| 久久激情视频久久| 国产精品美女视频网站| 欧美性xxxxx极品娇小| 青青草一区二区| 国模叶桐国产精品一区| 欧美一级片久久久久久久| 精品国产91久久久久久| 欧美精品电影免费在线观看| 91高清视频免费| 国产亚洲视频中文字幕视频| 视频在线观看一区二区| 亚洲日本成人网| 亚洲视频一区二区三区| 中文字幕亚洲二区| 成人国产精品一区二区| 欧美专区日韩视频| 亚洲影院色在线观看免费| 欧美日韩亚洲天堂| 丰满岳妇乱一区二区三区| 亚洲www在线观看| 久久激情视频免费观看| 91精品国产沙发| 免费成人高清视频| 欧美高清一级大片| 亚洲国产精品一区二区久| 高清欧美性猛交xxxx黑人猛交| 91av中文字幕| 欧美日韩国产999| 欧美第一黄网免费网站| 日本欧美一二三区| 欧美激情精品在线| 国产深夜精品福利| 欧美亚洲视频在线观看| 92看片淫黄大片看国产片| 国产精品自产拍在线观看| 亚洲free性xxxx护士白浆| 性欧美xxxx视频在线观看| 久久久伊人日本| 欧美激情视频网址| 黑人巨大精品欧美一区免费视频| 亚洲老头老太hd| 精品偷拍各种wc美女嘘嘘| 国产激情综合五月久久| 久久视频免费在线播放| 亚洲国产天堂久久国产91| 欧美精品videos另类日本| 日韩av高清不卡| 国产精品视频播放| 亚洲成人激情视频| 久久久国产一区二区三区| 91精品国产91久久久久| 国产香蕉97碰碰久久人人| 青青久久aⅴ北条麻妃| 精品视频久久久久久久| 欧美视频免费在线观看| 日韩成人在线播放| 高跟丝袜一区二区三区| 日韩黄色在线免费观看| 亚洲第一区在线| 日韩精品视频中文在线观看| 久久影视电视剧免费网站清宫辞电视| 精品成人在线视频| 久久免费观看视频| yw.139尤物在线精品视频| 97国产一区二区精品久久呦| 欧美在线观看视频| 久久激情视频久久| 精品视频—区二区三区免费| 亚洲国产91精品在线观看| 日韩在线观看免费高清完整版| 青草热久免费精品视频| 国产69精品久久久久99| 日本精品久久中文字幕佐佐木| 黑人巨大精品欧美一区免费视频| 精品毛片网大全| 久久久av亚洲男天堂| 亚洲丝袜av一区| 国产日韩欧美夫妻视频在线观看| 性欧美xxxx交| 中文欧美日本在线资源| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲xxxx妇黄裸体| 国产精品福利网| 精品一区二区三区电影| 91精品国产99| 日韩资源在线观看| 丰满岳妇乱一区二区三区| 日韩一区二区精品视频| 亚洲国产一区二区三区四区| 国产日韩换脸av一区在线观看| 欧美精品18videos性欧美| 亚洲国产97在线精品一区| 欧美视频二区36p| 久久99精品视频一区97| 国产精品丝袜一区二区三区| 国产视频精品免费播放| 成人在线播放av| 欧美色视频日本版| 亚洲国产精品va在线观看黑人| 亚洲精品国产品国语在线| 中文字幕亚洲情99在线| 亚洲精品福利在线观看| 久久大大胆人体| 亚洲精品电影网在线观看| 国产一区二区三区在线观看视频| 午夜精品国产精品大乳美女| 久久99精品久久久久久噜噜| 国产成人极品视频| 国产精品国模在线| 日韩免费观看高清| 91av在线国产| 精品国产区一区二区三区在线观看| 久久免费视频网站| 亚洲欧美日韩国产中文| 亚洲欧洲偷拍精品| 亚洲精品在线视频| 国产精品视频一区二区三区四| 国产精品美乳一区二区免费| 国产精品久久久久久久久久ktv| 日韩中文av在线| 清纯唯美日韩制服另类| 久久精品国产清自在天天线| 亚洲一区二区三区视频| 26uuu久久噜噜噜噜| 欧美猛交ⅹxxx乱大交视频| 2020国产精品视频| 欧美精品在线视频观看| 日韩免费av在线| 欧美猛交免费看| xxxxxxxxx欧美| 国产精品美女视频网站| 久久国产精品首页| 日韩av快播网址| 91久久国产综合久久91精品网站| 91夜夜揉人人捏人人添红杏| 91免费欧美精品| 国产精品ⅴa在线观看h| 欧美性生交xxxxxdddd| 欧美日韩免费在线观看| 成人性生交大片免费观看嘿嘿视频| 91系列在线播放| 欧美日韩精品国产| 久久久久久69| 国产精品久久999| 亚洲男人的天堂网站| 97热在线精品视频在线观看| 久久这里只有精品视频首页| 亚洲精品一区久久久久久| 欧美高清视频免费观看| 91香蕉嫩草影院入口| 成人免费观看49www在线观看| 久久国产精品久久久| 久久国产精品久久久久久| 精品国产美女在线| 国产精品老牛影院在线观看|