Мы используем файлы cookie, чтобы упростить навигацию на этом сайте. Если вы даете свое согласие на использование файлов cookie и обработку ваших персональных данных, нажмите «Принимаю».

Не работает функция .compile

Домой Форумы Для программистов Не работает функция .compile

Просмотр 15 сообщений - с 1 по 15 (из 19 всего)
  • Автор
    Сообщения
  • #18013
    quasar
    Customer

    Пытаюсь предзагрузить в буффер сцену через метод .compile, через js файл или через пазлы – не работает. Делал по этому описанию – https://vk.com/away.php?utf=1&to=https%3A%2F%2Fwww.soft8soft.com%2Freply%2F12342%2F
    В чем может быть проблема?

    https://inpretium.com - интерактивные решения

    #18017
    kdv77kdv
    Участник

    как именно не работает? выдает ошибку? ничего не происходит? побольше конкретики…

    #18018
    quasar
    Customer

    Не подгружает в буфер геометрии ничего и в шейдерный буфер тоже. Т.е. просто ничего не делает.

    https://inpretium.com - интерактивные решения

    #18019
    kdv77kdv
    Участник

    Хм, у меня, вроде, работает. Но особого толку не вижу. Единственное, что заметно, так это удвоение пользовательских материалов в списке Materials and Shaders, что не могу назвать хорошим явлением )))

    Вложения:
    Вы должны войти для просмотра вложений.
    #18021
    quasar
    Customer

    А толк должен быть. У меня скролл приложение, и объекты появляющиеся в кадре просаживает ФПС на доли секунд подгружаясь в буфер. Поэтому мне нужно загрузить их сразу.

    https://inpretium.com - интерактивные решения

    #18022
    kdv77kdv
    Участник

    .compileAsync работает. через нее все материалы компилятся в 4.2.0пре1. срабатывает при загрузке приложения и при каждом append scene. нюанс в том, что функция срабатывает и без дополнительных телодвижений со стороны юзера (собсно, так и должно быть), еще до визуального появления объектов на сцене. так что шейдеры, присутствующие в сцене на момент загрузки, и так все скомпилированы до момента отображения сцены…

    https://v3d.net/adf
    тут по логу можно посмотреть в какой момент срабатывает функция…

    #18023
    quasar
    Customer

    Geometry buffer все равно не работает.. у меня единственный в сцене объект в 20к трисов. Меньше не вариант. И он изначально не в кадре при старте приложения. И вот в момент появления этого объекта происходит лаг/просадка ФПС. Но после этого объект записывается в буфер и более лага не происходит до перезагрузки приложения.

    https://inpretium.com - интерактивные решения

    #18024
    kdv77kdv
    Участник

    Geometry buffer все равно не работает.

    а должен? функция только материалы компилит, а не геометрию, как и заявлено в документации…

    #18025
    quasar
    Customer

    Окей, да, не внимательно прочитал. Тогда вопрос, как записать объект в буфер геометрии при старте приложения?

    https://inpretium.com - интерактивные решения

    #18026
    kdv77kdv
    Участник

    на само приложение можно глянуть?

    #18027
    quasar
    Customer

    Нет, не могу распространять.
    Приложение по механике простейшее. Поставьте объект в 20-30к трисов и отверните от камеры. Запустите на мобильном. При попадании объекта в камеру будет лаг. Отключение frustrum тоже не влияет на это,если что.

    https://inpretium.com - интерактивные решения

    #18028
    quasar
    Customer

    Т.е. вопрос уже очень конкретный. Как подгрузить в geometry buffer объект или сцену вручную.

    https://inpretium.com - интерактивные решения

    #18029
    kdv77kdv
    Участник

    объект с текстурой? мож не в геометрии дело, а в подгрузке текстуры? 20к трисов – этого маловато, чтоб вызвать лаг при появлении объекта…

    https://www.soft8soft.com/docs/api/en/renderers/WebGLRenderer.html#initTexture

    #18030
    quasar
    Customer

    Все проверялось без шейдера тоже. Геометрия чистая, ровная. На мобильных лаг есть. Даже на ПК небольшая просадка. Дело тут не в мощности железа. А в обработке.
    Да и дело не в моем примере. Я просто хочу знать, как я могу буферизировать сцену изначально. И могу ли я вообще это делать)
    Потому, как в объект может быть и более чем в 20к.
    Я так понимаю, что ответа вы не знаете. Спасибо тогда за уделённое время. Открыли мне глаза на то, что эта функция буферизирует только шейдеры

    https://inpretium.com - интерактивные решения

    #18031
    kdv77kdv
    Участник

    элементарно: отключи рендеринг и покажи камере ВСЮ сцену (или только проблемные объекты), потом верни камеру в исходное положение и включи рендеринг…

Просмотр 15 сообщений - с 1 по 15 (из 19 всего)
  • Для ответа в этой теме необходимо авторизоваться.