AttrTable(0).AttributeId = 0
AttrTable(0).FaceStart = 0
AttrTable(0).FaceCount = 2 ’有两个三角形
AttrTable(0).VertexStart = 0
AttrTable(0).VertexCount = 4 ‘四个点
‘顶点坐标信息 。
VBPlane(0) = New Direct3D.CustomVertex.PositionNormalTextured(-500, -500, 0, 0, 0, 1, 0, 0)
VBPlane(1) = New Direct3D.CustomVertex.PositionNormalTextured(500, -500, 0, 0, 0, 1, 1, 0)
VBPlane(2) = New Direct3D.CustomVertex.PositionNormalTextured(-500, 500, 0, 0, 0, 1, 0, 1)
VBPlane(3) = New Direct3D.CustomVertex.PositionNormalTextured(500, 500, 0, 0, 0, 1, 1, 1)
MyPlane = New Direct3D.Mesh(2, 4, Direct3D.MeshFlags.Managed, Direct3D.VertexFormats.Position + Direct3D.VertexFormats.Normal + Direct3D.VertexFormats.Texture1, MyDevice) ’创建物体
MyPlane.SetVertexBufferData(VBPlane, Direct3D.LockFlags.None) ‘输入顶点坐标数据
MyPlane.SetIndexBufferData(PlaneIB, Direct3D.LockFlags.None) ‘输入索引数据
MyPlane.SetAttributeTable(AttrTable) ‘输入顶点分组属性表
End Sub
Public Sub Render() ‘调用它画图
Dim vlook As New Vector3(1, 0, 0)
Dim vPos As New Vector3(0,0,0)
Dim vUp As New Vector3(0, 0, 1)
MatView = Matrix.LookAtLH(vPos, vlook, vUp) ‘计算摄像机位置矩阵
Device.SetTransform(Direct3D.TransformType.View, MatView) ‘设置当前摄像机位置矩阵为MatView 。
Dim fAspect As Single = Me.Width / Me.Height ’窗口长宽比
matProj = Matrix.PerspectiveFovLH(Math.PI / 4, fAspect, 1.0F, 10001) ‘计算透视矩阵MatProj 。
MyDevice.SetTransform(Direct3D.TransformType.Projection, matProj) ‘设置当前透视矩阵为MatProj 。
MyDevice.Clear(Direct3D.ClearFlags.Target + Direct3D.ClearFlags.ZBuffer, Color.Blue, 1.0F, 0) ’先刷蓝屏
MyDevice.BeginScene() ‘开始画
MatWorld = Matrix.Identity ’物体位于原点,不旋转
Device.SetTransform(Direct3D.TransformType.World, MatWorld) ’设置物体位置
Me.Mesh.DrawSubset(0) ‘画物体
MyDevice.EndScene() ’结束
MyDevice.Present() ‘显示在屏幕上
End Sub
Public Sub DeleteDeviceObjects() ’结束程序时放掉资源
MyPlane.Dispose()
MyDevice.Dispose()
End Sub
#End Region
Private Sub FormMain_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
DeleteDeviceObjects()
Windows.Forms.Cursor.Show()
End Sub
Private Sub FormMain_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
InitDeviceObjects()
RestoreDeviceObjects()
Windows.Forms.Cursor.Hide()
Render()
End Sub
End Class
vb.net中怎么调用DirectX来播放视频使用Microsoft.DirectX.AudioVideoPlayback组件 。
首先 , 需要安装DirectX SDK.
DirectX 9.0c Redistributable
DirectX 9.0 SDK Update
然后将对Microsoft.DirectX.AudioVideoPlayback.dll的引用添加到你的项目 。
使用这段代码在Panel控件上放置一个视频文件:
ImportsMicrosoft.DirectX.AudioVideoPlayback
Public Class Form1
Private Sub Form1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs) Handles MyBase.Load
Dim videoFile As Audio =New Audio("D:\Video1.avi")
videoFile.Owner = Panel1
videoFile.Play()
EndSub
EndClass
'以前收集的资料,没用过,你自己整整
2)使用Windows Media Player控件也能播放视频 。
右击工具箱-选项- COM组件-定位并添加“Windows Media Player” ActiveX控件
然后“Windows Media Player”控件将会出现在工具箱上 。将它拖动到窗体上来生产一个AxWindowsMediaPlayer1对象,并为URL属性指定音频或者视频文件 。
AxWindowsMediaPlayer1.URL = "D:\VideoOrAudio.wmv"
Media Player控件默认将会自动播放文件 。
VB.NET的dim语句的区别完全一样的 。
推荐阅读
- 区块链专利事件是什么,区块链专利授权排行
- 如何理解营销与效率,营销效能什么意思
- oa系统thinkphp,oa系统手机版
- 越南小众礼服直播平台,越南最大的直播平台
- php实现搜索数据库 php实现搜索数据库功能
- 微信视频号主播怎么设置管理,微信视频号的主播
- 建模精美的角色扮演游戏,游戏角色建模是什么意思
- python爬虫火车抢票,python爬12306并买票
- php网站打包数据库 php打包phar