博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Direct3D9初级教程 (转)
阅读量:2499 次
发布时间:2019-05-11

本文共 1668 字,大约阅读时间需要 5 分钟。

Direct3D9初级教程 (转)[@more@]

前言::namespace prefix = o ns = "urn:schemas--com::office" />

  这篇教程是为初学者准备的,只要会简单的VC++以及一点立体几何的基础知识即可。通过它,可以了解到Direct3D的基本概念,学会绘制简单的几何图形,并掌握光源、材质和纹理的基本用法。

  3D绘图的实质就是在二维屏幕上创建三维幻觉,为此要用到一些数学变换来建模和处理几何图形。我将尽可能用通俗易懂的语言来解释这些变换及其用法,避免涉及复杂的数学知识。

1 开发环境

  本文选用VC++ 6.0做语言环境,建议Service Pack5包。为了创建Direct3D,需要从网站安装 SDK,我用的是最新的9.0版,大概200多兆,网址 s/" rel="nofollow">http://www.microsoft.com/downloads/ 。安装完SDK后,开发环境就搭建好了。当然,要运行编译好的程序,DirectX9是必不可少的(微软已经在SDK中包含了DirectX9的安装)。

  DirectX9 SDK为VC提供了一个程序向导,可以很方便地生成“空”的Direct3D程序。不过为了便于读者掌握Direct3D编程的基础知识,本文将以MFC单文档程序(SDI)为,在其上添加Direct3D绘图功能。

2 使用COM

  DirectX的功能都是以COM组件的形式提供的。COM是组件模型(Component Model)的简写,它是一种,用来实现模块间的二进制连接。当这种连接建立后,两个模块之间就可以通过称为“接口(Interface)”的机制来通信。我们常用的就是一种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格式编写,

且文章比较长,插图多,

不太容易转贴,

感兴趣的同志请从下列地址下载全文,

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

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10748419/viewspace-959357/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10748419/viewspace-959357/

你可能感兴趣的文章
iPhone开发学习笔记002——Xib设计UITableViewCell然后动态加载
查看>>
iOS开发中遇到的问题整理 (一)
查看>>
Swift code into Object-C 出现 ***-swift have not found this file 的问题
查看>>
为什么你的App介绍写得像一坨翔?
查看>>
RTImageAssets插件--@3x可自动生成@2x图片
查看>>
iOS开发的一些奇巧淫技
查看>>
linux的挂载的问题,重启后就挂载就没有了
查看>>
docker原始镜像启动容器并创建Apache服务器实现反向代理
查看>>
docker容器秒死的解决办法
查看>>
管理网&业务网的一些笔记
查看>>
openstack报错解决一
查看>>
openstack报错解决二
查看>>
linux source命令
查看>>
openstack报错解决三
查看>>
乙未年年终总结
查看>>
子网掩码
查看>>
第一天上班没精神
查看>>
启动eclipse报错:Failed to load the JNI shared library
查看>>
eclipse安装插件的两种方式在线和离线
查看>>
linux下源的相关笔记(suse)
查看>>