forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Эффекты/Шейдеры (http://forum.boolean.name/forumdisplay.php?f=170)
-   -   Ищу шейдер (http://forum.boolean.name/showthread.php?t=16819)

pax 27.05.2012 21:04

Ответ: Ищу шейдер
 
В щейдер дописываешь (в CGPROGRAM)

PHP код:

float4x4 _MainTexMatrix; 

Матрицу устанавливаешь кодом

PHP код:

material.SetMatrix("_MainTexMatrix", matrix); 

В вершинном шейдере рассчитываешь uv
PHP код:

void vert (inout appdata_full v, out Input o) 
{
   
v.texcoord = mul(_MainTexMatrix, v.texcoord);
} 

Я для своей задачи считал матрицу вот так
PHP код:

private Matrix4x4 BuildTextureTransformMatrix()
    {
        
float ang = Mathf.Clamp(angle, 0, 360);

         
Matrix4x4 rot = Matrix4x4.TRS(Vector3.zero, Quaternion.Euler(0, 0, ang), Vector3.one);
        
Matrix4x4 pos = Matrix4x4.TRS(new Vector3(offset.x, offset.y), Quaternion.identity, Vector3.one);
        
Matrix4x4 scale = Matrix4x4.Scale(new Vector3(tile.x, tile.y));

        
Matrix4x4 mat = pos * scale * rot;

        return 
mat;
    } 


Amatsu 27.05.2012 21:09

Ответ: Ищу шейдер
 
Я уже через шейдер рассчет реализовал, как в примере выше :) Передаю в него угол поворота


Часовой пояс GMT +4, время: 16:33.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Перевод: zCarot