Tangent

Unity Shader 玻璃效果

大城市里の小女人 提交于 2021-02-14 13:46:22
一个玻璃效果主要分为两个部分,一部分是折射效果的计算,另一部分则是反射。下面分类进行讨论: 折射: 1.利用Grass Pass对当前屏幕的渲染图像进行采样 2.得到法线贴图对折射的影响 3.对采集的屏幕图像进行关于法线方向上的扭曲和偏移,以模拟折射效果 反射: 主要利用环境贴图产生反射的残影,并和主贴图采样结果混合 得到反射和折射的结果后,以一个插值变量控制最终效果(类似于玻璃的透光率); 脚本如下: 1 // Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld' 2 3 Shader " MyUnlit/GlassRefraction " 4 { 5 Properties 6 { 7 _MainTex ( " Texture " , 2D) = " white " {} 8 // 这里的法线贴图用于计算折射产生的扭曲 9 _BumpMap( " Normal Map " ,2D)= " bump " {} 10 // 这里的环境贴图用于反射周围环境的部分残影 11 _Cubemap( " Environment Map " ,cube)= " _Skybox " {} 12 _Distortion( " Distortion " ,range( 0 , 100 ))= 10 13 // 一个折射系数

网格优化中,你遇到过哪些吃性能的设置?

£可爱£侵袭症+ 提交于 2020-10-24 04:06:44
节前,我们已经将【性能黑榜】上的Top10规则均做了详细的解读(可戳文末相关链接回顾)。 无论是大家在开发时的疏忽,还是相关知识点的缺失,这些问题的积累最终都会反映到项目的性能表现上。 为此,我们将这些规则曝光出来,并且以一个个知识点的形式逐一解读。 今天,我们来继续剖析 【UWA本地资源检测】 中和 网格设置 相关的规则: “包含Color属性的网格”,“未开启OptimizeMesh选项的网格”,“包含Tangent属性的网格”和“包含uv3或uv4属性的网格”。 我们将力图以浅显易懂的表达,让职场萌新或优化萌新深入理解。 1、包含Color属性的网格 在一些建模软件中导出的模型可能会带有顶点的颜色属性,在Unity中即表现为Mesh的Colors属性。有些Shader可以使用这个属性进行运算与着色,如Sprites Shader。然而大多数Shader都选择忽略Colors属性(Unity标准着色器就不使用这个属性)。在这种情况下,如果Mesh带有Colors属性,那么对其本身而言没有实际意义,却会对内存、物理体积和加载性能造成影响。 所以本条规则会针对Mesh的Colors属性进行检测,以供开发团队根据实际使用需求去除不必要的Colors属性。 在此大家可以参考一下UWA问答中一位热心朋友提供的批量去除网格color属性的工具: https://answer.uwa4d

网格优化中,你遇到过哪些吃性能的设置?

落花浮王杯 提交于 2020-10-17 10:21:50
节前,我们已经将【性能黑榜】上的Top10规则均做了详细的解读(可戳文末相关链接回顾)。 无论是大家在开发时的疏忽,还是相关知识点的缺失,这些问题的积累最终都会反映到项目的性能表现上。 为此,我们将这些规则曝光出来,并且以一个个知识点的形式逐一解读。 今天,我们来继续剖析 【UWA本地资源检测】 中和 网格设置 相关的规则: “包含Color属性的网格”,“未开启OptimizeMesh选项的网格”,“包含Tangent属性的网格”和“包含uv3或uv4属性的网格”。 我们将力图以浅显易懂的表达,让职场萌新或优化萌新深入理解。 1、包含Color属性的网格 在一些建模软件中导出的模型可能会带有顶点的颜色属性,在Unity中即表现为Mesh的Colors属性。有些Shader可以使用这个属性进行运算与着色,如Sprites Shader。然而大多数Shader都选择忽略Colors属性(Unity标准着色器就不使用这个属性)。在这种情况下,如果Mesh带有Colors属性,那么对其本身而言没有实际意义,却会对内存、物理体积和加载性能造成影响。 所以本条规则会针对Mesh的Colors属性进行检测,以供开发团队根据实际使用需求去除不必要的Colors属性。 在此大家可以参考一下UWA问答中一位热心朋友提供的批量去除网格color属性的工具: https://answer.uwa4d

python模块

女生的网名这么多〃 提交于 2020-08-20 00:30:41
https://study.163.com/course/courseMain.htm?courseId=1006383008&share=2&shareId=400000000398149 (博主录制) (原创声明,转载引用需要指明来源) 模块概述 Python 模块(Module),是一个文件,用 .py 结尾。模块包含了 Python 对象定义和Python语句。模块能够有逻辑地组织 Python 代码段,把相关的代码分配到一个模块里能让开发人员的代码更好用,更易懂。模块能定义函数,类和变量,模块里也能包含可执行的代码。 下例是个简单的模块 simpleModule.py: # -*- coding: utf-8 -*- """ 最简单的模块 """ def PrintName(name): #定义一个函数 print("hello:",name)#输出信息 导入模块三种形式 只有导入模块后才能使用。导入有多种方法,每种方法对名称空间都有不同的影响。 模块引入形式主要有三种形式,用math模块为例,分别如下: (1) import math ( 推荐) 这是进行导入的最简单方法,通常建议这样做。您可以使用模块名称作为前缀来访问模块的名称空间。这意味着您可以在程序中使用与模块中相同的名称,但可以同时使用它们。当您导入多个模块时,就可以清晰辨别特定名称属于哪个模块。 import

数学的深渊另一个描述

与世无争的帅哥 提交于 2020-08-15 05:08:29
Counting 计数 Natural Number 自然数 Odd Number 奇数 Even Number 偶数 Mathematical Symbol 数学符号 Arithmetic 数术 Subtraction 减法 Multiplication 乘法 Division 除法 Mixed Operation 混合运算 Single Digit 个位数 Decimal System 十进制 Interger 整数 Number Axis 数轴 Negative Number 负数 Absolute Value 绝对值 Algebra 代数 Proprtion 比例 Factor 因子 Fraction 分数 Reduction of a Fraction 约数 Prime Nuber 质数 Composite Number 合数 Relatively Prime 互质 Pythagorean Theotem 勾股定理 Irrational Number 无理数 Real Number 实数 Basic Geometry 基本几何 Point 点 Line 线 Plane 面 Square 正方形 Circle 圆 Perimeter 周长 Area 面积 Half-Line 射线 Angle 角 Tangent Line 切线 Arc Length 弧长 Graph

一天干掉一只Monkey计划(四)——卡通着色,描边

旧街凉风 提交于 2020-08-06 08:04:59
一天干掉一只Monkey计划(四)--卡通着色,描边 --Zephyroal 楔子: 实在无奈,Unreal的世界浩如烟海,在里面一点一点地爬动,很充实,但也很无奈,加之最近加入自行车驴行俱乐部,几乎都没有什么时间出来搞些自己的小小兴趣爱好了,老大说的好“每一个年轻程序员都有一颗渲染的心”,正好有相关方面的应用,写下此篇,总结一下卡通渲染方面的知识,摘录不少,这里不一一谢过了,最后用RM做了相关的实现,工程文件就懒地放了,最怕害了一样手懒的童鞋,下个东西就当学习结束了,以我自己的深刻教训,理论与实际永远隔着一条银河,牢记,自勉: 实践是检验真理的唯一标准! 一、 技术背景 非真实感绘制 (Non-photorealistic rendering) (NPR)是计算机图形学的一类,主要模拟艺术式的绘制风格,也用于发展新绘制风格。和传统的追求真实感的计算机图形学不同,NPR受到油画,素描,技术图纸,和动画卡通的影响。NPR已经以"卡通造影"的形式出现在电影和电子游戏中,它也已出现在设计图纸和试验动画中 卡通渲染便是一种典型的常用非真实感绘制技术,它要求帖图由不明显的渐变色块夹杂一些不复杂的纹理组成。它强调粗细线条(Silhouette,轮廓勾边)和简单色块(ToonShading,块状色调着色),忽略细节。利用这些很简单很纯粹的线条和色块,就能渲染出设计师所要求的质感很强的卡通效果

关于SSAO模拟阴影显示不常的几个调试要点

雨燕双飞 提交于 2020-07-29 11:24:40
1. TBN造成的斑驳闪烁问题. 造成这个问题的原因有两个, 一个是TBN[0]这里多用了一次normaliz 不用也是没问题的, 用了, 乘法运算后会有闪烁现象 TBN中的 tangent 是要用normalize的, 否则不正常, learnopengl-cn教程里也有用normalize TBN 的默认旋转起点矢量是(0,0,1) 地面的旋转目标矢量也是(0,0,1) 这就出现闪烁问题了. 2. 采样方向好像没有XY偏移 原因是: TBN中的tangent没使用normalize 表现: 在地面上会有这个问题, 地面没阴影 地面上有立方体, 但地面不产生阴影, 那立方体却有阴影, 垂直于地面的物体, 物体靠近地面的地方有阴影, 但地面本身没有阴影. 另外, 斜坡越陡, 阴影越淡, 水平的地面没阴影, 比较平的斜坡阴影却更重. 这也是个迷(如图) 3. 斜坡问题 这个斜坡问题, 半球采样矢量加上(0,0,1)就基本解决, 但这么一来, 半球已经不是半球了. 4. 太远看不见, 太近也消失 场景模型的大小有时你没法控制 这就希望做成动态调整 顶点于场景的位置,经过透视除法后的w值, 可以拿来做距离乘法. 最大值限制为场景包围盒半径的某个数值, 最小值限制为几厘米, 看场景的建模单位是米还是厘米, 最小值用于保证拉近后还有阴影. 来源: oschina 链接: https://my

Shader笔记_003UNITY提供的内置变量和文件及特殊语义

风流意气都作罢 提交于 2020-07-28 11:11:36
当我们查看别人的shader,如果没有在代码里找到声明那多半是使用了UNITY内置的文件和变量。 一、包含文件 UNITY可以使用#include 来包含部分文件,文件后缀.cginc,类似C++头文件/java的包 例如 CGPROGRAM ... #include "UnityCG.cginc" ... ENDCG 通过这种方式可以引用UNITY已经封装好的函数/变量我们可以通过 http://unity3d.com/cn/get-unity/download/archive 下载(虽然网站没法访问) 常用的UNITY内置文件 UnityCG.cginc 包含了最常用的函数结构体和宏等 UnityShaderVariables.cginc 在编译UNITY SHADER时 会自动被包含进来 ,包含了很多全局变量 如 UNITY_MATRIX_MVP转换矩阵 Lighting.cginc 包含了各种光照模型,如果编写Surface Shader的话 会被自动包含进来 HLSLSupport.cginc 在编译UNITY SHADER时被自动包含进来,声明了很多用于跨平台编译的宏和定义 UnityStandardBRDF.cginc、UnityStandardCore.cginc 这些文件里面包含了用于基于物理的渲染 --------------------------------

Unity Shader Graph 实验室

二次信任 提交于 2020-05-07 13:38:27
Unity2018 Shader Graph 实验室 Shader Shader Graph Unity Tips : -- 在shader forge和amplyfy Shader节点图形化shader编程的诱惑下,unity官方终于在2018版本也推出了而自己shader节点可视化编程工具 Shaderr Graph 。本篇文章是对Shader Graph一些效果的尝试,建议学习shader的朋友也尝试下这些工具,对shader的理解会更加直观 -- 效果中自发光光晕是使用的PostProcess中bloom,须自行添加 -- 图看不清,右击在标签页中打开 -- 想要自发光更炫,Color属性节点开启HDR模式 目录 bilibili小电视 光剑 火焰卡牌 1.Bilibili小电视( []~( ̄▽ ̄)~* ) 效果 BILIBILI 节点图 节点图 效果说明 该效果主要分为三个部分: 红色部分,通过一个纹理与一个颜色相乘来作为其基础效果。 紫色部分,边缘高光,通过一个菲涅尔节点和颜色相乘赋给自发光。 黄色部分,随时间的扭曲和剔除,通过Step阶梯点和Twirl扭曲节点实现,Noise节点辅助产生扭曲条纹状效果。 节点说明 名称 说明 Fresnel 菲涅尔反射,简单来说就是表面与视角越是平行,则高光效果越明显 (Unity就不能出个中文文档吗,哭 ) http://api

Paper:Xavier参数初始化之《Understanding the difficulty of training deep feedforward neural networks》的翻译与解读

有些话、适合烂在心里 提交于 2020-04-11 15:07:34
Paper:Xavier参数初始化之《Understanding the difficulty of training deep feedforward neural networks》的翻译与解读 目录 Understanding the difficulty of training deep feedforward neural networks Abstract 5 Error Curves and Conclusions 误差曲线及结论 相关文章 Paper:Xavier参数初始化之《Understanding the difficulty of training deep feedforward neural networks》的翻译与解读 Paper:He参数初始化之《Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet C》的翻译与解读 DL之DNN优化技术:DNN中参数初始值优化【He初始化和Xavier初始化】的简介、使用方法详细攻略 Understanding the difficulty of training deep feedforward neural networks 原论文地址 : http://proceedings.mlr.press/v9