Рубрики
CSS JavaScript lib Fragments

Основы.JS «операторы, текст»

  • Операторы
    • swith
      • условные операции, операции ветвления
    • switch(x) {
      • case ‘value1’: // if (x === ‘value1’) … break;
      • case ‘value2’: // if (x === ‘value2’) … break;
      • default: … break;
    • }
  • String Работа с текстом символ начинается с 0!
    • вложенный текст
      • весь текст после 2 символа
        • text=text.substr(2);
      • заменить вложенный текст в другой вложенный текст
        • let new_text=text.replace(subtext1,subtext2);
      • поиск вложенного текста
        • поиск первого вложенного текста
          • let index=text.indexOf(text);
        • поиск последнего вложенного текста
          • let index=text.lastIndexOf(text);
    • вырезать текст
      • l длинна вырезаемого текста
      • s старт вырезаемого текста
      • str.slice(s,l)
    • удалить последний элемент текста
      • text=text.slice(0, -1);
    • проверка текста на пустоту и удаление невидимых символов
      • (переход на следующую строку)
      • text.trim() == »
    • выполнить текст-код
      • let arr=eval(data);
  • События
    • ev событие управление
    • элемент DOM на котором выполняется событие
      • let e=ev.currentTarget();
  • Массивы
    • базовые свойства
      • ассоциативный массив Array(0) нет индексов
        • arr.length==0
      • перебор массива или выборки
        • пройтись по массиву или объекту
          • arr.forEach(function(item, i, data) {code});
          • Array.from(arr, (item,index)=>{code});
          • for(var i=0;i<arr.length;i++){arr[i]};
      • преобразование
        • строка в массив через \n
          • let arr=text.split(\n);
        • массив в строку через \n
          • let text=arr.join(\n);
        • проверка на массив
          • Array.isArray(obj);
  • Объекты
    • перебор свойств
      • for (let key in obj){ obj[key] }
  • Синтаксис T функций
    • открытие тега-корня модуля
      • return{…html:[
    • закрытие тега-корня модуля
      • ]};
    • открытие вложенности тега
      • {…html:[
    • закрытие вложенности тега
      • ]},
  • ERRORS
    • дублируется контент при повторном выполнении
      • привязан одинаковый класс к тегам
        • которые содержат контент
      •  
Рубрики
Unity Examples "ShaderLab (CgFx,HLSL)" Mesh vertex Треугольник

Шейдер «Построить Треугольник через 3 вершины меша»

Геометрический шейдер
[maxvertexcount(3)]
void geo(triangle float4 IN[3]:SV_POSITION, inout TriangleStream<geometryOutput> triStream)
{
код
}
Рубрики
Unity ShaderLab Модуль CG "cginc"

Создание отдельных модулей для шейдерных функций

Путь к папке с хранением модулей
1 вариант. C:\Program
2 вариант. путь, где расположен шейдер

Файл
Name.cginc
Имя файла не должно совпадать с именем функции внутри модуля

Рубрики
Unity Texture Examples "ShaderLab (CgFx,HLSL)" Surface CgFx HLSL

Шейдер «Срез Текстуры»

Shader "Custom/World/Cut"
{
    Properties
    {
        _MainTex ("Albedo (RGB)", 2D) = "white" {}
	_pov("pov", int) = 0
        _pos("Vector",vector) = (0,0,0,0)
    }
    SubShader
    {
    CGPROGRAM
    //surface
    #pragma surface surf Lambert
    //model
    #pragma target 3.0
    //vars
    sampler2D _MainTex;

    int _pov;
    fixed4 _pos;

    struct Input
    {
        float2 uv_MainTex;
        float3 worldPos;
    };

    void surf(Input IN, inout SurfaceOutput o)
    {
        switch (_pov)
        {
        case 0:
            clip(IN.worldPos.z > _pos.z ? 1 : -1);
            break;
        case 1:
            clip(IN.worldPos.x < _pos.x ? 1 : -1);
            break;
        case 2:
            clip(IN.worldPos.z > _pos.z ? 1 : -1);
            break;
        case 3:
            clip(IN.worldPos.x < _pos.x ? 1 : -1);
            break;
        }

        o.Albedo = tex2D(_MainTex, IN.uv_MainTex).rgb;
    }
    ENDCG
}
FallBack "Diffuse"
}

Рубрики
Unity ShaderLab "Основы"

Структура обёртки «ShaderLab»

Shader "Name" 
{ 
[Properties]
CGINCLUDE
Код на языке CG 
ENDCG 
SubShader
{
CGPROGRAM  
Код на языке CG  
ENDCG
} 
[Fallback] 
}