Чому важливо мати цілі візуалізації з однаковим розміром бітів?


10

В даний час я думаю про те, який тип GBuffer мені знадобиться для відкладеного затінення, отже, я намагався також документувати себе в Інтернеті про найпоширеніші та їх формат.

Більшість передаваних вами GBuffer використовували однаковий розмір бітів для кожної цілі візуалізації, що часто призводить до невикористаних каналів. Однак, як перший здогад для мого GBuffer, на папері мені потрібні дві 24-бітні цілі та дві 32-х або три 24 і одна 32.

Я розумію, що маючи однаковий "розмір", кожне вкладення можна вирівняти краще, але практично кажучи, чи краще витрачати канали (або резервувати їх для подальшого використання) і мати всі RT-адреси однакового розміру чи я повинен використовувати саме те, що потрібно? У першому випадку, чому це така перевага, 24-розрядні все одно будуть забиті на 32?

Відповіді:


9

Я розумію, що маючи однаковий "розмір", кожне вкладення можна вирівняти краще, але практично кажучи, чи краще витрачати канали (або резервувати їх для подальшого використання) і мати всі RT-адреси однакового розміру чи я повинен використовувати саме те, що потрібно?

Уніфікована 32-бітова вирівняна ціль відтворення краще, навіть якщо це означає "витратити" деяку кількість пам'яті. Це буде набагато швидше, ніж наявність пам'яті, що не має 32 біт. Крім того, у вас не виникне проблем із підтримкою декількох типів буферів, копіювання та комбінування буферів буде простішим, оскільки вам не доведеться конвертувати між декількома типами.

32-бітний є власним для графічних процесорів та процесорів, отже, ви зменшите кількість необхідних циклів для читання пам'яті. Насправді, графічні процесори намагатимуться прочитати 32 біти, якщо ви намагаєтесь прочитати нестандартну адресу пам'яті, наприклад, 24 біт, вирівняні, GPU буде читати 32 біт, а потім витіснятиме небажані байти.

Ось детальна стаття, чому має значення вирівнювання пам’яті (щонайменше, якщо мова йде про процесори, а не про графічні процесори, концепція високого рівня все ще застосовується)

Чи будуть у 24-х бітових закладах до 32 все одно?

Деякі графічні процесори закладають його, але це не може бути гарантовано, тому він лежить у зоні реалізації драйвера / GPU. Тож вам доведеться переглядати та перевіряти результати.

PS: 32-бітний або 64-бітний залежно від архітектури.


5
і якщо вони мають однаковий розмір бітів, ви можете перекрити їх, не конвертуючи,
храповик виродка
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.