在Shader中获取模型世界坐标的方法

2020-06-07  本文已影响0人  LEO_青蛙

在Unity中,unity_ObjectToWorld是将“模型坐标”转化成“世界坐标”的四维矩阵。
重点是unity_ObjectToWorld矩阵的最后一列存储了物体Transform的世界坐标Position,所以我们可以在shader中提取这个位置信息做一些计算,下面是unity支持的几种写法:

float3 center = float3(unity_ObjectToWorld[0].w, unity_ObjectToWorld[1].w, unity_ObjectToWorld[2].w);

float3 center = float3(unity_ObjectToWorld._m03, unity_ObjectToWorld._m13, unity_ObjectToWorld._m23);

float3 center = mul(unity_ObjectToWorld , float(0,0,0,1)).xyz;

float3 center = unity_ObjectToWorld._14_24_34;
上一篇下一篇

猜你喜欢

热点阅读