【Unity Shader】API汇总

Unityshader 常用函数,常量,API手册 2、Uniform 参数:Uniform是用来限制一个变量的初始值的来源,当声明一个变量为Uniform类型的时候,表示这个变量的初始值来自于外部的其他环境。除了获取初始值的这点之外,Uniform关键字声明的变量和其他变量是完全一样的。1、varying 参数:在Cg程序中通过语义进行绑定变量, Cg语言提供了一组语义词,用以表示参数是由顶点的那些数据初始化的,一旦这个变量使用了语义词进行绑定,那么这个变量值被初始化的同时也意味着它有了特殊的含义,如表示位置、法线等含义。就得到了运动模糊效果。 阅读详情

在这里插入图片描述

UNITY_MATRIX_MVP 将顶点方向矢量从模型空间变换到裁剪空间

UNITY_MATRIX_MV 将顶点方向矢量从模型空间变换到观察空间

UNITY_MATRIX_V 将顶点方向矢量从世界空间变换到观察空间

UNITY_MATRIX_P 将顶点方向矢量从观察空间变换到裁剪空间

UNITY_MATRIX_VP 将顶点方向矢量从世界空间变换到裁剪空间

UNITY_MATRIX_T_MV UNITY_MATRIX_MV的转置矩阵

UNITY_MATRIX_IT_MV UNITY_MATRIX_MV的逆转置矩阵,用于将法线从模型空间转换到观察空间

_Object2World将顶点方向矢量从模型空间变换到世界空间,矩阵。

_World2Object将顶点方向矢量从世界空间变换到模型空间,矩阵。

模型空间到世界空间的矩阵简称M矩阵,世界空间到View空间的矩阵简称V矩阵,View到Project空间的矩阵简称P矩阵。

_WorldSpaceCameraPos该摄像机在世界空间中的坐标

_ProjectionParams

_ScreenParams

_ZBufferParams

unity_OrthoParams

unity_Cameraprojection

unity_CameraInvProjection

unity_CameraWorldClipPlanes[6]摄像机在世界坐标下的6个裁剪面,分别是左右上下近远、


表面着色器:

void surf (Input IN, inout SurfaceOutput o) {}表面着色器,unity特殊封装的着色器

Input IN:可以引用外部定义输入参数

inout SurfaceOutput o:输出参数

struct SurfaceOutput//普通光照

{

half3 Albedo;//纹理,反射率,是漫反射的颜色值

half3 Normal;//法线坐标

half3 Emission;//自发光颜色

half Specular;//高光,镜面反射系数

half Gloss;//光泽度

half Alpha;//alpha通道

}


基于物理的光照模型:

金属工作流SurfaceOutputStandard 高光工作流SurfaceOutputStandardSpecular

half3,half4代表rgba或者xyz,可以分开用 Albedo.xy=1.或Albedo.ga=1

#pragma surface surfname lightModel op - 指出函数surfname 表面着色器。

lightModel的光照模型和可选op操作,还可以添加顶点修改函数vertex和颜色修改函数finalcolor。

#pragma surface surf CustomLambert vertex:myvert finalcolor:mycolor addshadow exclude_path:deferred exclude_path:prepass nometa

#pragma vertex name - 指出函数name 是顶点着色器。

#pragma fragment name - 指出函数name 是片段着色器。

#pragma fragmentoption option - 添加option 到编辑的OpenGL片段程序。参看ARB fragment program说明书了解被允许的选项列表。这个指示在顶点程序或者编辑到非OpenGL targets的程序没有影响。

#pragma multi_compile_builtin - 为了pixel-lit shaders;;这个将告知Unity去编辑大量的这个着色器程序数列以支持所有的照明种类,和所有的阴影选项。

#pragma multi_compile_builtin_noshadows - 对于pixel-lit 着色器,不接受阴影。这将告知Unity去编辑几个该着色器程序的数列来支持所有的照明种类。这比multi_compile_builtin pragma可以更快的编辑,而且结果着色器也更小。

#pragma target name - 那个着色器target 去编辑。细节参看shader targets。

#pragma only_renderers space separated names - 只为给定的渲染器编辑着色器。默认情况下,着色器为所有的渲染器被编辑。细节参看 renderers。

#pragma exclude_renderers space separated names - 不为给定的渲染器编辑着色器。默认情况下,着色器为所有的渲染器被编辑。细节参看 renderers。


顶点着色器:

struct appdata_full {//vertex输入

float4 vertex : POSITION;//must

float4 tangent : TANGENT;

float3 normal : NORMAL;

float4 texcoord : TEXCOORD0;//该顶点的纹理坐标,第一组纹理坐标uv 也就是第一张贴图的坐标、为了实现多重纹理贴图,比如子弹打在墙上的弹痕等

float4 texcoord1 : TEXCOORD1;//n的数量和shadermodel版本有关

float4 texcoord2 : TEXCOORD2;

float4 texcoord3 : TEXCOORD3;

fixed4 color : COLOR;//顶点颜色

};


片段着色器:

struct v2f{//vertec的输出和frag的输入

float4 vertex :SV_POSITION;//must

float3 color0:COLOR0;

float3 color1:COLOR1;

float4:texcoord:TEXCOORD0;//TEXCOORD0-TEXCOORD7自定义纹理坐标

}

SV_Tatget //frag的输出,输出float4的颜色


光照:

1.逐顶点光照:在顶点着色器阶段计算光照,效率高但是效果不好,在边缘像素映射的时候插值可能会产生锯齿。

2.逐像素光照:在片元着色器阶段计算光照,计算量大,但是边缘表现效果好。

3.半兰伯特模型:处理无光照的地方,也让其有光,不然可能是全黑。经验模型。

#include “Lighting.cginc”

Tags { “LightMode”=“ForwardBase” }

WorldSpaceViewDir(float4 v) 输入模型空间中的顶点坐标,返回世界空间中从该点到摄像机的观察方向

UnityWorldSpaceViewDir(float4 v) 输入世界空间中的顶点坐标,返回世界空间中从该点到摄像机的观察方向

ObjSpaceViewDir(float4 v)输入模型空间中的顶点坐标,返回模型空间中从该点到摄像机的观察方向

WorldSpaceLightDir()仅用于前向渲染,输入模型空间中的顶点坐标,返回世界空间中从该点到光源光照方向,没有归一化。

UnityWorldSpaceLightDir()仅用于前向渲染,输入世界空间中的顶点坐标,返回世界空间中从该点到光源光照方向,没有归一化。

ObjSpaceLightDir()仅用于前向渲染,输入模型空间中的顶点坐标,返回模型空间中从该点到光源光照方向,没有归一化。

UnityObjectToWorldNormal(float3 v)把法线从模型空间转换到世界空间

UnityObjectToWorldDir(float3 v)把方向矢量从模型空间转换到世界空间

UnityWorldToObjectDir(float3 v)把方向矢量从世界空间转换到模型空间

_WorldSpaceLightPos0.xyz获取平行光光源方向,或者点光源的光源位置

_LightColor0.rgb获取当前pass的光源颜色和强度

UNITY_LIGHTMODEL_AMBIENT.xyz; 环境光

normalize(_WorldSpaceCameraPos.xyz - worldPos.xyz); 视觉方向 UnityWorldSpaceViewDir


透明度测试AlphaTest:

只要有一个片元的透明度不满足条件就被裁剪,用来优化显示。

AlphaTest Greater AlphaValue//仅渲染 alpha 值大于 AlphaValue 的像素。AlphaValue :0-1

AlphaTest GEqual AlphaValue//仅渲染 alpha 值大于或等于 AlphaValue 的像素。

AlphaTest LessAlphaValue//仅渲染 alpha 值小于 AlphaValue 的像素。

AlphaTest LEqual AlphaValue//仅渲染 alpha 值小于或等于 AlphaValue 的像素。

AlphaTest Equal AlphaValue//仅渲染 alpha 值等于 AlphaValue 的像素。

AlphaTest NotEqual AlphaValue//仅渲染 alpha 值不等于 AlphaValue 的像素。

AlphaTest Always //渲染所有像素。这在功能上相当于 Alpha 测试关 (AlphaTest Off)。

AlphaTest Never//不渲染任何像素。


模板测试:

Stencil如果开启了模板测试,GPU会首先会读取模板缓冲区的值,然后把该值和读取的参考值ref进行比较,比较方式由Comp指定,比如大于Greater就表示通过模板测试,

然后由Pass Fail ZFail去指定通过和不通过模板和深度测试后对缓冲区的值进行的Operation处理。

Stencil

{Ref 2 //设置模板参考值为2

Comp equal//比较方式,有8种比较方式。

Pass Operation //这个是当stencil测试和深度测试都通过的时候,进行的stencilOperation操作方法

Fail Operation //这个是在stencil测试通过的时候执行的stencilOperation方法

ZFail Operation//这个是在stencil测试通过,但是深度测试没有通过的时候执行的stencilOperation方法。

ReadMask readMask//readMask默认是255,一般不用该功能,设置隐码后 读取ref和buff值都需要与该码进行与操作。(0-255)

WriteMask writeMask//写操作进行与操作

}

Comp 的参数包括Greater/GEqual/Less/LEqual/Equal/NotEqual/Always/Never

Operation的参数包括:

Keep保持

Zero归零

Replace拿比较的参考值替代原来buffer的值

IncrSat值增加1,但是不溢出,如果是255,就不再加

DecrSat值减少1,不溢出,到0就不再减

Invert翻转所有的位,所以1会变成254

IncrWrap值增加1,会溢出,所以255会变成0

DecrWrap值减少1,会溢出,所以0会变成255

clip(x) //x的任何分量小于0 被裁剪掉

discard//舍弃当前片元

ZWrite Off//关闭深入写入

ColorMask RGB|A|0 //设置颜色通道的写掩码,为0表示该pass不进行颜色输出。


深度测试ZTEST:

一个片元离摄像机的远近,渲染后会进行深度写入,通常会判断缓存深度和当前片元深度 可知前后关系。

ZTest Always //指的是直接将当前像素颜色(不是深度)写进颜色缓冲区中 相当于ZTest Off

ZTest Never//而Never指的是不要将当前像素颜色写进颜色缓冲区中,相当于消失。

ZTest Greater/GEqual/Less/LEqual/Equal/NotEqual/Always/Never/Off,默认值为LEqual 即当物体深度小于或等于缓存深度值时(越远深度越大),该物体渲染,就是默认的先后顺序渲染。

透明度混合AlphaBlending:

该片元需要关闭深度写入,不关闭深度测试。会导致片元之间深度穿插。可以采用2个pass,第一个pass只用来做深度写入ZWrite On,第二个pass只用来输出颜色ZWrite Off,这样深度和颜色效果才会正确

Blend Off//关闭混合,只有blend打开后ps输出a通道才有意义

Blend SrcFactor DstFactor//用同样的因子对rgba进行混合(默认都开启混合)第一个参数对源颜色(当前片元颜色,ps输出的颜色)*SrcFactor混合,

第二个参数对目标颜色(当前读到的缓冲区颜色)*DstFactor混合,混合后默认相加后会重新写入缓冲区(相加后超过1的自动截断到1)。混合包括RABG值。结果都是源颜色和目标颜色与各自因子相乘后再加起来作为输出颜色。

shader里边的向量相乘不同于点乘叉乘,相当于各项分别相乘。

Blend SrcFactor DstFactor,SrcFactorA DstFactorA//把rgb和a的混合因子分开。

混合因子

One //因子是1

Zero //因子是0

SrcColor//因子为源颜色值,当前片元颜色,对应rgba分量分别与SrcColor分量相乘

SrcCAlpha//因子为源颜色透明值值,对应rgba分别与SrcCAlpha相乘。

DstColor//因子为目标颜色值,当前读到的缓冲区颜色

DstAlpha//因子为目标颜色透明值值

OneMinusSrcColor//因子为1-源颜色

OneMinusSrcAlpha//因子为1-源alpha

OneMinusDstColor//因子为1-目标颜色

OneMinusDstAlpha//因子为1-目标alpha

例子:

Blend SrcAlpha OneMinusSrcAlpha// Alpha混合,正常的透明度混合

Blend OneMinusDstColor One //柔和相加Soft Additive

Blend One One // Additive相加 线性减淡

Blend One OneMinusDstColor // Soft Additive比较柔和的相加

Blend DstColor Zero // Multiplicative乘法

Blend DstColor SrcColor // 2x Multiplicative2倍乘法

BlendOp OP//对源和目标颜色进行其他操作,而不是默认的相加,op操作包括:

Add //相加

Sub//源颜色减目标颜色

RevSub//目标颜色减源颜色

Min //使用2者较小的值

Min //使用2者较大的值

chen

BlendOp Min

Blend One One //组合变暗


双面渲染:

一般采用多个pass分别渲染正面和背面

Cull Back|Front|Off

Cull Back默认的背对相机图元不渲染

Cull Front朝向相机图元不渲染,只显示背面

Cull Off关闭剔除功能 全部渲染 性能低,但是可以实现比如看见物体内部结构。

不透明物体有深度测试,先渲前后没有关系,但是先渲染近的效率会更高,因为远的会被深度测试自动剔除不用渲染。

透明物体一般要先渲远的,再渲近的才能保证视觉顺序正确。


SubShader的Tag{}标签类型:

Queue:渲染顺序,保证渲染顺序小的先渲 大的后渲

RenderType:Unity可以运行时替换符合特定RenderType的所有Shader,着色器分类

ForceNoShadowCasting:值为”true”时,表示不接受阴影。

IgnoreProjector:值为”true”时,表示不接受Projector组件的投影。常用语半透明物体

DisableBatching:是否对subshader进行批处理,当shader中需要对顶点进行偏移的时候,该项设置为true

CanUseSpriteAtlas:当该subshader用于sprite时 该标签设为false

PreviewType:指明材质面包怎么预览材质 比如 “PreviewType”=“Plane”

LightMode : 渲染路径 ,pass的标签类型


渲染队列:

“Queue”=“Transparent”

Background:1000 //该声明的物体最先被渲染

Geometry:2000//默认的不透明物体使用的渲染队列

AlphaTest:2450//透明度测试,默认不透明物体渲染完后就渲染该物体

Transparent:3000//透明物体,在Geometry和AlphaTest后渲染,保证不透明物体渲染完了再渲染透明的。

Overlay:4000//该队列用来实现叠加效果,该物体会在最后被渲染。


RenderType:

Opaque:绝大部分不透明的物体都使用这个;

Transparent:绝大部分透明的物体、包括粒子特效都使用这个;

Background:天空盒都使用这个;

Overlay:GUI、镜头光晕都使用这个


渲染路径:

Tag{ “LightMode” = “ForwardBase”}//为每个pass指定渲染路径

LightMode包括:

Always:所有渲染路径该pass都会渲染,但不计算光照

ForwardBase:前向渲染,该pass会计算环境光,最重要的平行光,逐顶点光和 Lightmaps

ForwardAdd:前向渲染,该pass会计算额外的逐像素光源,每个pass对应一个光源。光源多该pass会被多次调用 效率变低。

Deferred:延时渲染,该Pass会渲染G-buffer

ShadowCaster:把物体的深度信息渲染到阴影映射纹理或深度纹理中

PrepassBase:遗留的延迟渲染,该pass会渲染法线和高光反射的指数部分、

PrepassFinal:遗留的延迟渲染,该pass通过合并纹理 光照 自发光来渲染得到最后的颜色

Vertex:遗留的顶点照明渲染


前向渲染:

包括ForwardBase类型渲染常用光照和ForwardAdd额外光照

#pragma multicompile_fwdbase //ForwardBase中用来保证光照衰减等参数正确赋值。

#pragma multicompile_fwdadd //ForwardAdd中用来保证可以访问到正确的光照变量.

#pragma multicompile_fwdadd_fullshadows //ForwardAdd中用来计算阴影效果

USING_DIRECTIONAL_LIGHT//平行光的宏定义

_LightColor0//该pass的桌像素光照颜色

_WorldSpaceLightPos0//获取平行光光源方向,或者点光源的光源位置

_LightMatrix0//世界空间到光源空间(光源位置为坐标原点的坐标系)的变换矩阵

_LightTexture0//光照衰减纹理

…

tips:光源的RendeMode参数设置为Important unity会自动采用像素光源,如果不重要就是顶点光源。还有qualitysetting里边的PixelLIghtCount,超过这个数也会用顶点光照


光照衰减:

float3 lightCoord = mul(_LightMatrix0, float4(i.worldPos, 1)).xyz;

fixed atten = tex2D(_LightTexture0, dot(lightCoord, lightCoord).rr).UNITY_ATTEN_CHANNEL;//UNITY_ATTEN_CHANNEL获得衰减值所在的分量

float shadow=SHADOW_ATTENUATION(i);//负值使用SHADOW_COORDS对相关纹理进行采样,返回值为阴影。关闭阴影的状态是等于1

return fixed4(ambient + (diffuse + specular) * atten * shadow, 1.0);//atten为衰减,shadow为阴影

------计算别人投到自己身上的阴影和衰减

SHADOW_COORDS(n)//声明一个_ShadowCoord的阴影纹理坐标 ps输入坐标,n的值是声明TEXCOORD0-7坐标使用的个数

TRANSFER_SHADOW(o);//用于在顶点着色器中计算上一步声明中的阴影纹理坐标 并传向ps阶段。

float shadow=SHADOW_ATTENUATION(i);//负值使用SHADOW_COORDS对相关纹理进行采样,返回值为阴影。关闭阴影的状态是等于1

UNITY_LIGHT_ATTENUATION(atten,v2f i, i.worldPos);//计算别人投影到身上的阴影#include “AutoLight.cginc” Unity会将光照衰减和阴影相乘后存在第一个参数中,并自动声明atten变量。第二个参数结构体包含SHADOW_COORDS,第三个参数世界空间坐标

return fixed4((diffuse + specular) * atten, 1.0);//UNITY_LIGHT_ATTENUATION出的atten为衰减和阴影

-----计算阴影投影到别人身上,自己的阴影

V2F_SHADOW_CASTER//unity里边定义阴影投射需要定义的变量

TRANSFER_SHADOW_CASTER_NORMALOFFSET(0)//unity对顶点进行自动处理

SHADOW_CASTER_FRAGMENT(i)//unity自动完成阴影投射部分,把结果输出到深度图和阴影映射纹理中

–ds2的阴影采用的是屏幕后处理的方式去计算阴影,延迟渲染

2.顶点照明渲染:过时的渲染方式。效果差。

3.延迟渲染:通常2个pass,第一个pass计算哪些片元可见,第二个pass计算真实光照。


1.反射o.worldRefl = reflect(-o.worldViewDir, o.worldNormal);//入射光线,表面法线

2.折射o.worldRefr = refract(-normalize(o.worldViewDir), normalize(o.worldNormal), _RefractRatio);//入射光线,表面法线,介质比

3.镜子效果:使用相机的RenderTexture来设置渲染纹理。o.uv.x = 1 - o.uv.x;坐标需要翻转一下。

4.玻璃效果:反射和折射使用cubemap进行采样 是天空盒的cubemap,然后反射需要采样的是周围环境的光照和纹理。

GrabPass { “_RefractionTex” }//会把屏幕输出到_RefractionTex的texture中, _RefractionTex_TexelSize 可以得到该纹理纹素大小,例如255*255的纹素是(1/255,1/255)

GrabPass{} //然后用_GrabTexture直接访问屏幕图像,但是这样效率比较低,推荐要上面需要声明的方法。

o.scrPos = ComputeGrabScreenPos(o.pos);//得到对应被抓取的屏幕图像的采样坐标

反射和折射需要显示环境的效果,所以需要对环境的cubemap进行采样。先用反射和折射的公式计算出光线,然后对环境贴图进行采样texCUBE(_Cubemap, i.worldRefl).rgb就可以得到具体效果了。

反射skybox 3d采样,折射屏幕抓取图像2d采样。


时间变量:

_Time:float4 //t是自该场景加载开始所经过的时间,4个分量是(t/20,t,2t,3t)

_SinTime:float4//t是时间的正玄弦值,四个分量的值分别是(t/8,t/4,t/2,t)

_CosTime:float4//t是时间的余玄弦值,四个分量的值分别是(t/8,t/4,t/2,t)

unity_DeltaTime:float4// dt是时间增量,4个分量分别是(dt,1/dt,smoothDt,1/smoothDt)

序列帧动画:时间去控制uv坐标映射转换。uv坐标的xy是顶点坐标,映射到小格子里边,和UItexture的xy和宽高不一样。

背景偏移动画:时间控制uv坐标偏移。

水流动画:通过时间和正弦函数去控制顶点偏移,通过时间控制uv移动。设置DisableBatching=true

广告牌BillBoarding:根据视觉方向来旋转被纹理着色的多边形。顶点动画

unity全局雾处理 全屏后处理全局雾 网上找到的基本是要计算摄影机边界的4条射线,然后标准化插值后射线方向,利用深度还原场景的世界坐标,代码比较繁琐,要向shader多传递4条射线参数 如下图 其实有更简化的处理方式, 用unity shader自带的全局变量与函数,加上场景深度,可以直接在shader里面还原世界坐标,然后完成雾效处理 unity_CameraInvProjection:投影矩阵的逆 unity_CameraToWorld:变换矩阵的逆 _CameraDepthText... 阅读详情

相关推荐

Unity 深度 depth (URP)

本文只是对深度的一些整理和个人理解,基于Unity URP, shader用shader graph 或者HLSL,build-in自行根据对照表更改 1.Eye Depth(观察空间) Eye Depth是物体相对于摄像机所在平面的距离,因为是相对,所以Z是相反的,Eye Depth的0就是摄像机,1就是一个单位,10就是10个单位,所以有的人会把他称为“World” space Depth,这个depth在所有平台上都是一样的,而且不区分正交透视,因为他在投影之前。在shader graph 中如.

lvcoc的博客 1万+

unity shader api解析

UNITY_MATRIX_MVP 将顶点方向矢量从模型空间变换到裁剪空间 UNITY_MATRIX_MV 将顶点方向矢量从模型空间变换到观察空间 UNITY_MATRIX_V 将顶点方向矢量从世界空间变换到观察空间 UNITY_MATRIX_P 将顶点方向矢量从观察空间变换到裁剪空间 UNITY_MATRIX_VP 将顶点方向矢量从世界空间变换到裁剪空间 UNITY_MATRIX_T_M...

FoxGame的专栏 1967

【unity shader】《unity shader入门精要》 光照模型

unity shader中的漫反射+高光反射光照模型 光照模型是shader的核心,它描述了光线同物体的交互方式。 对于非透明物体,光照模型一般包含两部分:漫反射和高光反射。 一个常见的包含漫反射与高光反射的shader程序如下: Shader "Unity Shaders Book/Chapter 6/Diffuse Pixel-Level" { Properties

CMOSTER的隐秘修行 1460

ShaderAPI

shader

枫叶林的专栏 2122

【猫猫的Unity Shader之旅】之扭曲模型

之前我们介绍的一些Shader效果都是在surf函数中做文章,也就是对渲染过程中的片段进行操作,实现的是模型表面的一些显示效果。然而,Unity Shader还提供对顶点阶段进行控制,来实现顶点的位置,颜色,法线等信息的修改。一个简单的例子  之前我们给过一个完整的Shader,用#pragma可以指定顶点函数。我们可以写一个简单的顶点函数,它什么也没有做:Shader "Custom/VertSh

dbtxdxy的专栏 4393

【Unity精品插件】Amplify Shader Editor:掌握Shader魔法

Amplify Shader Editor 是一款屡获殊荣的基于节点的着色器创建工具,其灵感来自行业领先的编辑器。它是一个开放且紧密集成的解决方案,提供了一个熟悉且一致的开发环境,可与 Unity 的 UI 约定和着色器使用无缝融合。以独立可承受的成本提供 AAA 级质量和灵活性,以及 Amplify Creations 始终可以期望的响应式客户支持和较短的迭代时间。

Unity打怪升级 4321

Unity_Shader_常用函数API

原文地址:https://blog.youkuaiyun.com/qq_38721111/article/details/83784276?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160370263119724838518430%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=160370263119724838518430&biz_

weixin_42137574的博客 655

Unity Shader编程学习与实践指南

Shader是一段运行在GPU上的小程序,用于控制像素或顶点的颜色输出。其核心作用是通过高度优化的代码来决定每个像素或顶点的最终表现形式,从而实现各种视觉效果,如光照、材质质感、阴影、透明度等。在Unity中,Shader属性是定义在Shader代码中,用来控制渲染效果的变量。它们可以是不同的数据类型,如整数、浮点数、向量、纹理等。通过这些属性,开发者可以调整物体的外观,比如颜色、贴图、光照等。Shader属性的主要类型包括:floathalffixed:用于定义浮点数。

weixin_32005771的博客 1088

Unity Shader 概述

Unity Shader 概述

YF云飞的博客 2947

告别玄学调参:手把手教你用LSTM-AutoEncoder为传感器数据做异常检测(实战篇)

本文详细介绍了LSTM-AutoEncoder在传感器数据异常检测中的工程化实践,包括数据预处理、模型架构设计和生产环境部署策略。通过结合LSTM的时间序列处理能力和AutoEncoder的特征提取优势,该方法能够有效识别温湿度、PM2.5等传感器数据的异常模式,适用于工业物联网和室内空气质量监测等场景。

weixin_29212429的博客 477

特征提取 Features Extraction

介绍了特征提取的基本概念,从分类变量,文本信息和图片信息中进行特征提取的方法,以及实现特征提取的类库

JasonH2021的博客 1万+

【Unity Shader】unity海边波浪效果的实现

效果图如下(GIF因为为了把图压小所以删掉了一些帧导致后面速度突然很快,实际效果并不是这样~_~)PS.对于移动端,参考该文章:http://www.lsngo.net/2018/03/22/unity_seawave_vertexcolor/之前在玩很多游戏的时候,注意到里面的海水和陆地相交接的地方会产生海浪,比如《海岛奇兵》,以及水面会出现一个透明渐隐的过度,而不会在水面和陆地的交界处产生硬切...

MrASL的博客 5万+

用PY32F003F18的PWM互补输出驱动无刷电机,保姆级配置流程(含代码)

本文详细介绍了如何利用PY32F003F18微控制器的TIM1定时器配置PWM互补输出功能来驱动三相无刷电机,涵盖硬件设计、代码实现及六步换相算法。通过保姆级配置流程和实用代码示例,帮助开发者快速掌握无刷电机驱动技术,适用于工业自动化和消费电子等领域。

weixin_26905487的博客 378

Unity Shader:贴图采样器Sampler的使用

Unity Shader采样器的使用介绍Using sampler states 合并的贴图和采样器(Coupled textures and samplers) 独立的贴图和采样器(Separate textures and samplers) 组合的采样器设置(Inline sampler states) 以及效果测试

番茄猿的博客 6722

使用Tansformer分割三维腹部多器官--UNETR实战

不会 transformer 没关系,本教程开箱即用。Tina姐总算对transformer下手了,之前觉得难,因为刚开始学序列模型的时候就没学会。然后就一直排斥学transformer。这两周没什么事,加上MONAI有现成的教程,就打算先跑通后,再学理论。然后,顺利的跑通了代码,再学了一周理论,发现它也不过如此嘛,入门还是很容易的。有同学想了解的transformer的话,可以先看完这个实战教程,如果感兴趣,后续会出一个transformer入门路线。利用纯Transformers作为编码器来学习输入量的

Tina姐的博客 1万+

【DRAM存储器五十六】LPDDR5介绍--WCK2CK Leveling和Read gate training

简述LPDDR5 WCK2CK leveling和read gate traning基本原理与操作步骤

highman110的博客 8787

[Unity]-[渲染Render]-[Shader] Unity Shader的基础

节点库:Shader Graph提供了丰富的节点库,包括颜色、纹理、数学、程序纹理、输入、实用工具、UV变换等类型的节点。Blackboard:用于创建外部属性,相当于Shader中的Properties,可以创建Float、Vector、Color、Texture等类型变量。Graph Inspector:包含节点设置和图设置两个选项卡,用于设置节点的命名、参数值域、默认值等信息,以及着色器数值计算精度、支持的渲染管线等。

sky_smile_Allen的博客 2539

迅投miniQMT量化交易实战指南:从入门到自动化交易系统构建

迅投miniQMT量化交易实战指南摘要 本文全面介绍迅投miniQMT量化交易系统的开发流程,重点包括: 环境配置:详细说明miniQMT极简模式的安装步骤,包括xtquant库获取、Python版本要求及验证方法 行情数据模块:解析xtdata模块的核心功能,包括: 获取板块分类与股票列表 查询合约基础信息 下载历史K线数据(支持tick、分钟、日线等周期) 交易执行模块:介绍xttrader模块的交易API,涵盖: 账户连接与初始化 订单管理(下单、撤单、查询) 持仓与资产查询 实战开发:提供可直接运行

huanghm88的专栏 666

Unity shader 内置函数,变量, 常用的Cg标准函数库

存在这里主要是为了方便查找: 引用了别人的总结: 一、内置包含文件   Unity中有类似于C++的包含文件.cginc,在编写Shader时我们可以使用#include指令把这些文件包含进来 这样我们就可以使用Unity为我们提供的一些非常好用的函数、宏和变量。 例如:#include"UnityCG.cginc" 包含文件的位置:根目录\Editor\Data\CGInclud...

游戏博客 7980

自动驾驶模拟器:基于 Python + Carla,在家也能训练一个“L4 级”自动驾驶 AI 模型

市面上有很多模拟器(AirSim, LGSVL),但 Carla 是目前学术界和工业界最主流的选择。画质强:基于 UE4,光影、天气(下雨、夕阳)极其逼真,这对训练视觉模型至关重要。API 爽:完全使用 Python 控制,对 AI 工程师极度友好。资产多:内置各种车辆、行人、交通信号灯、城市地图。编写 Python 代码,让车自己在城市里跑,通过摄像头看到路况,自己决定怎么打方向盘。通过 Carla,我们把价值数百万的自动驾驶测试场搬进了电脑。

BUG猿的博客 267

Python 爬虫实战:在房天下抓取房产信息,分析房价走势

通过本次 Python 爬虫实战,我们成功地从房天下爬取了房产信息,并进行了存储、处理、分析和可视化展示。在这个过程中,我们不仅掌握了爬虫技术的基本应用,还学会了如何对动态加载的数据进行处理和分析。然而,本次爬虫任务也存在一些局限性,例如仅爬取了部分区域的房产数据,且未对房产的图片和视频内容进行分析。在未来的工作中,我们可以进一步优化爬虫程序,爬取更多区域的房产数据,并深入分析房产的多媒体内容、用户行为模式等,为购房者和房地产从业者提供更有价值的数据支持。

u014481728的博客 1367

Unity Standard Shader 相关宏定义

这个函数会根据不同的工作流调用不同的函数。在Standard.shader里的定义。

yasin的博客 1424

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

unity-shader-ShaderGraph可视化shader

title: unity-shader-ShaderGraph可视化shader categories: Unity3d tags: [unity, shader, ShaderGraph, 可视化] date: 2019-05-03 18:04:23 comments: false unity-shader-ShaderGraph可视化shader, 和 shader forge 插件, u...

. 2万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

unity-shader-SamplerState采样器

title: unity-shader-SamplerState采样器 categories: Unity3d-Shader tags: [unity, shader, SamplerState, 采样器] date: 2019-05-23 01:35:28 comments: false unity-shader-SamplerState采样器 前篇 官方文档: Using samp...

. 6115

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Unity Shader - Using sampler states 使用采样器的状态

目录:Unity Shader - 知识点目录(先占位,后续持续更新) 原文:Using sampler states 版本:2019.1 Using sampler states 使用采样器的状态 Coupled textures and samplers 成对耦合的纹理与采样器 多数时候当在shader中采样纹理时,纹理的采样状态都将来自texture settings 纹理设置,本质上,纹理...

Jave.Lin 的学习笔记 6805

Unity中Shader的BRDF解析(三)

在上篇文章中,我们解析了BRDF的漫反射项,这篇文章我们继续解析BRDF中的镜面反射

楠溪泽岸的博客 1671
上一篇: 【Unity Shader】效果公式总结
下一篇: Android Studio连接网易mumu模拟器
洛初_Rakuui
博客等级 码龄8年 11粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值