Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Библиотеки

Ответ
 
Опции темы
Старый 26.02.2009, 08:04   #1
odd
Мастер
 
Аватар для odd
 
Регистрация: 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 библиотеку с полным перечнем возможностей.
Вложения
Тип файла: zip Lib_m3g.zip (1.8 Кб, 1221 просмотров)
Тип файла: zip m3g_test.zip (72.6 Кб, 1276 просмотров)

Последний раз редактировалось odd, 26.02.2009 в 18:43.
(Offline)
 
Ответить с цитированием
Эти 10 пользователя(ей) сказали Спасибо odd за это полезное сообщение:
Banan (27.02.2009), baton4ik (22.11.2009), Fred-boy (26.05.2013), german1010 (07.07.2009), GRAY_WOLF (26.02.2009), h1dd3n (08.07.2009), IDOL 1234 (07.12.2009), Mach94 (23.08.2009), Skythrone (26.02.2009), ЯМАКc (02.03.2009)
Старый 27.02.2009, 18:01   #2
m1kc.
Оператор ЭВМ
 
Аватар для m1kc.
 
Регистрация: 04.09.2008
Сообщений: 39
Написано 4 полезных сообщений
(для 5 пользователей)
Ответ: Lib_m3g - Ну полный 3D

А можешь сделать еще и Mascot Capsule?
Вот документация, там все расписано более чем подробно, правда, на английском.
Вложения
Тип файла: zip mcv3.zip (526.4 Кб, 974 просмотров)
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо m1kc. за это полезное сообщение:
luk Skyuoker (27.02.2009), odd (03.03.2009)
Старый 27.02.2009, 19:09   #3
aNNiMON
AnyKey`щик
 
Аватар для aNNiMON
 
Регистрация: 20.12.2008
Сообщений: 13
Написано 4 полезных сообщений
(для 12 пользователей)
Ответ: Lib_m3g - Ну полный 3D

Я могу по Mascot Capsule сделать. Я уже не раз с ними работал.
__________________
Use a music as a weapon
(Offline)
 
Ответить с цитированием
Старый 28.02.2009, 08:35   #4
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Lib_m3g - Ну полный 3D

Я щас пишу более объёмную версию либы по M3G. Как закончу, можно и за mascot приниматься или кто-то другой может создаст её пока я занимаюсь этой.
(Offline)
 
Ответить с цитированием
Старый 02.03.2009, 15:26   #5
ЯМАКc
AnyKey`щик
 
Регистрация: 28.09.2008
Сообщений: 14
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Lib_m3g - Ну полный 3D

А можно 3д либу написать?
или хотябы использовать m3g и модифицировать?
(Offline)
 
Ответить с цитированием
Старый 03.03.2009, 02:20   #6
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Lib_m3g - Ну полный 3D

Библиотека в стадии написания. Пока есть такие функции (уже побольше):

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.
Вложения
Тип файла: zip Lib_d3.zip (2.8 Кб, 1069 просмотров)
Тип файла: zip M3G_demo.zip (66.7 Кб, 1111 просмотров)
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо odd за это полезное сообщение:
german1010 (07.07.2009), IDOL 1234 (07.12.2009)
Старый 03.03.2009, 22:58   #7
ЯМАКc
AnyKey`щик
 
Регистрация: 28.09.2008
Сообщений: 14
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Lib_m3g - Ну полный 3D

пример не работает. Появляется белый фон и синий низ, синий слой направляется вверх до половины экрана и удаляется вниз. Приложение выходит.
(Offline)
 
Ответить с цитированием
Старый 05.03.2009, 01:52   #8
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Lib_m3g - Ну полный 3D

У меня нормально пашет, да там и смотреть толком пока не на что. Ещё работать и работать.
(Offline)
 
Ответить с цитированием
Старый 08.03.2009, 13:10   #9
ASMjavaC
Оператор ЭВМ
 
Регистрация: 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
ASMjavaC
Оператор ЭВМ
 
Регистрация: 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)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Ste1S (27.03.2009)
Старый 08.03.2009, 13:29   #11
ASMjavaC
Оператор ЭВМ
 
Регистрация: 02.03.2009
Сообщений: 26
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Lib_m3g - Ну полный 3D

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

ПС лично у меня gif не поддерживает на NOKIA5300
(Offline)
 
Ответить с цитированием
Старый 08.03.2009, 13:38   #12
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Lib_m3g - Ну полный 3D

Хм, чтож это за телефоны, если поддерживают m3g, но не поддерживают широко распространенный в сети формат gif.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Rock2roll (30.07.2010)
Старый 08.03.2009, 23:31   #13
Dj_Alex
ПроЭктировщик
 
Аватар для Dj_Alex
 
Регистрация: 08.03.2009
Адрес: Saransk
Сообщений: 143
Написано 25 полезных сообщений
(для 45 пользователей)
Ответ: Lib_m3g - Ну полный 3D

для полного счастья не хватает движение, вращение, масштабирование моделей.
(Offline)
 
Ответить с цитированием
Старый 10.03.2009, 01:57   #14
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Lib_m3g - Ну полный 3D

Сообщение от Dj_Alex Посмотреть сообщение
для полного счастья не хватает движение, вращение, масштабирование моделей.
Да сам знаю, что не хватает, но пока работаем в этом направлении. Скоро будет.
(Offline)
 
Ответить с цитированием
Старый 11.03.2009, 10:21   #15
@llien
Оператор ЭВМ
 
Аватар для @llien
 
Регистрация: 30.01.2009
Сообщений: 41
Написано одно полезное сообщение
(для 5 участников)
Злость Ответ: Lib_m3g - Ну полный 3D

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

ПС лично у меня gif не поддерживает на NOKIA5300
Неправда!!!!
у мя на нокухе 5300 (моя как уже 3 года изучена вдоль и поперек) все гифки работают на ура!
__________________
MPCoder
V_V
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Полный PureBASIC v4.10 Chrono Syndrome PureBasic 36 07.06.2022 16:10
Windows 7 Полный РЕСПЕКТ! FDsagizi Болтовня 7 25.05.2009 21:32
Полный экран Fedoseew FAQ 3 26.12.2008 11:26
Полный русский хэлп по Blitz3D Тадеус Переводы 33 12.10.2008 21:45
Полный список библиотек!!! Piligrim Библиотеки 0 06.01.2008 15:19


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com