forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=124)
-   -   Lib_m3g - Ну полный 3D (http://forum.boolean.name/showthread.php?t=7891)

odd 26.02.2009 08:04

Lib_m3g - Ну полный 3D
 
Вложений: 2
Библиотека для просмотра анимированных 3D сцен.
Команды (пока) очень простые:

Код:

load(fname: string; n: integer) - Загрузка модели
    fname - имя файла, содержащего M3G модель
    n - ID номер трансформации модели
   
paint - Отрисовать модель на экране (не отобразится на экране пока
    не будет вызвана перерисовка)

repaint - Перерисовка модели

animate(ms: integer) - Анимация модели
    ms - время в миллисекундах, можно получить например
    при помощи функции GetRelativeTimeMs

Так что теперь можно смело рисовать свои 3D модели в 3D Max или аналогичных редакторах и просматривать всё это на мобиле. А я пока буду ломать голову над тем как развернуть объект/камеру, приблизить/удалить и проч. проблемы. К сожалению, наблюдается полное отсутствие наличия хоть какой-то более-менее вменяемой литературы на эту тему.

К библиотеке прилагается примерчик с двумя анимированными моделями любезно позаимствованными из пакета WTK.

PS: В качестве эмулятора для тестинга рекомендую KEmulator. В нём есть такой инструмент как M3G view.
PPS: Короче, тема хорошая хоть и довольно объёмная. Возможно буду писать нормальную 3D библиотеку с полным перечнем возможностей.

m1kc. 27.02.2009 18:01

Ответ: Lib_m3g - Ну полный 3D
 
Вложений: 1
А можешь сделать еще и Mascot Capsule?
Вот документация, там все расписано более чем подробно, правда, на английском.

aNNiMON 27.02.2009 19:09

Ответ: Lib_m3g - Ну полный 3D
 
Я могу по Mascot Capsule сделать. Я уже не раз с ними работал.

odd 28.02.2009 08:35

Ответ: Lib_m3g - Ну полный 3D
 
Я щас пишу более объёмную версию либы по M3G. Как закончу, можно и за mascot приниматься или кто-то другой может создаст её пока я занимаюсь этой.

ЯМАКc 02.03.2009 15:26

Ответ: Lib_m3g - Ну полный 3D
 
А можно 3д либу написать?
или хотябы использовать m3g и модифицировать?

odd 03.03.2009 02:20

Ответ: Lib_m3g - Ну полный 3D
 
Вложений: 2
Библиотека в стадии написания. Пока есть такие функции (уже побольше):

PHP код:

SetMulti(iinteger) - Установить условный множитель для библиотеки.
    
Дело в томчто MP не умеет передавать в библиотеку вещественные числапоэтому их приходится передавать
    как целые
но умноженные на определенный множительК примеру0.23 передаётся как 230.
    По умолчанию множитель равен 1000.
    Функции
использующие множительSetPerspectiveCameraCamera_OrientLight.
    
SetWindow(xintegeryintegerwintegerhinteger) - Установить окнов котором будет выводиться
    наша трёхмерная графика
    
SetPerspective
(p1integerp2integerp3integer) - Установить параметры перспективы 3D графики
    По умолчанию
параметры приняты такие700.150
    Лучше без надобности их не менять
но кому надо пожалуйста
    
Animate
(msinteger) - Анимация трёхмерной M3G модели.
    
ms время в миллисекундах (можно брать функцией GetRelativeTimeMs)
    
Camera(xintegeryintegerzinteger) - Начальная установка (инициализациякамеры для просмотра 3D сцены
    x
yкоординаты камеры
    
Camera_Orient
(aintegerbintegercintegerdinteger) - Ориентация камеры
    a
bcкакие-то параметрыСам пока не разобрался что они делают.
    
Light(xintegeryintegerzinteger) - Установить свет
    x
yкоординаты источника света
    
Paint 
Нарисовать сцену (ничего не увидите пока не сделаете Repaint)

Repaint Перерисовка сцены

Background
(fnamestring) - Загрузка фона для нашего мираИмеется ввиду небо.
    
fname имя файла из ресурсов с текстурой неба
    
Floor
(fnamestringiinteger) - Загрузка текстуры для земли.
    
fname имя файла из ресурсов с текстурой земли
    i 
параметр масштабирования текстуры

ВНИМАНИЕ! Чтоб всё работало, надо ещё добавлять в проект файл Floor.class

Хотелось бы ещё загружать в мир свои M3G модели и как-то перемещать их.
Но пока что это не получается сделать. Может у кого-то больше опыта в данной области? Может, поможете?
Введение 3D графики -- это просто открывает новую эру в программировании на MP.

ЯМАКc 03.03.2009 22:58

Ответ: Lib_m3g - Ну полный 3D
 
пример не работает. Появляется белый фон и синий низ, синий слой направляется вверх до половины экрана и удаляется вниз. Приложение выходит.

odd 05.03.2009 01:52

Ответ: Lib_m3g - Ну полный 3D
 
У меня нормально пашет, да там и смотреть толком пока не на что. Ещё работать и работать.

ASMjavaC 08.03.2009 13:10

Ответ: Lib_m3g - Ну полный 3D
 
Camera_Orient(a: integer; b: integer; c: integer; d: integer) - Ориентация камеры
a, b, c, d - какие-то параметры. Сам пока не разобрался что они делают.

ты сам делаешь библиотеку? исходником не поделетесь.. вращение заинтересовало.
я не понял Light(x: integer; y: integer; z: integer) изменяю параметры и нечего.. да и в примере 4! параметра а не 3

ASMjavaC 08.03.2009 13:16

Ответ: Lib_m3g - Ну полный 3D
 
каму инетесно вот перемещение клавиатурой
Код:

Program M3G_demo;
Uses d3;
Var i, k, m, lr, l1, l2, l3, l4: integer;
Begin       
        SetWindow(0, 0, GetWidth, GetHeight); // Устанавливаем окно
        Background('/clouds.gif'); // Загрузка текстурки для облаков
        Floor('/grass.gif', 6); // Текстурка земли
        Camera(0, 500, 2000); Camera_Orient(-100, 1000, 0, 0); // начальные установки камеры
        l1:=-45000;
        l2:=1000;
        Light(l1, l2, l3, l4); // Установка света
        i:=500; k:=-10; m:=4000;
        repeat
        if getKeyPressed = KE_KEY9      then i:=i-10; //вниз 9
        if getKeyPressed = KE_KEY3      then i:=i+10; //вверх 3
        if getKeyPressed = KE_KEY2      then m:=m-10; // вперед
        if getKeyPressed = KE_KEY8        then m:=m+10; // назад
          if getKeyPressed = KE_KEY4          then lr:=lr-10; // лево
          if getKeyPressed = KE_KEY6          then lr:=lr+10; //дправо


    Camera(lr, i, m); //i := i + k; m := m - 25; // Просто тупо двигаем камеру
                //if (i = 70) or (i = 500) then k := -k;
                if m = -4000 then break; // Если дошли до края земли - выход
                d3.Paint; d3.Repaint; Delay(50); // Открисовка сцены
        until false;
End.


ASMjavaC 08.03.2009 13:29

Ответ: Lib_m3g - Ну полный 3D
 
Цитата:

Сообщение от ЯМАКc (Сообщение 99495)
пример не работает. Появляется белый фон и синий низ, синий слой направляется вверх до половины экрана и удаляется вниз. Приложение выходит.

у меня такаяже фича..
лечится так:
конвертируем все (2) gif файла в png и незабываем заменить ресурсы в МП и поменять в коде "ссылки" на них.

ПС лично у меня gif не поддерживает на NOKIA5300

ViNT 08.03.2009 13:38

Ответ: Lib_m3g - Ну полный 3D
 
Хм, чтож это за телефоны, если поддерживают m3g, но не поддерживают широко распространенный в сети формат gif.

Dj_Alex 08.03.2009 23:31

Ответ: Lib_m3g - Ну полный 3D
 
для полного счастья не хватает движение, вращение, масштабирование моделей.

odd 10.03.2009 01:57

Ответ: Lib_m3g - Ну полный 3D
 
Цитата:

Сообщение от Dj_Alex (Сообщение 100009)
для полного счастья не хватает движение, вращение, масштабирование моделей.

Да сам знаю, что не хватает, но пока работаем в этом направлении. Скоро будет.

@llien 11.03.2009 10:21

Ответ: Lib_m3g - Ну полный 3D
 
Цитата:

Сообщение от ASMjavaC (Сообщение 99952)
у меня такаяже фича..
лечится так:
конвертируем все (2) gif файла в png и незабываем заменить ресурсы в МП и поменять в коде "ссылки" на них.

ПС лично у меня gif не поддерживает на NOKIA5300

Неправда!!!!
у мя на нокухе 5300 (моя как уже 3 года изучена вдоль и поперек) все гифки работают на ура!

Mach94 26.03.2009 02:34

Ответ: Lib_m3g - Ну полный 3D
 
Либа офигительная! однозначно нужно её развивать! огромный респект автору!

ABTOMAT 26.03.2009 03:17

Ответ: Lib_m3g - Ну полный 3D
 
Уважаемые! Топик меня заинтересовал, но не имею возможности посмотреть на предмет обсуждения.
Покажите хоть самые смачные скриншоты, что ли?
В душе не представляю себе 3Д графику на мобиле

demon112 26.03.2009 05:07

Ответ: Lib_m3g - Ну полный 3D
 
Если б в библиотеки была функция вращения модели, тогда б было супер, а так и игры нормальной 3д не создашь... Вот еси либу будут развивать, буит супер.

Самурай 28.03.2009 00:26

Re: Lib_m3g - Ну полный 3D
 
Почему же не сделать? Загружаешь 3д уровень, а врагов, оружие и все остальное делаешь спрайтами как в Doom RPG или Wolfenstein RPG. Вот ток подумать бы как это реализовать :) а по поводу библиотеки - класс, автору респект!

Еще ошибка код: d3.load('/pogoroo.m3g', 347178853); - library/unit does not contain funclion 'load' - и что делать?

beZ_probleM 30.03.2009 01:56

Ответ: Lib_m3g - Ну полный 3D
 
вопрос : за какими законами можно запрограмировать физику 3Д обекта, тоесть как силу притяжения запрограмировать?

простой пример:
скейтбордист катает в рампе(вылетает в воздух и возвращаетсо назад к плоскости)

И ещё, где можно обрабатывать столкновение обектов?

З.Ы. Mach94 +1
Давно хотел поработать с 3Д...
Вобщем тема класнайа! ждём модернизации либы!

Dj_Alex 30.03.2009 08:33

Ответ: Lib_m3g - Ну полный 3D
 
физику считает физ. движок. самому делать сложно. столкновения моделей по разному можно реализовать. но в основном реализуют проверку пересечения треугольников (полигонов объекта). из вертекс буффера получают координаты вершин, из индекс буфера - номера вершин каждого полигона. расчет занимает время и чем больше полигонов, тем медленнее будет работать. поэтому часто некоторую модель (например тачку) заменяют упрощенной коллизионной моделью типа прямоугольника или че посложнее.
а про силу притяжения формулы можно из школьной физики взять.
зы: в примере движение скейдбордиста фреймами организовано

temned 30.03.2009 13:29

Ответ: Lib_m3g - Ну полный 3D
 
Согласен с Вами. либу надо развивать, а то пока лишь воспроизводить мона. и ещё: ребят мне кажется, что если мы каждый будем здесь писать свое мнение, как я сейчас, что мол либа супер и требует продолжения, то мы только забьем тему ненужными высказываниями. давайте только по делу, например, если кто-то действительно взял-таки и сделал что-то новое.

beZ_probleM 30.03.2009 19:06

Ответ: Lib_m3g - Ну полный 3D
 
Цитата:

физику считает физ. движок. самому делать сложно.
Dj_Alex, а где его брать? оО)

Цитата:

в примере движение скейдбордиста фреймами организовано
эт как?

Slezka 03.04.2009 17:37

Ответ: Lib_m3g - Ну полный 3D
 
Цитата:

Сообщение от beZ_probleM (Сообщение 102250)
Dj_Alex, а где его брать? оО)


эт как?

Это мультик!, вот как:-)

luk Skyuoker 29.04.2009 19:40

Ответ: Lib_m3g - Ну полный 3D
 
odd, когда будет новая версия?! С другими либами уже давно освоился, твою жду... Когда будет полная?

odd 03.05.2009 19:34

Ответ: Lib_m3g - Ну полный 3D
 
Цитата:

Сообщение от luk Skyuoker (Сообщение 104058)
odd, когда будет новая версия?! С другими либами уже давно освоился, твою жду... Когда будет полная?

Увы, я сейчас пишу диплом. Голова занята вопросами поважней. Как закончу - будут обновления либ.

Mach94 07.07.2009 17:21

Ответ: Re: Lib_m3g - Ну полный 3D
 
Вложений: 1
Odd, сделай плиз чтоб камеру ещё можно было поварачивать... ммм не знаю как обьяснить, вот так::-D

Ren-NsK 17.07.2009 14:19

Ответ: Lib_m3g - Ну полный 3D
 
Классная весч!

Mach94 29.07.2009 04:38

Ответ: Lib_m3g - Ну полный 3D
 
Odd, у меня вопросик по lib_m3g, с моими моделями почемуто не запускается(делаю в 3ds max 2009) что за ID трансформации и где его взять? и как скоро закончишь писать диплом?:))) хотелось бы увидеть вращение камеры влево и вправо в либе d3...

Z.Voav 12.11.2009 02:41

Ответ: Lib_m3g - Ну полный 3D
 
Блииин у мну мидлет паскаль вообще не компилит этот проект. у меня 2.2 рус

Uses d3; на это типа немогу загрузить модуль 'd3'
и на всё остальное типа
на это SetWindow - не явлеятся именем подпрограммы

Ужас сама ява намного легче чем этот пасаль

IDOL 1234 01.12.2009 21:53

Ответ: Lib_m3g - Ну полный 3D
 
кто - нибудь, скажите чем открыть *.m3g? (как настроить 3d max или blender для работы с этими форматами?) Просмотрщики и блокнот не предлагать(

cherepets 02.12.2009 10:45

Ответ: Lib_m3g - Ну полный 3D
 
есть просмотрщик + конвертер.
редакторов вроде нет

ViNT 02.12.2009 12:40

Ответ: Lib_m3g - Ну полный 3D
 
Для макса наверняка плагин есть какой-нибудь.

IDOL 1234 06.12.2009 00:20

Ответ: Lib_m3g - Ну полный 3D
 
:4to: как нет редакторов?:mad:

cherepets 06.12.2009 13:14

Ответ: Lib_m3g - Ну полный 3D
 
а чем не устраивает предложенная связка просмотрщик и конвертер?
из 3д макса можно конвертить туда/обратно им (сам не пробовал)

IDOL 1234 06.12.2009 21:37

Ответ: Lib_m3g - Ну полный 3D
 
не могу найти рабочий плагин к 3dmax9. Ругается на несовместимость версий.
А в блендере, [во всяком случае, в том, который я скачал], тупо отсутствует папка C:\Programme\Blender Foundation\Blender\.blender\scripts\ , в которую их нужно копировать. К тому же, из 3d знаю только компас...

А стоит ли вообще этим заниматься? Насколько я понял, в данный момент средствами МР можно полностью корректно работать только с 1й моделью?

ps blender - убожество, какого я ещё не видел.

odd 07.12.2009 00:23

Ответ: Lib_m3g - Ну полный 3D
 
Пока потерпи. Всё равно нормальных либ для работы с 3d пока нет.

IDOL 1234 07.12.2009 09:37

Ответ: Lib_m3g - Ну полный 3D
 
Ошибка в описании либы _m3g...
Цитата:

Lib_m2 - Библиотека для работы с 3D моделями

Gector 11.07.2010 20:56

Ответ: Lib_m3g - Ну полный 3D
 
1) Как экспортировать камеру?(Она создана в максе но выдает что ее нет)
2) Как получить ID трансформации?

impersonalis 14.07.2010 12:24

Ответ: Lib_m3g - Ну полный 3D
 
очень смешная шутка!

pax 14.07.2010 13:48

Ответ: Lib_m3g - Ну полный 3D
 
Цитата:

Сообщение от wasanya (Сообщение 154386)
вот перевод мой кому не нрав сами перевод кому пойдёт читайте наздоровь

http://192.168.1.2/rus.doc

но не всегда можно качать

Ну прям отжог! :-D :-D :-D

Чувак! Локальная сеть - это не интернет! ;)

wasanya 18.07.2010 14:16

Ответ: Lib_m3g - Ну полный 3D
 
блин ну на сайт скину.с кем не быв. http://wasanya.ucoz.ru/rus.doc.

Rock2roll 29.03.2012 23:33

Ответ: Lib_m3g - Ну полный 3D
 
Одд, уважаемый, допиши что обещал...спустя 3 года :)


Часовой пояс GMT +4, время: 20:50.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot