Game Maker - создание игр | HellRoom Games
Май 16, 2025, 01:32:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Game Maker Помощь Правила форума Поиск Календарь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Нужно загрузить B3D модель  (Прочитано 4299 раз)
0 Пользователей и 1 Гость смотрят эту тему.
quad69
Пользователь
***

Репутация: 7
Offline Offline

API: GameMaker Studio 2
Сообщений: 81


« : Октябрь 31, 2018, 20:58:06 »

Всем привет!

Я вытащил из одной игрушки модели формата .b3d (игра сама сделана на blitz3D) и вот теперь пытаюсь загрузить их в гамак.
Нашел даже вот такую интересную инфу где все подробно описано: B3D Format

Мне нужно перевести из .b3d формата в обычный для гамака формат, т.е конечный файл должен получится примерно такой:
Код:
Количество вершин
ТочкаX ТочкаY ТочкаZ НормальX НормальY НормальZ ТекстураX ТекстураY Цвет Альфа
ТочкаX ТочкаY ТочкаZ НормальX НормальY НормальZ ТекстураX ТекстураY Цвет Альфа
... и так далее ...
P.s Такой формат легко читается, и если что можно легко посмотреть на модель через прогу Model Creator.

Я быстро склепал простую программу на гм8(на гмс2 все это было бы дольше) которая читает весь файл модели и пишет в файл на понятном мне языке что то типо "в чанке BRUS есть 4 кисти, в чанке TEXS такие то текстуры с таким то цветом* и т.д
Потом когда я уже полностью смог разобрать файл модели, я перевел его в формат который понятен Model Creator'у, что бы посмотреть как выглядит моя модель, но результат получится не очень, модель вся получилась кривая, как будто порядок точек идет не верно, хотя их расположение верно.

Кароче я уже пол дня пытаюсь что то сделать, но ничего не выходит, прошу вашей помощи.
Я приложил архив с проектом и Model Creator, внутри лежит гм8 что бы вам не пришлось его качать, моделька огнемета(test.B3D) ну и результат работы программы на гм8(test.D3D (открывать блокнотом)).


* B3DImporter.rar (4983.44 Кб - загружено 498 раз.)
Записан
S_Kleer
GM Pro user
*

Репутация: 567
Offline Offline

Награды:
За лояльность! [+500 репутации]3 место в Дичайшем джеме #82000 сообщений!За постоянность! [50 дней на форуме]Настоящий игродел!2 место на HellRoom Jam #5, Контраст...
API: GameMaker Studio 2
Сообщений: 2734


« Ответ #1 : Октябрь 31, 2018, 21:53:19 »

Пример не качал, не смотрел.
Про числа отвечу. Это просто id вершин, из которых будет состоять треугольник. То есть, чтобы получить "нормальный" треугольник, нужно сначала все вертексы записать в массив, а по нему строить треугольники.

Псевдопример:
Код:
vertexs[0] = [x, y, z] // каки-то значение
vertexs[1] = [x, y, z]
vertexs[2] = [x, y, z]
...
vertexs[99] = [x, y, z]
vertexs[100] = [x, y, z]
vertexs[101] = [x, y, z]
vertexs[102] = [x, y, z]
vertexs[103] = [x, y, z]

// Строим первый треугольники
var vec3 = vertexs[99];
vertex_position_3d(model, vec3[0], vec3[1], vec3[2]);

var vec3 = vertexs[100];
vertex_position_3d(model, vec3[0], vec3[1], vec3[2]);

var vec3 = vertexs[103];
vertex_position_3d(model, vec3[0], vec3[1], vec3[2]);

Думаю суть ясна.
Записан

Коты - Мирители
quad69
Пользователь
***

Репутация: 7
Offline Offline

API: GameMaker Studio 2
Сообщений: 81


« Ответ #2 : Ноябрь 01, 2018, 12:37:01 »

Про числа отвечу. Это просто id вершин, из которых будет состоять треугольник. То есть, чтобы получить "нормальный" треугольник, нужно сначала все вертексы записать в массив, а по нему строить треугольники.

Понял, спасибо, все работает!
Записан
Aristokrat952
Твоя мама - лама
GM Pro user
*

Репутация: 385
Offline Offline

Пол: Женский
Награды:
1 место в Дичайшем джеме #8500 сообщений!За постоянность! [500 дней на форуме]За лояльность! [+150 репутации]1 место в конкурсе Адекватные игры #3 [Антиутопия]3 место в конкурсе ...
API: Game Maker 8.0 Pro
Деятельность: Чет там делает
Сообщений: 1311


Дмитрий - зануда.


« Ответ #3 : Ноябрь 01, 2018, 13:55:20 »

Чего... т.е. просто записаны координаты вершин КАЖДОГО полигона. А отрисовка модели - это создание этих треугольников, по переданным вершинам?
Записан

Статус: сплю и анимешусь с Яшей
Fur
Абы-какой
GM Pro user
*

Репутация: 463
Offline Offline

Пол: Мужской
Награды:
3000 сообщений!За постоянность! [500 дней на форуме]Третье место на HellRoom Jam #9 [Flucoldache]За лояльность! [+300 репутации]Настоящий игродел!Боже мой, посмотрите на эту медальку! Первое место на HellRoom Jam #6
API: Game Maker 8.0 Lite
Деятельность: Бурная.
Сообщений: 3673


Лисяток тебе.


« Ответ #4 : Ноябрь 01, 2018, 14:34:48 »

Чего... т.е. просто записаны координаты вершин КАЖДОГО полигона. А отрисовка модели - это создание этих треугольников, по переданным вершинам?
Знакомься -- 3D графика.
Записан

В одной отдельно взятой фразе не должно быть больше миллиона муравьёв, пусть даже она — научного труда о муравьях.

Hyperflex
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

HellRoom Games © 2006-2012 All Rights Reserved
Powered by SMF 1.1.21 | SMF © 2013, Simple Machines
Страница сгенерирована за 0.091 секунд. Запросов: 31.