<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

EEPW首頁(yè) > 博客 > 解釋基本的3D理論

解釋基本的3D理論

發(fā)布人:ygtu 時(shí)間:2023-08-31 來(lái)源:工程師 發(fā)布文章
推薦:使用NSDT場(chǎng)景編輯器快速搭建3D應用場(chǎng)景
坐標系

3D 本質(zhì)上是關(guān)于 3D 空間中形狀的表示,并使用坐標系來(lái)計算它們的位置。

坐標系

WebGL 使用右側坐標系 — 軸指向右側,軸指向上方,軸指向屏幕外,如上圖所示。xyz

對象

使用頂點(diǎn)構建不同類(lèi)型的對象。頂點(diǎn)是空間中的一個(gè)點(diǎn),在坐標系中具有自己的 3D 位置,通常是定義它的一些附加信息。每個(gè)頂點(diǎn)都由以下屬性描述:

  • 位置:在 3D 空間中標識它 (、、)。xyz

  • 顏色:保存 RGBA 值(R、G 和 B 表示紅色、綠色和藍色通道,alpha 表示透明度 — 所有值的范圍從 到 )。0.01.0

  • 正常:一種描述頂點(diǎn)朝向的方法。

  • 紋理:頂點(diǎn)可用于裝飾其所屬表面的 2D 圖像,而不是簡(jiǎn)單的顏色。

您可以使用此信息構建幾何圖形 — 下面是一個(gè)立方體示例:

立方體

給定形狀的面是頂點(diǎn)之間的平面。例如,立方體有 8 個(gè)不同的頂點(diǎn)(空間中的點(diǎn))和 6 個(gè)不同的面,每個(gè)面由 4 個(gè)頂點(diǎn)構成。法線(xiàn)定義面部的方向。此外,通過(guò)連接點(diǎn),我們正在創(chuàng )建立方體的邊緣。幾何體是從頂點(diǎn)和面構建的,而材質(zhì)是紋理,它使用顏色或圖像。如果我們將幾何體與材料連接起來(lái),我們將得到一個(gè)網(wǎng)格。

渲染管線(xiàn)

渲染管線(xiàn)是準備圖像并將其輸出到屏幕上的過(guò)程。圖形渲染管道采用從使用頂點(diǎn)描述的基元構建的 3D 對象,應用處理,計算片段并將其作為像素在 2D 屏幕上呈現。

渲染管線(xiàn)

上圖中使用的術(shù)語(yǔ)如下:

  • 基元:管道的輸入 — 它由頂點(diǎn)構建,可以是三角形、點(diǎn)或線(xiàn)。

  • 片段:像素的 3D 投影,具有與像素相同的所有屬性。

  • 像素:屏幕上排列在 2D 網(wǎng)格中的點(diǎn),具有 RGBA 顏色。

頂點(diǎn)和片段處理是可編程的 — 您可以編寫(xiě)自己的著(zhù)色器來(lái)操作輸出。

頂點(diǎn)處理

頂點(diǎn)處理是將有關(guān)各個(gè)頂點(diǎn)的信息組合成基元,并在 3D 空間中設置它們的坐標以供查看者查看。這就像拍攝您準備的給定風(fēng)景的照片一樣 - 您必須首先放置對象,配置相機,然后拍攝。

頂點(diǎn)處理

這種處理有四個(gè)階段:第一個(gè)階段涉及排列世界中的對象,稱(chēng)為模型轉換。然后是視圖轉換,負責在3D空間中定位和設置相機的方向。攝像機有三個(gè)參數 - 位置、方向和方向 - 必須為新創(chuàng )建的場(chǎng)景定義。

照相機

然后,投影變換(也稱(chēng)為****變換)定義相機設置。它設置了攝像機可以看到的內容——配置包括視野、縱橫比和可選的近平面遠平面。閱讀三.js文章中的相機段落以了解這些內容。

相機設置

最后一步是視口轉換,它涉及輸出渲染管線(xiàn)中下一步的所有內容。

光柵化

柵格化將基元(連接的折點(diǎn))轉換為一組片段。

光柵化

這些片段(即 3D 像素的 2D 投影)與像素網(wǎng)格對齊,因此最終它們可以在輸出合并階段作為像素打印在 2D 屏幕顯示器上。

片段處理

片段處理側重于紋理和照明——它根據給定的參數計算最終顏色。

片段處理

紋理

紋理是在 2D 空間中使用的 3D 圖像,用于使對象看起來(lái)更好、更逼真。紋理由稱(chēng)為紋素的單個(gè)紋理元素組合而成,就像圖片元素從像素組合一樣。在渲染管線(xiàn)的片段處理階段將紋理應用于對象,允許我們在必要時(shí)通過(guò)包裝和過(guò)濾來(lái)調整它。

紋理包裝允許我們在 2D 對象周?chē)貜?3D 圖像。當原始分辨率或紋理圖像與顯示的片段不同時(shí),將應用紋理過(guò)濾 - 它將相應地縮小或放大。

照明

我們在屏幕上看到的顏色是光源與物體材質(zhì)的表面顏色相互作用的結果。光可能會(huì )被吸收或反射。在WebGL中實(shí)現的標準Phong照明模型有四種基本類(lèi)型的照明:

  • 漫反射:遙遠的定向光,如太陽(yáng)。

  • 鏡面反射:一個(gè)光點(diǎn),就像房間里的燈泡或手電筒一樣。

  • 環(huán)境:常光應用于場(chǎng)景中的所有內容。

  • 自發(fā)光:物體直接發(fā)出的光。

輸出合并

在輸出操作階段,來(lái)自 3D 空間的所有基元片段都轉換為像素的 2D 網(wǎng)格,然后在屏幕顯示器上打印出來(lái)。

輸出合并

在輸出合并期間,還會(huì )應用一些處理來(lái)忽略不需要的信息 - 例如,不會(huì )計算屏幕外部或其他對象后面的對象的參數,因此不可見(jiàn)。

原文鏈接:解釋基本的3D理論 (mvrlink.com)


*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。



關(guān)鍵詞: 3D建模

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>