
Unity Shader
文章平均质量分 80
淡泊以致远
一个文艺的程序员
展开
-
深入理解渲染流水线----学习Shader的基础(入门必备)
序:今天早晨偶然看到一个名词Unity-SRP,SRP吓我一跳。。。一时间没反应过来是什么东西,好高大尚的名词,遂决定写这篇文章。一来想把接触过的都总结下来,所谓的前人栽树后人乘凉(把自己说的高尚了点。。。hhh)与君共勉;二来,一直对shader比较感兴趣,作shader系列的博客深挖一些技术知识。 题外知识:SRP,其实就是Scriptable Render Pi...原创 2018-11-07 15:46:45 · 504 阅读 · 0 评论 -
Unity屏幕后处理
后处理:渲染完整个场景得到屏幕图像后,对这个图像进行操作。 过程:摄像中添加屏幕后处理脚本,OnRenderImage(RenderTexture src, RenderTexture dest)会将当前渲染的图像存储在src的纹理中,使用Graphics.Blit(RenderTexture src, RenderTexture dest, Material ...原创 2019-01-08 20:31:55 · 4612 阅读 · 0 评论 -
漫谈光照模型
简单点说,光照模型就是用一些数学公式模拟在真实环境下物体表面在光照下的颜色。这些模型包括但不限于之前讲过的Phong,Blinn-Phong(零基础学习OpenGL--光照和高级光照篇中介绍,二者区别主要在于镜面光照,Blinn-Phong测量的是法线与半程向量之间的夹角,而Phong模型测量的是视线与反射向量间的夹角。Blinn-Phong的镜面光分量会比冯氏模型更锐利一些)。...原创 2019-01-08 14:57:43 · 559 阅读 · 0 评论 -
Unity中的前向渲染路径和延迟渲染路径
渲染路径核心:光照处理。 Unity中光照:逐顶点、逐像素、球谐光照。 逐像素光照:按照每个像素的颜色被计算,看起来比较平滑;逐顶点光照:每个顶点上做光照,其他地方插值,效果粗糙。 但是逐像素光照中,每个光源会使每个光源光照范围内的物体增加一个渲染批次。延迟渲染可以解决逐像素光照对光源造成的性能影响。 延迟渲染:先不进行光照运算,对每个像素生...原创 2019-01-04 17:09:27 · 1392 阅读 · 0 评论 -
Unity ShaderLab开发实战(五)边缘光RimColor
参考:https://blog.youkuaiyun.com/puppet_master/article/details/53548134RimColor:边缘发光效果。效果如下图(图片资源也是参考文章里的): 边缘很简单,法线和视线越垂直就是边缘,简单原理如下图: 那边缘发光效果就是希望在边缘处额外加一个光的效果。我们可以根据dot(N,V)来获得视线方向与法线...原创 2018-12-11 15:08:51 · 1268 阅读 · 0 评论 -
深入了解 Unity 批处理
DrawCall是OpenGL中描述绘制次数的一个量,例如一个基本的OpenGL绘制流程是设置颜色、设置绘图方式、顶点坐标、绘制、结束。 目的:Unity3D使用了批处理来达到降低DrawCall的目的,批处理希望通过对物体网格的重组来获得更高的绘制效率。通俗点讲,多个物体合并成一个物体后,多个DrawCall就变成一个啦。 条件:Unity3D中批处...原创 2018-12-11 16:54:38 · 842 阅读 · 0 评论 -
Unity ShaderLab开发实战(四)描边
之前可能在面剔除中提到过,面剔除可以用来实现描边效果。(以下效果图来自Unity3D ShaderLab开发实战详解) 原理:这是一个最简单的描边,使用面剔除:Cull指令,上图中 ,最左边的球使用的是Cull Front, 中间的使用Cull Back。最右边的球第一个Pass使用了Cull Front并且将球体沿法线挤出一点点,第二个Pass使用Cull Bac...原创 2018-12-10 17:25:17 · 2953 阅读 · 0 评论 -
Adreno GPU Profiler 和 Snapdragon Profiler 实战(二)(转载)
  转载 https://www.youkuaiyun.com/article/a/2015-08-05/15826957Snapdragon Profiler是一款系统配置和调试工具,旨在帮助开发人员优化Snapdragon处理器驱动设备中的应用程序。这款工具通过三种数据捕获模式显示应用程序的CPU、GPU、DSP、内存、功率、网络连接和设备运行时的发热数据,从多个不同的...转载 2018-12-10 11:29:51 · 2432 阅读 · 0 评论 -
Adreno GPU Profiler 和 Snapdragon Profiler 实战(一)
OpenGL学过了,Unity的Shader也了解了一下,接下来在实战中看看还缺少什么。 这两款软件的下载地址:https://developer.qualcomm.com/download/software,需要注册个账号才可以下载的(免费注册)。下面安装的步骤会用电脑的应该都会。一、Adreno Profiler Adreno Profi...原创 2018-12-10 11:26:28 · 4611 阅读 · 0 评论 -
Unity ShaderLab开发实战(三)Pass的通用指令开关
1. LOD: 通过给SubShader设定一个整型的Level of DetaiI,即LOD数值,可以在运行时根据硬件设备能力来决定是否使用此Shader,以及使用哪一个层级的SubShader。用法eg: SubShader { LOD 600 Pass { } } 可以针对某一特定的Sha...原创 2018-12-06 16:59:39 · 3268 阅读 · 1 评论 -
Unity ShaderLab开发实战(二)渲染路径
渲染路径决定了光照如何应用在Shader中,需要为每个Pass指定要使用的渲染路径,这样光照计算才可以被正确进行。Unity--Edit--Project Setting--Player--Other Setting--Rendering Path里可以设置,也可以在相机的渲染路径设置中覆盖Project Setting中的设置。三种(前向渲染路径(Forward Rendering...原创 2018-12-05 17:42:54 · 345 阅读 · 0 评论 -
Unity ShaderLab开发实战(一)基础标签和关键字
注:此系列为<<Unity3d ShaderLab开发实战详解的读书笔记>>,作者郭浩瑜,人民邮电出版社,在这里感谢作者。 Unity使用自定义shaderLab来组织shader的内容。 SubShader:之所以用subshader,是为了能让开发者针对不同性能的显卡编写不同的shader,因为现实中并不是每个人都用相同的...原创 2018-12-04 20:02:39 · 863 阅读 · 0 评论 -
Unity Shader编程 (一)简单凹凸贴图和自选边缘颜色和强度的shader编写
代码转自: http://blog.youkuaiyun.com/poem_qianmo/article/details/40723789 作者:毛星云(浅墨) Shader "浅墨Shader编程/0.TheFirstShader" { //-------------------------------【属性】-----------------------------------------...转载 2018-11-26 17:13:04 · 699 阅读 · 0 评论 -
零基础学习渲染--PBR(基于物理渲染)
序:说了几天的Unity,今天回到渲染吧,毕竟图形学才是我的最爱。 看到一个名字PBR,给人高大尚的感觉,下面我和大家一起扫雷,给不了解和想要了解的人学习学习。 PBR(Physicallly-Based-Rendering), 基于物理的渲染,有时也叫PBS(Physicallly-Based-Shading),(其实Unity自带的Stand...原创 2018-11-20 10:05:03 · 6206 阅读 · 1 评论 -
Unity光照系统,GI,光线追踪,LightMap,Enlighten,HDR等
GI:全局光照,指的是模拟光线是如何在场景中传播的算法。不仅会考虑直接光照的结果,还会计算光线被不同的物体表面反射产生的间接光照。 Unity使用的是预计算实时全局光照 : 实时(直接光照)+ 预计算(直接光照和间接光照) 模拟光照。(这里的实时指的就是物体移动光照效果也会变化。)实时光照没办法模拟光线的多次反射的效果,所以加了预计算光照。预计算光照效果就既有直...原创 2018-11-22 15:46:43 · 1877 阅读 · 0 评论 -
MatCap--用低廉的成本,达到类似PBR的渲染效果
序:上篇详细介绍了PBR(PBS),今天讲一下MatCap。PBR虽然渲染效果真实,但是性能要求较高。尤其是在移动平台,计算能力有限,采用MatCap思想的Shader,用较低的计算成本,就可以达到类似PBR一样真实的渲染效果,可谓是在移动平台实现次时代渲染效果的一种优秀解决方案。(上个星期买了行李架去装了一下,本来以为很简单,螺丝固定一下就好了,结果找店里的人装了一下午,而且还把车...原创 2018-11-20 16:54:33 · 1370 阅读 · 0 评论 -
UnityShader优化
一、计算量优化 对不影响最终效果但仍在计算的删除; 尽量在脚本中计算然后传递给着色器,如果不可以的话尽量从像素着色器移动顶点着色器中计算。因为通常像素着色器执行的次数多于顶点着色器。二、Surface Shader Surface Shader方便用户快捷的处理照明,高效的产生底层的vertex和fragment shader。适合编写与光...原创 2019-01-09 17:10:35 · 445 阅读 · 0 评论