Unity3DShader
小郭起床写博客
喜欢做游戏,数据可视化,服务器
展开
-
Unity后期渲染指定的物体
Unity后期指定的物体在后期渲染过程中,难免会遇到需要对指定物体进行后期渲染,下面事我参考HightlightingEffect插件整理的针对特定物体做后期的渲染方式。基本思路:创建一个相机ACamera通过Layer来渲染指定Layer的物体,主相机这对这些物体就不需要渲染.创建一个RenderTexture去取ACamera通过引擎渲染管线输出的RenderTexture 。在主相...原创 2019-11-08 17:59:46 · 2041 阅读 · 1 评论 -
【Unity Shaders】Alpha Test和Alpha Blending
本文链接:https://blog.csdn.net/candyca...转载 2019-11-06 15:29:25 · 635 阅读 · 0 评论 -
Unity Shader实现等高线
Unity Shader实现等高线需求在做地形时,会遇到显示数字化过程中要有等高线显示的需求思考实现原理在Pixel Shader(Unity shder 中为fragment阶段)中通过判断像素点在世界坐标系下的高度值来计算绘制等高线(Unity 中对应时Y值).具体数学转换原理如下图:具体数学推理设HeightOffset为U1+U2,HeightLineRate为U2在Hei...原创 2019-10-21 14:57:47 · 2891 阅读 · 1 评论 -
Shader实现城市建筑整体流光效果
城市建筑整体流光效果在做可视化城市项目的时候,要实现城市整体流光效果,如下图参考:实现功能参考图:实现原理Pixshader中计算每个像素点在世界坐标系中的位置像素点的世界坐标位置与地图范围的比例值像素点的世界坐标位置与地图范围的比例值与流光所在位置的比例值做减法,算出比值差值范围通过比值差值范围映射出流光宽度内的颜色值材质实现Shader "Custom/WorldFl...原创 2019-10-12 17:15:37 · 1102 阅读 · 1 评论 -
渲染管线
Wiki Opengl的渲染流程链接地址原创 2019-10-12 13:31:30 · 190 阅读 · 0 评论 -
海水效果
Category Archives: WaterNovember 26, 2015WaterCeto: Ocean System for UnityscrawkCeto, Ocean, Water, WavesWell its been a long time since I made a blog post. 13 months to be exact转载 2016-06-06 16:42:06 · 3280 阅读 · 0 评论 -
Cube Sphere (国外技术文章收藏)
Catlike CodingUnity C# TutorialsCube Sphere Better RoundnessTurn a cube into a sphere.Visualize the mapping in Unity.Critically examine the conversion.Use math to come up with a better a转载 2017-01-17 16:42:47 · 1908 阅读 · 0 评论 -
Unity Shader-遮挡处理
简介 第三人称游戏,我们经常会遇到相机被场景中的建筑物遮挡的情况。今天,本人就来研究一下相机被遮挡之后的处理。最简单的就是传说中的“鸵鸟法”,假装看不见,在一些游戏里面也有一些玩法设定,或者是本身遮挡较少,影响不大的情况,也可以直接不进行处理。当然,更好一些的遮挡处理,就是X光的效果。在人物被遮挡的部分会透过遮挡物,用一个其他的颜色渲染出来。《火炬之光》中就使用过这个效果:转载 2017-11-07 17:37:48 · 3705 阅读 · 1 评论 -
http://www.cnblogs.com/jackmaxwell/p/6220511.html
在魔兽争霸等一些游戏中,我们通过模型的颜色就能很轻松的区分队伍,如下: 实现的方法有很多,比如:1,为不同队伍各出一张不同颜色的贴图(Hmmm,war3有的地图可以容纳12只队伍,美术大大们会很[bu4] 感[da3] 谢[si3]你的)2,额外用一张灰度图标记要变色的区域,通过程序来操作这一块区域变色(much better)3,不需要任何额外的贴图,通过分析原图,直接改变转载 2017-10-30 17:04:02 · 546 阅读 · 0 评论 -
Unity光照模型之-Phong和Blinn-Phong光照模型
图片和公式原理参考博客的链接Phong和Blinn-Phong光照模型Phong和Blinn-Phong是计算镜面反射光的两种光照模型,两者仅仅有很小的不同之处。1.Phong模型在Phong光照模型中,关键是对发射向量的计算(如下图R向量)上图中的位于表面“下面”的向量 ‘I’ 是原始 ‘I’ 向量的拷贝,并且二者是一样的,现在我们的目标计算出向量 ‘R’ 。根据向量相加原则,向量...原创 2019-04-19 15:59:47 · 2043 阅读 · 0 评论 -
基于物理着色(二)- Microfacet材质和多层材质
作者:文刀秋二链接:https://zhuanlan.zhihu.com/p/20119162来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。上一篇文章介绍了基于物理着色的基本概念以及最基本的漫反射与镜面反射模型,这一篇会介绍利用Microfacet模型对粗糙镜面反射的模拟,以及多层材质的模拟例如塑料,陶瓷,车漆等。有了这些模型我们就已经可以很真实转载 2016-06-02 18:04:23 · 1883 阅读 · 0 评论 -
基于物理着色(一)
链接:https://zhuanlan.zhihu.com/p/20091064来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。基于物理着色(Physically Based Shading)就是计算机图形学中用数学建模的方式模拟物体表面各种材质散射光线的属性从而渲染照片真实图片的技术。基于物理的材质模型现在已经广泛的被各种渲染器和游戏引擎使用,它不仅转载 2016-06-02 18:03:27 · 1347 阅读 · 0 评论 -
光照模型
常见的光照模型一般包括四个部分ambient, diffuse, specular, 和emitted light. 即:vertex color = ambient + diffuse + specular + emitted light当有多个光源的时候,最后的颜色就是多个结果的叠加。对BRDF不熟悉的移步 基于BRDF的光照模型。Ambient转载 2016-05-16 19:18:49 · 9955 阅读 · 0 评论 -
Unity ShaderLab< 一> 学习总结
Why Bothers?为什么已经有ShaderForge这种可视化Shader编辑器、为什么Asset Store已经有那么多炫酷的Shader组件可下载,还是有必要学些Shader的编写?因为上面这些Shader工具/组件最终都是以Shader文件的形式而存在。需要开发人员/技术美术有能力对Shader进行功能分析、效率评估、选择、优化、甚至是Debug。对于特殊的需求,可转载 2015-03-03 10:22:21 · 3020 阅读 · 1 评论 -
Unity3D ShaderLab<二>Shader属性
本文主要是对Unity3D shader的属性进行相关阐述Shader "Custom/NewShader" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} } SubShader { Tags { "RenderType"="Opaque" } LOD 200 CGPROGRAM #pra原创 2015-03-02 23:55:24 · 3719 阅读 · 0 评论 -
unity3D Shader<三>漫反射
一、漫反射的说明 对于粗糙物体表面的某一点,其亮度应该和入射光线与该点的垂直程度有关,也就是入射光线与此点的夹角相关。如果我们用L表示单位长度的入射光线,用C表示到达此点的光线强度和颜色,用N表示此点的发线,那么物体表面此点的亮度Lum就可以用下面的公式来表示: Lum = C * max(0,cos) 表示的是方向矢量L和N之间的夹角,原创 2015-03-29 15:05:17 · 2701 阅读 · 0 评论 -
unity3D ShaderLab <四>漫反射光照改善技巧
一、概要:使用Half Lambert lighting model(半兰伯特光照模型)和使用一个ramp texture来控制diffuse shading二、具体代码Shader "Custom/LambertLight" { Properties { _RampTex ("渐变纹理贴图:)", 2D) = "white" {} _EmissiveColor("自发光颜色原创 2015-03-29 20:20:23 · 1627 阅读 · 0 评论 -
unity3D ShaderLab <五>漫反射光照改善技巧之使用2D ramp texture来创建一个假的BRDF(双向反射分布函数)
终于到了Diffuse Shading一章的最后一篇了!回忆一下,在上一篇中,一共学习了两种改善漫反射光照的方法:一种是完全根据感性认识,使用Half Lembert方法改变了光照值区间,使得物体颜色整体提亮;一种是通过一张渐变图,来控制光照值。这两种方法都只考虑到了入射光线和反射点所在的平面法向量的夹角,但是想象实际生活中我们观察一个物体,即便是在相同的光照下观察物体的同一点,如果我们观转载 2015-03-29 21:10:47 · 1938 阅读 · 0 评论 -
Unity3D ShaderLab <六>通过改变纹理的UV坐标实现简单的水流效果
一、准备1、创建一个Shader和一个材质2、给一个GameObject添加一个Mesh Filter组件和一个Mesh Renderer组件3、给Mesh Filter拖拽一个简单的网格(我用的是unity自带的标准资源Standard Assets/Water (Basic)/Objects目录下的waterPlaneMesh)4、将写好的Shader 赋给创建的材质上,并选中原创 2015-04-01 00:03:46 · 18633 阅读 · 2 评论 -
shader三种变量类型(uniform,attribute和varying)
form变量在vertex和fragment两者之间声明方式完全一样,则它可以在vertex和fragment共享使用。(相当于一个被vertex和fragment shader共享的全局变量)uniform变量一般用来表示:变换矩阵,材质,光照参数和颜色等信息。以下是例子:uniform mat4 viewProjMatrix; //投影+视图矩阵uniform ma转载 2016-04-11 12:50:35 · 4536 阅读 · 0 评论 -
Shader and Program编程基本概念 - 转
一、本文关注的问题:• Shader and program 对象介绍• 创建并编译一个Shader对象• 创建并链接一个Program对象• 获取并设置uniforms• 获取并设置attributes 在OpenGL ES中,每个program对象有且仅有一个Vertex Shader对象和一个Fragment Shader对象连接到它。转载 2016-04-11 13:23:25 · 790 阅读 · 0 评论 -
Unity实用Shader之遮罩层
在unity中很多时候会用到遮罩层,如Minnmap、钮等 这里贴上相关的Shader代码和注释Shader "ShaderDemo/MaskLayer" {Properties {_MainTex ("Base (RGB)", 2D) = "white" {}//目标图片,即需要被遮罩的图片_MaskLayer("Culling Mask",2D) = "white"{}原创 2015-02-26 23:59:18 · 26099 阅读 · 0 评论