使用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.

  

  

  

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

  1. 关于Mongodb的全面总结

    MongoDB的内部构造<MongoDB The Definitive Guide> MongoDB的官方文档基本是how to do的介绍,而关于how it worked却少之又少,本 ...

  2. Ward BRDF实现心得

    最近做了Ward BRDF的实现,相对于之前的lambert,phong来说,Ward是一个真正意义上的各向异性BRDF,但同样的,Ward模型也是一个基于经验的模型,并不是物理上正确的.它由ward ...

  3. Unity3D ShaderLab BRDF模拟

    Unity3D ShaderLab BRDF模拟 在上一篇,说到了使用渐变纹理着色,使用一个值来控制纹理的uv坐标,但是这也就表示我们只能得到一个线性的光照效果. 那么我们能不能通过观察方向的向量结合 ...

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

    在实时渲染中Physically-Based Rendering(PBR)中文为基于物理的渲染它能为渲染的物体带来更真实的效果,而且能量守恒 稍微解释一下字母的意思,为对后文的理解有帮助,从右到左L为 ...

  5. 【Unity Shaders】Diffuse Shading——使用2D ramp texture来创建一个假的BRDF(双向反射分布函数)

    本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...

  6. (z转)基于CPU的Bank BRDF经验模型,实现各向异性光照效果!

    摘抄“GPU Programming And Cg Language Primer 1rd Edition” 中文 名“GPU编程与CG语言之阳春白雪下里巴人” BRDF 光照模型 10.2.1 什么 ...

  7. standard pbr(三)-BRDF

    // Default BRDF to use: #if !defined (UNITY_BRDF_PBS) // allow to explicitly override BRDF in custom ...

  8. 【三】材质反射属性模型BRDF

    双向反射分布函数(BRDF:Bidirecitonal Reflectance Distribution Function) 用来描述物体表面对光的反射性质 预备知识 BRDF的定义和性质 BRDF模 ...

  9. Microfacet模型采样下的brdf

    本文前言 在学习图形学(games101 from bilibili)的时候,也遇到了像这样的问题,Cook-Torrance模型无法实现粗糙度为0时,物体微表面呈现绝对镜面的效果(呈现出一面镜子), ...

随机推荐

  1. ubuntu pip换下载源

    1.在本目录下(~)新建.pip文件夹 2.在.pip文件夹下新家pip.conf文件 3.里面添加下面文件 [global] trusted-host=mirrors.aliyun.comindex ...

  2. Oracle 之 Cloning $oracle_home (克隆安装oracle软件)

    用途:Cloning an Oracle Home , 可以免去多台机器重复安装oracle软件 1.停止相关进程[root@node1 bin]# ./crsctl stop cluster -al ...

  3. myeclipse部署maven项目到tomcat,src/main/resources里面配置文件部署不到webapp下classes

    解决myeclipse部署maven时,src/main/resources里面配置文件加载不到webapp下classes路径下的问题. 有时候是src/main/resources下面的,有时候是 ...

  4. Ubuntu 16.04 配置安卓5.1编译环境

    Ubuntu 16.04版本 电脑cpu必须是64位 硬盘分配大约100G的空间 1.ubuntu中更新源 $ sudo apt-get update 2.安装 openjdk-8-jdk $ sud ...

  5. php 操作提示框

    /** * 跳转 * @param type $msg * @param type $url */ protected function jump($msg, $url) { $html = < ...

  6. DomHelper

    public class DomHelper { public static ArrayList<Person> queryXML(Context context) { ArrayList ...

  7. RTMP(实时信息传输协议)详解

    RTMP协议是Real Time Message Protocol(实时信息传输协议)的缩写,它是由Adobe公司提出的一种应用层的协议,用来解决多媒体数据传输流的多路复用(Multiplexing) ...

  8. Macbook Pro上安装Windows 7虚机

    折腾了大半天,终于搞定. 首先是安装VirtualBox,之后关键的是需要Win7虚机种子,百度了下去系统之家下的. 如果不是Ghost系统的话,VirtualBox可以直接load安装. 但是那边都 ...

  9. angula的factory service provider

    本人学了一段时间的angular的服务(factory.service.provider),有了自己的一些对于他们的见解,如果说的对,敬请赐教!!! 以后更新

  10. select函数源码阅读

    fd_set结构体 #undef __NFDBITS /* It's easier to assume 8-bit bytes than to get CHAR_BIT. */ #define __N ...