Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Отображение объектов в managed direct3d

42K
11 ноября 2008 года
Ares27
2 / / 06.11.2008
Всем привет! Я недавно начал изучать managed direct3d! Подскажите, пожалуйста, как мне отображать объекты, чтобы они друг друга не затирали... вот код:

mDevice.Clear(ClearFlags.Target, Color.White, 1.0F, 0);

count++; bool flag; if (count % 10==3) flag = true; else flag = false;
mDevice.BeginScene();

FrameMove();

if (Text3d != null)
{
Material mtrl3d = InitMaterial(Color.Green);
mDevice.Material = mtrl3d;
mDevice.Transform.World = object_text;
Text3d.DrawSubset(0);

}

Material material = InitMaterial(Color.ForestGreen);
mDevice.Material = material;

mDevice.Lights[0].XPosition = ix; mDevice.Lights[0].Position = new Vector3(ll, ly, lu);
Matrix matWorld = Matrix.Translation(mDevice.Lights[0].Position.X,
mDevice.Lights[0].Position.Y, mDevice.Lights[0].Position.Z);
mDevice.SetTransform(TransformType.World, matWorld); mDevice.Lights[0].Commit();
sphereMesh.DrawSubset(0); if (flag) mDevice.Lights[0].Enabled = true; else mDevice.Lights[0].Enabled = false;

mDevice.Transform.World = object_background;
mDevice.RenderState.Wrap0 = WrapCoordinates.Zero | WrapCoordinates.One;

mDevice.TextureState[0].TextureCoordinateIndex = (int)TextureCoordinateIndex.CameraSpacePosition;
mDevice.Transform.Texture0 = Matrix.Scaling(0.285f, -0.285f, 1.0f) * Matrix.Translation(0.0f, 0.0f, 0.5f);


mDevice.SamplerState[0].AddressU = TextureAddress.Wrap;
mDevice.SamplerState[0].AddressV = TextureAddress.Wrap;

mDevice.TextureState[0].TextureTransform = TextureTransform.Count2;
Material mtrl = InitMaterial(Color.Red);
mDevice.Material = mtrl;

mDevice.SetTexture(0, textureBG);

mDevice.Transform.World = Matrix.Translation(0, 0, 7f);
BackGround_m.DrawSubset(0);
mDevice.SetTexture(0, null);
mtrl = InitMaterial(Color.Gold);
mDevice.Material = mtrl;

mDevice.Transform.World = object_background;
sphereMesh2.DrawSubset(0);

mDevice.EndScene();
mDevice.Present();

в итоге получается что [COLOR="Red"]BackGround_m[/COLOR] затирает все объекты, кроме [COLOR="red"]sphereMesh2[/COLOR]!
Почему это происходит... Как решить такую проблему?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог