开发手机网站步骤,广州网站建设专注乐云seo,wordpress 多模板下载,网站meta网页描述在计算光照模型时我们需要得到许多数据#xff0c;比如光源方向、视角方向这种基本信息。
在之前的例子中都是自行在代码里计算的#xff0c;比如#xff1a; normalize(_WorldSpaceLight0Pos.xyz) 得到光源方向#xff08;这种方法实际只适用平行光#xff09; normaliz…在计算光照模型时我们需要得到许多数据比如光源方向、视角方向这种基本信息。
在之前的例子中都是自行在代码里计算的比如 normalize(_WorldSpaceLight0Pos.xyz) 得到光源方向这种方法实际只适用平行光 normalize(_WorldSpaceCameraPos.xyz-i.worldPosition.xyz) 得到视角方向 但是如果需要处理更复杂的光照类型如点光源和聚光灯之前的计算方式是错误的。
Unity提供了一些内置函数来帮助我们计算这些信息在之前的章节我们也谈及过。 UnityCG.cginc中一些常用的结构体 名称描述包含的变量appdata_base可用于顶点着色器的输入顶点位置、顶点法线、第一组纹理坐标appdata_tan可用于顶点着色器的输入顶点位置、顶点切线、顶点法线、第一组纹理坐标appdata_full可用于顶点着色器的输入顶点位置、顶点切线、顶点法线、四组或更多纹理坐标appdata_img可用于顶点着色器的输入顶点位置、第一组纹理坐标v2f_img可用于顶点着色器的输出裁剪空间的位置、纹理坐标 UnityCG.cginc中一些常用的帮助函数函数名描述float3 WorldSpaceViewDir(float4 v)输入一个模型空间的顶点位置返回世界空间中从该点到摄像机的观察方向。内部实现使用了UnityWorldSpaceViewDir函数float3 UnityWorldSpaceViewDir(float4 v)输入一个世界空间中的顶点位置返回世界空间中从该点到摄像机的观察方向。float3 ObjSpaceViewDir(float4 v)输入一个模型空间的顶点位置返回模型空间中从该点到摄像机的观察方向。float3 WorldSpaceLightDir(float4 v)仅可用于前向渲染中。输入一个模型空间中的顶点位置返回世界空间中从该点到光源的光照方向。内部实现使用了UnityWorldSpaceLightDir函数。没有被归一化。float3 UnityWorldSpaceLightDir(float4 v)仅可用于前向渲染中。输入一个世界空间中的顶点位置返回世界空间中从该点到光源的光照方向。没有被归一化。float3 ObjSpaceLightDir(float4 v)仅可用于前向渲染中。输入一个模型空间中的顶点位置返回模型空间中从该点到光源的光照方向。没有被归一化。float3 UnityObjectToWorldNormal(float3 norm)把法线方向从模型空间转换到世界空间中float3 UnityObjectToWorldDir(float3 dir)把方向矢量从模型空间变换到世界空间中float3 UnityWorldToObjectDir(float3 dir)把方向矢量从世界空间转换到模型空间中