Oh nein es geht schon wider alles drüber und drunter!
Erstmal ist hier ein Model in dem Terrain, ich kann es verschieben und alles.
Doof nur, dass es entweder immer hinter oder immer vor dem Terrain ist. Je nach der Reihenfolge in der die Methoden aufgerufen werden.
Wie kann man das ändern? Worauf muss ich achen, oder oder wonach muss ich googeln?
Diese Methode Gibt die Models wieder:
private void DrawTestModel()
{
SamplerState ss = new SamplerState();
ss.AddressU = TextureAddressMode.Clamp;
ss.AddressV = TextureAddressMode.Clamp;
device.SamplerStates[0] = ss;
DepthStencilState dss = new DepthStencilState();
dss.DepthBufferEnable = false;
device.DepthStencilState = dss;
Matrix[] ModelTransforms = new Matrix[testmodel.Bones.Count];
testmodel.CopyAbsoluteBoneTransformsTo(ModelTransforms);
int i = 0;
foreach (ModelMesh mesh in testmodel.Meshes)
{
foreach (Effect currentEffect in mesh.Effects)
{
Matrix worldMatrix = ModelTransforms[mesh.ParentBone.Index] * Matrix.CreateTranslation(new Vector3(0,20,0));
currentEffect.CurrentTechnique = currentEffect.Techniques["Textured"];
currentEffect.Parameters["xWorld"].SetValue(worldMatrix);
currentEffect.Parameters["xView"].SetValue(viewMatrix);
currentEffect.Parameters["xProjection"].SetValue(projectionMatrix);
currentEffect.Parameters["xEnableLighting"].SetValue(true);
currentEffect.Parameters["xLightDirection"].SetValue(lightDirection);
currentEffect.Parameters["xAmbient"].SetValue(0.5f);
currentEffect.Parameters["xTexture"].SetValue(skyboxTextures[i++]);
}
mesh.Draw();
}
dss = new DepthStencilState();
dss.DepthBufferEnable = true;
device.DepthStencilState = dss;
}
LG
EDIT: Ok Sorry hat schon geklappt