Войти
ПрограммированиеФорумГрафика

Все об устройстве и отрисовке сцены (7 стр)

Страницы: 16 7 8 911 Следующая »
#90
17:21, 1 мая 2016

innuendo
> Это паттерн visitor, при обходе элементов создаётся массив renderObject - при
> этом можно проверить на повтор геометрии
Что, если массив не сортирован по моделям?
Что, если нам нужно отсортировать перед рендерингом объекты по расстоянию?

> Есть другие варианты?
Иметь централизованный рендерер, который сможет максимально эффективно отрисовать конкретный тип объектов.
Рендерер, который нарисует меши с инстансингом, а полупрозрачные с сортировкой. Другой рендерер, который нарисует террейн с тесселяцией. Третий, что как-то там нарисует партиклы.


#91
17:27, 1 мая 2016

innuendo
> Внутри applyPass сделать проверку на повторение геометрии ?
да уж. Уровень "изучения" демок и панты на форуме дает о себе знать. Иди читай книги и пиши 3D движок, пару лет подебажишь на разных платформах, все может станет понятно.
Ах да, можешь не повторяться не обязательно что-бы результат собственного движка использовался в играх. Умение разбираться в архитектуре движков, через опыт разработки своего, это очень большой плюс для тех кто пишет игры на готовых инструментах.
>Давай, сделай или переделай демку про истансинг что-ли
Зачем ? я и так реализовал инстансинг, тоько не на уровне демок из SDK. А подправить демку SDK это удел прогеров кубиков и диванных теоретиков обосрашихся уже по этой теме на форуме.
bool
> ну так-то иннуендо прав) довольно часто в реальной жизни хочется как в статье,
> компоненты, орхетектура. А на самом деле сделать продукт нужно вчера. И там уже
> не особо-то орхетектурят.
Ты наверное не понял, иннуенда постоянно меня цепляет, причем зачастую в тех вопросах, где он полный нуль. Я всего-лишь отвечаю :)
-Eugene-
> Что, если нам нужно отсортировать перед рендерингом объекты по расстоянию?
Да по расстоянию это совсем просто, как минимум еще прозрачность и т.д.
Ждем ответа от великого!

#92
17:28, 1 мая 2016

-Eugene-
> Что, если массив не сортирован по моделям?
> Что, если нам нужно отсортировать перед рендерингом объекты по расстоянию?

Всё в контексте делается

-Eugene-
> ендерер, который нарисует меши с инстансингом, а полупрозрачные с сортировкой.
> Другой рендерер, который нарисует террейн с тесселяцией. Третий, что как-то там
> нарисует партиклы.

И сколько таких рендереров ?

#93
17:32, 1 мая 2016

Andrey
> Зачем ? я и так реализовал инстансинг, тоько не на уровне демок из SDK.

молодец, а я его реализовал когда ты о чём только читал :)
всё ? или ещё будешь бухтеть ?
что ты не поделился результатами на NV ?

> Иди читай книги и пиши 3D движок

В каких игровых проектах он использован ? Твоя подделка это движок ?

#94
17:34, 1 мая 2016

Andrey
> Ты наверное не понял, иннуенда постоянно меня цепляет, причем зачастую в тех
> вопросах, где он полный нуль

Ещё раз напомнить про HOQ ? :)

#95
17:35, 1 мая 2016

Andrey
> да уж. Уровень "изучения" демок и панты на форуме дает о себе знать. Иди читай
> книги

Ну давай, покажи свой уровень

#96
17:37, 1 мая 2016

innuendo
> Жаль. Очень хочется послушать за практику на коммерческих проектах
В Unreal Engine 1 базовый класс - Actor - делал всё и ещё немного. Он издавал звуки, он же излучал свет (Light был просто наследником Actor со спрайтом факела) и чего он только не делал.
В Unreal Engine 3 он, с одной стороны, больше не светился и, по-моему, даже не звучал; зато на него повесили физику. Ага, в самый базовый класс.
В Unreal Engine 4, напротив, он больше не делает ничего, кроме сетевой репликации и тиканья. Вся работа висит на компонентах. Нужно нарисовать модель? Прикручивайте StaticMeshComponent. Нужен свет? PointLightComponent. Есть, конечно, актёр PointLight, но это просто Actor со встроенным светом.
Летящая ракета - это целое дерево компонентов. Модель - отдельно, звук - отдельно, динамический свет - отдельно, система частиц - отдельно, капсула для коллизий - отдельно, а у некоторых ракет даже есть отдельный CameraComponent.
А у самого Actor даже своей позиции нет, вместо этого он пользуется позицией корнегого TransformComponent (от которого наследуется всё, что имеет положение в мире).

#97
17:41, 1 мая 2016

Delfigamer

Ты правда думаешь, что я этого не знаю ?

> вместо этого он пользуется позицией корнегого TransformComponent (от которого
> наследуется всё, что имеет положение в мире).

От MovementComponent ?

#98
17:48, 1 мая 2016

innuendo
>всё ? или ещё будешь бухтеть ?
че разозлился? иди опять в запой в свою глушь может поможет.
> Ещё раз напомнить про HOQ ? :)
Еще раз напомнить про инстансинг, про деревья? про импорт ? :).

#99
17:53, 1 мая 2016

Andrey
> че разозлился? иди опять в запой в свою глушь может поможет.

Мне на тебя злится ? Слишком много о себе думаешь.

> Еще раз напомнить про инстансинг,

Оk. Ошибся - Не вендоры рекомендуют, а вендор. Так устроит ?

> про деревья? про импорт ?

Что про деревья и импорт ?

#100
17:59, 1 мая 2016

innuendo
> И сколько таких рендереров ?
Сколько потребуется.

> Всё в контексте делается
Т.е. контекст хавает все, что в него навалили, и разгребает?
Таким образом контекст содержит всю логику рендерера?
Причем не всю логику, а только ту часть, что не вместилась в логику объекта.

#101
18:00, 1 мая 2016

-Eugene-
> Т.е. контекст хавает все, что в него навалили, и разгребает?
> Таким образом контекст содержит всю логику рендерера?

Контекст может сортировать по метериалам и тд. А Renderer уже вызывает GAPI

#102
18:18, 1 мая 2016

innuendo
ГАПИ второстепенно. Я пытаюсь понять логику.
Ну, я ощутил структуру сцены.
Значительный недостаток пока вижу один - визитор обходит объекты по одному, поэтому любая групповая обработка объектов делается костылями через контекст.
Специализированный рендерер может делать все напрямую, владея коллекцией объектов в удобном формате.
И любой новый тип объекта придется протягивать через контекст.
А в чем профит такого подхода?

#103
18:23, 1 мая 2016

-Eugene-
> обработка объектов делается костылями через контекст.

Что значит костылями ? Это такое слово когда что-то не нравится ?

> А в чем профит такого подхода?

Это классика.

> И любой новый тип объекта придется протягивать через контекст.

Не надо сюда впутывать ECS

#104
18:33, 1 мая 2016

innuendo
> Это классика.
А кроме апелляции к возрасту?

> Что значит костылями ? Это такое слово когда что-то не нравится ?
Если у тебя есть контейнер и ты работаешь с ним, как с контейнером, это нормально.
Если ты итерируешь по элементам, чтобы изнутри построить еще один контейнер и работать уже с ним - это костыль.

Страницы: 16 7 8 911 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.