avatar
文章
81
标签
33
分类
12

首页
标签
分类
简历
mao的博客
搜索
首页
标签
分类
简历

UnityShader

Unity —— Shader,常用函数
发表于2024-10-30|UnityShader
常用函数函数 功能描述 abs(x) 返回输入参数的绝对值 acos(x) 反余切函数,输入参数范围为[-1,1], 返回[0,π]区间的角度值 all(x) 如果输入参数均不为0,则返回ture; 否则返回flase。&&运算 any(x) 输入参数只要有其中一个不为0,则返回true。 asin(x) 反正弦函数,输入参数取值区间为,返回角度值范围为, atan(x) 反正切函数,返回角度值范围为 atan2(y,x) 计算y/x的反正切值。实际上和atan(x)函数功能完全一样,至少输入参数不同。atan(x) = atan2(x, float(1))。 ceil(x) 对输入参数向上取整。例如: ceil(float(1.3)) ,其返回值为2.0 clamp(x,a,b) 如果x值小于a,则返回a; 如果x值大于b,返回b;否则,返回x。 cos(x) 返回弧度x的余弦值。返回值范围为 cosh(x) 双曲余弦(hyperbolic cosine)函数,计算x的双曲余弦值。 cross(A,B) 返回两个三元向量的叉积(cross pro ...
Unity —— Shader入门,光照
发表于2024-10-30|UnityShader
UnityShader入门——光照提示所有的Shader效果图应该以Game窗口为准,Scene窗口很容易出现问题 光照概述 技术点:BRDF光照模型:次时代渲染 ,SSS材质:和次表面相关 标准光照模型自发光,高光反射,漫反射,环境光 自发光物体在摄像机里看起来更亮,在Unity的常规使用中,不对周五其他物体产生影响 高光反射差异blinn——phong的 实现效果比较好 Phong模型推导过程 高光反射公式 1高光反射颜色 = 入射颜色 * 高光颜色 * max(0,(2(n * l)n - l)v)^光泽度 字母代表向量 实现知识:Unity的Reflect()方法可以计算入射光线的反射角度,但是使用的是常规物理画图的表达方式,入射光线方向朝着镜面,而Unity的光源方向和这个相反,因此要取一个 负值 注意:在之前的计算中,错误的使用了,该方法实际上返回的是一个向量,而在phong的计算过程中,需要用到的是点 123456// Transforms direction from object to world spaceinline float3 UnityObject ...
Unity —— UnityShader介绍
发表于2024-10-29|UnityShader
UnityShader介绍UnityShader种类 Unity Surface Shader,Unity将顶点和片元Shader进行一个封装 Unlit Shader,标准的顶点和片元Shader Image Effect Shader,图片特效Shader Compute Shader,暂时用不到 Shader Variant Collection,Shader库文件 UnityShader和传统Shader的不同 UnityShader属性块Properties:相当于编程语言中属性的定义,这里只是有一个比喻 SubShader Properties下图是Properties中可以使用的参数以及在Unity可视化操作的窗口样子 下图是上图中的效果在Shader中的代码 最后两个参数其实并不常用,cude是一个天空盒,3D是3D贴图 SubShaderProperties中的属性要在该属性块中使用,属性名需要相同,比如:_MainTex,其次也可以通过C#语言来获取到Shader后再去传递值 Unity会在Shader找到并运行第一个能在发布平台运行的SubShader,如果 ...
Unity —— Shader基础
发表于2024-10-29|UnityShader
UnityShader基础最简单的Shader设置模型的颜色为白色 ​ 输入结构体 按照给定的名字进行使用,Unity会自动为结构体填充内容,texcoord使用 0 ,是大家公认的第一套UV; 对结构体名字的解释 a:application,即从渲染流中通过Unity自动添加的 2:即 to 的谐音, v:vertex,代表顶点着色器 最后意思是从程序中输入到顶点着色器中的结构体 输出结构体 属性控制12345_Color("Color",Color)=(1,1,1,1) //在属性块中的属性 fixed4 _Color;//要想在SubShader中使用以上属性就需要在CGPROGRAM按照当前格式定义,名字必须相同//对于 _Color在着色器中的访问,可以使用xyzw或者rgba,来抽取当中的色彩块 库自带输入输出结构体在UnityCG.cginc库文件中,有官方已经实现的输入结构和部分输出结构,使用的时候使用C++的头文件导入形式 1#include "UnityCg.cginc" 1234567891011stru ...
Unity —— 渲染知识入门
发表于2024-10-29|UnityShader
图形接口Opengl和DirectX UnityShader所使用的是CG语言,CG语言在OpenGl和DirectX之上 渲染流水普遍的渲染管线的流程: 下图是基本描述 应用阶段:1.把数据加载到显存中2,设置渲染状态3,调用DrawCall 把数据加载到内存中做的事情数据会从硬盘到内存再到显存,一般加载到显存中的数据都会被从内存中移除 设置渲染状态做的事情这些状态定义了场景中的网格是如何被渲染的,例如,使用哪个定点着色器,片元着色器,光照,材质等 调用DrawCallDrawcall是一个命令,CPU发起,GPU接收,不包含任何材质信息,仅仅指向需要被渲染的图源列表(Unity中存在的DrawCall优化,GPUInstance,这里仅仅是发音比较像,剩余的需要自己去查找) 几何阶段和光栅化阶段两个阶段能被开发者使用代码控制的不多,具体可见ppt中对应的内容 几何阶段定点着色器,曲面细分着色器,几何着色器,裁剪,屏幕映射 顶点着色器处理单位是定点,每个定点都会调用一次定点着色器 空间转换模型空间-》齐次裁剪空间-》计算顶点颜色o.vertex = mul(UNI ...
Unity——Shader实现边缘发光效果
发表于2024-10-28|UnityShader
边缘发光效果前置知识点引入模型后需要将模型从自身坐标系先转换到世界坐标系下,然后再转化到摄像机坐标, UnityObjectToClipPos,将模型的点从自身的坐标系变换到摄像机坐标系的裁剪空间下 渲染管线传递给shader的参数提示, normal是法线 实现边缘发光效果,前面—》篮球 —》背面黄色:(1)我们的边缘的黄色怎么来的,是把这个球绘制了2次; —>pass 绘制黄色(2)我就面对摄像机的这些面,有重新涂成了黄色;(3)配置我们的渲染队列,修改我们的alpha;(4)发光效果,是不是中间强,边缘弱;找个数学方式,能够做到中间强边缘弱?(5)shader 常用技巧(解题技巧5) 工作原理,在将模型的面投影到2D平面之前,会经历一步裁剪操作,默认将背朝摄像机的面裁剪掉,可以使用Cul Fron关键字将背面的模型也给渲染出来,同时适当增大vertex 具体原理解释 Unity用Shader实现边缘光效果_unity3d shader 边缘光-CSDN博客 对于一些规则的模型,当然可以使用数学计算来获取边缘,但是对于人形就不适用了,为了通用就用这个 在边缘光的设置上, ...
12
avatar
mao
文章
81
标签
33
分类
12
Follow Me
公告
This is my Blog
最新文章
Unity打包后窗户化切换2025-01-11
InputSystem按键重绑定2025-01-06
Unity —— 2D,雨水2024-12-31
C++ 事件系统使用手册2024-12-26
游戏事件池实现解释文档2024-12-26
分类
  • Alogrithm1
  • C++5
  • UI技术1
  • Unity13
  • Unity2D4
  • UnityShader16
  • 图形接口1
  • 左神算法4
标签
功能 经验 栈 语言知识 物理 解法总结 Plugins 特性 OpenGl alogrithm AI 2D渲染 组件 UI 性能优化 特效 位运算 渲染 Unity UI 字符串 二分查找 C++ string C# 热更 数组 Unity 枚举 github Pixiv 题目 动态规划 lua
归档
  • 一月 20252
  • 十二月 202411
  • 十一月 202410
  • 十月 202410
  • 九月 202430
  • 八月 202413
  • 七月 20245
网站资讯
文章数目 :
81
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2025 By mao
框架 Hexo|主题 Butterfly
搜索
数据库加载中