一、概述
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的幾何體渲染方式。像素著色器也是可選的(很罕見)。例如,若我們只想繪制深度緩沖,不想繪制后臺緩沖,在這種情況下我們就不需要像素著色器計算像素的顏色。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現JSON轉Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結合數據結構來看看(二) 2017-07-26