Перейти к статье
NeuraCoreВики пользователя
← Назад к главе
Окно аватара

Увидеть регион в 3D

Вкладка 3D-мир рисует регион вместо того, чтобы перечислять его. Она выключена, пока вы не нажмёте Рендер.

Рендер и остановка рендера

При загрузке новых сеток хранилище геометрии теперь учитывает предел графических буферов, предотвращая аварийное завершение в сложных сценах. Геометрия сверх доступного объёма всё ещё может не отображаться.

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

Сетчатые тела могут отображаться при задержке данных о прикреплённых объектах. Поворот с клавиатуры начинается плавно и достигает полной скорости через четверть секунды.

После телепортации ресурсы загружаются из региона назначения, а при заполнении кэша освобождается место. Текстуры аватаров могут восстанавливаться через другой путь загрузки; повреждённые анимации в кэше загружаются заново. Поверхности PBR сохраняют центр скриптового вращения, а неметаллические материалы получают отражения окружения. Объекты animesh теперь воспроизводят анимации региона на собственных скелетах. Отражения интерьеров и расширенные ограничения animesh пока реализованы не полностью.

Назначения движения вперёд и назад в виде поменяны местами. Память геометрии растёт для видимой сцены и освобождает старые формы, прежде чем они вытеснят текущие объекты. Исправлены ориентация и поворот текстур; фильтрованные изображения размером 256 пикселей заменяют прежние 128. Диффузные текстуры сохраняются на гранях с метаданными материала.

Клавиша движения в захваченном виде останавливает следование и патруль и передаёт ручное управление. Automation, Python и ИИ делают это через take_manual_control. Диагностика и параметры прокручиваются в пределах экрана; кнопка над текстом копирует весь отчёт.

Наведение указателя на вид оставляет навигацию с клавиатуры в интерфейсе. Щёлкните для управления, затем щёлкните снаружи или дважды нажмите Escape для возврата клавиш. Поворот с клавиатуры сохраняет скорость при снижении предела кадров. Неудачные загрузки форм и поверхностей повторяются после паузы. Automation сообщает о захвате клавиатуры и общих счётчиках через get_world_render_status.

Откройте вкладку 3D-мир и нажмите Рендер. Вид займёт всю вкладку и будет следовать за окном при изменении его размера. Кнопка Остановить рендер закрывает его снова: ничего не рисуется и видеокарта перестаёт работать для NeuraCore. Выбор запоминается для каждого аватара, поэтому окно, оставленное с рендером, откроется с рендером.

Вид, на который вы смотрите, рисуется непрерывно, с заданным вами пределом кадров. Одновременно рисуется только один вид, сколько бы окон ни было открыто. Нарисовать регион, это самое дорогое, что делает NeuraCore, и два окна сразу боролись бы за одну видеокарту ради картинки, на которую вы всё равно смотрите в одном месте. Остальные показывают Паузу и сохраняют своё место; щёлкните по одному из них, и оно возьмёт кадры себе.

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

Забрать управление

Щёлкните внутри вида, чтобы забрать стрелки, Page Up, Page Down и Escape. Пока вид держит их, они работают там и больше нигде: одно нажатие уже не может одновременно вести вашего аватара и двигать выделение в списке, как это было раньше. Всё остальное работает как обычно, мышь в том числе.

Щёлкните вне вида, чтобы вернуть их, или нажмите Escape дважды. Одного раза намеренно недостаточно: Escape также отменяет то, что вы делали, и случайное нажатие не должно молча отдавать клавиши обратно. Строка над видом сообщает, в каком вы состоянии.

Перемещение

Стрелки перемещают вашего аватара в мире так же, как вкладка Movement: вверх и вниз идут вперёд и назад, влево и вправо поворачивают. Page Up поднимает в воздух, Page Down опускает. Перетаскивание мышью осматривает окрестности вокруг аватара, колесо приближает и отдаляет камеру; ни то, ни другое не двигает аватара и никем больше не видно.

Параметры

Кнопка Параметры под видом хранит параметры отрисовки, изначально выбранные так, чтобы скромной машине было легко: дальность отрисовки 128 метров, 2048 рисуемых объектов, детализация аватаров 1, коэффициент детализации 4, поле зрения 60 градусов и 60 кадров в секунду. Там же затенение, опорная сетка земли, таблички с именами и Поверхности, а кнопка возврата значений по умолчанию возвращает всё на место.

Уменьшите дальность отрисовки, число объектов или предел кадров, если вид идёт неровно. Увеличьте коэффициент детализации ради более точных моделей и более круглых поверхностей. На тарифицируемом соединении выключите Поверхности: объекты будут нарисованы тонированными телами, ничего не загрузится, а их формы останутся прежними. Каждый выбор хранится для своего аватара и остаётся к следующему открытию окна.

Свет: небо и вода

Рядом с Параметрами есть кнопка Свет, и в ней те же наборы окружения, что предлагает Firestorm. Небо может быть По умолчанию, Общее окружение, Nam's Optimal Skin 1 или Nam's Optimal Skin 2. Вода может быть По умолчанию, Общее окружение или Glassy. Выбранное применяется сразу ко всему виду: предметы вокруг вас, жители, новые блестящие материалы, небо позади всего и море освещаются им вместе.

По умолчанию, это тот свет, которым NeuraCore пользовался всегда, поэтому пока вы не выберете другое, ничего не изменится. Два набора Nam, это то, чем пользуются фотографы, чтобы рассматривать скин: почти сплошной мягкий свет со всех сторон и почти никакого солнца, так что лицо сохраняет один и тот же тон при любом повороте. Вода Glassy почти гладкая и по большей части зеркальная, тогда как вода По умолчанию темнее и беспокойнее.

Общее окружение, это собственное окружение региона. Если регион его публикует, NeuraCore рисует его и следует суточному циклу по мере того, как идёт время региона, так что закат происходит у вас на глазах. Если регион не публикует ничего, а так бывает часто, вместо него рисуется набор По умолчанию, и панель сообщает, какой из двух случаев наступил, чтобы вы не гадали, сработало ли это.

Суточный цикл и Личное освещение перечислены, но неактивны: они ещё не сделаны. Ваш выбор неба и воды хранится для каждого аватара и снова будет на месте при следующем открытии окна, а Automation, Python и контроллер ИИ могут задать его через set_world_render_preferences.

Что рисуется, а что нет

Вид показывает то, что регион сообщил NeuraCore: объекты вокруг вас в их настоящем положении, размере, повороте и форме, и каждого жителя, положение которого известно, включая вашего собственного аватара. Загруженный меш рисуется как меш, а скульптованный прим, как его скульпт; и то и другое подгружается в фоне с уровнем детализации по видимому размеру, и каждая грань несёт ту текстуру, оттенок, повторы и свечение, которые у неё есть на самом деле. Регион приходит за несколько секунд: пока не пришли собственные данные объекта, он остаётся простой формой, а строка под видом сообщает, сколько ещё в пути.

Прозрачные поверхности теперь смешиваются с фоном, а маски вырезания используют порог материала. Вода региона отображается на переданном уровне моря. Аватары используют модели тела Linden, запечённые текстуры кожи и одежды и надетые mesh-вложения, включая Bake on Mesh. Детализация аватаров выбирает подробность модели вместо условных фигур. Рельеф виден, но материалы земли ещё не завершены. Небо, свет и вода теперь задаются кнопкой Свет и могут следовать собственному окружению региона. Диагностика и get_world_render_status показывают уровень воды, материалы и наличие внешнего вида аватаров.

Стрелка вверх двигает вперёд, стрелка вниз назад. Аватары теперь воспроизводят анимации, сообщённые регионом: тело и вложения со скелетом сгибаются вместе с суставами, а жёсткие вложения следуют за костью крепления. Анимации загружаются в фоне, сохраняют время при повторных обновлениях, зацикливаются, смешиваются по приоритету и плавно затухают при остановке. Воспроизведение продолжается при неподвижной камере и соблюдает ограничение кадров. Диагностика и get_world_render_status показывают текущие анимации и счётчики загрузки. Ползунки формы тела и ограничения контакта ног с поверхностью пока не применяются.

Когда регион не сообщает ни одной анимации, с которой можно нарисовать жителя, NeuraCore воспроизводит встроенную, чтобы никто не стоял с разведёнными руками, скользя по земле. Какая именно, определяется тем, что житель делает: стоит, идёт, бежит, висит в воздухе, летит, поднимается, опускается, поворачивается или сидит, по состоянию сидения, высоте над поверхностью и скорости, о которых сообщает регион. Настоящая анимация вступает в силу, как только загрузится. Диагностика и get_world_render_status показывают, сколько жителей кадр нарисовал таким образом.

Встроенная анимация теперь проигрывается под той, которую сообщил регион, а не только тогда, когда регион не сообщил ни одной. Житель с animation overrider поэтому продолжает идти, бежать и лететь, пока overrider переключается между собственными анимациями, вместо того чтобы на мгновение застыть с разведёнными руками. Настоящая анимация по-прежнему забирает каждый сустав, который она двигает, а встроенная заполняет только остальное. Кожа, волосы и глаза теперь рисуются как вырез, а не как вуаль: внутренняя часть головы больше не просвечивает сквозь лицо, а одежда не мерцает на теле.

Анимации, запущенные скриптом, а именно так работает надетый animation overrider, теперь воспроизводятся. NeuraCore запрашивал их у региона под именем, на которое тот не отвечает, поэтому все они отклонялись, и каждый житель, включая вас, возвращался к встроенным ходьбе и стойке. Житель с overrider теперь движется так, как его видят все остальные, и то же касается других жителей в поле зрения. Анимация, которую по-прежнему не удаётся получить, записывается в журнал в первый раз, а диагностика считает такие случаи.

Жители теперь рисуются в той форме, которую действительно носят: лицо, телосложение, рост и пропорции, а не нейтральная фигура, из которой получается любая форма и у которой открыт рот. Это особенно важно для жителя в mesh-теле, вся форма которого задаётся скелетом под ним. Настройка высоты, с помощью которой житель встаёт на нужный уровень, применяется тоже: к нему, к надетому на нём и к его табличке с именем. Прозрачные поверхности оцениваются так же, как в официальном клиенте: стекло просвечивает, а не выглядит сплошным, и еле заметная поверхность остаётся заметной, а не исчезает. Если житель всё ещё рисуется в форме по умолчанию, раздел Диагностика показывает, сколько жителей в поле зрения прислали свою.

Поверхности, сделанные на новых материалах, тех, что имеют блеск и фактуру, а не плоскую картинку, теперь так и рисуются. NeuraCore читает весь материал: насколько поверхность металлична и шероховата, мелкий рельеф её карты нормалей и свет, который она излучает сама. Это работает везде, где такой материал использован: и в мире вокруг вас, и на том, что носят жители. Более старые поверхности не меняются.

Поверхность, сделанная на новых материалах, теперь рисуется с теми настройками, которые ей действительно задал создатель, включая прозрачность. Эти настройки не входят в сам материал, который общий и неизменный: они передаются отдельно, для каждой грани, и NeuraCore теперь их читает. Стекло, сделанное полупрозрачным, таким и выглядит, а не сплошным.

Объекты, которые оживляет скрипт, теперь движутся: бегущая вывеска, экран, проигрывающий кадры, табло, вращающееся на месте. Ходьба тоже стала плавной: фигура теперь следует за позицией, о которой сообщает регион, а не перескакивает к ней несколько раз в секунду. Как и тело жителя, позу которому теперь задаёт ваша видеокарта, а не процессор, так что оживлённый регион обходится намного дешевле прежнего и все в нём движутся плавно. При запуске с --headless окна нет, поэтому нет и вида: вкладка не существует, а функции Automation, которые ею управляют, отказывают и сообщают об этом.

Если вид пуст или медленный

Под кнопкой «Параметры» есть раздел «Диагностика». Он показывает одним блоком, который можно скопировать: какой отрисовщик и какой графический адаптер используются, сколько кадров в секунду интерфейс выдаёт на самом деле, какая часть региона отрисована и какая пропущена, сколько заняла сборка сцены, какие службы ресурсов опубликовал регион, сколько форм и поверхностей готово, ожидается и отклонено, последний отказ словами самой службы, и у кого сейчас клавиатура.

Этого достаточно, чтобы различить обычные случаи. Регион, не опубликовавший службу ресурсов, не может ничего загрузить. Все поверхности отклонены: это служба отказывает в запросах, а не медленное соединение. Объекты, нарисованные простыми формами, и ничего в ожидании: регион ещё не прислал их форму. А низкая частота кадров при быстрой сборке сцены означает остальной интерфейс, а не отрисовку.