Как получить полный список свойств шейдера Unity

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

UPDATE

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

fixed _Stroke;
half4 _StrokeColor;  
7 голосов | спросил Nullititiousness 10 J0000006Europe/Moscow 2016, 14:29:53

2 ответа


0

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

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

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

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

ответил Skyblade 10 J0000006Europe/Moscow 2016, 16:37:20
0

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

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

Поскольку nvidia больше не поддерживает CG, последние версии Unity фактически компилируют шейдеры с использованием 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 .
• Свойства Range и Float отображаются в переменные float , half или fixed .
• Свойства текстуры отображаются в переменные sampler2D для обычных (2D) текстур.
• Кубические карты отображаются в samplerCUBE .
• 3D-текстуры отображаются в sampler3D .

ответил Hamid 10 J0000006Europe/Moscow 2016, 16:35:31

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132