Я спросил это также на обмене разговорами Dev Talk and Blender, но, кажется, ни одно из этих двух не является подходящим местом для его публикации. Я начал внедрять его в первую очередь после частей документации, которую я нашел в Интернете (в основном в случайных местах), как только я понял, что в разделе документации в разделе документации официального блендера GitHub, написанного в Python. < /P>
Было довольно простым для переноса большинства функций и классов от Python до концентрации, и все, кажется, все, кажется, все, что используется, но последнее, но последнее, но последнее, но последнее, но последнее, но последнее, но последнее, но последнее, но последнее, но последнее, но и последнее, но и все, что используется. Как только я перешел на 4.4 (текущий официальный релиз), смещение выравнивания в SDNA и, в частности, после «Имя» → для «типа» становится грязно. Я попробовал много альтернатив, и теперь я следую за эквивалентным методом падки C в C# (Offset + 3) & ~ 3U; вместо питонического. Но все же, для 4.4 -смешанных файлов я получаю эту «ошибку».def Align(handle):
'''
Aligns the filehandle on 4 bytes
'''
offset = handle.tell()
trim = offset % 4
if trim != 0:
handle.seek(4 - trim, os.SEEK_CUR)
< /code>
Моя текущая версия: < /p>
public static void Align(BinaryReader reader)
{
var offset = reader.BaseStream.Position;
long alignedOffset = (offset + 3) & ~3U;
reader.BaseStream.Position = alignedOffset;
Console.WriteLine(" Offset->{0:G} | Aligned->{1:G}", offset, alignedOffset);
}
< /code>
Моя предыдущая версия: < /p>
public static void AlignAlt(BinaryReader reader)
{
var offset = reader.BaseStream.Position;
var trim = offset % 4;
if (trim != 0)
reader.BaseStream.Seek(4 - trim, SeekOrigin.Current);
}
< /code>
Независимо от того, какая версия для накладки я использую это то, что я получаю на выходе консоли для файлов смеси
Здание 5243 имена Offset-> 470656 | Выровнен-> 470656 Здание 1076
Types Offset-> 489870 | Выровненное-> 489872 Здание 1076 Тяговые длины
offset-> 492028 | Выровненное-> 492028 Здание 936 Спектеры смещения-> 534232
| Выровнен-> 534232 Нашел Blend-File-File-FileHeader Endb 534240 < /p>
< /blockquote>
И это то, что я получаю только для 4.4 Файлы Blend: < /p>
Строительство 5230 имен offset-> 4358864 | Выровнен -> 435864 Ошибка на
типах анализа - выравнивание неверно < /p>
< /blockquote>
Любые идеи, как с этим справиться, или что -то вмешатся, что может быть неправильно? < /P>
>
Подробнее здесь: https://stackoverflow.com/questions/795 ... -file-v4-4
Выравнивание неверно при попытке быть смещенным при анализе файла блендера v4.4 ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение