Архитектура движка.Форум

Архитектура рендера. (data holder <-> render agent architecture) (комментарии)

Страницы: 1 2 3 4 5 6 7 Следующая »
#0
16:25, 7 янв 2006

Архитектура рендера. (data holder <-> render agent architecture) (комментарии)

Это сообщение сгенерировано автоматически.

#1
16:25, 7 янв 2006

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

З.С. топег коментариев не видел, тупо тыкнул кнопку коментировать

#2
17:08, 7 янв 2006

kas
По поводу врапера, основная  мысль - нафиг не нужен ибо в конце-концов будет представлять клон АПИ отсюда и лишний код - посмотри XEngine яркий пример такого подхода.
По поводу того, почему меш не должен себя рендерить, как ты представляешь сортировку по материалам?  сортировка Z front-to-back? правильная отрисовка альфа канала(опять же сортировка)? то есть для любой обработки на уровни множества мешей - нужна централизующая единица - рендер агент, для каждого типа объектов он свой.

#3
17:14, 7 янв 2006

xmvlad
>По поводу врапера, основная мысль - нафиг не нужен ибо в конце-концов будет
>представлять клон АПИ отсюда и лишний код - посмотри XEngine яркий пример
>такого подхода.
а как тогда хранить данные о вершинах, индексы? или хранить их в массиве а при рендере делать буффер?

#4
17:17, 7 янв 2006

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

#5
17:26, 7 янв 2006

kas
>мех тупо знает свои буфера, какой шейдер поставить и материал.

захотелось было мне отражений, преломлений, шадоумапных теней и так далее :)

#6
18:25, 7 янв 2006

KleMiX
Смотри статью Путь №4: каждый объект data holder хранит некоторые "данные" - материал, вертексный и индексный буффер и т.д, которые и отдает своему агенту при вызове -> render.

kas
> значицо так, отвечаю попорядку. врапер он нужен для мультиапи
Описанная архитектура идеально подходлит для мультиапишности/мультиплатформенности. Пользователь работает с интерфейсом Static_Mesh, от Static_Mesh наследуются Static_Mesh_OGL, Static_Mesh_D3D, Static_Mesh_PS2(нда, размечтался) :)
, каждый из них хранит кастумные данные (OGL - ИДЫ VBO, текстур, шейдеры, D3D - указатели на КОМ объекты IDirect3DVertexBuffer9 и т.д), потом вызывается object_3d->render() они сливают все эти данные конкретному рендер агенту - Static_Mesh_Render_OGL, Static_Mesh_Render_D3D, Static_Mesh_Render_PS2 :), которые уже в рамках конкретной платформы/апи производят необходимую обработку. Опять же, можно сделать рендеринг скелетки на GPU/CPU.

> а уж граф сцены сортирует там повсякому кулит и всякое делает
Опиши как будет происходить простейшая сортировка по материалам, только более-менее детально.

#7
18:32, 7 янв 2006

MiF
не вижу проблемы, отражения/преломления какое отношения к меху имеют то? он просто себя рисует, материалы шейдеры и всякое другое ставят уровнем выше, траблов никаких. чичас прочитал выше песал что мех знает шейдера и т.д. я не имел ввиду что они хардкодед :) просто на момент рисования он их знает (:
xmvlad
вот как раз твоя схема плодит ужоснах скоко кода, причом большая часть етой тупой копипаст вызовов апи.
про граф сцены я ещё не осознал для себя до конца. думаю как у шодана в презентации - топлевел ноды - шейдеры, потом тикстуры, патом всё остальное, илиже чуть в другом порядке.

#8
18:43, 7 янв 2006

xmvlad
>Смотри статью Путь №4: каждый объект data holder хранит некоторые "данные" -
>материал, вертексный и индексный буффер и т.д, которые и отдает своему агенту
>при вызове -> render.
тогда появляется вопрос насчёт мульти апи, зачем ему хранить VertexBuffer к примеру если апи на данный момент огл?
Но потом обьяснение:
>Описанная архитектура идеально подходлит для мультиапишности/мультиплатформенности. Пользователь работает с интерфейсом >Static_Mesh, от Static_Mesh наследуются Static_Mesh_OGL, Static_Mesh_D3D, Static_Mesh_PS2(нда, размечтался) :)
>, каждый из них хранит кастумные данные (OGL - ИДЫ VBO, текстур, шейдеры, D3D - указатели на КОМ объекты IDirect3DVertexBuffer9 и т.д), >потом вызывается object_3d->render() они сливают все эти данные конкретному рендер агенту - Static_Mesh_Render_OGL, >Static_Mesh_Render_D3D, Static_Mesh_Render_PS2 :), которые уже в рамках конкретной платформы/апи производят необходимую обработку.
Но мне кажется что это не очень удобно...

#9
18:44, 7 янв 2006

kas
сразу хочется поинтересоваться - ты хоть одну реализацию рендера сложнее RenderObject->Render() делал? Если да, то опиши пожалуйста вкратце ее архитектуру

#10
18:47, 7 янв 2006

KleMiX
>тогда появляется вопрос насчёт мульти апи, зачем ему хранить VertexBuffer к
>примеру если апи на данный момент огл?

не понял, а почему не хранить?

#11
18:47, 7 янв 2006

MiF
я слышу сарказм?

#12
18:48, 7 янв 2006

kas
>я слышу сарказм?
нет, вполне конкретный вопрос

#13
18:51, 7 янв 2006

MiF
конечно писал, я делаю RenderObject->Update( dt ); а только потом RenderObject->Render()

#14
18:53, 7 янв 2006

kas
>конечно писал, я делаю RenderObject->Update( dt ); а только потом
>RenderObject->Render()

типа шутка чтоли? или я чего не понял?

Страницы: 1 2 3 4 5 6 7 Следующая »
Архитектура движка.Форум

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