Phong光照模型

  • 发射光emissive
  • 环境光ambient
  • 漫反射光diffuse
  • 镜面反射光specular
  • 高光度shininess,法线方向N,光源方向L,视点方向V

漫反射的反射强度与物体表面法线及光的入射角度有关,而与人眼的观察角度无关

color_out = emissive + ambient + diffuse + specular;

diffuse = _Kd * lightColor * max(dot(N, L), 0);

specular = _Ks * lightColor * pow(max(dot(N, H), 0), shininess);

H为nomalize(L + V)

参考资料

时间: 2024-11-05 17:16:31

Phong光照模型的相关文章

Phong和Blinn-Phong光照模型

Phong和Blinn-Phong是计算镜面反射光的两种光照模型,两者仅仅有很小的不同之处. 1.Phong模型 Phone模型计算中的一个关键步骤就是反射向量R的计算: 上图中的位于表面“下面”的向量 ‘I’ 是原始 ‘I’ 向量的拷贝,并且二者是一样的,现在我们的目标计算出向量 ‘R’ .根据向量相加原则,向量 ‘R’ 等于 'I' + 'V',‘I’ 是已知的,所以我们需要做的就是找出向量 ‘V’.注意法向量 ‘N’ 的负方向就是 ‘-N’,我们可以在 ‘I’ 和 ‘-N’ 之间使用一个点

【转】Phong和Blinn-Phong光照模型

来自:http://www.cnblogs.com/bluebean/p/5299358.html Phong和Blinn-Phong是计算镜面反射光的两种光照模型,两者仅仅有很小的不同之处. 1.Phong模型 Phone模型计算中的一个关键步骤就是反射向量R的计算: 上图中的位于表面"下面"的向量 'I' 是原始 'I' 向量的拷贝,并且二者是一样的,现在我们的目标计算出向量 'R' .根据向量相加原则,向量 'R' 等于 'I' + 'V','I' 是已知的,所以我们需要做的就是

4种基本光照模型

1.Lambert模型(漫反射) 环境光: Iambdiff = Kd*Ia 其中Ia 表示环境光强度,Kd(0<K<1)为材质对环境光的反射系数,Iambdiff是漫反射体与环境光交互反射的光强. 方向光: Ildiff = Kd * Il * Cos(θ) 其中Il是点光源强度,θ是入射光方向与顶点法线的夹角,称入射角(0<=A<=90°),Ildiff是漫反射体与方向光交互反射的光强,若 N为顶点单位法向量,L表示从顶点指向光源的单位向量(注意顶点指向光源),则Cos(θ)等

Unity-Shader-镜面高光Phong&amp;BlinnPhong-油腻的师姐在哪里

[旧博客转移 - 2016年4月4日 13:13 ] 油腻的师姐: 以前玩过一款很火热的端游<剑灵>,剑灵刚出来的时候,某网页游戏广告视频中有句台词:"我不断的在寻找,有你的世界在哪里",该广告中的人物,音效都模仿了剑灵,而<剑灵>中的人物模型表面看上去油光发亮,所以就被网友改成了:"我不断的洗澡,油腻的师姐在哪里" 像这样(皮肤表面的高光) 这样 还有~ 这样 其实这是使用了镜面反射着色,除了剑灵,其他很多高品质的AAA级游戏也都使用了不同

【DirectX11】第九篇 光照模型——高光

本系列文章主要翻译和参考自<Real-Time 3D Rendering with DirectX and HLSL>一书(感谢原书作者),同时会加上一点个人理解和拓展,文章中如有错误,欢迎指正. 这里是书中的代码和资源. 本文所有的环境和工具使用都基于之前的文章,如有不明白的地方请先参考本系列之前的几篇文章. 本文索引: 关于灯光 Specular Highlights 高光 1 Phong 冯氏光照模型 2 Phong Preamble 冯氏光照模型变量准备 3 Phong Vertex

学习笔记——基本光照模型简单实现

Lambert光照模型,根据光照向量与顶点发现的夹角来确定光照强度: Shader "James/VP Shader/LightModel-Lambert" { Properties { _MainTex ("MainTex", 2D) = "white" {} } SubShader { Pass { Tags { "LightMode"="ForwardBase" } CGPROGRAM #pragma

局部光照模型

提要 常见的光照模型一般包括四个部分ambient, diffuse, specular, 和emitted light. 即: vertex color = ambient + diffuse + specular + emitted light 当有多个光源的时候,最后的颜色就是多个结果的叠加. Ambient light:环境光,通常定义在光源的中,注意每个光源的衰减量. Diffuse:漫反射部分,光照找到物体的表面,由于物体的表面凹凸不平而反射到各个方向的光. Specular :相比

Opengl 4种光照模型

https://blog.csdn.net/ym19860303/article/details/25545933 1.Lambert模型(漫反射) 环境光: Iambdiff = Kd*Ia 其中Ia 表示环境光强度,Kd(0<K<1)为材质对环境光的反射系数,Iambdiff是漫反射体与环境光交互反射的光强. 方向光: Ildiff = Kd * Il * Cos(θ) 其中Il是点光源强度,θ是入射光方向与顶点法线的夹角,称入射角(0<=A<=90°),Ildiff是漫反射体

Qt 3D的研究(五):Gooch Shader

Qt 3D的研究(五):Gooch Shader Qt 3D的一个很大的优势就是采用数据驱动的方式,将C++和GLSL使用QML来表示,动态语言的优势尽显.在上一次的研究中,我实现了一个非常简单的着色器,接下来,我们可以在此基础上,通过设定着色器的数据,制作出更加绚丽的着色效果.作为开始,我们先从几个非真实渲染(Non-Photorealistic Rendering,NPR)开始吧. 蒋彩阳原创文章,首发地址:http://blog.csdn.net/gamesdev/article/deta