Импортированный в Monogame файл Blender .FBX не зависит от освещения

Недавно я обновил свой старый проект Monogame до последней версии Monogame. Все работает, как и раньше, однако мои импортированные модели .FBX выглядят чисто черными (подразумевается, что они не подсвечиваются).

введите здесь описание изображения

(Бургеры + ленты создаются динамически с использованием Quads во время выполнения. Освещение влияет на них, как и должно быть).

Мой код (который работал в более старых версиях Monogame) для отображения модели выглядит следующим образом:

public override void Draw()
    {
        foreach (ModelMesh mesh in model.Meshes)
        {
            foreach (BasicEffect effect in mesh.Effects)
            {
                effect.World = Matrix.CreateRotationZ(rotX);
                effect.World *= Matrix.CreateRotationX(rotY);
                effect.World *= Matrix.CreateTranslation(new Vector3(pos.X,
                                                                    pos.Y,
                                                                    0f));

                effect.View = MainGame.matrixView;
                effect.Projection = MainGame.matrixProj;

                effect.TextureEnabled = true;
                effect.Texture = tex;

                effect.EnableDefaultLighting();
                effect.AmbientLightColor = new Vector3(0.2f, 0.2f, 0.2f);
                effect.EmissiveColor = new Vector3(1, 0, 0);
            }

            mesh.Draw();
        }
    }

Модели экспортируются из Blender как FBX 7.4 Binary (проект не компилируется, если я использую FBX 6.1 ASCII).

Заранее спасибо. Надеюсь, это не какая-то глупость, которую я упустил из виду.


person Milun    schedule 03.10.2015    source источник
comment
Вы перекомпилировали свои модельные ресурсы, когда портировали игру?   -  person Ramsay Smith    schedule 02.11.2015


Ответы (2)


Я вижу, что я опоздал на несколько лет, чтобы помочь вам, но я только что понял это для себя. Во всяком случае, для меня проблема была решена путем использования файла .FBX в Blender и уменьшения параметра Roughness любого материала до любого значения меньше 1. Любой материал с параметром Roughness, установленным на максимальное значение (1), в основном будет отображаться просто черным.

person user3330273    schedule 24.05.2021

У меня была такая же проблема на прошлой неделе. Я думаю, что на самом деле это проблема с экспортером Binary FBX Blender, где текстуры не экспортируются или не ссылаются в файле * .FBX должным образом. Я предполагаю это, потому что я создал версию ASCII в XNA, а затем сослался на скомпилированный файл *.xnb в версии игры для моноигры, и он правильно отображается. Исправление, которое я использовал:

Экспортируйте также ASCII и сначала создайте в XNA
Это не самый чистый способ сделать это, но до тех пор, пока программа экспорта fbx не будет исправлена, это то, что необходимо.

Ссылка на файл *.xnb в MonoGame
Ссылка на скомпилированные файлы XNB и установите для параметра "Действие сборки" значение "Копировать". Но просто помните, что вам также нужно будет ссылаться на ваши встроенные файлы текстур.

Надеюсь, это прояснит ситуацию.

person RT Roe    schedule 18.11.2015