Unity Shader-后处理:径向模糊效果

Unity 径向模糊 简易解决方案 Unity 径向模糊 简易解决方案前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码如下(示例): import numpy a 阅读详情

简介


游戏都追求画面感,个人感觉后处理是最能表现画面感的方法之一(虽然比较费)。之前玩了一阵子 模糊效果,今天再来看一个模糊效果,径向模糊。这种效果对于画面感的提升非常有帮助,尤其是在快速运动突然加速的一瞬间,或者Boss出场狂吼一声的屏幕效果。于是我第一时间想到了《天涯明月刀》里面轻功飞起来加速的那一瞬间,径向模糊的使用,使轻功加速的画面感一下子就出来了。

再比如《王者荣耀》里也有径向模糊的效果:


径向模糊效果的原理


径向模糊效果是后处理啦,后处理的原理就不多说了,就是通过渲染好的屏幕图像进行全屏操作。首先观察上面那张图,从中心部分,向外扩展,有一种画面向外拉伸的感觉。那么,我们在fragment阶段,就可以按照这个思路来处理,上一篇文章在写描边效果的后处理时,为了让轮廓向外扩展,我们使用了模糊效果,把像素和周围的像素进行加权平均;而对于径向模糊也是一样,我们针对每个像素点,首先要得到一个相对于中心(不一定就是屏幕正中心,可以自己指定)的方向,从中心指向该像素点的方向就是径向模糊的方向,然后取当前像素点,以及沿着径向模糊方向再取几个点作为采样点,采样点越靠近中心越密集,越远离中心越稀疏,最后,该像素点的输出就是这些采样点的均值。这样,在靠近中心点的位置,采样距离小,几乎为0,也就不会模糊;而越靠近边界的位置,采样的距离越大,图像也就会越模糊。
径向模糊的原理如下图:


径向模糊在Unity下的实现


知道了原理,我们在Unity下实现一版径向模糊效果。仍然是后处理组合,C#脚本部分RadialBlurEffect类继承了PostEffectBase类,该类在 之前的文章中已经介绍过了,此处不予贴出。
RadialBlurEffect脚本:
    /******************************************************************** 
     FileName: RadialBlurEffect.cs 
     Description: 径向模糊效果 
     Created: 2017/02/16 
     history: 16:1:2017 23:05 by puppet_master 
    *********************************************************************/  
    using UnityEngine;  
      
    public class RadialBlurEffect : PostEffectBase {  
      
        //模糊程度,不能过高  
        [Range(0,0.05f)]  
        public float blurFactor = 1.0f;  
        //模糊中心(0-1)屏幕空间,默认为中心点  
        public Vector2 blurCenter = new Vector2(0.5f, 0.5f);  
      
        void OnRenderImage (RenderTexture source, RenderTexture destination)  
        {  
            if (_Material)  
            {  
                _Material.SetFloat("_BlurFactor", blurFactor);  
                _Material.SetVector("_BlurCenter", blurCenter);  
                Graphics.Blit(source, destination, _Material);  
            }  
            else  
            {  
                Graphics.Blit(source, destination);  
            }     
              
        }   
    }  


RadialBlurShader1:
    //径向模糊shader by puppet_master  
    //2017.2.17  
    Shader "ApcShader/PostEffect/RadialBlurShader1"   
    {  
        Properties   
        {  
            _MainTex ("Base (RGB)", 2D) = "white" {}  
        }  
      
        CGINCLUDE  
        uniform sampler2D _MainTex;  
        uniform float _BlurFactor;  //模糊强度(0-0.05)  
        uniform float4 _BlurCenter; //模糊中心点xy值(0-1)屏幕空间  
        #include "UnityCG.cginc"  
        #define SAMPLE_COUNT 6      //迭代次数  
      
        fixed4 frag(v2f_img i) : SV_Target  
        {  
            //模糊方向为模糊中点指向边缘(当前像素点),而越边缘该值越大,越模糊  
            float2 dir = i.uv - _BlurCenter.xy;  
            float4 outColor = 0;  
            //采样SAMPLE_COUNT次  
            for (int j = 0; j < SAMPLE_COUNT; ++j)  
            {  
                //计算采样uv值:正常uv值+从中间向边缘逐渐增加的采样距离  
                float2 uv = i.uv + _BlurFactor * dir * j;  
                outColor += tex2D(_MainTex, uv);  
            }  
            //取平均值  
            outColor /= SAMPLE_COUNT;  
            return outColor;  
        }  
        ENDCG  
      
        SubShader  
        {  
            Pass  
            {  
                ZTest Always  
                Cull Off  
                ZWrite Off  
                Fog{ Mode off }  
      
                //调用CG函数      
                CGPROGRAM  
                //使效率更高的编译宏  
                #pragma fragmentoption ARB_precision_hint_fastest   
                //vert_img是在UnityCG.cginc中定义好的,当后处理vert阶段计算常规,可以直接使用自带的vert_img  
                #pragma vertex vert_img  
                #pragma fragment frag   
                ENDCG  
            }  
        }  
        Fallback off  
    }  


我们找一个场景,测试一下效果。没有开启径向模糊效果的原始场景如下:

开启径向模糊效果后:

调整模糊强度:


径向模糊的优化


径向模糊和高斯模糊,均值模糊等模糊效果一样,都是采样次数越高,模糊效果越好,但是采样次数高了,性能就下去了,尤其是在移动设备上,GPU不强,但是分辨率极高,后处理这种全屏纹理采样及其耗费性能。所以,优化很重要。我们在 高斯模糊以及 Bloom效果中使用了降分辨率的操作,对于径向模糊,一样实用。优化的思路如下:首先,我们将图像渲染到一张降低了分辨率的RT上,然后使用这个降低了分辨率的RT进行上面的模糊处理;最后再将这个RT与原始图像进行插值操作。这样会多一个Pass(一个Draw Call),但是由于降低了分辨率,仍然对性能会有较好的提升。下面附上更改后的径向模糊代码。

RadialBlurEffect2脚本:
    /******************************************************************** 
     FileName: RadialBlurEffect.cs 
     Description: 径向模糊效果 
     Created: 2017/02/2- 
     history: 16:1:2017 23:05 by puppet_master 
    *********************************************************************/  
    using UnityEngine;  
      
    public class RadialBlurEffect2 : PostEffectBase {  
      
        //模糊程度,不能过高  
        [Range(0,0.1f)]  
        public float blurFactor = 1.0f;  
        //清晰图像与原图插值  
        [Range(0.0f, 2.0f)]  
        public float lerpFactor = 0.5f;  
        //降低分辨率  
        public int downSampleFactor = 2;  
        //模糊中心(0-1)屏幕空间,默认为中心点  
        public Vector2 blurCenter = new Vector2(0.5f, 0.5f);  
      
        void OnRenderImage (RenderTexture source, RenderTexture destination)  
        {  
            if (_Material)  
            {  
                //申请两块降低了分辨率的RT  
                RenderTexture rt1 = RenderTexture.GetTemporary(source.width >> downSampleFactor, source.height >> downSampleFactor, 0, source.format);  
                RenderTexture rt2 = RenderTexture.GetTemporary(source.width >> downSampleFactor, source.height >> downSampleFactor, 0, source.format);  
                Graphics.Blit(source, rt1);  
      
                //使用降低分辨率的rt进行模糊:pass0  
                _Material.SetFloat("_BlurFactor", blurFactor);  
                _Material.SetVector("_BlurCenter", blurCenter);  
                Graphics.Blit(rt1, rt2, _Material, 0);  
      
                //使用rt2和原始图像lerp:pass1  
                _Material.SetTexture("_BlurTex", rt2);  
                _Material.SetFloat("_LerpFactor", lerpFactor);  
                Graphics.Blit(source, destination, _Material, 1);  
      
                //释放RT  
                RenderTexture.ReleaseTemporary(rt1);  
                RenderTexture.ReleaseTemporary(rt2);  
            }  
            else  
            {  
                Graphics.Blit(source, destination);  
            }     
              
        }   
    }  


RadialBlurEffect2.shader:
    //径向模糊shader by puppet_master  
    //2017.2.20  
    Shader "ApcShader/PostEffect/RadialBlurShader2"   
    {  
        Properties   
        {  
            _MainTex ("Base (RGB)", 2D) = "white" {}  
            _BlurTex("Blur Tex", 2D) = "white"{}  
        }  
      
        CGINCLUDE  
        uniform sampler2D _MainTex;  
        uniform sampler2D _BlurTex;  
        uniform float _BlurFactor;  //模糊强度(0-0.05)  
        uniform float _LerpFactor;  //插值的强度(0-1)  
        uniform float4 _BlurCenter; //模糊中心点xy值(0-1)屏幕空间  
        float4 _MainTex_TexelSize;  
        #include "UnityCG.cginc"  
        #define SAMPLE_COUNT 6      //迭代次数  
      
        fixed4 frag_blur(v2f_img i) : SV_Target  
        {  
            //模糊方向为模糊中点指向边缘(当前像素点),而越边缘该值越大,越模糊  
            float2 dir = i.uv - _BlurCenter.xy;  
            float4 outColor = 0;  
            //采样SAMPLE_COUNT次  
            for (int j = 0; j < SAMPLE_COUNT; ++j)  
            {  
                //计算采样uv值:正常uv值+从中间向边缘逐渐增加的采样距离  
                float2 uv = i.uv + _BlurFactor * dir * j;  
                outColor += tex2D(_MainTex, uv);  
            }  
            //取平均值  
            outColor /= SAMPLE_COUNT;  
            return outColor;  
        }  
      
        //定义最后插值使用的结构体  
        struct v2f_lerp  
        {  
            float4 pos : SV_POSITION;  
            float2 uv1 : TEXCOORD0; //uv1  
            float2 uv2 : TEXCOORD1; //uv2  
        };  
          
        v2f_lerp vert_lerp(appdata_img v)  
        {  
            v2f_lerp o;  
            o.pos = mul(UNITY_MATRIX_MVP, v.vertex);  
            o.uv1 = v.texcoord.xy;  
            o.uv2 = v.texcoord.xy;  
            //dx中纹理从左上角为初始坐标,需要反向(在写rt的时候需要注意)  
            #if UNITY_UV_STARTS_AT_TOP  
            if (_MainTex_TexelSize.y < 0)  
                o.uv2.y = 1 - o.uv2.y;  
            #endif  
            return o;  
        }  
      
        fixed4 frag_lerp(v2f_lerp i) : SV_Target  
        {  
            float2 dir = i.uv1 - _BlurCenter.xy;  
            float dis = length(dir);  
            fixed4 oriTex = tex2D(_MainTex, i.uv1);  
            fixed4 blurTex = tex2D(_BlurTex, i.uv2);  
            //按照距离乘以插值系数在原图和模糊图之间差值  
            return lerp(oriTex, blurTex, _LerpFactor * dis);  
        }  
        ENDCG  
      
        SubShader  
        {  
            //Pass 0 模糊操作  
            Pass  
            {  
                ZTest Always  
                Cull Off  
                ZWrite Off  
                Fog{ Mode off }  
      
                //调用CG函数      
                CGPROGRAM  
                //使效率更高的编译宏  
                #pragma fragmentoption ARB_precision_hint_fastest   
                //vert_img是在UnityCG.cginc中定义好的,当后处理vert阶段计算常规,可以直接使用自带的vert_img  
                #pragma vertex vert_img  
                #pragma fragment frag_blur   
                ENDCG  
            }  
      
            //Pass 1与原图插值操作  
            Pass  
            {  
                ZTest Always  
                Cull Off  
                ZWrite Off  
                Fog{ Mode off }  
      
                //调用CG函数      
                CGPROGRAM  
                //使效率更高的编译宏  
                #pragma fragmentoption ARB_precision_hint_fastest   
                //vert_img是在UnityCG.cginc中定义好的,当后处理vert阶段计算常规,可以直接使用自带的vert_img  
                #pragma vertex vert_lerp  
                #pragma fragment frag_lerp   
                ENDCG  
            }  
        }  
        Fallback off  
    }  



还是刚才的场景,使用新版本的后处理效果的结果如下:

这里我们降低了2倍分辨率,极大地降低了采样带来的消耗。虽然效果也打了些折扣,不过还是可以凑合看的,哈哈。

UNITY_UV_STARTS_AT_TOP宏


我们写后处理shader时经常遇到的一个问题就是有时候开启后处理效果时屏幕上下颠倒了(或者叠加上去的部分上下颠倒了),在之前的 屏幕水波纹效果中就遇到了类似的问题。那么有时候是什么时候呢?需要满足几个条件, 第一,使用DX渲染器时(也就是在PC平台);第二,开启了抗锯齿(AA);第三,开启了后处理并且在后处理中使用了除了MainTex外的屏幕RT(或者后处理中跟屏幕像素相关的值直接传入shader),比如上面的shader中我们除了MainTex外额外传入了一张BlurTex,我们仍然用MainTex的uv来处理时。同时满足了上面三点,就会出现屏幕上下颠倒的现象。如下图所示:

本人第一次遇到这个问题时瞬间想到《艾希》最后旁白的那段Boss战,旁白直接把屏幕倒转过来,在《地狱边境》中也有类似的上下颠倒的关卡。shader能做的东西好多,之前一直没想到过那种上下屏幕颠倒是怎么做的,再仔细一想,其实只要在正常做,增加一个后处理,把采样的uv的y坐标反过来,就可以了。

那么,为什么会出现这种屏幕翻转的问题,又为什么满足这几个条件才会有这种屏幕翻转的问题呢?引用一段 官方文档上的解释:

Direct3D-like: The coordinate is 0 at the top and increases downward. This applies to Direct3D, Metal and consoles.
OpenGL-like: The coordinate is 0 at the bottom and increases upward. This applies to OpenGL and OpenGL ES.
This difference tends not to have any effect on your project, other than when rendering into a Render Texture. When rendering into a Texture on a Direct3D-like platform, Unity internally flips rendering upside down. This makes the conventions match between platforms, with the OpenGL-like platform convention the standard.Image Effects and rendering in UV space are two common cases in the Shaders where you need to take action to ensure that the different coordinate conventions do not create problems in your project.
When you use Image Effects and anti-aliasing, the resulting source Texture for an Image Effect is not flipped to match the OpenGL-like platform convention. In this case, Unity renders to the screen to get anti-aliasing and then resolves rendering into a Render Texture for further processing with an Image Effect.
If your Image Effect is a simple one that processes one Render Texture at a time, Graphics.Blit deals with the inconsistent coordinates. However, if you’re processing more than one Render Texture together in your Image Effect, the Render Textures are likely to come out at different vertical orientations in Direct3D-like platforms and when you use anti-aliasing. To standardise the coordinates, you need to manually “flip” the screen Texture upside down in your Vertex Shader so that it matches the OpenGL-like coordinate standard.

由于DX和OpenGL之间的区别,Unity为了跨平台,为我们处理了两个图形API纹理坐标不同的问题,但是不是任何时候都为我们自动处理,当我们用后处理(也就是写入RT)并且开启了抗锯齿的时候,就不会为我们翻转。Unity就是这么设定的,当有这种情况的话我们就需要自己处理这种平台差异。我们通过#if UNITY_UV_STARTS_AT_TOP
就可以判断是否是DX系列平台,正常的OpenGL从下到上的纹素为正,但是到DX下改成从下到上,如果主纹理的uv值y方向反了,那么这个_MainTex_TexelSize.y就小于0。我们通过这样一个判断语句,就可以自己处理平台之间的差异了。上面的shader中就是增加了这样一句判断,就解决了在PC上出现反向的问题。

原文地址:http://blog.youkuaiyun.com/puppet_master/article/details/54566397

【Unity ShaderLab】屏幕后处理:模糊 内容 简介 径向模糊 均值模糊 高斯模糊 1. 简介 模糊是一种常见的图像处理手段,也是一种常见的后处理效果,用于降低图片细节层次。对于清晰的图像来说,像素点保存的颜色信息足够准确,图片也就能表现更多的细节。相反,要达到模糊的效果,自然就是将精准的颜色信息“舍弃”掉。 径向模糊 均值模糊 高斯模糊 鬼刀今天更新了吗 2. 径向模糊 ... 阅读详情

相关推荐

Unity Shader 径向模糊

最近用到一个径向模糊的效果,参考了网上几篇文章。自己整理了一下 新建一个UnlitShader Shader "Unlit/Radial" { Properties { _MainTex ("Texture", 2D) = "white" {} _Level("Level",Range(1,100))=50 _CenterX("Center.x",Range(0,1))

Hello Mingo 2943

UnityShader实例16:屏幕特效之径向模糊(Radial Blur)

径向模糊,是一种从中心向外呈幅射状的逐渐模糊的效果(如下图),在图形处理软件photoshop里面也有这个模糊滤镜。而在游戏中常常用来模拟一些动感的效果,如鬼泣4中的场景切换特效,和一些技能打击特效;赛车游戏也尝用来模拟动感模糊,如狂野飙车,极品飞车等。

lupeng的博客 1万+

Unity_Shader高级篇_12.2_后处理_径向模糊效果

径向模糊效果是后处理啦,后处理的原理就不多说了,就是通过渲染好的屏幕图像进行全屏操作。首先观察上面那张图,从中心部分,向外扩展,有一种画面向外拉伸的感觉。那么,我们在fragment阶段,就可以按照这个思路来处理,上一篇文章在写描边效果的后处理时,为了让轮廓向外扩展,我们使用了模糊效果,把像素和周围的像素进行加权平均;而对于径向模糊也是一样,我们针对每个像素点,首先要得到一个相对于中心(不一定就是...

wy小骑士 1282

UnityShader基础案例(四)——模糊效果

这个很常见,在后处理一章中有实现,这里不再赘述。还有基于整体的局部模糊,就是屏幕上某一块地方不受模糊处理。

SliverAsh_的博客 2685

Unity径向模糊Shader实现:中心清晰边缘模糊的视觉特效

在计算机图形学中,图像后处理技术是提升视觉表现力的关键手段,它通过在渲染管线末端对屏幕图像进行二次加工,实现各种艺术化效果。其核心原理是通过着色器编程对像素进行数学运算和采样混合,从而改变最终输出画面。这项技术的工程价值在于能以较低性能成本显著增强场景氛围、引导玩家注意力或模拟物理现象。在游戏开发、影视特效和交互媒体等应用场景中,模糊类效果尤为常见,其中径向模糊通过模拟镜头变焦或旋转拖影,能有效表现速度感、冲击力或能量汇聚。本文聚焦于一种进阶实现——中心清晰、边缘渐变的径向模糊,通过自定义Shader精确控

weixin_29474431的博客 274

unity 动态设置模糊效果

1.首先创建一个material,在创建一个shader。2.模糊的shader的代码。复制下面的就行了。// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'Shader "hongGe/GrabTexture3"   {      Properties       {         ...

weixin_41071087的博客 4372

Unity Shader - 径向模糊

前言 Hello!大家好,这里先说一个题外话哈,话说有没有公司现在招U3D游戏开发的呢?哈哈,最近我也开始重新找工作了,有没有小伙伴推荐一下呀?坐标 深圳 ,感谢!( 我的微信:Li1076984375) 径向模糊 言归正传,前面我们实现了边缘检测,模糊处理等后期效果,今天我们就来实现一下径向模糊! 径向模糊是一种从中心向外呈幅射状的逐渐模糊的效果。 如果经常玩游戏的小伙伴都知道径向模糊其实在游戏...

长生但酒狂的博客 1906

Unity URP管线中基于屏幕抓取的径向模糊Shader实现与优化

屏幕后处理是实时渲染中实现高级视觉效果的核心技术,它通过对已渲染完成的帧图像进行二次加工,在不增加场景几何复杂度的前提下,显著提升视觉表现力。其原理是在渲染管线的特定阶段(如不透明物体渲染后或最终合成前),抓取颜色缓冲区中的图像数据,将其作为纹理输入到自定义的着色器中进行像素级处理。这项技术的核心价值在于能够高效地实现全屏范围的动态效果,如模糊、调色、景深等,广泛应用于游戏特效、影视后期和交互式媒体中,以增强氛围感和视觉冲击力。在Unity的URP(通用渲染管线)中,通过访问内置的_CameraColorT

weixin_34026997的博客 354

Unity Shader之径向模糊

转载自:https://blog.youkuaiyun.com/qq_33537945/article/details/80785335 Unity 径向模糊效果 多数用于赛车游戏吧!!!例入极品飞车未开启效果开启后的效果脚本代码using UnityEngine; [ExecuteInEditMode] [AddCom...

qq_39950326的博客 606

Unity3D实现Shader开发之径向模糊(实现镜头中间不模糊,四周模糊的效果)

径向模糊(Radial Blur)是一种常见的图像特效,在 Unity 开发中常用于模拟聚焦、运动模糊等效果,让图像产生从中心向四周或从四周向中心的模糊渐变。径向模糊的核心思想是基于图像中每个像素点相对于一个指定中心点的距离和方向,对该像素及其周围的像素进行加权平均计算,从而实现模糊效果。距离中心点越远的像素,模糊程度越大;越靠近中心点,模糊程度越小甚至不模糊。博客将会介绍如何实现径向模糊。希望这篇博客对Unity的开发者有所帮助。

心疼你的一切博客 7555

Unity3d 径向模糊-运动模糊2

Unity3d 径向模糊-运动模糊2 shader

Unity Shader PostProcessing - 9 - RadialBlur 径向模糊

径向模糊这个概念最初我是在高中的时候学习PS有介绍的。 当时就觉得这个效果很棒。 当然PS那个径向模糊比我实现的这个效果要好(我这个也不能实现太好的效果,运行在手机上会受不了),毕竟PS是离线编辑,且针对一帧图像处理的,不存在什么性能不性能的问题,怎么炫就怎么来。 实现 从PS上的径向模糊不难理解,就是对指定某个径向点后,如下图中的绿色点C是径向点,红色的P,Q两点别分与C点直线上的前前后后都用采...

Jave.Lin 的学习笔记 1547

2017–2024年中国10米/20米分辨率水稻种植分布数据集

摘要:本数据集提供2017-2024年中国23个省级行政区的水稻种植分布数据,包含单季稻和双季稻分类(GeoTIFF格式,WGS84坐标系)。5个省份分辨率为20米,其余为10米,基于Sentinel卫星数据和TWDTW方法生成。数据公开共享(7.99GB),使用需注明来源并引用相关文献(DOI:10.12199/nesdc.ecodb.rs.2025.012)。涉及学科包括遥感、生态学和地理学,研究成果需发送至国家生态科学数据中心备案。

国科大硕士在读,分享Python/GEE/Matlab/R专业代码实践,涵盖数据分析、算法开发与应用技巧等,以代码会友。 1383

【Unity Shader】案例之径向模糊(一)

在游戏里面有很多模糊效果,像赛车类游戏。当你加速时,会发现2边的场景变模糊。如下图:     今天也来做一下径向模糊效果,首先创建一个Material,给它添加一个纹理后将Material拖到新建的Plane上。如图所示,可以看出模糊效果是从中心点由内往外扩散。接下来脑子里有了步骤  步骤一:定义径向模糊的中心点,通常取图像的正中心点。  步骤二:计算采样像素与中心点的距离,根据距离确定偏移程度,

程序员小毛驴的博客 4028

解决ArcGIS-OpenStreetMap Toolbox-Load OSM File错误

在安装成功OpenStreetMap Toolbox后,首次运行Load OSM File工具,出现以下错误

Zjf的博客 8820

国产系统迁移实战:在银河麒麟V10上搞定Wine32位支持,让老Windows软件跑起来

本文详细介绍了在银河麒麟V10操作系统上构建Wine32位支持的全过程,帮助用户解决Windows应用迁移难题。从系统架构差异分析到Wine环境配置,再到实战应用部署与优化,提供了一套完整的解决方案,确保老Windows软件在国产系统上稳定运行。

weixin_32288959的博客 649

unity-shader相关

title: unity-shader相关 categories: Unity3d tags: [unity, shader] date: 2017-09-12 10:05:18 comments: false unity shader 相关记录 相关资料 有很多酷炫shader效果的网站 - https://www.shadertoy.com/view/XllcR4 卡通渲染: ...

. 2921

UWB灵犀遥控器方案介绍

UWB灵犀指向遥控器的技术原理和方案介绍

xiongdauwb的博客 3898

UE5 描边、径向模糊

UE5 描边、径向模糊

伪善者的博客 3435

车载网络测试实操源码_使用CAPL脚本进行UDS刷写及其自动化测试

本文主要讲解如何使用CAPL脚本进行UDS刷写及其自动化测试,并结合了几个测试实例进行介绍,希望对大家有所帮助。

文章主要涉及嵌入式软件开发、测试、项目管理等,欢迎交流,共同进步。 1552

OpenClaw对接本地大模型:Llama3/Qwen/ChatGLM全适配,完全私有化部署

OpenClaw对接本地大模型,是企业级AI智能体落地的必经之路——它不仅解决了数据隐私和合规问题,还能大幅降低成本、提升响应速度、实现定制化。这篇文章我给大家完整拆解了两套部署方案:Ollama(新手首选,5分钟搞定)和vLLM(生产环境首选,高性能),覆盖了Llama3/Qwen/ChatGLM三大主流模型,还有真实的落地案例、高级优化、踩坑避坑指南,看完你就能零代码完成完全私有化的部署。从零开发自定义工具,给OpenClaw添加专属业务能力;

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 808
上一篇: Unity Shader-渲染队列,ZTest,ZWrite,Early-Z
下一篇: Unity 3D 创建Mesh(一)
cbbbc
博客等级 码龄15年 609粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值