SkinnedModelProcessor и модели с материалами - PullRequest
1 голос
/ 11 февраля 2012

Я использую XNA 4.0 и Blender 1.6.1. Я построил модель в Blender, установил ее, использовал материалы для ее окраски и экспортировал в .fbx. У моей модели есть UV-карты для всех сеток, но у них нет текстур. Когда я использую конвейер содержимого обычной модели с BasicEffects, я вижу модель в порядке (включая материалы).

Однако затем я перешел к использованию SkinnedModelProcessor на http://create.msdn.com/en-US/education/catalog/sample/skinned_model, и теперь моя модель либо выполняет прозрачную визуализацию, либо не выполняет ее вовсе.

После изучения проблемы я нашел учебник StockEffects в http://create.msdn.com/en-US/education/catalog/sample/stock_effects и использовал его, чтобы увидеть, как скин-эффект рендерит пиксели. Я изменил пиксельные шейдеры (во всех применимых местах) так, чтобы:

float color4 = pin.Diffuse;

Я подумал, что это позволит моей модели корректно отображаться без текстур с помощью SkinnedModelProcessor, но я не могу понять, как заставить процессор использовать мой обновленный эффект, а не встроенный. Если кто-нибудь знает, как заставить процессор использовать обновленный файл эффекта или другой способ заставить мою модель визуализироваться с использованием материалов, а не текстур, я был бы признателен за помощь.

1 Ответ

0 голосов
/ 09 мая 2012

В вашей игре просто загрузите файл эффекта, который вы написали, а затем назначьте его для вашей Skinned Model

public void SetModelEffect(Effect effect)
{
  foreach (ModelMesh mesh in model.Meshes)
    foreach (ModelMeshPart part in mesh.MeshParts)
    {
      part.Effect = effect;
    }
}

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...