unity 自定義shader座標變換矩陣

2021-10-09 12:25:11 字數 1062 閱讀 5835

shader "coustom/xyzshader"

_moveoffset("moveoffset",vector)=(1,1,1,1)

_scale("scale",vector)=(1,1,1,1)

_rotate("rotateangle",vector) = (0,0,0,1)

} subshader

; struct v2f

;sampler2d _maintex;

float4 _maintex_st;

float4 _moveoffset;

float4 _scale;

float4 _rotate;

//順序:先縮放,後旋轉(z->x->y),後平移

;//縮放矩陣

float4x4 scal_mat=;

//旋轉z軸

float4x4 z_rot_mat = ;

//旋轉x軸

float4x4 x_rot_mat=;

//旋轉y軸

float4x4 y_rot_mat=;

//進行z軸旋轉

float4 world_pos = mul(z_rot_mat,v.vertex);

//進行x軸旋轉

world_pos = mul(x_rot_mat,world_pos);

//進行y軸旋轉

world_pos = mul(y_rot_mat,world_pos);

//進行縮放

world_pos = mul(scal_mat,world_pos);

//進行平移

world_pos = mul(mov_mat,world_pos);

//最後輸出

o.vertex = mul(unity_matrix_vp,world_pos);

o.uv = transform_tex(v.uv, _maintex);

return o;

}fixed4 frag (v2f i) : sv_target

endcg

} }}

Unity3D之Shader自定義編輯器功能拓展

一 前言 最近在開發乙個關卡類的遊戲,在匯入一些3d物體的時候,發現很多時候同乙個3d物體需要渲染的方式不一樣,比如這顆樹要雙面渲染 cull off 但在很多情況下是可以剔除背面 cull back 的,之前在寫shader方面找不到什麼好方法直接控制,乾脆就寫了兩個shader,這就造成了無謂的...

Unity 自定義深度RT

專案裡做水 或者 景深等其他一些效果經常要用到depth buffer。但是unity不許直接訪問depthbuffer.ps 同時讀寫depthbuffer會造成硬體打斷,對效能也不友好 所以,如果想用depth,有三個解決方案 1.也是unity提供的開啟乙個depth pass,應該也會用來當...

Unity 自定義日誌儲存

using unityengine using system.io using system using system.diagnostics using debug unityengine.debug public class debugtrace return m instance endreg...