RimLight(轮廓光) - Shader】的更多相关文章

[RimLight(轮廓光) - Shader] RimLight指的是物体的轮廓光.效果如下: 轮廓光的强度通过 1.0 - dot(normal, eye_vector)来计算.使用这个公式,则指向camera的轮廓光强度会是0,垂直到camera的轮廓光强度是1,而背离的强度会是2.GLSL实现如下: smoothstep(a,b,x)函数将a-b范围的x值投射到0-1区间上.为了让轮廓光只在边缘出现,我们需要只显示vdn 0.6以上的值,如仅仅把0.6以下部分抛弃,则会产生Hard Ed…
写在前面 时隔两个月我终于来更新博客了,之前一直在学东西,做一些项目,感觉没什么可以分享的就一直没写.本来之前打算写云彩渲染或是Compute Shader的,觉得时间比较长所以打算先写个简单的. 今天扫项目的时候看到了很早之前下载的Unity Chan的项目,其实很早之前就想要分析下里面的卡通效果是怎么做的. Unity Chan 想必很多人都看到或听过Unity Chan,也可以说是Unity酱.Unity娘--她数次出现在早期的AR程序中,一个萌娘在现实生活中的一张卡片上跳来跳去的我相信你…
写在前面 本系列其他文章: 卡通风格的Shader(二) 呜,其实很早就看到了这类Shader,实现方法很多,效果也有些许不一样.从这篇开始,陆续学习一下接触到的卡通类型Shader的编写. 本篇的最后效果如下(只有怪物和苹果部分): 本篇文章里指的卡通效果具有如下特点: 简化了模型中使用的颜色 简化光照,使模型具有明确的明暗区域 在模型边缘部分绘制轮廓(也就是描边) 我们再来回顾一下Unity Surface Shader的pipeline.(来源:Unity Gems) 由上图可以看出,我们…
简单写写,练下手~ Shader "James/VP Shader/RimLight" { Properties { _MainTex("MainTex", 2D) = "white" {} _Color(, , , ) _RimColor(, , , ) _RimPower(, )) = 0.1 _RimIntensity(, )) = } SubShader { Tags { "Queue" = "Transpa…
[Fresnel Reflection] One of the most used types of reflections is the Fresnel reflection. One of the most used surfaces of this type of effect is the body of a car. Fresnel Reflection有点像RimLight.在Shader实现上,也是借鉴了RimLight的算法来扰动Emission颜色. 为了实现Shader,我们…
今天工作中需要做一个事情: 在shader内部做一些空间距离上的计算,而且需要对所有的点进行计算,符合条件的显示,不符合条件的点不显示. 思路很简单,在vertex shader内知道顶点坐标,进行计算,算好以后判断是否需要显示,例如设置alpha值,那么再将alpha值传给fragment shader,在里面设置alpha的值就好了. 基本代码如下 // vertex shader #version 300 es in vec4 vPosition; in vec2 vTexCoord; o…
+BIT祝威+悄悄在此留下版了个权的信息说: CSharpGL(14)用geometry shader渲染模型的法线(normal) +BIT祝威+悄悄在此留下版了个权的信息说: 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码中包含10多个独立的Demo,更适合入门参考. 为了尽可能提升渲染效率,CSharpGL是面向Shader的,因此稍有难度. 问题 在处理光照效果等问题时,模型的顶点的法线是必不可少的数据.但是法线并不直接显示…
本文为翻译,附上原文链接. 转载请注明出处--polobymulberry-博客园. 动机 如果你想了解以下几件事,我建议你阅读以下这篇教程: 想知道如何写一个multipass的toon shader. 在shader中学习更多不同参考坐标系(空间space)以及其作用. 深入学习一个实用的fragment shader. 学习矩阵相乘和Unity内建矩阵的使用. 该教程比第五篇教程更实用. 准备工作 为了实现一个描边的toon shader,我们需要做的是: 为模型描边. 将第四篇文章中的介…
本文为翻译,附上原文链接. 转载请注明出处--polobymulberry-博客园. 动机 如果你满足以下条件,我建议你阅读这篇教程: 你想学习片段着色器(Fragment Shader). 你想实现复杂的多通道着色器(multipass),但是对其不是很了解. 你想使用上面提到的两种技术(片段着色器和多Pass)来实现描边效果的Toon shader,你就需要理解这两种技术的概念. 学习资源 Martin Kraus's fantastic Wiki Book GLSL Programming…
本文为翻译,附上原文链接. 转载请注明出处--polobymulberry-博客园. 暗黑系 动机 如果你满足以下条件,我建议你阅读这篇教程: 你想了解更多有关表面着色器的细节知识. 你想实现一个入门级别的卡通效果shader(Toon Shader). 你想知道渐变纹理(ramp texture)的使用方式. 你想了解边缘光照(rim lighting)的知识. 准备工作 我们想实现一个toon shader - 一种能让模型看起来具有卡通效果的shader,在图形学领域,这被称作非真实感图形…