layui循环数据并渲染_从简单到复杂三维图形渲染管线
生活随笔
收集整理的這篇文章主要介紹了
layui循环数据并渲染_从简单到复杂三维图形渲染管线
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、什么是三維圖形渲染管線
3D Graphics Rendering Pipeline
1、三維
- 3D,三維空間的簡稱。
- 在笛卡爾空間坐標系內,一般使用x、y、z三個分量表示一個位置。
2、圖形
- 圖形:Graphic,用一組指令集合來描述內容,如描述構成該圖的各種圖元幾何數據、繪制方法等。因為圖形對象中有豐富的結構、形狀和造型數據,圖形對象可以進行豐富的變換而不會失真。
- 圖像:Image,用有限的像素柵格及顏色數值來表述內容,可表達豐富的色彩信息。因為圖像的像素數量和像素位寬都有限,因此對圖像變換后會損壞圖像數據丟失精度。
3、渲染
- 渲染:Rendering,是將圖形數據轉換成圖像數據的過程。比如將三維圖形轉換到一張圖片、將二維矢量圖顯示到顯示器真緩沖區等。
4、管線
- 一套還算比較復雜的算法,按照功能劃分為若干個階段。
二、必備的數學基礎
1、向量
- 在3D圖形數學中,向量(x, y, z)可用于描述幾何數據中的:
- 位置
- 方向
- 一個端點在原點的線段
- RGB顏色
- 向量加法減法,用于描述:
- 特定位置點經過平移的新位置。
- 兩個位置之間的方向和距離。
- 向量點乘:
- 求夾角。
- 已知夾角,求特定位置的坐標。
- 求射影長度。
- 矩陣乘法計算的工具。
- 向量叉乘:
- 求法線
- 笛卡爾坐標軸方向計算,知道x,y方向求z方向等。
2、矩陣
- 空間變換(平移、旋轉、縮放、投影。。。)
3、歐拉角與四元數
- 都用來描述旋轉操作
- 歐拉角只需要三個分量(x, y, z)
- 四元數的球面線性插值算法,用來描述旋轉非常平滑,不會產生抖動。
三、3D渲染管線 for 小學森
最簡單的圖形渲染管線1、幾何(Geometry)
- 點: (x, y, z)
- 線: (x0, y0, z0)->(x1, y1, z1)
- 面: (x0, y0, z0)->(x1, y1, z1)->(x0, y0, z0)
2、光柵化(Rasterization)
- 將幾何點轉換成屏幕上的像素點
- 將幾何線段轉換成屏幕上的一條像素線段
- 數值微分算法(DDA)
- Bresenham算法
- 將幾何三角形轉換成屏幕上的一片像素三角形區域
- 掃描線算法
- 重心坐標算法
四、3D渲染管線 for 中二班
固定管線- 變換與照明(Transform & Lighting, T&L)
- 空間變換
- 模型空間(Model)
- 世界空間(World)
- 觀察空間(View)
- 投影空間(Projection)。
- 光照
- Lambert:純漫反射模型
- Phong:環境光ambient、漫反射diffuse、鏡面光specular
- Binn-Phong:改進的Phong模型
- 空間變換
- Texturing
- UV坐標
- 紋理采樣(最近點采樣、雙線性采樣、各向異性采樣)
- 循環方式(固定色、邊緣色、重復循環、鏡像循環)
五、3D渲染管線 for CS本科
可編程渲染管線- 頂點著色器(Vertex Shader、VS)
- Transform
- Per-Vertex Lighting
- 片段著色器(Fragment Shader、FS)
- Texture Mapping
- Per-Pixel Lighting
- Shadow Mapping
- Fog
- 輸出與合并(Output & Merge)
- Alpha Test
- Depth Test
- Stencil Test
- Blending
六、3D渲染管線 for 圖形程序開發者
1、Vulkan
vulkan管線- https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#pipelines
2、Direct3D 12
DirectX 12 渲染管線- https://docs.microsoft.com/en-us/windows/win32/direct3d12/pipelines-and-shaders-with-directx-12
總結
以上是生活随笔為你收集整理的layui循环数据并渲染_从简单到复杂三维图形渲染管线的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果云工程副总裁 Michael Abb
- 下一篇: DigiTimes 报道称京东方可能无法