![]() |
Ответ: Clear Engine (Понятный движок)
|
Ответ: Clear Engine (Понятный движок)
Цитата:
Картинка нормальная - визуальный дизайн помогает делать графику лучше, сам моделил? ЗЫ: Вроде где то в начале темы был вопрос о том как сделать размытие гаусса быстрей? Есть альтернатива - pingpong. Смысл в том что создаешь две текстуры (оптимальный вариант 128х128 и 64х64) и перерисовываешь несколько раз (около 18 ) туда-сюда, линейная фильтрация размывает изображение. Только еще стоит обратить внимание на смещение (в статье этого нет непочему-то): вот когда тебе надо перерисовать из одной текстуры в другую обычно используют смещение на пол пиксела, чтобы тексель в пиксель попадал и изображение не размывалось - так вот в данном случае как раз не нужно этого делать чтобы изображение больше смазывалось, только оно будет постепенно уезжать вниз-вправо, поэтому его можно компенсировать через каждые 2 прохода (я так делал) или сразу после всех проходов. Вот я сам буквально на днях делал размытие для блума в двух вариантах - гаусс (горизонтальный/вертикальный) с ядром в 7 семплов и текстурами 128х128 и вот такой пингпонг - разница почти не заметна, а выйгрышь по скорости на слабых платформах будет. Недостаток пингпонга: если изображение стратает большим количеством горизонтальных и вертикальных контрастных линий то будет заметна пикселизация, увеличение количества проходов ситуацию не спасет, и вообще пингпонг очень консервативен - если изменить разрешение таргетов/текстур или изменить кол-во проходов то изображение в большинстве случаев только хуже становится. Однако из источника выше говорят что даже в crysis использовали - очень хорошо настроено было. |
Ответ: Clear Engine (Понятный движок)
Цитата:
|
Ответ: Clear Engine (Понятный движок)
Модельки мои
|
Ответ: Clear Engine (Понятный движок)
Цитата:
|
Ответ: Clear Engine (Понятный движок)
Цитата:
|
Ответ: Clear Engine (Понятный движок)
Цитата:
Но вобщем смысл понял, буду разбираться в opengl, тогда в той статье все верно. В любом случае какой инструментарий предоставляется с тем и приходится работать... :( Кстати, d3d9 еще актуален? Например для xp или там для vista без сервис пака, если считать что у меня нет dx10, только 11 и 9? |
Ответ: Clear Engine (Понятный движок)
А все я разобрался :)
Да пиксел ( 0, 0 ) должен по идее указывать на координату 0.5f / width, 0.5f / heigth, а он на самом деле указывает на 0.0f, 0.0f, так что он по верхнему левому углу позиционируется. |
Ответ: Clear Engine (Понятный движок)
Вложений: 2
Запилил видео где бегают курочки
http://rutube.ru/video/e6a77187383e3...12ca90dafdbcb/ На саму модель потратил около 4х часов (( lowpoly, учусь пока код для сцены в неск строк Код:
void ceMain(){ 4 часа еще на волка потратил |
Ответ: Clear Engine (Понятный движок)
Запилил моушены. Это заданный последовательный набор движений объекта на сцене. Впринципе не только объекта сцены, в моушен положить можно что угодно.
В сцене хранится MotionDispatcher, в нем можно создавать нити MotionThread, путем ручного создания или загрузки из xml файла. Все нити работают асинхронно. В каждой нити хранится список действий Motion, которые воспроизводятся поочереди, одно действие может хранить несколько в себе. К нити можно присвоить объект MotionObject, тогда он будет передаваться в контексте Motion. Пример: Я хочу что-бы волк шел потом шел и поворачивал, затем бил лапами и шел дальше, и так бесконечно. Как это сделать. По дефолту у нас нет реализации моушенов, их надо запилить. (в дальнейшем подумаю над стандартными) Код:
class MotionMove : public ceMotion, public ceMotionConstructor{ Все классы нужно зарегистрировать под каким-то именем я буду называть это имя класса в xml файле Код:
engine->scene()->motionDispatcher()->registerMotionConstructor("MotionMove", std::shared_ptr<MotionMove>(new MotionMove)); Теперь как загрузить нить. Пример xml файла Код:
<cet> Если наш моешен должен выполнять одновременно несколько действий, например ходьба и поворот, то нам в моушен нужно вложить несколько моушенов, причем атрибут together отвечает за то, как будут выполняться моушены, по очереди или сразу все. Теперь как загрузить этот файл в коде программы: Код:
m_motionThread = m_wolf->parentScene()->motionDispatcher()->loadMotionThread("wolf_motion.cet"); Ну как-то так |
Ответ: Clear Engine (Понятный движок)
Когда речь идёт о "простом" или "удобном" движке, то речь идёт о самом приятном и "гладком" пути обучения для программиста, и добавление абстракций подобных Motion, только усложняет этот процесс. Заместо того чтобы разраб изучал топик и сам начинал мыслить как разраб, разные решения пытаются предлагать всякие абстракции, типо помогая разрабу, на самом деле лишь сбивает и тормозит.
|
Ответ: Clear Engine (Понятный движок)
Цитата:
Цитата:
Цитата:
|
Ответ: Clear Engine (Понятный движок)
Цитата:
|
Ответ: Clear Engine (Понятный движок)
Цитата:
|
Часовой пояс GMT +4, время: 00:05. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot