22 lines
3.6 KiB
Markdown
22 lines
3.6 KiB
Markdown
---
|
||
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 и журнал драйвера.
|