使用RampTexture实现BRDF效果

使用RampTexture实现BRDF效果

  BRDF stands for bidirectional reflectance distribution function. While that is a mouthful, it simply means the way in which light is reflected off an opaque surface from both the view direction and the light direction.

  BRDF指光从view-direction、light-direction2个方向散射出去。

  首先,需要创建一张适用于BRDF的RampTexture。

  

  使用如下Shader来完成模拟:

  

  效果图如下:  

  

How it works

  The following image shows the dot product of the view direction and the surface normal.

  

  Since the diffLight calculation and the rimLight calculation both produce a linear range of values from 0 to 1, we can use both the ranges to pick different areas of the ramp texture.

  

  

  

时间: 2024-10-07 02:02:05

使用RampTexture实现BRDF效果的相关文章

Unity3D ShaderLab BRDF模拟

在上一篇,说到了使用渐变纹理着色,使用一个值来控制纹理的uv坐标,但是这也就表示我们只能得到一个线性的光照效果. 那么我们能不能通过观察方向的向量结合光照方向形成双向的反射变化呢,既然说到这里,肯定是可以做到的, 这就是我们的BRDF effect,我们可以简单的把BRDF看作为入射光在不透明物体表面同时反射到观察方向和出射光方向. BRDF(Bidirectional Reflectance Distribution Function具体的内容讲解,可以查阅百度百科. 光线照到一个物体,首先产

unity3d shader的软高光的金属效果

软高光的金属效果 学了书里的这一章有很多知识我也很不了解,于是查了一些资料,渐渐的明朗了一些,,一下结合书里的知识和网上的资料与我的理解来说明 主要原理是Cook-Torrance光照模型的算法,是BRDF(双向反射分布函数)的一种,具体算法请看后面 新建一个shader 先浏览一下变量 _MainTint 主色调 _RoughnessTex   粗糙度贴图(控制高光大小) _Roughness 表面粗糙程度 _SpecularColor  高光颜色 _SpecPower  高光强度 _Fres

Unity3d 基于物理渲染Physically-Based Rendering之specular BRDF

在实时渲染中Physically-Based Rendering(PBR)中文为基于物理的渲染 它能为渲染的物体带来更真实的效果,而且能量守恒 稍微解释一下字母的意思,为对后文的理解有帮助, 从右到左 L为光线方向,H为半角向量,L是和V的中间,N为法线方向,V为我们眼睛的观察方向(相机看的方向),R为反射方向 Torrance-Sparrow光照模型的镜面反射公式 D为法线分布函数(NDF) F为反射函数(Fresnel 函数) G为阴影遮罩函数(几何函数),未被shadow或mask的比例

Unity shader: Bank BRDF

Back BRDF是一种 模拟 金属表面 的 各向异性 光泽的经验模型,具体公式参照 GPU 编程与CG 语言之阳春白雪下里巴人 中120页的公式(10-14) 1 Shader "Custom/Bank-BRDF" { 2 Properties { 3 _AmbiColor ("Main Color", Color) = (1, 1, 1, 1) 4 _Ak ("Ambient Coef", float) = 1 5 _DiffColor (&

Android 导航条效果实现(六) TabLayout+ViewPager+Fragment

TabLayout 一.继承结构 public class TabLayout extends HorizontalScrollView java.lang.Object ? android.view.View ? android.view.ViewGroup ? android.widget.FrameLayout ? android.widget.HorizontalScrollView ? android.support.design.widget.TabLayout 二.TabLayou

CSS3图片轮播效果

原文:CSS3图片轮播效果 在网页中用到图片轮播效果,单纯的隐藏.显示,那再简单不过了,要有动画效果,如果是自己写的话(不用jquery等),可能要费点时间.css3的出现,让动画变得不再是问题,而且简单易用.下面介绍我用css3与js写的一个图片轮播效果. 一般图片轮播就是三四张图片: <div class="wrap"> <div class="carousel"> <div><img src="http://

Android 从无到有打造一个炫酷的进度条效果

从无到有打造一个炫酷的进度条效果

html+css3实现长方体效果

网上大都是正方体的效果,由于做一个东西需要,写了一个HTML+css3实现的长方体,有需要的也可以看看.                   2017-07-25         21:30:23 html代码 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>html+css3实现长方体效果<

鼠标悬停图片移动的效果

当前很多购物网站,像京东,蘑菇街这些都有对展示的图片做这种鼠标悬停图片上移,下移,左移或者右移效果, 实现代码很简单,就用css3的transform便可实现. 下列代码实现的是鼠标悬停,div向上移动30px,鼠标拿开div恢复原始位置. css: <style> div{ margin-top: 100px; width: 100px; height: 100px; background: pink; transition:All 0.4s ease-in-out;//让移动效果变得平滑自