met Posted January 22, 2004 Posted January 22, 2004 (edited) I see only a blue window (Sorry I can't delete this thread) Hello, I has tries a C++ Tutorial in VB.Net to rewrite, but I see only a blue window. Can someone say to me, what wrong I make? In the attachment is the original cpp-file of the sample and the complete VB.Net project. Imports System Imports System.Drawing Imports System.Windows.Forms Imports Microsoft.DirectX Imports Microsoft.DirectX.Direct3D Namespace Direct3DTest2 Public Class MyGraphicsSample Inherits GraphicsSample 'Alles von Class GraphicsSample erben Public AnzahlObjekte As Integer = 2048 Public vbObjekte As VertexBuffer Public ibObjekte As IndexBuffer Public vCameraPos As Vector3 = New Vector3(0, 0, 0) Public CameraWinkel As Single = 0 Public Sichtfeld As Single = Math.PI / 4 Public Sub New() End Sub 'New Protected Overrides Sub FrameMove() End Sub 'FrameMove Public Sub RenderScene() Device.Transform.View = Matrix.LookAtLH(vCameraPos, New Vector3(vCameraPos.X + Math.Sin(CameraWinkel), vCameraPos.Y, vCameraPos.Z + Math.Cos(CameraWinkel)), New Vector3(0, 1, 0)) Me.Text = vCameraPos.X & "x" & vCameraPos.Y & "x" & vCameraPos.Z & "Winkel:" & 360 * CameraWinkel / Math.PI Dim Aspect As Single Aspect = Device.PresentationParameters.BackBufferWidth / Device.PresentationParameters.BackBufferHeight Device.Transform.Projection = Matrix.PerspectiveFovLH(CameraWinkel, Aspect, 0.1, 250) Device.Transform.World = Matrix.Identity Device.SetStreamSource(0, vbObjekte, 0) Device.Indices = ibObjekte Device.DrawIndexedPrimitives(PrimitiveType.TriangleList, 0, 0, AnzahlObjekte * 8, 0, AnzahlObjekte * 12) End Sub 'RenderScene Protected Overrides Sub Render() Device.Clear(ClearFlags.Target Or ClearFlags.ZBuffer, Drawing.Color.Blue.ToArgb, 1, 0) Device.BeginScene() RenderScene() Device.EndScene() End Sub 'Render Protected Overrides Sub InitializeDeviceObjects() Try Device.VertexFormat = VertexFormats.Position Or VertexFormats.Diffuse Or VertexFormats.Texture1 Device.RenderState.Lighting = False Device.RenderState.CullMode = Cull.None Device.RenderState.DitherEnable = True Device.SamplerState(0).MinFilter = TextureFilter.Linear Device.SamplerState(0).MagFilter = TextureFilter.Linear Device.SamplerState(0).MipFilter = TextureFilter.Linear Dim tmpTextur As Texture tmpTextur = TextureLoader.FromFile(Device, "Texture.bmp", 256, 256, 1, 0, Format.Unknown, Pool.Managed, Filter.None, Filter.Linear, 0) Device.SetTexture(0, tmpTextur) vbObjekte = New VertexBuffer(GetType(CustomVertex.PositionColoredTextured), AnzahlObjekte * 8, Device, 0, CustomVertex.PositionColoredTextured.Format, Pool.Managed) ibObjekte = New IndexBuffer(GetType(Short), AnzahlObjekte * 36, Device, 0, Pool.Managed) Dim Verts() As CustomVertex.PositionColoredTextured Dim Indices() As Short Verts = DirectCast(vbObjekte.Lock(0, LockFlags.NoSystemLock), CustomVertex.PositionColoredTextured()) Indices = DirectCast(ibObjekte.Lock(0, LockFlags.NoSystemLock), Short()) Dim n, m As Integer Dim tmpPos As New Vector3 Dim StartVertex, StartIndex As Integer For n = 0 To AnzahlObjekte - 1 tmpPos.X = 250 * Rnd() + 20 tmpPos.Y = 250 * Rnd() + 20 tmpPos.Z = 250 * Rnd() + 20 StartVertex = n * 8 StartIndex = n * 36 Verts(StartVertex + 0) = New CustomVertex.PositionColoredTextured(tmpPos.X + -1, tmpPos.Y + 1, tmpPos.Z + -1, 0, Rnd, Rnd) Verts(StartVertex + 1) = New CustomVertex.PositionColoredTextured(tmpPos.X + -1, tmpPos.Y + 1, tmpPos.Z + 1, 0, Rnd, Rnd) Verts(StartVertex + 2) = New CustomVertex.PositionColoredTextured(tmpPos.X + 1, tmpPos.Y + 1, tmpPos.Z + 1, 0, Rnd, Rnd) Verts(StartVertex + 3) = New CustomVertex.PositionColoredTextured(tmpPos.X + 1, tmpPos.Y + 1, tmpPos.Z + -1, 0, Rnd, Rnd) Verts(StartVertex + 4) = New CustomVertex.PositionColoredTextured(tmpPos.X + -1, tmpPos.Y + -1, tmpPos.Z + -1, 0, Rnd, Rnd) Verts(StartVertex + 5) = New CustomVertex.PositionColoredTextured(tmpPos.X + -1, tmpPos.Y + -1, tmpPos.Z + 1, 0, Rnd, Rnd) Verts(StartVertex + 6) = New CustomVertex.PositionColoredTextured(tmpPos.X + 1, tmpPos.Y + -1, tmpPos.Z + 1, 0, Rnd, Rnd) Verts(StartVertex + 7) = New CustomVertex.PositionColoredTextured(tmpPos.X + 1, tmpPos.Y + -1, tmpPos.Z + -1, 0, Rnd, Rnd) Indices(StartIndex + 0) = 0 : Indices(StartIndex + 1) = 3 : Indices(StartIndex + 2) = 7 Indices(StartIndex + 3) = 0 : Indices(StartIndex + 4) = 7 : Indices(StartIndex + 5) = 4 Indices(StartIndex + 6) = 2 : Indices(StartIndex + 7) = 5 : Indices(StartIndex + 8) = 1 Indices(StartIndex + 9) = 2 : Indices(StartIndex + 10) = 5 : Indices(StartIndex + 11) = 6 Indices(StartIndex + 12) = 1 : Indices(StartIndex + 13) = 0 : Indices(StartIndex + 14) = 4 Indices(StartIndex + 15) = 1 : Indices(StartIndex + 16) = 4 : Indices(StartIndex + 17) = 5 Indices(StartIndex + 18) = 3 : Indices(StartIndex + 19) = 2 : Indices(StartIndex + 20) = 6 Indices(StartIndex + 21) = 3 : Indices(StartIndex + 22) = 6 : Indices(StartIndex + 23) = 7 Indices(StartIndex + 24) = 0 : Indices(StartIndex + 25) = 1 : Indices(StartIndex + 26) = 2 Indices(StartIndex + 27) = 0 : Indices(StartIndex + 28) = 2 : Indices(StartIndex + 29) = 3 Indices(StartIndex + 30) = 6 : Indices(StartIndex + 31) = 5 : Indices(StartIndex + 32) = 4 Indices(StartIndex + 33) = 6 : Indices(StartIndex + 34) = 4 : Indices(StartIndex + 35) = 7 Next n vbObjekte.Unlock() ibObjekte.Unlock() Catch Dim e As New MediaNotFoundException HandleSampleException(e, ApplicationMessage.ApplicationMustExit) Throw e End Try End Sub 'InitializeDeviceObjects Protected Overrides Sub RestoreDeviceObjects(ByVal sender As System.Object, ByVal e As System.EventArgs) End Sub 'RestoreDeviceObjects Shared Sub Main() Dim d3dApp As New MyGraphicsSample If d3dApp.CreateGraphicsSample() Then d3dApp.Run() End If End Sub 'Main Private Sub MyGraphicsSample_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown Select Case e.KeyCode Case Keys.Left CameraWinkel -= elapsedtime * Math.PI / 8 Case Keys.Right CameraWinkel += elapsedtime * Math.PI / 8 Case Keys.Up vCameraPos.X += Math.Sin(CameraWinkel) * 5 * elapsedtime vCameraPos.Z += Math.Cos(CameraWinkel) * 5 * elapsedtime Case Keys.Down vCameraPos.X -= Math.Sin(CameraWinkel) * 5 * elapsedtime vCameraPos.Z -= Math.Cos(CameraWinkel) * 5 * elapsedtime Case Keys.PageDown Sichtfeld += Math.PI * 10 / 360 * elapsedtime Case Keys.PageUp Sichtfeld -= Math.PI * 10 / 360 * elapsedtime End Select If Sichtfeld <= 0 Then Sichtfeld = Math.PI * 0.1 / 360 If Sichtfeld >= Math.PI / 2 Then Sichtfeld = Math.PI * 179.9 / 360 End Sub End Class 'MyGraphicsSample End Namespace 'Direct3DTest2 Edited January 22, 2004 by met Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.