Size: a a a

pro.graphon (and gamedev)

2020 May 19

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Сжатие это долгий процесс достаточно, точно не то, что нужно делать при загрузке
источник

a

alexcher in pro.graphon (and gamedev)
Vitaliy ◀️TriΔng3l▶️ Kuzmin
В смысле одну в другую? В текстуру со сжатым форматом ты ничего нарисовать не сможешь, надо полноценно алгоритм сжатия реализовывать (как в DirectXTex, например, можно и оттуда стырить)
я думал, через vkCmdBlitImage() можно будет скопировать одну в другую, поменяв формат, но пока не проверял
источник

a

alexcher in pro.graphon (and gamedev)
Vitaliy ◀️TriΔng3l▶️ Kuzmin
Текстуру надо сжимать ещё во время разработки и хранить в сжатом виде
а, ок
источник

a

alexcher in pro.graphon (and gamedev)
а какие форматы тогда умеют в сжатие?
источник

VK

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

a

alexcher in pro.graphon (and gamedev)
это ведь не просто сырые пиксели, пожатые каким-нибудь гзипом?
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
alexcher
это ведь не просто сырые пиксели, пожатые каким-нибудь гзипом?
Не сырые, это форматы, которые с потерей качества сжаты в блоках фиксированной ширины/высоты, с фиксированным коэффициентом сжатия, оставляя возможность произвольного доступа
источник

a

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

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
alexcher
ну, я имел ввиду, какие форматы файлов для хранения таких текстур?
Обычно в DDS, сейчас иногда в KTX, но это просто контейнеры для любых текстур. Либо в кастомных форматах контейнеров движка
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
alexcher
а какие форматы тогда умеют в сжатие?
На ПК, очень давно уже существуют:
— BC1 (S3TC DXT1) — 8 байт на блок 4x4, плавные RGB и однобитная прозрачность
— BC2 (S3TC DXT2, DXT3) — 16 байт на блок 4x4, плавные RGB и 4-битная альфа
— BC3 (S3TC DXT4, DXT5) — 16 байт на блок 4x4, плавные RGBA
Для специальных текстур типа масок и карт нормалей (вроде, с D3D10 поддерживаются, но точно не помню):
— BC4 (ATI1N, RGTC red) — 1 канал, 8 байт на блок 4x4
— BC5 (ATI2N, RGTC red/green) — 2 канала, 16 байт на блок 4x4
Гораздо более качественные, на устройствах с D3D11:
— BC6H (BPTC) — 16 байт на блок 4x4, для HDR-текстур (которые за границы 0…1 вылезают)
— BC7 (BPTC) — 16 байт на блок 4x4, для LDR-текстур
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Но на ПК в Вулкане они все поддерживаться должны, Вулкан только на GPU с поддержкой D3D11 на ПК есть
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
На мобилах свой зоопарк — ETC1, ETC2, ASTC, PVRTC, ATITC
источник

U

UsernameAK in pro.graphon (and gamedev)
Vitaliy ◀️TriΔng3l▶️ Kuzmin
Но на ПК в Вулкане они все поддерживаться должны, Вулкан только на GPU с поддержкой D3D11 на ПК есть
> Вулкан только на GPU с поддержкой D3D11 на ПК есть
но не наоборот
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
UsernameAK
> Вулкан только на GPU с поддержкой D3D11 на ПК есть
но не наоборот
Я имею в виду feature level, а не API, но да
источник

U

UsernameAK in pro.graphon (and gamedev)
Я видел gpu у которого указана поддержка d3d11, но который не может в вулкан
источник

a

alexcher in pro.graphon (and gamedev)
Vitaliy ◀️TriΔng3l▶️ Kuzmin
На ПК, очень давно уже существуют:
— BC1 (S3TC DXT1) — 8 байт на блок 4x4, плавные RGB и однобитная прозрачность
— BC2 (S3TC DXT2, DXT3) — 16 байт на блок 4x4, плавные RGB и 4-битная альфа
— BC3 (S3TC DXT4, DXT5) — 16 байт на блок 4x4, плавные RGBA
Для специальных текстур типа масок и карт нормалей (вроде, с D3D10 поддерживаются, но точно не помню):
— BC4 (ATI1N, RGTC red) — 1 канал, 8 байт на блок 4x4
— BC5 (ATI2N, RGTC red/green) — 2 канала, 16 байт на блок 4x4
Гораздо более качественные, на устройствах с D3D11:
— BC6H (BPTC) — 16 байт на блок 4x4, для HDR-текстур (которые за границы 0…1 вылезают)
— BC7 (BPTC) — 16 байт на блок 4x4, для LDR-текстур
о, спс. я, гугля, успел запутаться в форматах, подумав, что есть отдельно, например BC2 и DXT3
источник

U

UsernameAK in pro.graphon (and gamedev)
Правда это была интеграшка
источник

a

alexcher in pro.graphon (and gamedev)
UsernameAK
Я видел gpu у которого указана поддержка d3d11, но который не может в вулкан
а таких много же
источник

U

UsernameAK in pro.graphon (and gamedev)
Точнее вулкан там был
источник

U

UsernameAK in pro.graphon (and gamedev)
Но он не работал нормально)
источник