Проблемы с Billboard шейдером

Рейтинг: 0Ответов: 1Опубликовано: 03.03.2023

Делаю Billboard shader для Baldi мода на Unity (для полного отказа от Billboard скрипта). Нашел шейдер в котором был такой метод:

float3 vpos = mul((float3x3)unity_ObjectToWorld, input.vertex.xyz);
float4 worldCoord = float4(unity_ObjectToWorld._m03, unity_ObjectToWorld._m13, unity_ObjectToWorld._m23, 1);
float4 viewPos = mul(UNITY_MATRIX_V, worldCoord) + float4(vpos, 0);
float4 outPos = mul(UNITY_MATRIX_P, viewPos);

Поставил это в vertex шейдер, и вроде работает, однако иногда спрайты просто исчезают с определенных ракурсов.

Видео: https://youtu.be/0ut6lJbtpec

Кто нибудь сталкивался с похожей проблемой?

Ответы

▲ 0

Поменял формулу, все заработало.

o.pos = mul(UNITY_MATRIX_P, 
 mul(UNITY_MATRIX_MV, float4(0.0, 0.0, 0.0, 1.0))
 + float4(input.vertex.x, input.vertex.y, 0.0, 0.0)
 * float4(_ScaleX, _ScaleY, 1.0, 1.0));