но вот например из документации шейдер
Синтаксис:
Используется glsl
Shader "Examples/2 Alpha Blended Textures" {
Properties {
_MainTex ("Base (RGB)", 2D) = "white" {}
_BlendTex ("Alpha Blended (RGBA) ", 2D) = "white" {}
}
SubShader {
Pass {
// Apply base texture
SetTexture [_MainTex] {
combine texture
}
// Blend in the alpha texture using the lerp operator
SetTexture [_BlendTex] {
combine texture lerp (texture) previous
}
}
}
}
Properties {
_MainTex ("Base (RGB)", 2D) = "white" {}
_BlendTex ("Alpha Blended (RGBA) ", 2D) = "white" {}
}
SubShader {
Pass {
// Apply base texture
SetTexture [_MainTex] {
combine texture
}
// Blend in the alpha texture using the lerp operator
SetTexture [_BlendTex] {
combine texture lerp (texture) previous
}
}
}
}
таким образом можно делать 1 слой за 1 проход ... а проходов сколько угодно .. но тогда и текстур масок будет у вас вагон .. для каждого слоя по масочке с альфой
ну и + проходик всё это дело умножить на лайт мапу
т.о. для 4х слоёв порядка 5ти проходов ... 4 маски и 1 лайт мапа (мне кажется филл рейт + пропуск такого кол-ва геометрии по шине выступит в роли ботл нека ... тем более яблоки)
если кто то знает как из вершины можно выкалупать цветовую компоненту и использовать в
combine constant lerp(texture) previous - подобном выражении,
то можно маски запеч в вершины в RGBA компоненты и за каждый проход рисовать до 2х слоёв
т.о. будет всего 3 пасса ... 2 по 2 слоя + 1 лайт мап
п.с. я подобное делал давно .. под ОГЛ на комбайнерах текстурных блоков, когда пытался делать свой двиг ... а в синтаксисе материалов может и не выгореть. хотя судя по всему combine это враппер установки комбайнера но чёт както скудно с аргументами.