C# WinForm构架下的DirectX框架

 

 1) 应用程序框架

 

  启动时加载DirectX

   

Device设备初始化,只执行一次

 

 Deivce 初始化工作,只调用一次:

 

 窗口发生变化 -> Device 参数变化

 

渲染,显示过程

 

 

2) 直接屏幕绘制


 

   TransFormedColored 结构

 

   记录顶点

   根据透视原理计算过的

   可以直接在显示器上显示

   属性 Position, Vector4(x,y,z,1). 同一图形的z应该相同,表示观察者的距离

   属性 Color

   CustomVertex.TransformedColored vert = CustomVertex.TransformedColored();

   float z = 0.5F;

   vert.Position = new Vector4(150F, 50F, z, 1F);

   vert.Color = Color.Aqua.ToArgb();

 

 

   绘制顶点,必须使用 DrawUserPrimitives()

   verts = new CustomVertex.TransformedColored[n];

   ...

   device.DrawUserPrimitives(PrimitiveType, 1, verts);

   结构 PrimitiveType

-> PointList 绘制顶点

-> LineList  绘制线段,每个线段使用2个顶点

-> LineStrip 绘制线段,中间顶点重复使用

-> TriangleList  绘制三角形,每个三角形使用3个顶点

-> TriangleStrip 绘制三角形,每2个相邻三角形共享中间两个顶点

-> TriangleFan   绘制三角形,每2个相邻三角形共享中间两个顶点,所有三角形共享一个顶点

 

 

3) 使用VertexBuffer

 

 

  构造函数

   #region VertexBuffer

   vertexBuffer = new VertexBuffer(typeof(CustomVertex.TransformedColored),

                3,//顶点个数

                dev,//Device

                0, 

                CustomVertex.TransformedColored.Format,//顶点格式

                Pool.Default);//(顶点)参数存放位置

 

   事件 Created

   图形卡中的数据在窗口最小,最大化以后,可能丢失,因此需要数据重建。使用Created事件。

   vertexBuffer.Created += new EventHandler(OnCreateVertexBuffer);

 

  顶点绘制 DrawPrimitives()

   device.DrawPrimitives(PrimitiveType.TriangleList, 0, 1);//绘制. 

-> 格式

-> 起始

-> 个数

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值