w23 / xash3d-fwgs

Vulkan Ray Tracing fork of Xash3D FWGS engine. Intended to be merged into master at some point in the future.
163 stars 16 forks source link

Split material info from Kusochki #52

Open w23 opened 3 years ago

w23 commented 3 years ago

There should be a special table/buffer of all materials. Kusochki might either have a reference to this buffer, or (better?) index into material buffer might be encoded into AS custom index thing. Note that kusochki might want to include an additional material-independent color multiplier.

Each material should have all PBR material parameters, e.g.:

w23 commented 1 year ago

Выигрыш от вынесения конкретно материалов из кусочков неочевиден. И там и там несколько десятков-сотен килобайт всего. Плюс вынесение будет означать дополнительную индирекцию по памяти -- к сожалению, никак иначе подложить индекс материала к конкретной geometry index в бласине нельзя. Custom index работает только на уровне инстансов (т.е. бласин целиком) в тласине.

Но распилить кусок можно на:

  1. Данные о геометрии. Это фундамент, без него никак.
  2. Данные материала можно положить в отдельную структуру в составе кусочка. Потом будет легко поставить эксперимент с выносом.
  3. Матрицы и цвет выносятся в модели, т.к. они индивидуальные для моделей, а не геометрий.
w23 commented 1 year ago

I still don't think that extracting materials data from kusochki gives us anything. Moreover, moving STRUCT Material back into Kusok might fill some padding gaps and make overall data smaller.