原创 Motivation:Tessellation Shaders

Motivation:Tessellation Shaders 從DirectX 11開始,Direct3D中引入了硬件實現tessellation的功能。Tessellation是指對錶面進行細分(subdivision of surf

原创 Bloom

Bloom 高斯模糊effect有各種各樣的應用。比如,可以用於區分場景中背景objects(通過模糊處理使得objects呈現出一種失去焦點的現象)和前景objects(沒有模糊處理)。另外還可以用於bloom(曝光) effect中,

原创 A Point Light Demo

A Point Light Demo Point light示例程序與diffuse light示例的代碼非常相似。首先創建一個PointLightingMaterial類用於表示第7章所編寫的PointLight.fx effect。在

原创 Animation Rendering

Animation Rendering 在上一節完成了所有數據的導入,並建立了完整的動畫模型支持系統,現在我們就可以開始渲染一個animation。渲染一個動畫模型的主要基於以下4個步驟: 1、推進當前時間。 2、更新skeleton中

原创 A Basic Effect Material

A Basic Effect Material 理解材質系統結構最好的方法就是在應用程序中使用該系統。在這一節,我們將會創建一個material類用於表示BasicEffect.fx shader,並使用該類渲染一個sphere obje

原创 Gaussian Blurring

Gaussian Blurring Color filtering只是使用post-processing生成的衆多effects中的一種。另一種常用的technique是對渲染texture進行模糊(blur)處理。有多種方法可以實現模糊

原创 第十七章 Lights

第十七章 Lights 本章將會開發一組類函數用於支持directional lights、point lights以及spotlights。這項工作完成了C++渲染引擎框的全部基礎內容,並標誌着第三部分“Rendering with D

原创 A Basic Tessellation Demo

A Basic Tessellation Demo 把前面幾節所講的triangle和quad tessellation shaders集成到應用程序中並不需要編寫特別複雜的C++代碼。總的來說,首先創建對應的materials與

原创 圖形引擎(四):創建自定義的Camera

圖形引擎(四):創建自定義的Camera 上一篇文章中,已經討論瞭如何在應用程序中添加組件,並完成了對輸入設備如鍵盤和鼠標的響應操作,本篇文章中將講解如何使用鼠標和鍵盤控制場景。任何一個3D場景中都需要使用一個虛擬Camera用於顯示,根

原创 第十八章 Post-Processing

第十八章 Post-Processing Post-processing是指在場景渲染之後,使用一些圖形技術對場景進行處理。比如,把整個場景轉換爲grayscale(灰度)樣式或使場景中明亮的區域發光。本章將編寫一些post-proces

原创 第二十章 Skeletal Animation

第二十章 Skeletal Animation Skeletal animation(骨骼動畫)是指互相連接的變換(骨頭)組成的分層集合,以及對應的模型mesh(即骨骼的皮膚)。當這些變換隨着時間變化而變化時,模型的mesh就會形成動畫效

原创 第十九章 Shadow Mapping

第十九章 Shadow Mapping 本章,我們將會學習如何渲染陰影(shadows)。同時還會介紹depth maps(深度紋理,2D紋理中存儲了深度值而不是顏色值)和projective texture mapping(投影紋理映射

原创 第四部分:Intermediate-Level Rendering Topics

第四部分:Intermediate-Level Rendering Topics 章節鏈接: 第18章 Post-Processing 第19章 Shadow Mapping 第20章 Skeletal Animation

原创 第十六章 Materials

第十六章 Materials 本章主要開發一組用於封裝各種effects的類,以簡化應用程序與effects的交互。然後通過編寫一些示例程序用於演示這些類函數。最後再創建一個可複用的組件用於渲染skyboxes。Motivation 如果

原创 Importing Animated Models

Importing Animated Models 在正式使用skinned model shader之前,需要先導入一個具體模型的動畫數據。這是一個說起來容易做起來很難的任務,而且需要額外的plumbing(管道工程,對應於第15章導入