текстура с альфа-компонентом, отображаемая за кадром: шаблон точек в мультисэмпле renderPass - PullRequest
0 голосов
/ 16 апреля 2020

Я создаю внеэкранную текстуру с альфа-компонентом, примеры в закадровом renderPass - это VK_SAMPLE_COUNT_1_BIT. Когда я использую эту текстуру в renderPass VK_SAMPLE_COUNT_4_BIT, я получаю шаблон с черными точками, где есть альфа-компонент. Я понимаю, почему, но я не знаю, как решить эту проблему.

Я подумал, что мог бы использовать внеэкранный рендеринг с VK_SAMPLE_COUNT_4_BIT с другим вложением VK_SAMPLE_COUNT_1_BIT для разрешения, но моя текстура все равно будет VK_SAMPLE_COUNT_1_BIT. Поэтому я не уверен, что это решит проблему черных точек, и я предпочитаю обратиться за советом, прежде чем приступить к большим изменениям.

-------- edit 1 ------- -

Точки появляются, когда я использую следующие настройки VkPipelineMultisampleStateCreateInfo:

.alphaToCoverageEnable = VK_TRUE;
.alphaToOneEnable      = VK_TRUE;

Если для этих двух настроек задано значение VK_FALSE, у меня есть прозрачная текстура, но без градиента, она прозрачная или непрозрачная .

Вот мои настройки VkPipelineColorBlendAttachmentState как для закадрового, так и для текстурирования renderPass:

.srcColorBlendFactor = VK_BLEND_FACTOR_SRC_ALPHA;
.dstColorBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA;
.colorBlendOp = VK_BLEND_OP_ADD;
.alphaBlendOp = VK_BLEND_OP_ADD;

Когда я смотрю на закадровую текстуру с зеленым «чистым цветом», я вижу градиент прозрачности , так что я полагаю, что правильно установлен offPreen renderPass.

-------- edit 2 --------

Я изменил renderPass вне экрана, чтобы использовать то же количество отсчетов, что и на экранном, или финальном, renderPass, с помощью прикрепленного файла разрешения с VK_SAMPLE_COUNT_1_BIT.

У меня все еще есть точки, если я устанавливаю .alphaToCoverageEnable и .alphaToOneEnable в VK_TRUE. При значении false полное изображение полупрозрачно, даже непрозрачные части.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...