C# XNA 4.0: как получить тангенс и бинормаль модели?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 C# XNA 4.0: как получить тангенс и бинормаль модели?

Сообщение Anonymous »


У меня есть фрагмент кода, который я пытался получить:

VertexBuffer vtxBuffer = new VertexBuffer(graphics.GraphicsDevice, typeof(VertexPositionNormalTextureTangentBinormal), meshPart.VertexBuffer.VertexCount, BufferUsage.WriteOnly); VertexPositionNormalTextureTangentBinormal [] данные = новый VertexPositionNormalTextureTangentBinormal [meshPart.VertexBuffer.VertexCount]; meshPart.VertexBuffer.GetData(данные); Однако в итоге у меня возникла ошибка:

'Размер массива не соответствует объему запрошенных данных.'

Итак, я попытался отладить проблему и в какой-то момент сделал это:

VertexBuffer vtxBuffer = new VertexBuffer(graphics.GraphicsDevice, typeof(VertexPositionNormalTexture), meshPart.VertexBuffer.VertexCount, BufferUsage.WriteOnly); VertexPositionNormalTexture[] данные = новый VertexPositionNormalTexture[meshPart.VertexBuffer.VertexCount]; meshPart.VertexBuffer.GetData(данные); Я заменил VertexPositionNormalTextureTangentBinormal на VertexPositionNormalTexture и альт! Я не получил той же ошибки! Но я получил:

'Текущее объявление вершины не включает в себя все элементы, необходимые текущему вершинному шейдеру. Tangent0 отсутствует.'

Я не уверен, проблема ли это в модели, в конвейере .FBX или... в коде?
[*]Если это проблема модели, то я не уверен, как заставить Blender экспортировать касательные и бинормали, что-то вроде правильного расширения? [*]Если это проблема конвейера, я хотел бы посмотреть, существует ли код конвейера, который ее решает. [*]Если это проблема с кодом, мне бы хотелось... какое-то решение.
В любом случае, мне хотелось бы знать, является ли это хотя бы одной из вышеперечисленных проблем, спасибо!

Я повторно экспортировал модель FBX с включенным Tangent Space и даже с другим расширением Blender (Better FBX Exporter), но это все равно не помогло получить информацию для объектов struct VertexPositionNormalTextureTangentBinormal , поскольку ошибка все равно закончилась следующим образом:

'Размер массива не соответствует объему запрошенных данных.'

Скорее всего, это проблема модели или конвейера... хотя с конвейером я немного запутался, поскольку существуют VertexElementUsage.Tangent и VertexElementUsage.Binormal вполне возможно, что они предназначены только для... других конвейеров.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Тангенс рациональной кривой Безье
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Тангенс рациональной кривой Безье
    Anonymous » » в форуме C#
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Тангенс рациональной кривой Безье
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Как использовать контроллер Play Station 2, подключенный через USB-порт, в XNA
    Anonymous » » в форуме C#
    0 Ответы
    41 Просмотры
    Последнее сообщение Anonymous
  • C# XNA 4.0: GraphicsDevice отображает всю модель с одним эффектом, но при использовании другого эффекта для записи в GBu
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»