由用户创建的信息 Grohot
13 April 2016 10:44
Спасибо, Иван. Добрался до машины. Результаты такие.
Слева на зеленом фоне результаты при выключенных тенях,
справа результаты при включенных тенях.
Сверху результаты при статичной сцене (статичная камера, нет никакой анимации)
Снизу результаты при клике мыши, по которому идет пикинг.
Действительно похоже, что сам пикинг не зависимо включены тени или нет отрабатывает за одинаковое время COLOR_PICKING + разные постпроцессинги видимо, вот и складывается 0.3-0.5сек. Когда же тени включены, то накладывается видимо еще задержка от отрисовки основной сцены.
Не скажу, что 0.2-0.3сек это быстро для пикинга. Но кроме того, хотелось бы понять куда копать, чтобы найти причину в целом тормозов сцены при включенных тенях. То есть хотелось бы из этой информации научиться доставать суть проблемы )
Хотя наверно самый простой вариант - это упростить сцену, уменьшить количество объектов, полигонов и снова посмотреть на цифры. Опытным путем так сказать )
Слева на зеленом фоне результаты при выключенных тенях,
справа результаты при включенных тенях.
Сверху результаты при статичной сцене (статичная камера, нет никакой анимации)
Снизу результаты при клике мыши, по которому идет пикинг.
Действительно похоже, что сам пикинг не зависимо включены тени или нет отрабатывает за одинаковое время COLOR_PICKING + разные постпроцессинги видимо, вот и складывается 0.3-0.5сек. Когда же тени включены, то накладывается видимо еще задержка от отрисовки основной сцены.
Не скажу, что 0.2-0.3сек это быстро для пикинга. Но кроме того, хотелось бы понять куда копать, чтобы найти причину в целом тормозов сцены при включенных тенях. То есть хотелось бы из этой информации научиться доставать суть проблемы )
Хотя наверно самый простой вариант - это упростить сцену, уменьшить количество объектов, полигонов и снова посмотреть на цифры. Опытным путем так сказать )
12 April 2016 22:49
Как можно запустить проект в просмотрщике сцен?
Сцена имеет немного мешей и вся логика прописана на самой html-странице в js. В том числе и размножение мешей до требуемого количества.
Т.е. если запустить просмотрщик из блендера в фаст превью, то по сути ж загрузится json сцены с малым количеством мешей, плюс никакой логики, а надо запустить в просмотрщике само приложение.
Цель, увидеть HUD-info. Может есть варианты увидеть его не в просмотрщике, а так же как при загрузке сцены можно указать show_fps=true, может и с hud-info так можно? (пока еще толком не знаю правда что за информация там и как ее оценивать, в документации по панели Tools & Debug как-то не очень подробно по-моему).
Сцена имеет немного мешей и вся логика прописана на самой html-странице в js. В том числе и размножение мешей до требуемого количества.
Т.е. если запустить просмотрщик из блендера в фаст превью, то по сути ж загрузится json сцены с малым количеством мешей, плюс никакой логики, а надо запустить в просмотрщике само приложение.
Цель, увидеть HUD-info. Может есть варианты увидеть его не в просмотрщике, а так же как при загрузке сцены можно указать show_fps=true, может и с hud-info так можно? (пока еще толком не знаю правда что за информация там и как ее оценивать, в документации по панели Tools & Debug как-то не очень подробно по-моему).
12 April 2016 12:03
11 April 2016 10:39
Всем привет.
Все-таки отрабатывает метод на слабых машинках с отключенными тенями 0.2-0.35сек.
Если включить тени, то вообще долго.
Т.е. медленный отклик от клика мыши, для быстрых игр очень критично, но даже и в обычной работе это подвисание очень заметно.
В ранних сообщениях говорилось, что это из-за сабрендерринга сцены.
Но если сцена статическая возможно ли сабрендеринг хранить как бы в кеше, чтобы по клику сцена не рендерилась, а сразу вычислялся нужный объект?
То есть отрисовали сцену и заодно сразу отрисовали ее в памяти для пикинга. Потом прошел пик и мы уже не рисуем, а сразу на этой модели в памяти вычисляем нужный объект.
Или например, вывести наружу для программистов возможность управления сабрендерингом для пикинга? (чтобы он сам мог рулить, что с этого момента сцену можно зарендерить для дальнейшего пикинга, при этом он должен идти асинхронно, и иметь признак завершенности, т.е. когда прошел пик, смотрим завершился ли сабрендеринг, т.е. есть ли готовая сабсцена, если есть, то быстрый вариант (уже без отрисовки), если нет, то такой как есть сейчас).
Или меш и вычисляется именно по ходу сабрендеринга?
Может есть возможность частичного рендеренига? Т.е. разбиваем сцену на квадраты, по какому квадрату кликнули только ту часть и рендерим дабы найти нужный объект?
Или например, чтобы в сабрендеринге для пикинга участвовали только объекты с выставленным селектбл свойством (тогда в частном случае меши можно окружить просто некими квадратами из одного полигона с селектбл-свойством, чтобы в сабрендеринге участвовали примитивные объекты для увеличения его скорости).
Так же было бы неплохо по-моему сделать, чтобы на этот сабрендереринг не влияли тени или был параметр, который бы их отключал, т.к. для пикинга тени по-моему не критичны, а между тем тормозов добавляют ощутимо. Ну и отключение теней в сцене для пользователя тоже было бы удобно по-моему (хотя можно создать две сцены одна с тенями, другая без).
Все-таки отрабатывает метод на слабых машинках с отключенными тенями 0.2-0.35сек.
Если включить тени, то вообще долго.
Т.е. медленный отклик от клика мыши, для быстрых игр очень критично, но даже и в обычной работе это подвисание очень заметно.
В ранних сообщениях говорилось, что это из-за сабрендерринга сцены.
Но если сцена статическая возможно ли сабрендеринг хранить как бы в кеше, чтобы по клику сцена не рендерилась, а сразу вычислялся нужный объект?
То есть отрисовали сцену и заодно сразу отрисовали ее в памяти для пикинга. Потом прошел пик и мы уже не рисуем, а сразу на этой модели в памяти вычисляем нужный объект.
Или например, вывести наружу для программистов возможность управления сабрендерингом для пикинга? (чтобы он сам мог рулить, что с этого момента сцену можно зарендерить для дальнейшего пикинга, при этом он должен идти асинхронно, и иметь признак завершенности, т.е. когда прошел пик, смотрим завершился ли сабрендеринг, т.е. есть ли готовая сабсцена, если есть, то быстрый вариант (уже без отрисовки), если нет, то такой как есть сейчас).
Или меш и вычисляется именно по ходу сабрендеринга?
Может есть возможность частичного рендеренига? Т.е. разбиваем сцену на квадраты, по какому квадрату кликнули только ту часть и рендерим дабы найти нужный объект?
Или например, чтобы в сабрендеринге для пикинга участвовали только объекты с выставленным селектбл свойством (тогда в частном случае меши можно окружить просто некими квадратами из одного полигона с селектбл-свойством, чтобы в сабрендеринге участвовали примитивные объекты для увеличения его скорости).
Так же было бы неплохо по-моему сделать, чтобы на этот сабрендереринг не влияли тени или был параметр, который бы их отключал, т.к. для пикинга тени по-моему не критичны, а между тем тормозов добавляют ощутимо. Ну и отключение теней в сцене для пользователя тоже было бы удобно по-моему (хотя можно создать две сцены одна с тенями, другая без).
11 April 2016 08:08
10 April 2016 15:35
Ну берём плоскость, делаем развёртку, накладываем на неё текстуру с машинкой и карту нормалей, смотрим на неё сверху. Так?Видимо, так. Только не знаю как именно это сделать )
Надо сделать плоский меш полностью повторяющий контуры вида машинки сверху?
Потом берем рендер машинки и делаем из нее текстуру и накладываем на эту плоскость-контур вида сверху? Или текстура делается из материала? (на меше-машинке есть только один материал). Можно даже упростить, просто не машинка, а просто сфера вид сверху.
10 April 2016 11:51
Например есть меш в виде маленькой машинки.
Камера ортогональная смотрит на нее всегда сверху.
В приложении главное быстрый отклик.
Поэтому хотелось бы свести этот меш-машинку буквально к картинке, но при этом, чтобы он оставался мешем.
То есть задача сделать легковесный меш буквально из одного полигона, представляющего собой силуэт вида сверху и наложить на него видимо текстуру рендера-материала, карту нормалей?
Или есть еще варианты?
Камера ортогональная смотрит на нее всегда сверху.
В приложении главное быстрый отклик.
Поэтому хотелось бы свести этот меш-машинку буквально к картинке, но при этом, чтобы он оставался мешем.
То есть задача сделать легковесный меш буквально из одного полигона, представляющего собой силуэт вида сверху и наложить на него видимо текстуру рендера-материала, карту нормалей?
Или есть еще варианты?
08 April 2016 22:57
Спасибо, Михаил, понял. Копаписат не прокатит ). Придется пытаться разбирать материал.
Но тогда не понятно как его можно редактировать? (ну чтобы играя как-то со свойствами пытаться понять как что работает). Открываю тот же bronze.blend, но при выделении меша в сцене закладки материала нет.
Ок. Пытаешься смотреть просто ноды, что-то отключить/подключить, а нельзя, будто файл только для чтения.
Но тогда не понятно как его можно редактировать? (ну чтобы играя как-то со свойствами пытаться понять как что работает). Открываю тот же bronze.blend, но при выделении меша в сцене закладки материала нет.
Ок. Пытаешься смотреть просто ноды, что-то отключить/подключить, а нельзя, будто файл только для чтения.
08 April 2016 17:59
Всем привет!
1. В отдельную папку положил:
- материал из библиотеки
- файлы текстур используемые в материале
- там же создал новый бленд файл с тестовым мешем
2. Прилинковал библиотечный материал, который лежит в этой же папке
3. Перепрописал ссылки на текстуры, на файлы текстур, которые тоже положил в эту же папку
4. После того, как прилинковал материал (бронза) в списке материалов появились:
L bronze и L noise_01_normal
Но добавить к мешу материалы такие точно как есть в исходном объекте не выходит.
Видимо не все до конца прилинковал, будто бы не хватает некого базового материала что ли.
Кубик получается просто зеленый, текстура ложится например на шар вообще коряво, будто не задан метод наложения, но его толком и не задать вроде как.
Кроме того, когда сохраняешь проект ощущение, что все эти привязки слетают, хотя пути вроде указываешь относительные.
Пробовал все это же проделать, не вытаскивая библиотечный файл материала из SDK - результат тот же.
В общем хотелось бы пример или более подробную инструкцию как использовать материал из библиотеки при чем желательно автономно (если это вообще реально), т.е. вытащить материал из библиотеки отдельным файлом, вытащить используемые им текстуры, как все это правильно прилинковать к новому проекту, чтобы все заработало )
Прицепил тестовый архив с бронзой.
ADD:
(в архиве беда - сам материал похоже тоже ссылается на другие файлы, потому просто так взять и скопировать один bronze.blend и его текстуры видимо не достаточно?
и вообще похоже, что не целесообразно пытаться вытащить все это из SDK, если все так повязано :))
==================================
Но попробовал прилинковаться прямо к
….\blend4web_sdk_free\blender\material_library\metal\bronze.blend в SDK - все равно не получается нормальной картинки на выходе.
Попробовал на меше добавить UV-развертку по дефолту, все равно:
1. В отдельную папку положил:
- материал из библиотеки
- файлы текстур используемые в материале
- там же создал новый бленд файл с тестовым мешем
2. Прилинковал библиотечный материал, который лежит в этой же папке
3. Перепрописал ссылки на текстуры, на файлы текстур, которые тоже положил в эту же папку
4. После того, как прилинковал материал (бронза) в списке материалов появились:
L bronze и L noise_01_normal
Но добавить к мешу материалы такие точно как есть в исходном объекте не выходит.
Видимо не все до конца прилинковал, будто бы не хватает некого базового материала что ли.
Кубик получается просто зеленый, текстура ложится например на шар вообще коряво, будто не задан метод наложения, но его толком и не задать вроде как.
Кроме того, когда сохраняешь проект ощущение, что все эти привязки слетают, хотя пути вроде указываешь относительные.
Пробовал все это же проделать, не вытаскивая библиотечный файл материала из SDK - результат тот же.
В общем хотелось бы пример или более подробную инструкцию как использовать материал из библиотеки при чем желательно автономно (если это вообще реально), т.е. вытащить материал из библиотеки отдельным файлом, вытащить используемые им текстуры, как все это правильно прилинковать к новому проекту, чтобы все заработало )
Прицепил тестовый архив с бронзой.
ADD:
(в архиве беда - сам материал похоже тоже ссылается на другие файлы, потому просто так взять и скопировать один bronze.blend и его текстуры видимо не достаточно?
и вообще похоже, что не целесообразно пытаться вытащить все это из SDK, если все так повязано :))
==================================
Но попробовал прилинковаться прямо к
….\blend4web_sdk_free\blender\material_library\metal\bronze.blend в SDK - все равно не получается нормальной картинки на выходе.
Попробовал на меше добавить UV-развертку по дефолту, все равно:
06 April 2016 22:26