View in Telegram
А теперь расскажу, что было сделано в новой системе. При разработке всех фич движка, я всегда исхожу из данных с которыми предстоит работать той, или иной фиче. Так, что этот пост будет посвящен данным. Как уже было сказано ранее, данные частицы хранились в отдельной структуре, которая была довольно неповоротлива в обслуживании и расширении. Что, если мне не нужны какие то данные для эффекта или мне нужно добавить новые поля для хранения? Я обратил внимание на то, что структура по своей сути состоит из набора float и vec различной размерности (vec2, vec3, vec4). И тут меня осенило! А что если сделать плоский буфер float значений. У этого подхода есть ряд очевидных плюсов: 1. Структура может быть подвижной! Мы можем не задумываться какие данные мы хотим там хранить! 2. Очень плотное выравнивание! Нет больше проблем с выравниванием памяти в структуре. Все данные будут храниться очень плотно, что положительно скажется на потреблении и скорости доступа к данным. 3. Буфер передаваемый в GPU тоже состоит из набора float'ов, а значит все это можно унифицировать. Очевидно у такого подходе есть и жирный минус. Связан он с определенным неудобством доступа к ячейке параметра в виде необходимости хранить оффсеты. Однако это можно нивелировать на уровне редактора. А дальше Остапа понесло! В следующем посте я раскажу как модифицировал систему модификаторов исходя из новой формы хранения данных.
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Find friends or serious relationships easily