|
26.02.2009, 08:04
|
#1
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Lib_m3g - Ну полный 3D
Библиотека для просмотра анимированных 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 библиотеку с полным перечнем возможностей.
Последний раз редактировалось odd, 26.02.2009 в 18:43.
|
(Offline)
|
|
Эти 10 пользователя(ей) сказали Спасибо odd за это полезное сообщение:
|
|
27.02.2009, 18:01
|
#2
|
Оператор ЭВМ
Регистрация: 04.09.2008
Сообщений: 39
Написано 4 полезных сообщений (для 5 пользователей)
|
Ответ: Lib_m3g - Ну полный 3D
А можешь сделать еще и Mascot Capsule?
Вот документация, там все расписано более чем подробно, правда, на английском.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо m1kc. за это полезное сообщение:
|
|
27.02.2009, 19:09
|
#3
|
AnyKey`щик
Регистрация: 20.12.2008
Сообщений: 13
Написано 4 полезных сообщений (для 12 пользователей)
|
Ответ: Lib_m3g - Ну полный 3D
Я могу по Mascot Capsule сделать. Я уже не раз с ними работал.
__________________
Use a music as a weapon
|
(Offline)
|
|
28.02.2009, 08:35
|
#4
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_m3g - Ну полный 3D
Я щас пишу более объёмную версию либы по M3G. Как закончу, можно и за mascot приниматься или кто-то другой может создаст её пока я занимаюсь этой.
|
(Offline)
|
|
02.03.2009, 15:26
|
#5
|
AnyKey`щик
Регистрация: 28.09.2008
Сообщений: 14
Написано 2 полезных сообщений (для 2 пользователей)
|
Ответ: Lib_m3g - Ну полный 3D
А можно 3д либу написать?
или хотябы использовать m3g и модифицировать?
|
(Offline)
|
|
03.03.2009, 02:20
|
#6
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_m3g - Ну полный 3D
Библиотека в стадии написания. Пока есть такие функции (уже побольше):
SetMulti(i: integer) - Установить условный множитель для библиотеки. Дело в том, что MP не умеет передавать в библиотеку вещественные числа, поэтому их приходится передавать как целые, но умноженные на определенный множитель. К примеру, 0.23 передаётся как 230. По умолчанию множитель равен 1000. Функции, использующие множитель: SetPerspective, Camera, Camera_Orient, Light. SetWindow(x: integer; y: integer; w: integer; h: integer) - Установить окно, в котором будет выводиться наша трёхмерная графика SetPerspective(p1: integer; p2: integer; p3: integer) - Установить параметры перспективы 3D графики По умолчанию, параметры приняты такие: 70, 0.1, 50 Лучше без надобности их не менять, но кому надо - пожалуйста Animate(ms: integer) - Анимация трёхмерной M3G модели. ms - время в миллисекундах (можно брать функцией GetRelativeTimeMs) Camera(x: integer; y: integer; z: integer) - Начальная установка (инициализация) камеры для просмотра 3D сцены x, y, z - координаты камеры Camera_Orient(a: integer; b: integer; c: integer; d: integer) - Ориентация камеры a, b, c, d - какие-то параметры. Сам пока не разобрался что они делают. Light(x: integer; y: integer; z: integer) - Установить свет x, y, z - координаты источника света Paint - Нарисовать сцену (ничего не увидите пока не сделаете Repaint)
Repaint - Перерисовка сцены
Background(fname: string) - Загрузка фона для нашего мира. Имеется ввиду небо. fname - имя файла из ресурсов с текстурой неба Floor(fname: string; i: integer) - Загрузка текстуры для земли. fname - имя файла из ресурсов с текстурой земли i - параметр масштабирования текстуры.
ВНИМАНИЕ! Чтоб всё работало, надо ещё добавлять в проект файл Floor.class
Хотелось бы ещё загружать в мир свои M3G модели и как-то перемещать их.
Но пока что это не получается сделать. Может у кого-то больше опыта в данной области? Может, поможете?
Введение 3D графики -- это просто открывает новую эру в программировании на MP.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо odd за это полезное сообщение:
|
|
03.03.2009, 22:58
|
#7
|
AnyKey`щик
Регистрация: 28.09.2008
Сообщений: 14
Написано 2 полезных сообщений (для 2 пользователей)
|
Ответ: Lib_m3g - Ну полный 3D
пример не работает. Появляется белый фон и синий низ, синий слой направляется вверх до половины экрана и удаляется вниз. Приложение выходит.
|
(Offline)
|
|
05.03.2009, 01:52
|
#8
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_m3g - Ну полный 3D
У меня нормально пашет, да там и смотреть толком пока не на что. Ещё работать и работать.
|
(Offline)
|
|
08.03.2009, 13:10
|
#9
|
Оператор ЭВМ
Регистрация: 02.03.2009
Сообщений: 26
Написано 2 полезных сообщений (для 2 пользователей)
|
Ответ: 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
|
(Offline)
|
|
08.03.2009, 13:16
|
#10
|
Оператор ЭВМ
Регистрация: 02.03.2009
Сообщений: 26
Написано 2 полезных сообщений (для 2 пользователей)
|
Ответ: 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.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
08.03.2009, 13:29
|
#11
|
Оператор ЭВМ
Регистрация: 02.03.2009
Сообщений: 26
Написано 2 полезных сообщений (для 2 пользователей)
|
Ответ: Lib_m3g - Ну полный 3D
Сообщение от ЯМАКc
пример не работает. Появляется белый фон и синий низ, синий слой направляется вверх до половины экрана и удаляется вниз. Приложение выходит.
|
у меня такаяже фича..
лечится так:
конвертируем все (2) gif файла в png и незабываем заменить ресурсы в МП и поменять в коде "ссылки" на них.
ПС лично у меня gif не поддерживает на NOKIA5300
|
(Offline)
|
|
08.03.2009, 13:38
|
#12
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Lib_m3g - Ну полный 3D
Хм, чтож это за телефоны, если поддерживают m3g, но не поддерживают широко распространенный в сети формат gif.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
08.03.2009, 23:31
|
#13
|
ПроЭктировщик
Регистрация: 08.03.2009
Адрес: Saransk
Сообщений: 143
Написано 25 полезных сообщений (для 45 пользователей)
|
Ответ: Lib_m3g - Ну полный 3D
для полного счастья не хватает движение, вращение, масштабирование моделей.
|
(Offline)
|
|
10.03.2009, 01:57
|
#14
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_m3g - Ну полный 3D
Сообщение от Dj_Alex
для полного счастья не хватает движение, вращение, масштабирование моделей.
|
Да сам знаю, что не хватает, но пока работаем в этом направлении. Скоро будет.
|
(Offline)
|
|
11.03.2009, 10:21
|
#15
|
Оператор ЭВМ
Регистрация: 30.01.2009
Сообщений: 41
Написано одно полезное сообщение (для 5 участников)
|
Ответ: Lib_m3g - Ну полный 3D
Сообщение от ASMjavaC
у меня такаяже фича..
лечится так:
конвертируем все (2) gif файла в png и незабываем заменить ресурсы в МП и поменять в коде "ссылки" на них.
ПС лично у меня gif не поддерживает на NOKIA5300
|
Неправда!!!!
у мя на нокухе 5300 (моя как уже 3 года изучена вдоль и поперек) все гифки работают на ура!
__________________
MPCoder
V_V
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 04:57.
|