Laya & Unity
Laya3d & Unity3d 学习总结
qq_489366879
这个作者很懒,什么都没留下…
展开
-
Unity Shader 中的 _Time 的单位
名称 类型 说明 _Time float4 t 是自该场景加载开始所经过的时间,4个分量分别是 (t/20, t, t*2, t*3) _SinTime float4 t 是时间的正弦值,4个分量分别是 (t/8, t/4, t/2, t) _CosTime float4 t 是时间的余弦值,4个分量分别是 (t/8, t/4, t/2, t) unity_DeltaTime float4 dt 是时间增量,4个分量的值分别是(dt原创 2021-03-10 14:35:28 · 1314 阅读 · 1 评论 -
U3d Shader 转 Laya Shader UnityObjectToClipPos 函数源码翻译
//u_MvpMatrix mvp矩阵//a_Position 顶点坐标vec4 UnityObjectToClipPos(){ #ifdef GPU_INSTANCE return a_MvpMatrix * a_Position; #else return u_MvpMatrix * a_Position; #endif}vec3 UnityObjectToWorldNormal(vec...原创 2021-03-10 14:20:55 · 511 阅读 · 0 评论 -
Unity - 光照模型
#pragma surface surf Lamber ,这是一个很经典的 内置 漫反射模型简单解释就是一个点的反射光强是和该点的法线向量和入射光向量和强度和夹角有关系的,其结果就是这两个向量的点积。既然已经知道了光照计算的原理,我们先来看看如何实现一个自己的光照模型吧。自己实现:首先将原来的#pragma行改为这样 #pragma surface surf CustomDiffuse 然后在SubShader块中添加如下代码 inline float4 Light.原创 2021-03-09 13:49:10 · 152 阅读 · 0 评论 -
Unity Shader -UnpackNormal
UnpackNormal()函数在UnityCG.cginc中,它是对法线纹理的采样结果的一个反映射操作,其对应的法线纹理需要设置为Normal map的格式,才能使用该函数,如下是函数的原型:fixed3 UnpackNormalmapRGorAG(fixed4 packednormal){ // This do the trick packednormal.x *= packednormal.w; fixed3 normal; normal.xy = packed原创 2021-03-09 13:30:06 · 989 阅读 · 0 评论 -
unity shader - SurfaceOutput结构
表面着色器中有个数据类型 SurfaceOutput 是一个包含描述一个物体表面渲染特性的结构位于Lighting.cginc 文件中SurfaceOutput是预定义的输出结构,我们的surf函数的目标就是根据输入把这个输出结构填上。SurfaceOutput结构体的定义struct SurfaceOutput { half3 Albedo; //像素的颜色 half3 Normal; //像素的法向值 half3 Emission; /...原创 2021-03-09 13:16:55 · 820 阅读 · 0 评论 -
shader 内置函数: GLSL 到 UNITY 对应关系
#ifndef GlslToHlsl#define GlslToHlsl#define vec2 float2 #define vec3 float3 #define vec4 float4 #define mat2 float2x2 #define mat3 float3x3 #define mat4 float4x4 #define iGlobalTime _Time.y #define mod fmod #define mix lerp #define frac...原创 2021-03-09 11:11:57 · 515 阅读 · 0 评论