Size: a a a

pro.graphon (and gamedev)

2020 November 25

CU

Columbus Utrigas in pro.graphon (and gamedev)
Vitaliy ◀️TriΔng3l▶️ Kuzmin
Две слишком разные поверхности в блок не запишешь
градиенты хуевые, pixel-perfect хуйня для интерфейсов может ломаться
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Для этого нормали в зелёный и в альфу DXT5 писали до появления ATI2N, кстати, потому что они сжимаются раздельно, и у зелёного 6 бит на крайние значения, а не 5
источник

PL

Peter Leontev in pro.graphon (and gamedev)
Stas
Write в сжатую текстуру?
я думал, что glGetCompressedTexImage позволяет всего лишь получить пойнтер на GPU-allocated texture memory, используя который можно записывать нужные тексели.

(аналогично DirectX 11 с D3DDevice->Map() и D3DDevice->Unmap())
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Peter Leontev
а можно как-то это понять из документации? :) Были подозрения, что glGetCompressedTexImage сделан для WRITE операции, но не наоборот. Т.е. вообще READ операция не поддерживается или как?
источник

S

Stas in pro.graphon (and gamedev)
Peter Leontev
я думал, что glGetCompressedTexImage позволяет всего лишь получить пойнтер на GPU-allocated texture memory, используя который можно записывать нужные тексели.

(аналогично DirectX 11 с D3DDevice->Map() и D3DDevice->Unmap())
Однако ты планировал декомпрессировать блоками?
источник

S

Stas in pro.graphon (and gamedev)
И потом обратно? Это же по перфу бьёт
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Peter Leontev
я думал, что glGetCompressedTexImage позволяет всего лишь получить пойнтер на GPU-allocated texture memory, используя который можно записывать нужные тексели.

(аналогично DirectX 11 с D3DDevice->Map() и D3DDevice->Unmap())
Не, в GL такого нет вообще, вроде
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Есть маппинг для буферов, для текстур не помню
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
может быть, в каком-то совсем свежем десктопном только
источник

S

Stas in pro.graphon (and gamedev)
Vitaliy ◀️TriΔng3l▶️ Kuzmin
Для этого случая есть partitioning в ASTC и в BPTC (BC6H/BC7), кстати
Ты про количество линий для сжатия?
источник

PL

Peter Leontev in pro.graphon (and gamedev)
это да, я думал return для WRITE или READ :) DirectX API меня сбил совсем
источник

PL

Peter Leontev in pro.graphon (and gamedev)
Stas
Однако ты планировал декомпрессировать блоками?
это не важно совсем, просто хотел по-быстрому считать всю block-compressed текстурку из памяти
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Stas
Ты про количество линий для сжатия?
Там можно в одном блоке иметь несколько пар крайних точек
источник

S

Stas in pro.graphon (and gamedev)
Vitaliy ◀️TriΔng3l▶️ Kuzmin
Там можно в одном блоке иметь несколько пар крайних точек
Окей. (назвал контрольные точки линиями.)
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Stas
Окей. (назвал контрольные точки линиями.)
В ASTC можно и прямоугольники :)
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
Теория, лежащая под тем, что называют MIS, насколько я понимаю. Для интегрирования по сфере с учётом косинусного множетеля можно выбрать такие наборы точек, что большие количества точек спроецируются в одну (одни) и вычисленные в точках значения учитываются с весом. Например, такими наборами точек являются правильные многогранники —
шестисотячейник в D4 + какое-то преобразование.
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
Интересно кому-нибудь?) Тут кажется целый цикл лекций будет. Дальше — более практические материалы.
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
(для тех, кто пишет свой path tracer)
источник

S

Stas in pro.graphon (and gamedev)
Anatoly Tomilov
Теория, лежащая под тем, что называют MIS, насколько я понимаю. Для интегрирования по сфере с учётом косинусного множетеля можно выбрать такие наборы точек, что большие количества точек спроецируются в одну (одни) и вычисленные в точках значения учитываются с весом. Например, такими наборами точек являются правильные многогранники —
шестисотячейник в D4 + какое-то преобразование.
Ты нашёл одну из реализаций Importance sampling-a?
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
Stas
Ты нашёл одну из реализаций Importance sampling-a?
Математические основания, лежащие в основе всех реализаций (знают они о том или нет). Реализация закрыта. Но по лекциям, я думаю, её можно воспроизвести будет.
источник