Files

22 lines
3.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
code: SHD009
title: Графический драйвер не смог скомпилировать, связать или проверить вариант шейдера.
---
Рендерер отклонил подготовленный вариант шейдера.
**Исправление.** Найдите указанный ресурс и исправьте конкретную ошибку компиляции, раскладки или назначения из полной причины перед повторным запуском этого варианта.
## Найдите исходник и причину
Код обозначает сбой конкретного варианта, а не обязательно синтаксическую ошибку исходника. Прочитайте полную причину: это может быть журнал компилятора драйвера, несовместимая раскладка uniform, старый подготовленный шейдер или вложенная ошибка материала и его назначения [MAT004](ref:MAT004).
1. Выберите сообщение в Console и откройте подробности. Сохраните вместе `code`, `asset`, `file`, `line`, графический backend и полный текст `err`. Строка `0` означает, что исходная строка не установлена; это не первая строка шейдера.
2. Найдите AssetID или путь в Assets. Проверьте ссылку материала на шейдер и компонент или эффект Post Process, который его использует. Ошибка спрайтового предпросмотра ещё не означает, что postfx-шейдер непригоден для постобработки камеры.
3. Если вложенная причина — `MAT004: postfx shader cannot draw sprite geometry`, исправьте место использования: назначьте postfx-материал в Custom-эффект камеры, а не в SpriteRenderer. Не меняйте `#pragma postfx` на спрайтовое назначение только ради исчезновения сообщения.
4. При ошибке компиляции или связывания перейдите к указанным файлу и строке. При несовместимой раскладке сравните имя, тип и смещение поля из сообщения с объявлением шейдера и материала. Если сообщение прямо указывает на устаревший подготовленный шейдер, переимпортируйте именно его исходник подходящей версией движка.
## Проверьте исправление
Повторно запустите тот же вариант шейдера в том же месте использования и на проблемном backend. Проверьте нужный визуальный эффект и отсутствие нового SHD009. Переимпорт всех ресурсов не объясняет причину и не исправляет несовпадение назначения. Если ошибка остаётся, приложите материал, шейдер с include-файлами, минимальную сцену, версию движка, backend и журнал драйвера.