Moin,
ich weiß nicht warum, aber irgendwie wird das geladenen Mesh nicht richtig dargestellt. Es fehlen Wände bzw. man zieht welche, die im Hintergrund liegen. Jemand eine Idee? Liegt das an dem Model?
device:
lade mesh:
darstellen:
ich weiß nicht warum, aber irgendwie wird das geladenen Mesh nicht richtig dargestellt. Es fehlen Wände bzw. man zieht welche, die im Hintergrund liegen. Jemand eine Idee? Liegt das an dem Model?
device:
Quellcode
- Device = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, new PresentParameters() { Windowed = true, SwapEffect = SwapEffect.Discard });
- Device.RenderState.ZBufferEnable = true;
- Device.RenderState.FillMode = FillMode.Solid;
- Device.RenderState.Lighting = true;
- Device.RenderState.Ambient = Color.White;
- Device.Lights[0].Diffuse = Color.White;
- Device.Lights[0].Position = new Vector3(5, 10, 5);
- Device.Lights[0].Direction = new Vector3(-1, -10, -1);
- Device.Lights[0].Enabled = true;
lade mesh:
Quellcode
- private static void LoadMesh(string filename, ref Mesh mesh, ref Material[] meshmaterials, ref Texture[] meshtextures) {
- ExtendedMaterial[] materialarray;
- mesh = Mesh.FromFile(filename, MeshFlags.Managed, K.Sp.Device, out materialarray);
- if ((materialarray != null) && (materialarray.Length > 0)) {
- meshmaterials = new Material[materialarray.Length];
- meshtextures = new Texture[materialarray.Length];
- for (int i = 0; i < materialarray.Length; i++) {
- meshmaterials[i] = materialarray[i].Material3D;
- meshmaterials[i].Ambient = meshmaterials[i].Diffuse;
- if ((materialarray[i].TextureFilename != null) && (materialarray[i].TextureFilename != string.Empty)) {
- meshtextures[i] = TextureLoader.FromFile(K.Sp.Device, materialarray[i].TextureFilename);
- }
- }
- }
darstellen:
Quellcode
- Device.Clear(ClearFlags.Target, Color.Gray, 1, 0);
- Device.BeginScene();
- Device.Transform.World = Matrix.Identity;
- Device.Transform.Projection = Matrix.PerspectiveFovLH((float)Math.PI / 4, 16f / 9f, 0.1f, 5000f);
- Device.Transform.View = Matrix.LookAtLH(CameraPosition, CameraPosition + LookAtPosition, new Vector3(0, 1, 0));
- VertexFormat = _mesh.Mesh.VertexFormat;
- for (int i = 0; i < _mesh.Materials.Length; i++) {
- Device.Material = _mesh.Materials[i];
- Device.SetTexture(0, _mesh.Textures[i]);
- _mesh.Mesh.DrawSubset(i);
- }
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Bluespide“ ()