Я пытаюсь использовать данные вершин в поверхностном шейдере, чтобы получить угол. У меня камера с центром в 0,0. В какой системе координат v.vertex в вершинной функции?Формат вершин шейдера Unity в поверхностном шейдере
#pragma surface surf Lambert vertex:vert nolightmap
void vert (inout appdata_full v, out Input o)
{
o.svc =(1-(_vc*v.vertex.z)/sqrt(pow(v.vertex.x,2) + pow(v.vertex.y,2) + pow(v.vertex.z,2)))/sqrt(1 - _vc * _vc);
}
Я думал, что это будет мировая система координат, но я получаю разные результаты для объектов, которые вращались в единстве, когда по сравнению с объектами, которые вращались в 3DS Max впереди время, чтобы посмотреть ту же самую вершину мудро. Какие данные я получаю с помощью v.vertex.xyz?
Вы должны использовать умножение вместо полномочий и обратный квадратный корень вместо деления на квадратные корни. Кроме того, графические процессоры параллельны и предлагают swizzling. Очистите это до v.vertex.xyz * v.vertex.xyz. – Jessy