2016-06-10 7 views
7

Я довольно новичок в шейдерах и искал полный список свойств шейдера Unity. Я не нашел такой документации. Я нашел SL-Properties. Где я могу найти полный список свойств и их функций?Как получить полный список свойств шейдера Unity

ОБНОВЛЕНИЕ

В качестве примера был приведен в SL-Properties, показывающий список свойств для воды шейдера, а именно, _WaveScale, _Fresnel, _BumpMap и так далее. Знание этих специфических свойств облегчает получение решения. Недавно я попробовал кодировать нечто похожее на инсульт, прежде чем узнал о следующих свойствах.

fixed _Stroke; 
half4 _StrokeColor; 
+0

Я не могу найти способ получить список конкретных свойств Shader ... Пытаюсь отчаянно изменить свой материал «BlendOp» ... – Domi

ответ

2

Unity имеет собственный шейдер синтаксис называется ShaderLab.

Вся необходимая информация об этом может быть найдена на этом website.
Что касается свойств, ознакомьтесь с этим link.

Поскольку nvidia является not supporting CG больше, версии последнего единства фактически компилируют шейдеры с использованием компилятора HLSL и преобразуют полученный байт-код в GLSL. Код шейдера CG продолжает работать в основном без изменений. В настоящее время вы можете использовать современные шейдерные функции, такие как вычислительные шейдеры и тесселяции, которые не поддерживались CG, используя синтаксис HLSL.

Например, эти шейдерные свойства:

_MyColor ("Some Color", Color) = (1,1,1,1) 
_MyVector ("Some Vector", Vector) = (0,0,0,0) 
_MyRange ("My Range", Range (0, 1)) = 1 
_MyFloat ("My float", Float) = 0.5 
_MyInt ("My Int", int) = 1 
_MyTexture2D ("Texture2D", 2D) = "white" {} 
_MyTexture3D ("Texture3D", 3D) = "white" {} 
_MyCubemap ("Cubemap", CUBE) = "" {} 

будет объявлен для доступа в Cg код/​​HLSL как:

fixed4 _MyColor; 
float4 _MyVector; 
float _MyRange; 
float _MyFloat; 
int _MyInt; 
sampler2D _MyTexture2D; 
sampler3D _MyTexture3D; 
samplerCUBE _MyCubemap; 


типы недвижимости в ShaderLab карте до Cg/HLSL переменные типы таким образом:

• Цвет и Векторные свойства карта float4, half4 или fixed4 переменные.
• Диапазон и Float свойства карты для поплавка, половину или фиксированных переменных.
• Свойства текстуры map to sampler2D переменные для регулярных (2D) текстур.
• Cubemaps map to samplerCUBE.
• 3D-текстуры - sampler3D.

+0

Я только что обновил вопрос – Nullititiousness

+0

Просто добавил дополнительную информацию. – Hamid

2

Свойства шейдера в Unity - это всего лишь общедоступные переменные, видимые для движка, потому что шейдер Cg завернут в программу ShaderLab.

Вы можете увидеть структуру шейдера в Unity на этой презентации Andy Touch: https://www.youtube.com/watch?v=zr1zQpdYG1Q&t=7m36s

Итак, когда вы видите fixed _Stroke; half4 _StrokeColor; в коде это просто фактические переменные, которые используются программой Cg и переплетены к этим свойствам.

Проверьте смежные Unity docs section, чтобы узнать, как эти свойства сопоставляются с переменными шейдера.

+0

Я только что обновил вопрос – Nullititiousness

+0

Я только что обновил ответ :) – Skyblade

Смежные вопросы