代码改变世界

MDX 学习笔记1

2006-11-21 13:50  老博客哈  阅读(681)  评论(0编辑  收藏  举报
最近一直在看DirectX方面的书,了解了一些3D方面的知识。加上正在学习MDX,就把我的学习笔记放在这了。(现在在看那本《Direct3D9初级教程》,一本非常好的书,浅显易懂,可惜pdf上面好像缺了数页,实在太郁闷了)
下面是我的第一个D3D程序:
 public partial class Form1 : Form
    
{
        
private Device device = null;

        
public Form1()
        
{
            InitializeComponent();

            
//设置显示参数
            PresentParameters param = new PresentParameters();
            param.SwapEffect 
= SwapEffect.Discard;//缓冲区显示完之后将会丢弃里面的内容,是三种交换模式最快速的
            param.BackBufferFormat = Format.Unknown;//将后备缓冲区的格式设置为未知
            param.Windowed = true;//应用程序使用窗体模式


            
//初始化设备,第一个参数是默认的适配器;第二个参数是设置设备类型,这里用的是硬件渲染;
            
//第三个是待渲染的控件句柄,第四个是指定设备将使用软件渲染顶点;最后一个是刚刚的显示参数
            device = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, param);


        }



        
private void Form1_Paint(object sender, PaintEventArgs e)
        
{
            
if (device != null)
            
{
                
//第一个参数表明清除的是渲染目标,而不是深度缓冲等等,第二个参数是清除使用的颜色
                
//第三个参数是保存在深度缓冲中的值,第四个参数还不是很了解
                device.Clear(ClearFlags.Target, Color.Blue, 1.0f0);
                device.BeginScene();
//开始场景
                device.EndScene();//结束场景
                device.Present();//将缓冲区中的内容呈现出来
            }

        }


    }

运行结果是一个蓝色背景的窗体。