Итак, я создаю вершинный шейдер, чтобы сделать GameObject похожим на его сжатие/расширение (пульсирование?) Непрерывно.Как передать позицию преобразования GameObject в мой шейдер CG?
Я использую матрицу нормального масштаба, чтобы умножить положение каждой вершины, но я хочу, чтобы объект выглядел центрированным в том же положении. Если бы я смог получить transform.position объекта gameObject, который отображается, я знаю, что смогу сохранить центральную позицию одинаково.
Как я могу получить доступ к позиции игрового объекта в моем шейдере CG?
Или я неправильно подхожу к этой проблеме?
vertexOut vert(vertexIn v)
{
vertexOut o;
o.pos = mul(UNITY_MATRIX_MVP,v.vertex);
o.pos2 = mul(UNITY_MATRIX_MVP,v.vertex);
float scaleVal = sin(_Time.y*10)/8 + 1.0;
float4x4 scaleMat = float4x4(
scaleVal, 0, 0, 0,
0, scaleVal, 0, 0,
0, 0, 1, 0,
0, 0, 0, 1);
o.pos = mul(scaleMat,o.pos);
return o;
}
Любой код, который вы можете показать? – Durandal
Ах, всем, кто хочет знать решение, вы можете использовать renderer.material.SetX для установки униформы. – Martin