forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты C++ (http://forum.boolean.name/forumdisplay.php?f=56)
-   -   irrlicht - успехи и не очень... (http://forum.boolean.name/showthread.php?t=17693)

Skaner 30.12.2012 12:22

irrlicht - успехи и не очень...
 
Вложений: 6
Что ж, занялся недавно изучением нового движка, теперь требуется протестировать нехитрую убивалку времени.

Тип: 3D
Жанр: Пока не знаю, что-то с симуляторами связанное
Платформа: Пока Windows, позже Linux (возможно и Mac)
Среда разработки: Code::Blocks
3D движок: Irrlicht
Звук: OpenAL (пока не реализован)
OpenSource

Скриншоты:
Старая версия





Новая версия:




Логотип (beta):

Управление: стрелки влево/вправо - движение ракетки, вверх вниз - сила удара (см. на синюю стрелку).

Скачать исходник и ".exe": http://gs-pt.ru/lps_temp/Tennis.rar

pepel 30.12.2012 13:30

Ответ: irrlicht - успехи и не очень...
 
а тени там функцией включать можно или самому через шейдер?

Skaner 30.12.2012 13:42

Ответ: irrlicht - успехи и не очень...
 
Без шейдеров тени включаются так:
объект->addShadowVolumeSceneNode();
После этого объект отбрасывает тени на все, даже сам на себя (если модель сложная).

Skaner 30.12.2012 13:45

Ответ: irrlicht - успехи и не очень...
 
Вот элементарная функция, которой я создаю теннисный мячик:
Код:

IAnimatedMeshSceneNode* CrTen()
{
 IAnimatedMeshSceneNode* sphere = smgr->addAnimatedMeshSceneNode(smgr->addSphereMesh("",2,32));
 sphere->setMaterialTexture(0, driver->getTexture("gfx/tennis.bmp"));
 sphere->addShadowVolumeSceneNode();
 sphere->setPosition(vector3df(0,15,0));
  sphere->setMaterialFlag(EMF_ANTI_ALIASING,1);
  sphere->setMaterialFlag(EMF_ZBUFFER,1);
 return sphere;
}

Используется функция так: IAnimatedMeshSceneNode* ten = CrTen();
После этого с объектом "ten" можно работать как с обыкновенным, если провести аналогию с Blitz3D, entity...

HolyDel 01.01.2013 22:10

Ответ: Убивалка времени или "Мини Теннис"
 
win7 64bit
i7 3770, 16GB RAM, GTX 680 4GB VRAm

работает очень плохо. каждые пол секунды все замирает на 5 секунд.
в консоль при этом пишется resizing window 640x480

Skaner 01.01.2013 22:33

Ответ: Убивалка времени или "Мини Теннис"
 
Странно, вот именно этой записи в консоли я не ожидал...(

Skaner 01.01.2013 22:40

Ответ: Убивалка времени или "Мини Теннис"
 
Возможно как-то неверно обрабатывается команда system("pause")... Ибо инициализация окна в цикле не работает, и зависаний с этой записью в консоль не может быть больше одного, да и на мощном компьютере... На моем ноутбуке таких проблем нет, ноут старый...

St_AnGer 01.01.2013 23:06

Ответ: Убивалка времени или "Мини Теннис"
 
на нэтбуке проверил, всё ооочень медленно работает, но зависаний никаких нет. Шарик прыгает слишком часто, а должен прыгнуть максимум два раза от стола. Конфиг в подписи (Ёжик)

Arton 02.01.2013 03:16

Ответ: Убивалка времени или "Мини Теннис"
 
Ничего не тормозит и не виснет. Win7 32bit, Core 2 Duo 1.86Ghz, 3Gb RAM, GF GTS 450 1Gb
Шарик так и должен прыгать как будто живой? Из-за постоянного вращения играть неудобно, смотреть на мини карту тоже неудобно.

pepel 02.01.2013 06:24

Ответ: Убивалка времени или "Мини Теннис"
 
хз у меня лагает жутко.. на глаз фпс 4
проц 4х ядерный видео гфорс 9600

moka 02.01.2013 06:34

Ответ: Убивалка времени или "Мини Теннис"
 
Не лагает.
Консоль не держит русского, следственно одни вопросики - не используй русский в разработке, это не профессионально и не совместимо с большей частью компьютерного мира.

Топик не думаю что корректен к данной наработке. Это "наработки настольного тенниса на irrlicht".
Советую переименовать, иначе ты сбиваешь людей с толку.

Skaner 02.01.2013 10:50

Ответ: Убивалка времени или "Мини Теннис"
 
Переименовать тему не могу.
Насколько я знаю setlocale(LC_ALL, "Russian"); должен делать доступным русский в консоли, ну да ладно с этим разберусь с помощью GUI.
Но вот то, что на мощных компах лагает а на слабых - нет, для меня пока загадка... Максимальный FPS поставил 300, чтобы никаких особых замедлений не было, но если работает "ооочень медленно", подниму еще выше максимальное значение.
Прыжки шарика подшаманю, мне товарищ говорил, что можно сколько угодно делать ударов об стол, ну и добавлю реалистичности прыжкам.

St_AnGer 02.01.2013 11:37

Ответ: Убивалка времени или "Мини Теннис"
 
Цитата:

Сообщение от Skaner (Сообщение 248066)
Прыжки шарика подшаманю, мне товарищ говорил, что можно сколько угодно делать ударов об стол, ну и добавлю реалистичности прыжкам.

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

зыЖ Тормозит скорее всего из за кучи логики (код не смотрел, каюсь), или из за мнимой "крутой" графики. Нэтбуки вообще хреново дружат с какими либо тенями (intel GMA не самый хороший образец видеокарты).

Skaner 02.01.2013 11:53

Ответ: Убивалка времени или "Мини Теннис"
 
Не, я не пытался сделать какие-либо крутые графические навороты, лишь стандартные тени и все, даже физики, как таковой, нет, лишь геометрия.
Правила почитаю обязательно, как-то и не задумывался над этим, поверил товарищу, зря, видимо. Логика в игре есть, но не "монстроподобная", лишь подсчеты ударов, просчеты отскоков и геометрия несложная... Ну посмотрим, что получится упростить. Спасибо большое!

St_AnGer 02.01.2013 12:23

Ответ: Убивалка времени или "Мини Теннис"
 
Я назвал две самые распространенные причины замедленной работы на очень слабых ПеКа (сам так раньше делал, пока не начал стараться все проекты начинать на нэтбуке :) ). Может у меня просто физически оно работатьбыстро не может, как например приложения написаные с движком Ogre3d. Он просто хавает ресурсы нэтбука вникуда, и всё. Стационара под рукой нету увы, на нём бы ещё проверил.


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

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