白泽图

  • 文章
    • Unity渲染
    • Unity项目开发
    • 工具
    • 数学
    • 算法
    • 网站搭建
    • 网络&操作系统
蒋程个人博客
互联网技术经验总结&分享
Unity渲染

边缘检测

在后期处理中,如果要使画面中的轮廓更深一些,或者一些其他和轮廓相关的处理,我们需要首先找出代表轮廓的像素,这就需要进行边缘检测 1.边缘是如何形成的? 如果相邻像素之间存在差别的差别(如:颜色、亮度),那它们之间就会形成一条边界,这个边界就是图像的轮廓,我们可以用变量gradient(梯度),来表示像素之间的差异,那么gradient越大越有可能是边缘(当然如果可以保证gradient最大不会超过1,那么我们可以认为1-gradient,越小越有可能是边界),那么边缘检测其实就是求gradient的一个过程 2.如…

2021-01-19 0条评论 1970点热度 0人点赞 蒋程 阅读全文
Unity渲染

UnityShader 亮度、饱和度、对比度的实现

fixed4 col = tex2D(_MainTex, i.uv); 亮度 _Brightness //亮度直接叠加 fixed3 color = col.rgb*_Brightness; 饱和度 _Saturation //饱和度=最低灰度颜色与原图的差值 fixed3 gray = fixed3(0.2125, 0.7154, 0.0721); fixed minGray = dot(gray, col.rgb); fixed3 grayColor = fixed3(minGray, minGray…

2021-01-18 0条评论 2413点热度 0人点赞 蒋程 阅读全文
Unity渲染

UnityShader Outline (法线外扩法)

实现原理 1.先用一个Pass将原来的物体沿着该物体的顶点法线外移,使它变得比之前大 2.使用Outline的颜色填充整个物体,并且剔除正面的渲染,得到一个放大的背面 3.用第二个Pass正常渲染渲染,第二次正常渲染会挡住第一个渲染的背面,但是第一个Pass变大导致部分挡不住,则挡不住的那部分就变成了该物体的外描边 代码图如: //法线外扩实现法 Shader "Custom/Outline" { Properties { _MainTex("MainTex", 2D) = "white" {} _Outline(…

2021-01-16 0条评论 3691点热度 0人点赞 蒋程 阅读全文
Unity渲染

Unity内置矩阵

所有的矩阵类型都为float4x4,定义在UnityShaderVariables.cginc中 名称 说明 作用 UNITY_MATRIX_MVP 模型视图投影矩阵 通常用于把顶点从模型空间转换到裁剪空间 UNITY_MATRIX_MV 模型视图矩阵 通常用于把顶点从模型空间转换到视图空间 UNITY_MATRIX_T_MV UNITY_MATRIX_MV的转置矩阵 UNITY_MATRIX_IT_MV UNITY_MATRIX_MV的逆转置矩阵 通常用于把法线从模型空间转换到视图空间 UNITY_MATRIX_…

2021-01-16 0条评论 2595点热度 0人点赞 蒋程 阅读全文
Unity渲染

URP自定义后期实现方法

前段时间项目升级了使用了URP后,收到了一些关于后期的BUG,Debug后发现URP改变了渲染管线导致原先BuildIn的一些机制无法使用了,比如OnRenderImage、OnPreRender等函数失效,所以之前BuildIn的写的一些效果都不能用了,于是源看了一下URP源码,也查找网上的一些相关资料,有了个大致的理解,先把使用方式记录下来,之后抽空再写一篇URP源码设计防止遗忘 这里拿项目中的一个实例来说明使用方式,功能描述: 角色XXX释放技能后,除了场上的角色与特效,其他可见物都变成深红色(用于加强角色技…

2021-01-11 0条评论 3362点热度 1人点赞 蒋程 阅读全文
Unity项目开发

安装chardet用于python中检查编码格式

用python写工具最麻烦的就是编码问题,chardet库可以方便查看输入源是什么编码格式 使用pip安装chardet库 python -m pip install chardet 使用代码如下: #! python2 # coding=utf-8 import os import sys import codecs import chardet if __name__ == '__main__': try: f = codecs.open('Module_Activity.txt',"r","utf-8") l…

2021-01-07 0条评论 2178点热度 0人点赞 蒋程 阅读全文
Unity项目开发

将插件从Library\PackageCache下移出

Unity的Package Manager(Windows/Package Manager)安装的插件默认存放在 Library\PackageCache 下,但是Library下一般会存放与平台相关的临时文件,通常做项目时不会上传版本控制库(如 svn,git...),所以我们需要把Library\PackageCache下面的插件移动到Packages(与Assets平级)下 实例如下,打开Package Manager搜索并安装URP插件 安装完成后,在Library\PackageCache下可以…

2021-01-06 0条评论 6510点热度 0人点赞 蒋程 阅读全文
Unity渲染

Unity渲染顺序(Queue,ZWrite,ZTest)

用实例说明Queue,ZWrite ,ZTest对渲染循序的影响 新建两个一样的Shader(Test1.shader与Test2.shader) 并分别创建材质球,然后赋值给两个Cube, shader代码如下: Shader "Custom/Test1" { Properties { _MainTex ("Texture", 2D) = "white" {} } SubShader { Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag stru…

2020-12-31 0条评论 3914点热度 2人点赞 蒋程 阅读全文
Unity渲染

Unity定制Shader GUI优化方案

参考:官方API 写过脚本编译器的同学应该都知道Monobehaivor的脚本可以重画检视面板,这有利我们开发各利插件,方便调试,Shader的面板也可以重画,区别在于,Monobehavior的脚本设置只能在运行时生效,再Shader的面板设置在编译环境下就生效,在运行时无法生效,其实这个很好理解,unity的shader最终还要是编译成各平台对应的shader语言,所以它这里用的控制更多类似于宏,即不同设置会导致最终的编译结果不同 直接上代码: 在Asset中新建文件夹Editor,创建CustomShader…

2020-12-28 0条评论 3345点热度 0人点赞 蒋程 阅读全文
Unity渲染

UnityShader if判断优化

参考:Unity Shader: 优化GPU代码--用step()代替if else等条件语句 原文核心思路: 对于GPU来讲,各个顶点各个像素都在进行大量的并行运算,每个片段着色器都在同步运行,只有所有像素全部完成计算,才会进行下一次运算, 在片段着色器中,每个片段处理器每条指令操作上百个像素,如果有些片段(像素)采取一个分支而有些片段不采用另一个分支,则所有片段都会执行两个分支,但只在每个片段应该采取的分支上写入寄存器。不论何种策略,对追求高并行度的GPU来讲,分支是必须要同步的,那么最慢的case就会造成短板…

2020-12-28 0条评论 3917点热度 0人点赞 蒋程 阅读全文
1…678910
分类
  • Unity渲染 / 26篇
  • Unity项目开发 / 46篇
  • 工具 / 20篇
  • 数学 / 2篇
  • 算法 / 1篇
  • 网站搭建 / 4篇
  • 网络&操作系统 / 8篇
最新 热点 随机
最新 热点 随机
手记 | 从 VLESS+Reality 到 VLESS+WS 双跳中继的迁移记录 cli-toolkit-fw:一个可由 AI 对话定制的通用 CLI 工具集框架 手记 | 从 VMess+WS+TLS 到 VLESS+Reality 的代理升级记录 代码执行耗时检测 坐标系转换技术应用 解决Quaternion.FromToRotation两方向平行相反的问题
cli-toolkit-fw:一个可由 AI 对话定制的通用 CLI 工具集框架手记 | 从 VLESS+Reality 到 VLESS+WS 双跳中继的迁移记录
UnityShader Tags标识汇总 Unity Hierarchy与Scene窗口的操作限制 Gamma空间和线性空间 Unity项目优化-AnimationClip动画的定制压缩 获取Unity UnReadable Texture Unity Animator.Rebind() 接口会导致TPose

COPYRIGHT © 2023 白泽图. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang