分形/計算機圖形技術/3D
外觀
< 分形
- API (C++、JS...)
- 後端(渲染器後端架構)
- Linux、macOS 和 Windows 的 OpenGL 4.1+
- Android 和 iOS 的 OpenGL ES 3.0+
- macOS 和 iOS 的 Metal
- Android、Linux、macOS 和 Windows 的 Vulkan 1.0
- 所有平臺的 WebGL 2.0
渲染
- 影像順序渲染(基於 CPU 的光線追蹤)
- 物件順序渲染(基於 GPU 的渲染。更快,因為我們可以並行地對不同的頂點應用相同的指令。)
"A single frame in Toy story 4 could take anywhere between 60 to 160 hours to render using CPU based ray tracing."Brendan Galea The Math behind (most) 3D games - Perspective Projection by Brendan Galea
- 網格
- 紋理(貼圖)
- 幾何變換
- 管道
3D 圖形與向量圖形比與光柵圖形有更多共同點。影像內容被指定為幾何物件的列表。該技術被稱為幾何建模。
渲染場景 = 建立 3D 物件/世界的 2D 影像[1]
3D 圖形程式的任務是將 3D 環境的規範轉換為 2D 圖片。[2]
有兩種方式可以生成這樣的圖片
- 即時渲染(互動式圖形應用程式,如影片遊戲或模擬)
- 非即時渲染(非互動式圖形應用程式,如電影)。
使用 API 的主機程式(CPU)的程式語言
- C
- C++
特殊 API
- OpenGL
- WebGl
- Direct3D
- Vulkan
- OpenCl
- CUDA
著色器程式(GPU)的程式語言
- GLSL(OpenGl)
- HLSL(DirectX)
- Cg(NVIDIA 的著色語言)

3D 管道包含
- 硬體管道(主記憶體、CPU、PCI Express 匯流排、GPU 和 GPU 記憶體)
- 軟體管道
軟體管道
- CPU 上的主機程式(在 CPU 上執行的 3D 程式)
- GPU 上的著色器程式(3D 資料處理的大部分)
主機程式的工作包括
- 初始化
- 設定或重新配置 3D 軟體管道
- 構建著色器程式
- 將著色器程式傳輸到 GPU
- 資料管理
- 載入 3D 資料
- 處理 3D 資料
- 更新 3D 資料
- 將 3D 資料傳輸到 GPU
- 向 GPU 傳送命令
- 處理使用者輸入並更新 3D 資料
著色器程式
- 頂點著色器
- 片段著色器
- 幾何著色器
每個 API 都有自己的管道
-
OpenGL 1.0 管道
-
D3D11 管道
-
D3D 10 管道
- MeshLab - 用於處理和編輯 3D 三角形網格的開源系統。
它提供了一組用於編輯、清理、修復、檢查、渲染、紋理化和轉換網格的工具。它提供了用於處理由 3D 數字化工具/裝置生成的原始資料以及為 3D 列印準備模型的功能。
- 對映到黎曼球面的 2D 分形
對於每個畫素的高度,可以使用
- 將 3D 空間中的點投影到可以展開的圓柱形表面上,到平面上[5]
影片和動畫有什麼區別?
用於進行轉換的軟體
- 分形論壇上的答案[6]
- commons 幫助
可以使用以下方法制作影片
- 在引數平面上沿著一些路徑移動(例如內部和外部射線)
- 用於縮放動畫的龐加萊半平面度量[7]
- 縮放 到引數平面[8][9][10] 使用自動確定最大迭代次數[11]
- 更改配色方案(例如顏色迴圈 - Fractint)
- 更改演算法的某些引數,例如
- 逃逸時間演算法的最大迭代次數
- 逃逸值[12]
- 從 c=-0.75+i 到 c=-0.75-i 的直線。它大部分位於曼德勃羅集的外部(因此,朱利亞集是分離的,沒有內部)。只有一個點 c=-0.75,其中 c 屬於曼德勃羅集的邊界(週期 1 和 2 雙曲分量的根點)。在那個點上,朱利亞集有內部(拋物線)。[13]
- 從 c=-2 到 c=1.65(曼德勃羅集的實切片)[14]
- 以 -1 為中心,半徑為 0.25 的圓
- 圍繞主心形[15]
- 引數沿著以 -0.29848658+0.65843271i 為中心,半徑為 0.004 的圓形移動。在引數平面上,這在曼德勃羅分形的某個點周圍形成了一個圓,該點以非常鬆散的螺旋形輻射出 11 根線。[16]
- 以 -1.57621921451761 為中心,半徑為 3.6 x 10^-10 的圓形移動。在引數平面上,這在那個位置的一個迷你勃羅特周圍形成了一個圓,但沒有穿過迷你勃羅特本身。[17]
- ↑ David J. Eck 的《計算機圖形學導論》
- ↑ 朱穎教授的《高階圖形演算法》
- ↑ fractalforums 上的 Duncanc Champney
- ↑ Duncan Champney 的帶分數迭代值的 3D 圖
- ↑ ronny restrepo 部落格:雷射雷達資料到 2D
- ↑ fractal 論壇上的回答
- ↑ Claude Heiland-Allen 的用於縮放動畫的龐加萊半平面度量
- ↑ Bruce Dawson 的《非常深的分形縮放電影 - 速度更快》
- ↑ Tony Finch 的《製作曼德勃羅集電影》
- ↑ Daniel de Rauglaud 的 MLbrot
- ↑ 討論:確定曼德勃羅分形任意縮放級別的最大迭代次數的方法
- ↑ jgabase 的 GIF 圖片:透過動態更改逃逸值在分形上產生蟲洞效果
- ↑ 影片:youtube 上 rrwick 的“朱利亞分形變形:-0.75+i 到 -0.75-i”
- ↑ youtube 上 rrwick 的影片
- ↑ youtube 上 rrwick 的影片
- ↑ youtube 上 rrwick 的影片
- ↑ youtube 上 rrwick 的影片