Size: a a a

pro.graphon (and gamedev)

2020 July 11

XD

Xottab DUTY in pro.graphon (and gamedev)
Был себе объект, который содержал в себе другой объект
источник

XD

Xottab DUTY in pro.graphon (and gamedev)
А стало два отдельных объекта
источник

XD

Xottab DUTY in pro.graphon (and gamedev)
И таким образом можно забиндить сэмплеры один раз и не трогать, и переключать уже только текстуры.
источник

d

disba1ancer in pro.graphon (and gamedev)
но я так и не понял, чтобы сменить текстуру нужно её просто перебиндить?
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
disba1ancer
но я так и не понял, чтобы сменить текстуру нужно её просто перебиндить?
да, текстура условно хранит данные и размеры, а семплер то как эти данные читаются при выборке. В OGL это реализуется через glBindSampler/glBindTextureUnit и сопутствующие функции
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
т.е. ты сможешь одну и ту же текстуру семплить как GL_NEAREST и GL_LINEAR в одном шейдере, например
источник

d

disba1ancer in pro.graphon (and gamedev)
Timur Gagiev
да, текстура условно хранит данные и размеры, а семплер то как эти данные читаются при выборке. В OGL это реализуется через glBindSampler/glBindTextureUnit и сопутствующие функции
а без семплеров можно? просто выбирать активную текстуру и забиндить другую
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
disba1ancer
а без семплеров можно? просто выбирать активную текстуру и забиндить другую
с разными настройками? Нет
источник

d

disba1ancer in pro.graphon (and gamedev)
Timur Gagiev
с разными настройками? Нет
нет в том смысле что невидия будет пересобирать шейдер?
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
ну там пересборка условная
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
disba1ancer
а без семплеров можно? просто выбирать активную текстуру и забиндить другую
В смысле? Нужно и то, и другое, текстура — что читать, сэмплер — как читать, два независимых биндинга
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
т.е. это не полная перекомпиляция шейдера со всеми оптимизациями, а просто смена блока
источник

d

disba1ancer in pro.graphon (and gamedev)
Vitaliy ◀️TriΔng3l▶️ Kuzmin
В смысле? Нужно и то, и другое, текстура — что читать, сэмплер — как читать, два независимых биндинга
у меня нет семплеров
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
disba1ancer
у меня нет семплеров
Но где-то же задаёшь nearest/linear, clamp/repeat
источник

d

disba1ancer in pro.graphon (and gamedev)
Vitaliy ◀️TriΔng3l▶️ Kuzmin
Но где-то же задаёшь nearest/linear, clamp/repeat
так это в параметрах текстуры указывается
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
disba1ancer
так это в параметрах текстуры указывается
Тогда 16 объектов текстур, 16 объектов сэмплеров, если у тебя в архитектуре можно у текстур эти параметры менять отдельно
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Но больше 16 сэмплеров в одном шейдере не будет на старых GPU Nvidia работать, вроде
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Или Intel, не знаю точно, от кого это ограничение
источник

d

disba1ancer in pro.graphon (and gamedev)
в гл на каждой стадии есть ограничение на количество семплеров в шейдере
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Но 16 сэмплеров сполна хватает на всю игру обычно, а не на один draw call
источник