GameDev.ru
/ GameDev.ru / Пользователи / Andrey / Сообщения на форуме пользователя Andrey (10 стр.)

Сообщения на форуме пользователя Andrey (10 стр.)

На чем лучше делать систему частиц? (GS vs. CPU)22 авг. 201210:01#28
Mr F
> последний раз когда делал частицы, создавал меш со всеми частицами, назначал
> каждой в вертексы свой ID.
> была крохотная текстура на систему частиц, содержащая текущее время каждой
> частицы. каждый кадр я её обновлял (рендером в текстуру), инкрементируя/лупя
> время.
> далее на каждый вид систем частиц было ещё несколько крохотных флоатовых
> 1D-текстур, которые являли собой графики зависимости какого-либо параметра от
> времени. типа оффсет позиции, скейл, поворот, альфа, оттенок.
> шейдер частиц в VS читал текущее время каждой частицы, брал нужные значения из
> графика, интерполировал - получалась готовая анимация.
> ---
> ещё забыл - в той текстуре, где время, ещё хранилась текущая "рандомность"
> каждой частицы, которая считалась при респауне (реальное рандомное число каждый
> кадр сувалось в шейдер). рандомность сдвигала немного все параметры.
т.е. ты делал lookup tables на одномерных текстурах, обновляя их на CPU. Не сравнивал если все на CPU пересчитывать по сравнению с твоей реализацией что быстрее? Ведь заполнение текстур(CPU Time) + чтение из них(GPU time) возможно не так сильно быстрее. И еще вопрос насколько сложную систему ты можешь реализовать? Несколько эмиттеров/аффекторов(объект влияющих на поведение/параметры частицы) в одной системе к примеру.
fzr125
>в позиции - высота и ширина частицы
>в нормале - "ротация" частицы
а разве в одну семантику x,y,z нельзя это записать/запаковать)? вершина тоньше будет, или ты выравнивание сделал?
Из вершинного шейдер я не нашел цвет частицы, ну еще иногда нужен альфа тест для нее, что-бы плавно исчезала, тоже передавать нужно
Пиксельный как примерно выглядит?
Хороший подход на GPU все считать, а с CPU уже передаются готовые интерполированные параметры? вершинный шейдер по сути делает трансформацию частицы
gammaker
> Так это что получается, что видеокарта медленнее процессора в 5 раз?
геометрические шейдеры говорят еще медленные.
>А на OpenGL ES что делать? Там нет геометрических шейдеров даже в версии 3.0, которая только вышла.
там GS вообще могут не появиться. у тебя есть большой выбор CPU + GPU + VTF(табличный метод предложенный Mr F)
>Попробую как-нибудь. А как насчёт point sprites? По идее должно быть быстрее всего. Только они у меня почему-то не работают...
Выкинь этот хлам. В новом контексте наверное будет GL_INVALID_OPERATION если будешь использовать, в Direct3D10 и выше их нету, у них очень ограниченные возможности.

Правка: 22 авг. 2012 10:01

OpenGL ES 3.0: поехали...20 авг. 201214:31#34
StiX
> На WP8 будет ;)
Там по моему Direct3D9 будет или выше.
OpenGL ES 3.0: поехали...20 авг. 201214:31#33
innuendo
>А он работал где-нибудь кроме CE ?
Windows Phone 7
OpenGL ES 3.0: поехали...20 авг. 201212:52#30
innuendo
> лучше пусть MS сделать DirectX Mobile :)
Уже сделали Direct3DMobile. Правда он уже устарел.
OpenGL ES 3.0: поехали...20 авг. 201210:49#28
.::jimon::.
> все думаю видели тысячи вызовов malloc по 4-32 байта при вызове glDraw*
да уж.
Порадовало что OpenGL ES 3.0 теперь будет поддерживать float/npot/vertex textures. но пока со стороны поддержки в дровах дикие оверхеды еще в OpenGL ES 2.0, когда будут оптимизировать непонятно и будут ли вообще.
V Engine (3д движок)18 авг. 20120:59#100
Bezumie
> Минималка видео карты серии ATi Radeon HD какая ?
Очевидно что ATI 2400/Pro/XT, железо OpenGL 3.0/Direct3D10
V Engine (3д движок)17 авг. 201215:09#90
Gild
> если ее грамотно реализовать,
т.е. если взять Ваш V Engine Editor накидать сложный уровень состоящий из ландшафта, моделей, травой, водой, с материалами, тектурами, шейдерами, объекты с анимацией и системы частиц.
Сохранить в файл и загрузить движком то все будет работать с хорошей производительностью?
>если ее грамотно реализовать
Это делает редактор оптимизирующий сохранение уровня и движок при обновлении сцены? или вручную разработчику нужно это делать?
>но стоит помнить что все же это не CryEngine со своей многолетней разработкой.
Ну это вообще не справедливо сравнивать, то что Вы уже пытаетесь делать и уже реализовали уже хорошо.
>В сцене Subway Car нет оптимизации геометрии
Там наверняка нету оптимизации не только по геометрии. Я бы и шейдера лодами делал. Не нужно к примеру блюрить тень с большого расстояния к примеру и т.д.. Ну если это одна из первых демок то очень неплохо.
В общем хотелось бы в ближайшем будущем хорошее техно демо. Ландшафт, деревья, трава, анимация, частицы, тени + остальные графические навороты что движок поддерживает. Как раз оно покажет возможности движка.
Желаю Вам успеха.
Буду следить за разработкой
ret
> Да не в фпсах счастье. Хотя и в них тоже.
Ну если это так то игра ограничится ландшафтом в 2 полика с 3 травинками и машинкой. Как раз проекты движков и могут провалится на тормозах, не способных вытянуть реальные сцены, а не пару кубиков с шейдерами.
V Engine (3д движок)17 авг. 201214:28#87
Как движок потянет сложную сцену? 1 вагон показывать это очень слабо, хотя красиво. Смотрю в пол вагона, не видно, FPS не вырос особо. Организации сцены никакой что-ли?
С какой производительностью будет куча травы деревьев, анимационных объектов и частиц крутится?
Программирование на процессоре13 авг. 201216:08#71
kipar
> думал какой-то новый трюк узнать.
он практически не будет нужен тебе, а вот опыт и знания об внутреннем устройстве OS возможно даст очень нехилый для написания/разработки/поддержки графического движка, уровень которого будет выходить за кубик на ландшафте с 2 поликами и 3 кустиками с крутыми шейдерами и построцессом, либо для реверс инженеринга.
fsmoke
> Б..ть и это форум по программированию игр :)))))
Очень часто графические прогеры очень неплохо шарят в дровах, системном и низкоуровневом программировании, иногда они уходят из геймдева куда нибудь в nVidia,ATI,intel писать дрова или поддерживать новые технологии. Так что зря твое удивление.
Это бизнес разработчики сидят и кнопки прогают или SQL используют там совсем другой уровень, и ему до того что тут обсуждают далеко очень, тут конечно сейчас начнется, но не будем.
Pushkoff
> программист должен быть развит всесторонне
+100
Программирование на процессоре13 авг. 201215:25#65
kipar
> new/delete в большинстве своем зовут системные функции OS следовательно вызвать их можно и самому и наверняка в обход Win32
> И на этот шедевр ассемблеростроения и интересно посмотреть.
Я написал это как предположение, не более того. Я не специалист в таких вещах но это мне очень интересно.
Ну вот Pushkoff написал вот это:
> в простейшем случае имея непрерывный участок памяти можно организовать на нем
> линейный аллокатор
Можно реализовать и деаллокатор примерно делающий то что и функции OS.
Программирование на процессоре13 авг. 201213:41#39
Pushkoff
Ну теперь направление хотя-бы понятно.Остался примерный код на asm + манипуляции с системными регистрами процессора типа GDTR и т.д.
Программирование на процессоре13 авг. 201213:16#31
Pushkoff
> из моих глаз потекли кровавые слезы при виде этого((
а поподробней?
Программирование на процессоре13 авг. 201213:00#26
fsmoke
> а какой смысл тогда делать тоже самое, что уже делает
> Global\Local\Heap\VirtuaAlloc.
тут же спросили что отвалится часть языка, я сказал что ее можно заместить.
Программирование на процессоре13 авг. 201211:40#23
innuendo
> срочно удали пост - заклюют же :)
Пускай клюют, главное адекватно что-бы клевали. Заодно новое узнаю из системного и низкоуровневого программирования.
Программирование на процессоре13 авг. 201211:37#21
kipar
> Что значит "системные функции OS в обход Win32"? Не используя
> Global\Local\Heap\VirtuaAlloc? Тогда как?
fsmoke
> Тоже интересно, это как это без WinApi ты память будешь выделять :))
Ну с соответствующим доступом на assembler коде выделяем паять, по сути нужно сделать то что делает Global\Local\Heap\VirtuaAlloc.
Тут несколько вопросов сразу будет Нужен ли тут уровень доступа rin0-ring1 возможно нужен.
Как выделять память? скорей всего через функциональность драйвера контроллера памяти.
Будет ли задействован механизм менеджера памяти ОС и как будет эффективна работа с памятью напрямую?

Следующие темы >>

2001—2012 © GameDev.ru — Разработка игр