Вы должны создать текстурное представление смещений, необходимых для манипулирования вершинами, а затем использовать tex2lod () в вашем вершинном шейдере - они поддерживаются в шейдерной модели 3 и выше.
Затем вы используете фрагментный шейдер для генерации или обновления текстуры.
Ваш вершинный шейдер может выглядеть примерно так:
sampler2D _OffsetMap;
// vertex shader
vert_data vert (appdata_base v) {
vert_data v_out;
float4 vertexPos = v.vertex;
vertexPos += tex2Dlod (_OffsetMap, float4(vertexPos.xz, 0, 0));
v_out.position = UnityObjectToClipPos (vertexPos);
return v_out;
}
Вы также можете использовать ту же выборку для манипулирования нормалями вершин.