一、概述

Effects框架是一組用于管理著色器程序和渲染狀態(tài)的工具代碼。例如,你可能會使用不同的effect繪制水、云、金屬物體和動畫角色。每個effect至少要由一個頂點著色器、一個像素著色器和渲染狀態(tài)組成。

在Direct3D11中,Effects框架已從D3DX庫中移除,需要我們自己配置effect庫,配置過程請參考《Direct3D11學習:(一)開發(fā)環(huán)境配置》。

上一篇文章介紹了D3D11的繪圖基礎過程,并繪制了一個彩色立方體,當中使用了Effects框架,只是簡單的介紹了一下。我們這篇文章來詳細講解一下Effects框架。

 

二、Effects

2.1 effect文件

我們已經討論了頂點著色器、像素著色器,并對幾何著色器、曲面細分著色器進行了簡要概述。我們還討論了常量緩沖,它可以用于存儲由著色器訪問的“全局”變量。這些代碼通常保存在一個effect文件(.fx)中,它是一個純文本文件中(就像是C++代碼保存在.h和.cpp文件中一樣)。除了著色器和常量緩沖之外,每個effect文件至少還要包含一個technique,而每個technique至少要包含一個pass。

1.technique11:一個technique由一個或多個pass組成,用于創(chuàng)建一個渲染技術。每個pass實現一種不同的幾何體渲染方式,按照某些方式將多個pass的渲染結果混合在一起就可以得到我們最終想要的渲染結果。例如,在地形渲染中我們將使用多通道紋理映射技術(multi-pass texturing technique)。注意,多通道技術通常會占用大量的系統資源,因為每個pass都要對幾何體進行一次渲染;不過,要實現某些渲染效果,我們必須使用多通道技術。

2.pass:一個pass由一個頂點著色器、一個可選的幾何著色器、一個像素著色器和一些渲染狀態(tài)組成。這些部分定義了pass的幾何體渲染方式。像素著色器也是可選的(很罕見)。例如,若我們只想繪制深度緩沖,不想繪制后臺緩沖,在這種情況下我們就不需要像素著色器計算像素的顏色。

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網站設計培訓,網站建設培訓學習是年輕人改變自己的最好方式