• 2024-11-20Unity图形学之Surface 片段着色器
    1.结构:经常在片段着色器里做一些UV变换#pragmasurfacesurfLambertfinalColor:mycolorvertex:myvert2.InputStruct 成员变量:(1)Uv+纹理变量的名字structInput{float2uv_MainTex;};(2)还有其他的:3.片段着色器的输出:inout
  • 2024-10-24Unity 5.6 Basic shader framework
    UnityShader参考入口VertexandfragmentshaderShader"Unlit/NewUnlitShader"{Properties{_MainTex("Texture",2D)="white"{}}SubShader{Tags{"RenderType"="Opaque&quo
  • 2024-10-23unity贴花实现
    Shader"Decal"{Properties{_MainTex("Texture",2D)="white"{} _MixedColor("MixedColor",Color)=(1,1,1,1)//颜色混合 _Alpha("Alpha",Range(0,1.0))=1//透明度}SubShader{
  • 2024-10-15Shader内容释义
    //Shader名称:(Hidden/)+UniversalRenderPipeline/+(路径)/+功能名称(首字母大写驼峰式)Shader"UniversalRenderPipeline/CodingSpecification"//Shader"Hidden/UniversalRenderPipeline/CodingSpecification"{Properties{ //材质属性:_+首字母大写驼
  • 2024-06-05Unity通过shader实现图像转像素画
    新建一个无光照shader(我选择了Create->Shader->UnlitShader),命名为:PixelateShader,双击打开它,粘贴以下内容Shader"Custom/PixelateShader"{Properties{_MainTex("Texture",2D)="white"{}_PixelSize("PixelSize
  • 2024-06-01Unity 实现让物体渲染在最前面
    演示实现方案1.创建一个shader脚本2.删掉原来的内容:我们自己写附上完整的shader代码:Shader"Custom/ZTestAlways"{Properties{_Color("ColorTint",Color)=(1,1,1,1)_MainTex("MainTex",2D)="white"{}}Sub
  • 2024-05-24Unity Shader介绍
    1.Shader的基本概念什么是Shader?Shader是小型程序,用于在GPU上运行,处理顶点、像素或其他图形处理单元。Unity主要使用以下两种Shader:顶点Shader(VertexShader):处理每个顶点的数据,如位置、颜色和纹理坐标。片段Shader(FragmentShader):决定每个像素的颜色。Unity中的Shader类型
  • 2024-03-29后处理 - 高斯模糊
    原理采样5x5范围的像素(即25个像素),然后按中间往外减少的权重值,计算出最终颜色值。 效果 c#代码usingUnityEngine;publicclassGaussianBlurEff:MonoBehaviour{publicShaderm_Shader;publicMaterialm_Material;[Range(-3,3)]publicfloa
  • 2024-03-11Unity3D Shader事项法线贴图功能详解
    Unity3D它提供了丰富的功能和工具,使开发人员能够轻松创建出色的游戏和应用程序。其中Shader是Unity3D中非常重要的一部分,它可以帮助开发人员实现各种视觉效果,包括法线贴图功能。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技
  • 2024-03-06Unity3D 常用得内置函数(Cg与GLSL)详解
    Cg和GLSL是Unity3D中常用的着色器语言,通过使用这两种语言,开发者可以实现各种精美的视觉效果。本文将详细介绍Unity3D中常用的一些内置函数,并给出相应的技术详解和代码实现。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大
  • 2024-03-04Unity3D Shader事项法线贴图功能详解
    Unity3D它提供了丰富的功能和工具,使开发人员能够轻松创建出色的游戏和应用程序。其中Shader是Unity3D中非常重要的一部分,它可以帮助开发人员实现各种视觉效果,包括法线贴图功能。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技
  • 2024-03-01Unity 贴图叠加,添加水印
    原创内容,转载请标明出处Shader"Custom/AddWatermarkShader"{Properties{_MainTex("MainTexture",2D)="white"{}_WatermarkTex("WatermarkTexture",2D)="white"{}_WatermarkPosit
  • 2024-02-28Unity3D 光照计算方向与法线贴图详解
    在Unity3D中,光照计算方向与法线贴图是实现高质量光照效果的重要技术之一。本文将详细介绍光照计算方向与法线贴图的原理和实现方法,并给出相应的代码示例。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大佬,欢迎你来交流学
  • 2024-02-28Unity3D 逐顶点光照与逐像素光照详解
    Unity3D提供了丰富的功能和工具,其中包括逐顶点光照和逐像素光照。本文将详细解释这两种光照技术的原理和实现方式,并提供代码示例。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大佬,欢迎你来交流学习。一、逐顶点光照逐
  • 2024-01-25Shader实现翻书效果
    原理翻书这个过程可以看成是平面上的点都绕z轴旋转,但是直接这样写的话会出现问题。因为旋转轴是在中间的,所以我们在旋转之前要把点向左偏移5个单位这样旋转轴就到了最左边,然后再乘上旋转矩阵得到旋转之后的位置,再向右边偏移5个单位还原一下。这样实现的太生硬了,所以带入正弦函数
  • 2024-01-11shader 一步一步 日记累月 ----极坐标
    学习shader就是在考察数学知识极坐标复习一下极坐标的点的位置是靠theta(角度)和r(距离)两个信息(二维空间)shader://直角坐标转极坐标方法float2RectToPolar(float2uv,float2centerUV){uv=uv-centerUV;/
  • 2023-12-27Unity URP 风格化水
    前言笔者曾使用UE实现过一个较为完整的写实水材质系统,但是因为UE的管线是定死的,导致高光无法实现,且后来做笔试题发现关于水的交互还未实现,因此本文将实现一个完整的风格化水,考虑到水的实现部分过多,这里不再使用代码展示,而是使用ASE,原理都差不多管线设置“ShaderType”为“U
  • 2023-12-26Unity Shader学习随笔
    阴影:光源看不到,但相机看得到的地方,就是阴影变体:一个普通的Shader可能会有很多种效果例如一个火焰溶解效果,写在Shader里,但其实在未触发之前我们不需要去计算该效果因此需要在未触发前,将火焰溶解的效果计算关闭这就用到了变体,把火焰溶解的效果计算变成变体无论如何都会被编译
  • 2023-12-14Unity shader 里面使用数组
    很多人不知道Unityshader是支持通过C#脚本,往shader脚本里写入数组的。我不知道Properties里面怎么写,但是可以用C#代码往里写。数组的总长度似乎最大2048。注意,是所有数组的总长度加一起不能超过2048。比如你写了五个数组,每个数组的长度是100,五个数组的总长度就是500。不是
  • 2023-11-20Unity 卡通渲染之角色篇
    前言作为新博客的第一篇,就用卡渲作为开篇叭!毕竟是个二次元乐。本篇同步发表于http://chenglixue.top/index.php/unity/73/之前使用UE的后处理做过简单的卡渲,但因其灵活性很差,很多操作都需涉及到更改管线,且奈何本人在校用的笔记本,一次build就得好久,因此放弃对卡渲的深入。如今对
  • 2023-11-17关于TRANSFORM_TEX的一些问题
    这个函数是用来控制shader面板中的tilling和offset的,本质为uv*_MainTex_ST.xy+_MainTex_ST.zw;但是使用TRANSFORM_TEX时需要注意的是,函数内部似乎没有封装完整,假如有类似于TRANSFORM_TEX(uv+20,_MainTex)这样形式的需求,是会报错的原因也很简单,它里面没有带括号,所
  • 2023-11-08Unity 自定义Postprocess Kawase Blur
    前言本篇将介绍如何通过添加RenderFeature实现自定义的postprocess——KawaseBlur关于RenderFeature的基础可以看这篇https://www.cnblogs.com/chenglixue/p/17816447.htmlKawaseBlur介绍因为毛神对于十大模糊算法的介绍已经整理得十分详细了,所以这里不会深入,但会大致讲讲它
  • 2023-10-31Unity显示 物体的最小uv
    开发过程中遇到同一个mesh,同一个shader,但是出现渲染结果不一致的情况。初步猜测是光栅化后,像素中心对应物体的位置不同,uv通过插值生成,从而导致渲染结果不一致。下文验证了uv会随着物体的位置不同,而发生改变。验证使用了https://github.com/cinight/MinimalCompute项目中的
  • 2023-10-29Unity显示一个对象的像素个数
    下图显示了该面片占用的像素个数为147456。因为面片的大小为1,坐标为(0,0.5f,0)。相机为正交视角,OrthoSize为1.面片完全显示且高度为(768/2)^2=384^2=147456。另外,可以推测,pixelshader渲染会在所有对象的vertexshader计算结束后开始。即使面片被遮挡,但如果没做处理依然
  • 2023-10-20基于SDF的光照效果
    基于SDF的光照效果好久没写博客了,怠惰了,就当爬了一步原神二次元风格面部渲染效果ShowmethecodeShader"Unlit/SDF"{Properties{_Color("Color",Color)=(1,1,1,1)_MainTex("Texture",2D)="white"{}_SdfTex(&