-
我們來談談我的想法,首先,如果從學習的角度出發,就不必從基於當前GPU架構和概念的軟體副本入手。 目前的 GPU 主要基於三角形光柵化和 Z 緩衝區。
如果我們從圖形的歷史過程中學習,我們可以做這個練習:
2D 部分:柵格化的 2D 點(即在 2D 陣列上繪製點,了解顏色的基本原理,解決影象輸出問題)。
柵格化的二維直線(Bresenham直線演算法、吳曉林直線演算法等)。
二維直線的剪下演算法(請參閱線裁剪)。
柵格化的 2D 三角形(掃瞄轉換)。 避免重複柵格化相鄰三角形邊界的邊方程。
柵格化是簡單和複雜的多邊形。
3D:將頂點從 3D 世界空間轉換為 2D 螢幕空間,繪製頂點(例如銀河系資料),並操縱相機旋轉模型。
在剪下空間中進行三維直線剪下演算法,將頂點連線(如各種三維正多面體)柵格化為線框模型。
在多邊形中定義 3D 模型。 使用畫家的演算法對這些多邊形進行柵格化。
請改用深度緩衝。
實現簡單的紋理貼圖,先做螢幕空間插值,再實現簡單的透視校正紋理貼圖。
實現簡單的頂點照明,並使用頂點顏色插值進行 gouraud 著色。
通過頂點法線插值,實現phong著色。
實現其他對映技術,例如 mipmapping(也可以嘗試求和面積表)、雙線性三線性濾波、凹凸對映、法線對映、環境對映等。
-
什麼意思,我沒有說清楚,n個頂點被傳遞到流水線後,先進行幾何變換,也就是可程式設計流水線中的頂點著色器,然後確定這些頂點在螢幕上的畫素坐標,然後進入填充階段,也就是執行pixelshader,在opengl中稱為fragmentshader。 填滿後就結束了。。-
-
柵格化 2D 點(即在二維陣列上繪製點、了解顏色的基本原理以及解決影象輸出問題)。
柵格化的二維直線(Bresenham直線演算法、吳曉林直線演算法等)。
二維直線的剪下演算法(請參閱線裁剪)。
-
這取決於您是否了解光柵化和 C++ 的原理
-
這取決於你是否了解計算機圖形學和OpenGL的原理
三樓可以考慮,二樓就夠開玩笑了,人該問問題就要認真請教,他們來到佛門,想著應該有一些佛法的見識。 當你談論假僧侶時,你會怎麼做? 假僧自己會下地獄報答他的業力。 >>>More