新手向:如何理解OpenGL中着色器,渲染管线,光栅化等概念
首先,光柵化(Rasterize/rasteriztion)。?
這個詞兒Adobe官方翻譯成柵格化或者像素化。沒錯,就是把矢量圖形轉化成像素點兒的過程。我們屏幕上顯示的畫面都是由像素組成,而三維物體都是點線面構成的。要讓點線面,變成能在屏幕上顯示的像素,就需要Rasterize這個過程。就是從矢量的點線面的描述,變成像素的描述。?
如下圖,這是一個放大了1200%的屏幕,前面是告訴計算機我有一個圓形,后面就是計算機把圓形轉換成可以顯示的像素點。這個過程就是Rasterize。
渲染管線(Pipeline)?
這個翻譯尤其不接地氣,簡直就是直譯(pipe管子line線路)。Pipeline是輸送管道的意思。其實是指三維渲染的過程中顯卡執行的、從幾何體到最終渲染圖像的、數據傳輸處理計算的過程。
著色器(Shader)?
這個翻譯的挺好。畫畫的時候我們經常有這么一個過程:先打線稿,再上色。著色器就是用來做這個工作的。?
通常著色器分兩種:?
1頂點著色器(vertex shader)這個是告訴電腦如何打線稿的——如何處理頂點、法線等的數據的小程序。?
2片面著色器(fragment shader)這個是告訴電腦如何上色的——如何處理光、陰影、遮擋、環境等等對物體表面的影響,最終生成一副圖像的小程序。?
采用了這兩種著色器小程序 的 數據傳輸處理計算的渲染過程,稱之為 可編程管線。?
3fragment shader:它在DX中實際上叫做pixel shader,也就是像素著色器。而OGL中沒有這么叫的原因,是考慮到在這個著色過程中后還有深度測試和Alpha測試,這些過程可能將被著色的像素再次舍棄掉——因此這個著色過程處理的只是“候選的像素”,而非最終呈現的像素值。候選者嘛,所以改個名字叫做fragment~~
總結
以上是生活随笔為你收集整理的新手向:如何理解OpenGL中着色器,渲染管线,光栅化等概念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在linux中 要删除abc目录,操作系
- 下一篇: 马斯克发信要求员工结束远程办公 每周至少