reinjan
New member
Hello
Im not new to directx but i just cant figure out how to load a mesh, not even the teapot
i have this code that i think has no flaws, but it just wont draw my teapot.
can someone help me?
Im not new to directx but i just cant figure out how to load a mesh, not even the teapot
i have this code that i think has no flaws, but it just wont draw my teapot.
can someone help me?
Code:
Dim device As device
Private teapot As Mesh the teapot mesh
Private teapotColor As Material used to color the teapot
Private world As Matrix positions the teapot in the scene
Private view As Matrix positions the camera in the scene
Private projection As Matrix controls scene perspective
Private Sub meshes2_teapot_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Show()
Me.Select()
Dim Err As Boolean = True
Try
Dim Present As PresentParameters = New PresentParameters
With Present
.Windowed = True
.SwapEffect = SwapEffect.Discard
.EnableAutoDepthStencil = True
.AutoDepthStencilFormat = DepthFormat.D16
End With
projection = Matrix.PerspectiveFovLH((Math.PI / 4.0), Present.BackBufferWidth / Present.BackBufferHeight, 1.0, 100.0)
Me.Show()
device = New Device(0, DeviceType.Hardware, Me, CreateFlags.SoftwareVertexProcessing, Present)
Me.SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.Opaque, True)
Catch
Err = False
End Try
If Err = False Then
MessageBox.Show("Fout zit in InitializeGraphics")
Return
End If
Do While Me.Created
Application.DoEvents()
createmesh("C:\Documents and Settings\Reintje\Mijn documenten\Reinjan\informatica en school\GIP\Models")
Loop
End Sub
Private Sub createmesh(ByVal path As String)
the teapot is available as a static method from Mesh
teapot = Mesh.Teapot(device)
setup the color for the teapot
teapotColor = New Material
teapotColor.Diffuse = Color.Red
teapotColor.Ambient = teapotColor.Diffuse
set initial values for the view and world transforms
view = Matrix.LookAtLH(New Vector3(0, 3.5, -4), New Vector3(0, 0, 0), New Vector3(0, 1, 0))
world = Matrix.Identity
enable z-buffering
device.RenderState.ZBufferEnable = True
enable lighting
device.RenderState.Lighting = True
set the ambient color
device.RenderState.Ambient = Color.Gray
configure a directional light
device.Lights(0).Type = LightType.Directional
device.Lights(0).Direction = New Vector3(2.0, -1.0, 0.0)
device.Lights(0).Diffuse = Color.White
device.Lights(0).Enabled = True
device.Lights(0).Update()
Dim device2 As Device = device
clear the device in preparation for rendering
device.Clear(ClearFlags.Target Or ClearFlags.ZBuffer, _
Color.Black, 1.0, 0)
begin the scene
device.BeginScene()
device.Transform.World = world
device.Material = teapotColor
device.SetTexture(0, Nothing)
teapot.DrawSubset(0)
device.Transform.View = view
device.Transform.Projection = projection
device.EndScene()
End Sub