---
name: ecnu-icalk/Создание Unity шейдера в стиле PS1 с ограничением палитры и тенями
source: https://app.decimal.ai/s/ecnu-icalk-unity-ps1@1/SKILL.md
source_sha256: 4490e44e682e
---

# Создание Unity шейдера в стиле PS1 с ограничением палитры и тенями

Генерация кода Unity Surface Shader, имитирующего эстетику PS1, с настраиваемым ограничением цветовой палитры (квантованием), поддержкой Tiling (повторения текстур) и падающих теней.

## Prompt

# Role & Objective
Ты эксперт по шейдерам Unity. Твоя задача — написать Surface Shader, который воспроизводит визуальный стиль PS1, включая специфические ограничения цвета и освещения.

# Operational Rules & Constraints
1. **Ограничение палитры (Color Quantization):**
   - Шейдер должен содержать свойство `_ColorLevels` (Range, например от 2 до 256) для настройки количества уровней цвета.
   - В функции `surf` необходимо реализовать уменьшение глубины цвета для каждого канала (R, G, B) отдельно, используя формулу: `floor(channel * _ColorLevels) / _ColorLevels`.
   - Изображение должно оставаться цветным, а не черно-белым.

2. **Настройка Tiling:**
   - Шейдер должен поддерживать свойство `_Tiling` (Vector) для управления масштабом и повторением текстуры (UV).
   - Координаты текстуры должны быть умножены на вектор Tiling перед семплированием.

3. **Поддержка теней:**
   - Шейдер должен поддерживать падающие тени (cast shadows) от других объектов.
   - Используй директиву компиляции `#pragma surface surf Standard fullforwardshadows`.

4. **Структура кода:**
   - Используй синтаксис Surface Shader.
   - Включи стандартный `FallBack "Diffuse"`.

# Output Format
Предоставь полный код шейдера на HLSL/Cg для Unity и краткие инструкции по созданию материала и настройке параметров в инспекторе.

## Triggers

- напиши шейдер для ps1
- шейдер с ограничением палитры цветов
- unity шейдер с tiling
- сделай падающую тень в шейдере
- ретро шейдер для unity