【Unity Shader编程】
文章平均质量分 81
关于Unity3D中Shader书写方法与技巧的博客文章合集。
浅墨_毛星云
微软MVP,著作《Windows游戏编程之从零开始》,《OpenCV3编程入门》。热爱游戏引擎、游戏开发、图形学、Unreal、Unity3D等技术。
展开
-
【Unity Shader编程】之十六 基于MatCap实现适于移动平台的“次时代”车漆Shader
这篇文章将基于MatCap的思想,在Unity中实现具有高度真实感的MatCap Shader。MatCap Shader不但可以实现高度的真实感,而且计算成本低廉,可以作为移动平台实现次时代的效果的一种优秀解决方案。本文以车漆Shader为例,但MatCap思想能实现的,并不局限于车漆Shader。本来准备给本文取名《一种基于MatCap的低计算成本、高真实感移动平台Shader解决方案》的,原创 2017-02-19 14:59:39 · 43106 阅读 · 19 评论 -
【Unity Shader编程】之十五 屏幕高斯模糊(Gaussian Blur)后期特效的实现
本篇文章将分析如何在Unity中基于Shader实现高斯模糊屏幕后期特效。 首先放出最终的实现效果。如下几幅图,是在Unity中使用本文所实现的Shader得到的高斯模糊屏幕后期特效与原始图的效果对比图。 写实风格的效果测试:卡通风格效果测试: OK,下面我们开始分析如何在Unity中实现上述的高斯模糊特效。 一、降采样与高斯模糊的原理 首先梳理一下在Unity中实现高斯模糊效果需用到的几个图像处理的知识点,说起来也很巧,正好和之前我写过一个关原创 2016-07-10 15:51:33 · 75645 阅读 · 39 评论 -
【Unity Shader编程】之十四 边缘发光Shader(Rim Shader)的两种实现形态
这篇文章主要讲解了如何在Unity3D中分别使用Surface Shader和Vertex & Fragment Shader实现边缘发光Shader。一、最终实现的效果 边缘发光Shader比较直观的一个运用便是模拟宇宙中的星球效果。将本文实现的边缘发光Shader先赋一个Material,此Material再赋给一个球体,加上Galaxy Skybox, 实现的效果如下图: 当然,边缘发光Shader也可以实现例如暗黑三中精英怪的高亮效果,将一个怪物模型本身的Shader用边缘发光Sh原创 2016-06-26 20:42:33 · 48292 阅读 · 25 评论 -
【Unity3D Shader编程】之十三 单色透明Shader & 标准镜面高光Shader
本次更新放出的Shader为透明系列的3个Shader和标准的镜面高光Shader的两个Shader。由易到难,由入门级到应用级,难度梯度合理。依然是先放出游戏场景的exe和运行截图。 本期用的模型为妙蛙草。 【可运行的本文配套exe游戏场景请点击这里下载】 OK,直奔主题吧。 一、单色透明Shader在上篇文章中单色透明的基础上进行改造,加入alpha混合,构成了这篇文章的第一个Shader——单色透明Shader。具体代码如下:原创 2016-03-13 16:48:12 · 29998 阅读 · 24 评论 -
【Unity3D Shader编程】之十二 可编程Shader初步 & 漫反射可编程Shader的实现
从这篇文章开始, Shader系列博文将继续开始更新。且在这次重启,这个系列文章会更多专注于实际Shader的书写,力求推出更多具有特色和实用性的Shader,概念性的东西在原则上上是不会再多讲的。 作为可编程Shader系列的第一篇文章,本文将从最简化的可编程Shader开始,逐步变换与实现一个漫反射(也就是实现Lambert光照模型)顶点&片段Shader,可以说,是在讲述一个可编程Shader的进化史。原创 2016-03-06 11:23:13 · 19207 阅读 · 9 评论 -
【Unity3D Shader编程】之十一 深入理解Unity5中的Standard Shader(三)&屏幕像素化特效的实现
概要:续接上文,本文进一步讲解与分析了上文未讲完的Unity5中Standard Shader正向基础渲染通道源码的片段着色实现部分,以及对屏幕像素化后期特效进行了实现。 同样需要声明的是。本文中对Stardard Shader源码的一些分析,全是浅墨自己通过对Unity Shader内建源码的理解,以及Google之后理解与分析而来。如有解释不妥当之处,还请各位及时指出。 依然是附上一组本文配套工程的运行截图之后,便开始我们的正文。傍晚的野外(with 屏幕像素化特效):原创 2015-11-29 13:59:16 · 27127 阅读 · 15 评论 -
【Unity3D Shader编程】之十 深入理解Unity5中的Standard Shader(二)&屏幕油画特效的实现
本系列文章由@浅墨_毛星云 出品,转载请注明出处。 文章链接: http://blog.csdn.net/poem_qianmo/article/details/49556461 作者:毛星云(浅墨) 微博:http://weibo.com/u/1723155442 本文工程使用的Unity3D版本: 5.2.1 概要:本文讲解了Unity中着色器编译多样化的思路,并对Standar原创 2015-11-08 17:40:23 · 35566 阅读 · 32 评论 -
【Unity3D Shader编程】之九 深入理解Unity5中的Standard Shader (一)&屏幕水幕特效的实现
概要:本文主要介绍了Unity5中的标准着色器,并且也涉及到了基于物理的着色、延迟渲染等高级着色技术,而在文章后半部分,也对屏幕水幕特效的实现方法进行了讲解与分析。 依然是附上一组本文配套工程的运行截图之后,便开始我们的正文。如下图。 打开水幕特效的效果图: 原始的城镇场景: 需要说明,这里的水幕特效是动态的水流效果。本来准备传GIF上来展示动态的效果,但受图片尺寸2M的限制,无法出色原创 2015-11-01 19:21:26 · 56561 阅读 · 38 评论 -
【Unity3D Shader编程】之八 Unity5新版Shader模板源码解析&径向模糊屏幕特效的实现
概要:本文对Unity5中全新的三种Shader模板的源码进行了解析,然后还讲解了运动模糊屏幕特效的实现方法。Unity5和之前的书写模式有了一定的改变。Unity5时代的Shader Reference官方文档也进一步地变得丰满。主要需要了解到的是,在原来的Unity中,若想要新建一个Shader源文件,不考虑compute shader的话,仅有一种Shader模板供选择。而自从Unity5.1起(好像是Unity5.1)原创 2015-10-25 20:26:18 · 41321 阅读 · 39 评论 -
【Unity3D Shader编程】之七 静谧之秋篇: 表面着色器的写法(二)—— 自定义光照模式
本文主要讲解了Unity中SurfaceShader的自定义光照模式的写法。 上篇文章中我们已经说到,表面着色器将分为两次讲解,上一篇文章中介绍了表面着色器的基本概念和一些写法,用内置的兰伯特光照模式来进行Surface Shader的书写,而本文将介绍Surface Shader+自定义的光照模式的写法。 OK,言归正传,依然是先来看看本文配套的游戏场景截图。 运行游戏,音乐响起,金黄色的丰收之秋映入眼帘: 远方: 池塘: 参天大树: 小型村落:原创 2015-01-11 17:03:14 · 26117 阅读 · 35 评论 -
【Unity3D Shader编程】之六 暗黑城堡篇: 表面着色器(Surface Shader)的写法(一)
本文主要讲解了Unity中SurfaceShader的具体写法,以及几个常用的CG函数的用法。在这里先说明一下,表面着色器将分为两次讲解,本文介绍表面着色器的基本概念和一些写法,用内置的兰伯特光照模式来进行Surface Shader的书写,而下次将介绍Surface Shader+自定义的光照模式的写法。 PS:最近几天,在完美世界、腾讯互娱工作多年的几个朋友们问了浅墨一些表面着色器相关的Shader写法,浅墨当时回答他们的时候自己也是似懂非懂。通过这篇文章的书写,现在算是对这方面知识有了进一步的理原创 2014-12-28 19:12:33 · 40853 阅读 · 26 评论 -
【Unity3D Shader编程】之五 圣诞夜篇: Unity中Shader的三种形态对比&混合操作合辑
本文算是固定功能Shader的最后一篇,下一次更新应该就会开始讲解表面Shader,而讲解完表面Shader,后续文章最终会讲解到顶点着色器和片段着色器(也就是可编程Shader)。文章第一部分复习和进一步了解了Unity中Shader的三种形态,然后讲解了固定功能Shader中混合操作的方方面面,然后以6个Shader的书写作为实战内容,最后创建了一个温馨美好的圣诞夜场景进行了Shader的测试原创 2014-12-21 17:28:40 · 34536 阅读 · 46 评论 -
【Unity3D Shader编程】之四 热带雨林篇: 剔除、深度测试、Alpha测试以及基本雾效合辑
本文介绍了Unity中Shader书写中会用到的剔除、深度测试、Alpha测试以及基本雾效相关的语法知识,然后以6个Shader的书写作为实战内容,最后创建了一个生机勃勃的热带雨林场景进行了Shader的测试。依旧是国际惯例,先上本文配套程序的截图。绿色的海洋: 满眼的生机: 竹林: 参天大树: 飘到脸上的树叶: OK,图先就上这么多。文章末尾有更多的运行截图,并提供了原工程的下载。可运原创 2014-12-14 16:49:18 · 37099 阅读 · 44 评论 -
【Unity3D Shader编程】之三 光之城堡篇:子着色器、通道与标签的写法 & 纹理混合
本文介绍了Unity中子着色器、通道和标签相关的详细概念与写法,以及纹理的设置方法,基本的纹理混合写法,写了5个Shader作为本文Shader讲解的实战内容,最后创建了一个梦幻的光之城堡场景进行了Shader的测试。依旧是国际惯例,先上本文配套程序的截图。光之城堡: 山坡上远眺: 通向森林的路:古墓:雾气氤氲的森林: 来一张上帝视角:OK,图先就上这么多。文章末尾有更多的运行截图,并提供了原工程的下载。可运行的exe下载在这里:原创 2014-11-16 21:05:25 · 45910 阅读 · 43 评论 -
【Unity3D Shader编程】之二 雪山飞狐篇:Unity的基本Shader框架写法&颜色、光照与材质
本篇文章中,我们学习了Unity Shader的基本写法框架,以及学习了Shader中Properties(属性)的详细写法,光照、材质与颜色的具体写法。写了6个Shader作为本文Shader讲解的实战内容,最后创建了一个逼真的暴风雪场景进行了Shader的测试。依旧是国际惯例先上本文配套程序的截图。先是一张远眺图:原创 2014-11-09 23:24:39 · 104316 阅读 · 63 评论 -
【Unity3D Shader编程】之一 夏威夷篇:游戏场景的创建 & 第一个Shader的书写
作为一个系统介绍Unity3D中Shader编写的系列文章的开篇,本文的第一部分系列文章的前言,然后第二部分介绍了这个系列文章中我们会使用的游戏场景创建方式,最后一部分讲解了如何在Unity中创建和使用Shader,为后面专注于介绍如何在Unity中进行Shader编程打好了基础。 因为后面推出的系列文章会着重介绍各种Shader的写法和实现,不会再具体讲解如何创建场景和写出Shader代码后如何使用,相信这篇文章作为本系列的开篇,发表出来肯定还是会对大家多少有些帮助的。大家以后阅读稍后推出的Unity原创 2014-11-03 02:24:52 · 86142 阅读 · 93 评论