Kurong

在温室中探险

Unity Shader 入门(七):模型描边Shader

前言 前面几篇我们写了几个边缘发光的shader,另外一个类似功能的就是模型描边,和边缘发光不同的地方在于,描边是在原有模型的基础上,添加一圈的外框。 老规矩还是来看一下效果图: 实现原理 利用两个Pass来绘制: 第一个Pass将所有表面延展模型,挤出一点点并只输出描边的颜色 第二个Pass就是进行正常的着色工作 Shader代码 Shader "Kurong/NPR/Outlin......

Unity Shader 入门(六):边缘发光透明版

前言 之前我们写过一个边缘发光的Shader,这一次我们来写这个的升级版:透明物体的边缘发光。 效果图 首先我们还是来看一下效果图: Shader代码 Shader "Kurong/Rim/RimLightingTranslucent"{ Properties { _Color ("Color", Color) = (1,1,1,1) ......

Unity Shader 入门(五):透明效果知识储备

前言 透明渲染是是图形学里面的常见问题之一,对于渲染算法,可以大致分为基于光和基于视图的效果。基于光的效果是指物体使得灯光衰减或改变方向,从而导致场景中的其他物体以不同方式被照明和渲染的效果。基于视图的效果是指在其中渲染半透明对象本身的效果。 透明渲染方法 以下两种方法是比较常用的透明渲染方法: Screen-Door Transparency 方法 基本思想是用棋盘格填充模式来绘制透明多......

Unity Shader 入门(四):边缘发光效果

前言 上一节我们学习查看了第一个模板Shader,现在我们开始写第一个Shader练练手。首先我们挑一个:边缘发光效果 的shader来写,先来看一下效果图: 实现原理 根据物体表面法向量和视线向量的夹角来判断是否是物体的边缘部位。夹角越大(接近垂直)说明越接近物体边缘部分,重点:向量点积运算。 具体实现 先放一段实现的代码: Shader "Kurong/Rim/RimLighting......

Unity Shader 入门(三):查看Shader

新建Shader 首先我们新建一个Shader,这里以 Standard Surface Shader 为例,新建之后我们打开Shader文件应该会出现如下代码: Shader "Custom/NewSurfaceShader"{ Properties { _Color ("Color", Color) = (1,1,1,1) _......

Unity Shader 入门(二):Shader介绍

什么是Shader Shader(着色器):是渲染管线上的一小段程序,它负责将输入的Mesh(网格)以指定的方式和输入的贴图、颜色等组合作用然后输出。Shader开发者要做的就是根据输入,进行计算变换,产生输出。shader大体上可以分为两类: 顶点着色器(Vertex Shader) 片元着色器(Fragment Shader) 而在Unity Shader中分为三类: Surfa......

Unity Shader 入门(一):渲染管线

什么是渲染管线? Shader(着色器):是渲染管线上的一小段程序,要了解Shader首先要明白渲染管线是什么呢? 渲染管线的主要功能是在给定虚拟相机、三维物体、光源、照明模式,以及纹理等诸多 条件的情况下,生成或绘制一幅二维图像的过程。对于实时渲染来说,渲染管线就是基础,可以说渲染管线是实时渲染的底层工具。 在概念上可以将图形渲染管线分为四个阶段: 应用程序阶段(The Applic......