Size: a a a

RU Rust GameDev — русскоговорящее сообщество

2020 April 20

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
Я просто поменял uniform на buffer и индексирую это дело через gl_InstanceIndex. И это работает!
источник

o

operator in RU Rust GameDev — русскоговорящее сообщество
kvark: в смысле, вершинный буффер с instance rate?
источник

o

operator in RU Rust GameDev — русскоговорящее сообщество
kvark: как сейчас скорость?
хотелось бы увидеть один единственный render pass и никаких объектов, создаваемых каждый кадр (как BindGroup)
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
operator
kvark: в смысле, вершинный буффер с instance rate?
Нет. Дополнительного per-instance буфера нет. Я передают из вертексного в вершинный gl_InstanceIndex и затем этим индексом беру из буфера
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
operator
kvark: как сейчас скорость?
хотелось бы увидеть один единственный render pass и никаких объектов, создаваемых каждый кадр (как BindGroup)
Скорость как у GL-версии (мб даже чутка быстрее, но там надо уже совсем аккуратно трейсить, а мне лень).

Один BindGroup и один RenderPass на фрейм. У меня все данные в динамике
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
Трюк выглядит так примерно
источник

o

operator in RU Rust GameDev — русскоговорящее сообщество
kvark: > из вертексного в вершинный

это как?
источник

o

operator in RU Rust GameDev — русскоговорящее сообщество
kvark: там всё прозрачное? нельзя сначала все fill() а потом все stroke() отрисовать?
источник

o

operator in RU Rust GameDev — русскоговорящее сообщество
kvark: > и затем этим индексом беру из буфера

это в каком шейдере ? (давай вообще их сюда, посмотрим)
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
operator
kvark: там всё прозрачное? нельзя сначала все fill() а потом все stroke() отрисовать?
Нельзя. Там ещё и трюки со stencil-buffer
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
operator
kvark: > из вертексного в вершинный

это как?
Это вертексный шейдер
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
operator
kvark: > из вертексного в вершинный

это как?
Ну и вот так. (тут только самая важная часть)
источник

o

operator in RU Rust GameDev — русскоговорящее сообщество
kvark: и что ты потом с этим v_Index делаешь?
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
operator
kvark: и что ты потом с этим v_Index делаешь?
Буфер индексирую
источник

o

operator in RU Rust GameDev — русскоговорящее сообщество
kvark: во-первых, неплохо бы его индексировать прямо в вершинном, а во фрагментный передавать результат. Делать это на каждый пиксел не комильфо
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
operator
kvark: во-первых, неплохо бы его индексировать прямо в вершинном, а во фрагментный передавать результат. Делать это на каждый пиксел не комильфо
Логично. А есть ограничения на количество атрибутов? Мне нужно 28 байт передать
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
Нет, стоп. Неправильно посчитал.
источник

o

operator in RU Rust GameDev — русскоговорящее сообщество
kvark: во-вторых, забиндил бы его как инстансный буффер сразу, чего нет?
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
28 флоатов = 112 байт
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
источник