Direct3D9初級教程

來源:互聯網
上載者:User

前言:

       這篇教程是為初學者準備的,只要會簡單的VC++編程以及一點立體幾何的基礎知識即可。通過它,可以瞭解到Direct3D的基本概念,學會繪製簡單的幾何圖形,並掌握光源、材質和紋理的基本用法。

       3D繪圖的實質就是在二維電腦螢幕上建立三維幻覺,為此要用到一些數學變換來建模和處理幾何圖形。我將儘可能用通俗易懂的語言來解釋這些變換及其用法,避免涉及複雜的數學知識。

1 開發環境

       本文選用VC++ 6.0做語言環境,建議安裝Service Pack5補丁包。為了建立Direct3D程式,需要從微軟網站下載安裝DirectX SDK,我用的是最新的9.0版,大概200多兆,網址 http://www.microsoft.com/downloads/ 。安裝完SDK後,開發環境就搭建好了。當然,要運行編譯好的程式,DirectX9是必不可少的(微軟已經在SDK中包含了DirectX9的安裝檔案)。

       DirectX9 SDK為VC使用者提供了一個程式嚮導,可以很方便地產生“空”的Direct3D程式。不過為了便於讀者掌握Direct3D編程的基礎知識,本文將以MFC單文檔程式(SDI)為架構,在其上添加Direct3D繪圖功能。

2 使用COM組件

       DirectX的功能都是以COM組件的形式提供的。COM是元件物件模型(Component Object Model)的簡寫,它是一種協議,用來實現軟體模組間的二進位串連。當這種串連建立後,兩個模組之間就可以通過稱為“介面(Interface)”的機制來通訊。我們常用的ActiveX控制項就是一種COM組件。

       COM的實現細節相當複雜,完全可以寫一本厚厚的專著。不過別擔心,微軟已經為我們最大限度地簡化了COM的使用,即便你對COM一竅不通也沒關係。作為Direct3D開發人員,只要瞭解介面及其用法就行了:所謂介面,其實就是一組特殊的C++對象,應用程式通過調用這些對象的成員函數,來訪問COM組件,實現組件的功能。在COM術語中,這些成員函數被稱作方法(Method)。雖然稱呼變了,但其調用文法與普通的C++對象相比,並無二致。介面的特殊性在於它的產生和銷毀都由系統完成,無須使用者幹預。

       在Direct3D編程中,我們要做的工作基本上可以歸納為:

         調用適當的函數擷取介面指標;

         調用介面的方法(成員函數)來完成所需功能;

         用完介面後,調用Release方法進行“釋放”,注意釋放順序應該和擷取它們的順序相反。

3 第一個程式-初始化Direct3D

       3.1 建立程式架構

       3.2 初始化Direct3D

       3.3 渲染

       3.4 釋放介面

4 畫一個三角形

       4.1 一些數學概念

       4.2 畫一個三角形

5 畫一個三稜錐-索引緩衝和Z緩衝

      5.1 什麼是索引緩衝

      5.2 建立索引緩衝

      5.3 渲染索引緩衝

      5.4 開啟Z緩衝

6 畫一個圓錐-燈光和材質

      6.1基本概念

      6.2 燈光

      6.3 材質

      6.4 畫一個圓錐

     6.5高洛德著色和平面著色

7 為圓錐添加紋理

     7.1 基本概念

     7.2 建立紋理

     7.3 用紋理渲染

8 Mesh模型

     8.1 什麼是Mesh模型

     8.2 繪製Mesh模型

9 顯示文本

10 Direct3D中的2D

11 Direct3D的程式結構

 

請注意:

因為原文章使用PDF格式編寫,

且文章比較長,插圖多,

不太容易轉貼,

感興趣的同志請從下列地址下載全文,

http://oldsong.nease.net/d3d9-pdfbook.zip

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.