首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
Cook-Torrance光照模型
】的更多相关文章
【Unity Shaders】学习笔记——SurfaceShader(十)镜面反射
[Unity Shaders]学习笔记——SurfaceShader(十)镜面反射 如果你想从零开始学习Unity Shader,那么你可以看看本系列的文章入门,你只需要稍微有点编程的概念就可以. 水平有限,难免有谬误之处,望指出. Unity内置的高光函数 Unity内置了一种高光光照模型——BlinnPhone. 使用方法如下: Shader "Custom/BlinnPhong"{ Properties { _MainTex ("Base (RGB)", 2D…
由浅入深学习PBR的原理和实现
目录 一. 前言 1.1 本文动机 1.2 PBR知识体系 1.3 本文内容及特点 二. 初阶:PBR基本认知和应用 2.1 PBR的基本介绍 2.1.1 PBR概念 2.1.2 与物理渲染的差别 2.1.3 PBR的特征 2.2 PBR的衍变历史 2.2.1 Lambert(1760年) 2.2.2 Smith(1967年) 2.2.3 Phong(1973年) 2.2.4 Cook-Torrance(1982年) 2.2.5 Oren Nayarh(1994年) 2.2.6 Schlick(…
Opengles 管线编程介绍
OpenGL ES 2.0可编程管道 上图橙色部分(Vertex Shader和Fragment Shader)为此管道的可编程部分.整个管道包含以下两个规范: 1) OpenGL ES 2.0 API specification 2) OpenGL ES Shading Language Specification (OpenGL ES SL) 详细流程图如下: 2 Shader Shader就是一段执行在GPU上的程序(所以Shader也可以叫做Progr…
Cook-Torrence Illumination Model 的一些数学说明
Cook-Torrence 光照模型如下: 这个Io就是计算后最终的光强,主要是用来计算镜面反射光,漫反射和环境光的计算和Phong模型一致. F:Fresnel反射系数.主要用来说明反射光强度占入射光强的比例.<3D计算机图形学(opengl版)>中由介绍.Fresnel系数和Snell系数的关系为: Fresnel确定反射或者折射的光的能量大小,就是亮度.Snell则是确定反射和折射的方向. D:微平面分布函数.它的一般表达式为D = f(θ),其中D是一个数值,它代表了一个平面中的能够将…
Lambert(朗伯)光照模型 和Half Lambert的区别
Lambert-它不包括任何任何镜面属性,对粗糙物体来说,这项属性是非常有用的,它不会反射出周围的环境.Lambert材质可以是透明的,在光线追踪渲染中发生折射,但是如果没有镜面属性,该类型就不会发生折射.平坦的磨光效果可以用于砖或混凝土表面.它多用于不光滑的表面,是一种自然材质,常用来表现自然界的物体材质,如:木头.岩石等. http://www.cnblogs.com/mavaL/archive/2010/11/01/1866451.html Half Lambert模型 Half Lamb…
[CG编程] 基本光照模型的实现与拓展以及常见光照模型解析
0.前言 这篇文章写于去年的暑假.大二的假期时间多,小组便开发一个手机游戏的项目,开发过程中忙里偷闲地了解了Unity的shader编写,而CG又与shaderLab相似,所以又阅读了<CG教程>.<GPU 编程与CG 语言之阳春白雪下里巴人>学习图形学的基础.尝试编写unity shader时还恶补了些3D数学.这些忙里偷闲的日子,坏了空调的闷热的实验室,还真是有点怀念.当时写这些文章并不是想作为教程,只是自己的总结方便日后温习,所以文章内容都很基础. 2015/08/04 于工…
Unity3D ShaderLab 车辆喷漆光照模型实战
这一篇,我们来创建一个车辆喷漆的光照模型.首先就是准备场景,新建Shader & Material. 过程比较简单,直接看完成的代码吧: Shader "91YGame/CarOutLight" { Properties { _MainTint(,,,) _MainTex ("Base (RGB)", 2D) = "white" {} _SpecularColor(,,,) _SpecPower())= _RelfCube("R…
Unity3D ShaderLab 漫反射卷积光照模型
Unity3D ShaderLab 漫反射卷积光照模型 漫反射卷积[Diffuse convolution]是一个模糊立方体的过程,它保留了立方图的整体光照强度,只模糊了细节. 这种效果在我们要活得一个更具全局光照表面效果的时候非常有用. 为了实现这种效果,我们需要创建一个卷积运算的立方图.比如ATI的工具制作CubeMapGen. 下载地址: http://developer.amd.com/tools-and-sdks/archive/legacy-cpu-gpu-tools/cubemap…
Unity3D ShaderLab 静态贴图光照模型
Unity3D ShaderLab 静态贴图光照模型 其实在unity的光照模型中,我们可以把光照讯息烘培进入一个2D贴图,来实现着色器的光照效果. 下面是在unity中关闭灯光和打开灯光的对比效果.所以这类着色器的缺点就是不会随着光源变化效果. 接下来,我们开始创建,首先通过软件MaCrea来制作我们的2D光照贴图,MaCrea软件 通过该软件可以快速制作一个完整的发光球体平面图. 软件地址:http://pan.baidu.com/s/1bnD7wkv 软件视频教学地址:http://pan…
Unity3D ShaderLab Half Lambert光照模型
Half Lambert光照模型 说到Half Lambert ,就不得不说反恐精英了,在制作反恐精英的过程中,为了防止物体的背面光丢失而显得太过平面化,就用了这个称之为half lambert的技术 .但是这个half lambert的光照模型是没有任何特殊物理原理,仅仅是增强玩家视觉的一个简单的光照模型例子. 具体的介绍可以参见Valve的wiki: https://developer.valvesoftware.com/wiki/Half_Lambert 左边是普通的Lambert光照模型…