Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Вт ноя 21, 2017 8:28 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 30 сообщений ]  На страницу 1 2 След.
Автор Сообщение
 Заголовок сообщения: Free3d - трехмерный лабиринт
СообщениеДобавлено: Пт июн 20, 2008 7:19 pm 
Не в сети

Зарегистрирован: Ср июн 18, 2008 12:38 pm
Сообщения: 17
Слушайте парни если есть дайте исходники или напишите на чем сделана а то так можно реально игру забацать аж в 3д если разберусь с этим то начну создавать хоть завтра хоть и начинающий программер


Вернуться к началу
 Заголовок сообщения: Re: Лабиринт 3Д
СообщениеДобавлено: Пт июн 20, 2008 7:23 pm 
Не в сети
Kernel Optimizer
Аватара пользователя

Зарегистрирован: Пн янв 16, 2006 7:58 pm
Сообщения: 657
anton_obuhov писал(а):
Слушайте парни если есть дайте исходники или напишите на чем сделана а то так можно реально игру забацать аж в 3д если разберусь с этим то начну создавать хоть завтра хоть и начинающий программер


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


Вернуться к началу
 Заголовок сообщения: Re: Лабиринт 3Д
СообщениеДобавлено: Сб июн 21, 2008 7:18 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пт май 18, 2007 11:11 pm
Сообщения: 125
Цитата:
...или напишите на чем сделана...

ASM, ASM и еще раз ASM. :wink:
А исходники на SVN в programs/demos/free3d04/trunk

_________________
Заглянул на огонёк


Вернуться к началу
 Заголовок сообщения: Re: Free3d - трехмерный лабиринт
СообщениеДобавлено: Вс фев 20, 2011 12:46 am 
Пару дней ковырялся с Free3D с целями:
1) Прикрутить PNG вместо GIF (а следовательно полноценные 24 бита, вместо урезанной палитры ограниченной 8 бит) и сделать его динамическую подгрузку при запуске.
2) Уменьшить расход памяти - в версии 0.4 вообще менеджер памяти не используется, да и карта памяти честно говоря разбросана как попало.
3) Прикрутить текстуры более высокого разрешения. В версии 0.4 они 64х64, в своей я пока прикрутил 128x128. К сожалению разница между этими текстурами не сильно заметна, зато размер самой текстуры увеличивается в 4 раза. Впрочем я еще не разобрал код окончательно, может где еще подкрутить можно, для улучшения качества отображения.

В общем выглядит теперь так:
1) С текстурами 64x64
Вложение:
1.png
1.png [ 78.84 КБ | 1614 просмотров ]

2) С текстурами 128x128
Вложение:
2.png
2.png [ 118.16 КБ | 1614 просмотров ]


В планах сделать еще нормальное управление видом, а то то как оно есть очень неудобно позиционировать.


Вернуться к началу
   
 Заголовок сообщения: Re: Free3d - трехмерный лабиринт
СообщениеДобавлено: Вс фев 20, 2011 12:51 am 
На посмотреть пока выкладываю бинарник вместе с текстурой 128х128:
Вложение:
free3d.7z [258.38 КБ]
71 скачивание


Вернуться к началу
   
 Заголовок сообщения: Re: Free3d - трехмерный лабиринт
СообщениеДобавлено: Вс фев 20, 2011 1:19 am 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Пт июн 30, 2006 9:01 am
Сообщения: 1232
Nice update, mario.
Did you speed it up too? In KlbrInWin, it is too damn fast to walk through the maze..

_________________
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein


Вернуться к началу
 Заголовок сообщения: Re: Free3d - трехмерный лабиринт
СообщениеДобавлено: Вс фев 20, 2011 1:43 am 
Probably this is your subjective experience. :)
I did not do anything for the speed.

However, I would suggest that the align 4 and using the memory manager (function 68) can give a speed boost is theoretically.

Also KlbrInWin works very fast too - because it uses the Windows services.


Вернуться к началу
   
 Заголовок сообщения: Re: Free3d - трехмерный лабиринт
СообщениеДобавлено: Вс фев 20, 2011 12:12 pm 
Кажется я понял в чем причина. Алгоритм реализованный в программе масштабирует по вертикали нормально, в то время как масштабирование по горизонтали сделано очень тупым методом. В итоге вместо кубиков получаем прямоугольники.

Отсутствие сглаживания тоже не идет на пользу качеству - впрочем есть такое подозрение, что внедрение даже билинейного сглаживания (например как я сделал для zSea) приведет к замедлению на порядок.


Вернуться к началу
   
 Заголовок сообщения: Re: Free3d - трехмерный лабиринт
СообщениеДобавлено: Вс фев 20, 2011 3:10 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
hidnplayr: "...it is too damn fast..."
Mario: "...приведет к замедлению на порядок."
хм...

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Вернуться к началу
 Заголовок сообщения: Re: Free3d - трехмерный лабиринт
СообщениеДобавлено: Вс фев 20, 2011 3:50 pm 
Я сказал если внедрить. А чего ты хочешь? Это же куча операций умножения и деления. Причем поскольку числа не фиксированы, то рассчитывать тем что обойдется операциями сдвига регистра не приходится. Разве не замечал, что любые попытки улучшить картинку в современных играх разнообразными сглаживаниями выливаются в резкий провал производительности. Это не смотря на то, что там все это дело видеокарта сама обсчитывает, не нагружая центральный процессор.

А вообще я не обещал, что буду этого делать. Поскольку это уйма затраченного времени, а движок у Free3D малоперспективен, из-за своей неполной трехмерности. Вот движок 3detx60b, который оставил Павлюшин Евгений гораздо более перспективен, но и сложней соответственно.

Вообще скорее всего на неопределенное время я пропаду из сети. Может быть через месяц только появлюсь - жизнь имеет свое мнение относительно моих планов.

UPD: Залил на SVN ревизия 1880.


Вернуться к началу
   
 Заголовок сообщения: Re: Free3d - трехмерный лабиринт
СообщениеДобавлено: Вс фев 20, 2011 8:58 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
я знаю, что если внедрить. Иначе бы не обращал внимание на проблему, которая таким образом побочно решится, если ты захоешь и сможешь это сделать.
А сможешь/захочешь или нет - исключительно твое дело, разумеется (ну и жизни, как следует из твоего сообщения).

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Вернуться к началу
 Заголовок сообщения: Re: Free3d - трехмерный лабиринт
СообщениеДобавлено: Пн фев 21, 2011 1:52 am 
Обнаружил хитрое ограничение - в Колибри можно получать только координаты мыши, но когда координаты в своих значениях доходят до края экрана, то мышь для приложения "замирает". Я еще не смотрел код ядра, но мне думается что события мыши генерируются даже когда она уперлась в край экрана. Таким образом приложение получает событие мыши, но не может опознать что произошло. Для 2D режима это не существенно, поскольку пользователь видит курсор мыши. Для 3D режима это уже проблема.

Вероятно придется прикручивать дополнительный код к ядру, который запомнит вектор движения мыши и размер позиционирования. В общем надо еще обдумывать эту ситуацию. Пока что традиционное для 3D приложений (не такое как во Free3D сейчас) ограничивается размерами экрана. Т.е. повернувшись до определенной позиции дальше уже повернуться нельзя, только обратно или задействовав клавиатуру для дальнейшего поворота. То же самое с перемещениями вперед и назад (поскольку движок Free3D изначально не позволяет менять вертикальный угол обзора) - упираемся в край экрана и все.


Вернуться к началу
   
 Заголовок сообщения: Re: Free3d - трехмерный лабиринт
СообщениеДобавлено: Пн фев 21, 2011 10:58 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
вообще-то, в нормальных системах существует такая вещь, как захват мыши (даже не для полноэкранных приложений.)

я когда наж этим думал, придумал такой распорядок:
1) пользователь запускает приложение/переходит из гл. меню (где нужен курсор) в боевой режим (где, само собой, не нужен, если управление через движение мышцхой, а не через кликанье по карте).
Тогда приложение:
а) стирает курсор (меняет изображение курсора на пустое)
б) устанавливает положение курсора в центр своего окна
в) в главном цикле ждет событий мышь, и, если она сдвинулась, учитывает это движение как обычно (ну там камеру или главгероя перемещает/поворачивает), но перед этим устанавливает курсор снова в центр своего экрана.

2) пользователь заходит в меню или в инвентарь, или нажимеат горячую клавишу - приложение перестает в главном цикле издеваться над бедной мышкой, и возвращает ей нормальный (видимый) вид.

Кстати, то же самое не помешает и 2d приложениям - а то у меня в какой-то портированной игре курсор покрывал только верхнюю левую часть игрового окна, а правее/ниже выскакивал из него.

Предлагаю оформить такие вещи в виде макросов, т.к. команд для каждой из этих операций совсем немного нужно, а игры клепать позволит только так =)

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Вернуться к началу
 Заголовок сообщения: Re: Free3d - трехмерный лабиринт
СообщениеДобавлено: Пн фев 21, 2011 11:03 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
так что я думаю что ядро дергать не стоит, оно, имхо, все правильно делает. а то, если окно всегда будет знать что с мыщью творится - можно будет написать мышьлоггер зловредный, что не есть хорошо.

Кстати да, при потере фокуса окна или выходе из приложения тоже должен срабатывать пункт 2 из предыдущего поста. Возможно, даже вместо специальной горячей клавиши (что будет компенсировано возможностью нажать кнопку "виндовз", что приведет к сбросу фокуса).

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Вернуться к началу
 Заголовок сообщения: Re: Free3d - трехмерный лабиринт
СообщениеДобавлено: Пн фев 21, 2011 11:08 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
под горячей клавишей я понимаю не общесистемную, а внутреннюю...
/сорри что пишу не в один пост, беспокоюсь за получающих сообщения через rss/

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 30 сообщений ]  На страницу 1 2 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB