из особенностей - нету истории ввода Undo/Redo, есть простенькая история команд в эмуляторе командной строки, есть текстовый эмулятор списка, всё сделано предельно костыльно если смотреть сейчас на него)
тут стоит 36 потомучто читаю кубик. (Извиняюсь всё таки думаю это общее количество нод тоесть 24 должно быть)
for (int i = 0; i < 36; i++) суть в том, что мы проходим по дереву чанков линейно как я понял, но всё равно если поставить i<100 будет buffer overflow. Когда в консольном варианте можно поставить хоть 300 - для того чтоб быть уверенным что прошлись по всему дереву
единственный момент у меня на тесте кейфреймы 0 1 50 90 и при таких кейфреймах не прочтется 90 кейфрейм чанка скейл, который в самом конце
чтобы попасть в конец файла в блок с кейфреймами надо поставить 40 и если кому-то будет интересно заменить массивы на px,py,pz в блоке scale tag
и при портировании из блендера (у меня лтс 4.2.3) надо в .3ds всё выбрать и везде поставить галочки(кроме Hierarchy, Collection), чтобы (Local Coordinates System зафиксировалось )
на данный момент читается только красный кубик, те модели кубированные не читаются покачто - они прочтены через ассимп
всё таки работает, там просто по мелочи досмотреть.
Практическая составляющая этого - это приближение к составлению своего формата, не на основе этого, а через практику, понять, как хотелось бы лучше. Очень большой минус этого формата, что не портируются нормали и их приходится считать после загрузки. Следующий минус для Блендера и GL, а может и для общей практики - он дублирует вершины. Тоесть, если Obj кинет просто координаты на индексах от 8 вершин, то тут будет 14 вершин и 12 индексов. Это если сравнивать кубы.