(Direct3D 9)
越來越多的應用程式使用電影和影片中常見的特殊效果,例如溶解、滑動和並淡化。
在溶解,某個影像會在一系列平滑的畫面中逐漸被另一個取代。 雖然 Direct3D 提供方法來使用多重紋理混合達到相同效果,但是使用樣板緩衝區執行溶解的應用程式在溶解時,可以將紋理混合功能用於其他效果。
當您的應用程式執行溶解時,必須呈現兩個不同的影像。 它會使用樣板緩衝區控制每個影像的哪些像素要繪製到轉譯目標表面。 您可以定義一系列的樣板遮罩,並將它們複製到連續畫面上的樣板緩衝區。 或者,您可以定義第一個畫面的基底樣板遮罩,並累加變更它。
在溶解開頭,應用程式設定樣板函式和樣板遮罩,使開始影像的大部分像素都通過樣板測試。 結束影像的大部分像素應該未通過樣板測試。 在後續畫面,樣板遮罩會更新,以便開始影像的更少像素通過測試。 隨著畫面進展,結束影像的更少像素未通過測試。 如此一來,您的應用程式可以使用任何任意溶解模式執行溶解。
淡入或淡出是溶解的特殊案例。 當淡入時,樣板緩衝區用來從黑或白的影像溶解到 3D 場景轉譯。 淡出則相反,應用程式從 3D 場景轉譯開始,然後溶解為黑或白。 您可以使用任何任意模式執行淡化。
Direct3D 應用程式對滑動使用類似技術。 例如,當應用程式執行由左向右滑動時,結束影像看起來在開始影像上逐漸從左向右滑動。 如同溶解,您必須定義一系列的樣板遮罩,並將它們載入到連續畫面上的樣板緩衝區,或者連續修改開始樣板遮罩。 樣板遮罩可用來停用開始影像的像素寫入,以及啟用結束影像的像素寫入。
滑動比溶解有點更複雜,因為應用程式必須以滑動反向順序從結束影像讀取像素。 也就是,如果滑動是從左向右移動,您的應用程式必須由右至左從結束影像讀取像素。
相關主題