MDX 学习笔记1
2006-11-21 13:50 老博客哈 阅读(681) 评论(0) 编辑 收藏 举报
最近一直在看DirectX方面的书,了解了一些3D方面的知识。加上正在学习MDX,就把我的学习笔记放在这了。(现在在看那本《Direct3D9初级教程》,一本非常好的书,浅显易懂,可惜pdf上面好像缺了数页,实在太郁闷了)
下面是我的第一个D3D程序:
public partial class Form1 : Form
{
private Device device = null;
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
public Form1()
{
InitializeComponent();
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//设置显示参数
PresentParameters param = new PresentParameters();
param.SwapEffect = SwapEffect.Discard;//缓冲区显示完之后将会丢弃里面的内容,是三种交换模式最快速的
param.BackBufferFormat = Format.Unknown;//将后备缓冲区的格式设置为未知
param.Windowed = true;//应用程序使用窗体模式
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//初始化设备,第一个参数是默认的适配器;第二个参数是设置设备类型,这里用的是硬件渲染;
//第三个是待渲染的控件句柄,第四个是指定设备将使用软件渲染顶点;最后一个是刚刚的显示参数
device = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, param);
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
}
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
private void Form1_Paint(object sender, PaintEventArgs e)
{
if (device != null)
{
//第一个参数表明清除的是渲染目标,而不是深度缓冲等等,第二个参数是清除使用的颜色
//第三个参数是保存在深度缓冲中的值,第四个参数还不是很了解
device.Clear(ClearFlags.Target, Color.Blue, 1.0f, 0);
device.BeginScene();//开始场景
device.EndScene();//结束场景
device.Present();//将缓冲区中的内容呈现出来
}
}
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
}
运行结果是一个蓝色背景的窗体。
下面是我的第一个D3D程序:
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
运行结果是一个蓝色背景的窗体。