首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
Blinn-Phong 光照模型
2024-11-04
[计算机图形学]Blinn-Phong光照模型
目录 一.前言 二.原理 三.代码 一.前言 Blinn-Phong光照模型以Phong模型为基础的,提供比Phong更柔和.更平滑的高光,而且由于Blinn-Phong的光照模型省去了计算反射光线的过程,运算速度上更快,因此成为很多CG软件中默认的光照渲染方法,同时也被集成到大多数的图形芯片中,在OpenGL和Direct3D渲染管线中,Blinn-Phong就是默认的渲染模型. 简言之,Blinn-Phong光照模型提供的是非真实的光照,但这并不影响其在计算机图形学中的地位. 二.原理 Bl
用DirectX12实现Blinn Phong
这次我们来用DirectX12实现一下基本的Blinn Phong光照模型.让我们再把这个光照模型的概念过一遍:一个物体的颜色由三个因素决定:ambient, diffuse, specular.ambient表示场景中的其他物体反射出来的光线到该物体所呈现的颜色,与摄像机所在的位置无关:diffuse表示物体内部所吸收的光线反射出来所呈现的颜色,它是完全杂乱无章而且随机的,可以假设散射到任意方向的分量都是相等的,因此也与摄像机所在的位置无关:specular表示物体根据Fresnel效应,入射
一步一步学RenderMonkey(3)——改良Phong光照模型 【转】
转载请注明出处: http://blog.csdn.net/tianhai110 改良后的Phong光照模型: 上一节实现的phong镜面光照模型,如果固定光源,移动视点(及matView 关联为matWorld, vecEye关联viewPosition)得到的效果会有问题,就是到背面的时候,模型会突然变白: 图形学的前辈们,解决了这个问题,采用了一个改进的光照公式: I = A + saturate(4*N.L)*(D*N.L + (R.V)n) saturate表示让参数所得结果
Phong 光照模型(镜面反射)
Phong 光照模型 镜面反射(高光),是光线经过物体表面,反射到视野中,当反射光线与人的眼睛看得方向平行时,强度最大,高光效果最明显,夹角为90度时,强度最小. specular = I*R*V: specular:反射光经过物体表面反射后进入人眼的光强: I:反射光的光强,Phong依然是理想模型,所以不考虑光的衰减,即反射光的光强和入射光的光强相等: R:反射光线的方向: V:视线的方向: Shader程序 /****************************************
Phong光照模型的Shader实现
计算反射向量 Phong用到的是反射向量,计算反射向量的公式是 R = 2*N(dot(N, L)) - L 这个公式是根据向量的投影公式以及平行四边形法则推导出来的 详细步骤请看这篇文章,讲的非常好 http://www.cnblogs.com/graphics/archive/2013/02/21/2920627.html Shader "Phong" { Properties { _MainTex ("Texture", 2D) = "white
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’ 是已知的,所以我们需要做的就是找出向量
Unity-Shader-镜面高光Phong&BlinnPhong-油腻的师姐在哪里
[旧博客转移 - 2016年4月4日 13:13 ] 油腻的师姐: 以前玩过一款很火热的端游<剑灵>,剑灵刚出来的时候,某网页游戏广告视频中有句台词:"我不断的在寻找,有你的世界在哪里",该广告中的人物,音效都模仿了剑灵,而<剑灵>中的人物模型表面看上去油光发亮,所以就被网友改成了:"我不断的洗澡,油腻的师姐在哪里" 像这样(皮肤表面的高光) 这样 还有~ 这样 其实这是使用了镜面反射着色,除了剑灵,其他很多高品质的AAA级游
【Aladdin Unity3D Shader编程】之三 光照模型(二)
高光反射模型 Specular=直射光*pow(cosθ,高光的参数) θ:是反射光和视野方向的夹角 编写高光反射Shader Shader "AladdinShader/07 Specular Vertex Shader" { Properties { _Diffuse("Diffuse",Color)=(1,1,1,1) //添加自身的颜色 } SubShader { Pass { Tags{"LightMode"="Forward
【Unity Shader】(三) ------ 光照模型原理及漫反射和高光反射的实现
[Unity Shader](三) ---------------- 光照模型原理及漫反射和高光反射的实现 [Unity Shader](四) ------ 纹理之法线纹理.单张纹理及遮罩纹理的实现 [Unity Shader](五) ------ 透明效果之半透明效果的实现及原理 本文主要参考了冯乐乐老师的<Unity Shader入门精要 >一书,再加上网上一些参考资料而写. 笔者使用的是 Unity 2018.2.0f2 + VS2017,书中使用的是 Unity 5.2.1 ,由于版本
[CG编程] 基本光照模型的实现与拓展以及常见光照模型解析
0.前言 这篇文章写于去年的暑假.大二的假期时间多,小组便开发一个手机游戏的项目,开发过程中忙里偷闲地了解了Unity的shader编写,而CG又与shaderLab相似,所以又阅读了<CG教程>.<GPU 编程与CG 语言之阳春白雪下里巴人>学习图形学的基础.尝试编写unity shader时还恶补了些3D数学.这些忙里偷闲的日子,坏了空调的闷热的实验室,还真是有点怀念.当时写这些文章并不是想作为教程,只是自己的总结方便日后温习,所以文章内容都很基础. 2015/08/04 于工
Phong光照以及其他
在说光照之前,有必要先弄清法线的变换,假设Mworld 将物体的定点一一变换到世界空间,如果我们对法线实施同样的变化,,以为能将法线变换到世界空间,但世界上变换之后的法线不再与表面垂直,就像下图: 这意味着变换并不维持正交的性质,当然,不是所有的矩阵都会出现这种情况,只有当转换操作中包含非均匀缩放操作(XYZ各个方向缩放量不一样)时,这时候就不会再正交,这也意味着大部分的平移操作,旋转操作,均匀缩放操作或者上述组合都是能直接变换得,如何推导这个矩阵,方法有很多,(数学家
(转)光照模型及cg实现
经典光照模型(illumination model) 物体表面光照颜色由入射光.物体材质,以及材质和光的交互规律共同决定. 由于环境光给予物体各个点的光照强度相同,且没有方向之分,所以在只有环境光的情况下,同一物体各点的明暗程度均一样. 环境光是对光照现象的最简单抽象,局限性很大.它仅能描述光线在空间中无方向并均匀散布时的状态. 还有一种是平行光,即光线都从同一个方向照射.通过模拟方向光和物体表面的交互模式,可以渲染出具有高真实感(明暗变化.镜面反射等)的三维场景. 漫反射与Lambert 模型
Three.js基础探寻七——Lamber材质与Phong材质
材质(Material)是独立于物体顶点信息之外的与渲染效果相关的属性.通过设置材质可以改变物体的颜色.纹理贴图.光照模式等. 本篇将介绍基本材质以及两种基于光照模型的材质(Lamber与Phong). MeshBasicMaterial:对光照无感,给几何体一种简单的颜色或显示线框. MeshLambertMaterial:这种材质对光照有反应,用于创建暗淡的不发光的物体. MeshPhongMaterial:这种材质对光照也有反应,用于创建金属类明亮的物体. 1.基本材质 使用基本材质(Ba
三种光照模型的shader实现
1.Lambert模型,公式为I=Kd*Il(N*L): Shader "Custom/Lambert_A" { Properties { _Diffuse(,,,) } SubShader { Pass{ Tags { "LightMode"="ForwardBase" } CGPROGRAM #pragma vertex vert #pragma fragment frag #include"Lighting.cginc"
Directx教程(22) 简单的光照模型(1)
原文:Directx教程(22) 简单的光照模型(1) 在前面的教程中,我们在顶点属性中直接给顶点赋颜色,这样生成的三维物体缺乏真实感,如下图中两个立方体,左边的是通过光照生成物体表面颜色的,右边的则是直接给顶点赋颜色值. 首先,我们学习一下最简单的phong光照模型: 在phong光照模型中,物体表面的颜色由自发射光(emissive).环境光(ambient).漫反射光(diffuse)以及镜面高光(specular)四部分组成,每一部分又是通过物体表面的材质
合金装备V 幻痛 制作技术特辑
合金装备V:幻痛 制作特辑 资料原文出自日版CGWORLD2015年10月号 在[合金装备4(Metal Gear Solid IV)]7年后,序章作品[合金装备5 :原爆点 (Metal Gear Solid V: Ground Zeroes)]1年半后,合金装备(MGS)系列的最新作[合金装备5 幻痛(METAL GEAR SOLID V: THE PHANTOM PAIN)]发售了.游戏上做最新的挑战,一直走在这个时代的游戏图形最前端的开发团队,在本作中是以什么为目标,为了这个目标加入
【Unity Shader】(六) ------ 复杂的光照(上)
笔者使用的是 Unity 2018.2.0f2 + VS2017,建议读者使用与 Unity 2018 相近的版本,避免一些因为版本不一致而出现的问题. [Unity Shader](三)------ 光照模型原理及漫反射和高光反射的实现 [Unity Shader](四)------ 纹理之法线纹理.单张纹理和遮罩纹理的实现 [Unity Shader](五) ------ 透明效果之半透明效果的原理及实现 目录 前言 一.
【转】《Unity Shader入门精要》冯乐乐著 书中彩图
为方便个人手机学习时候查阅,从网上转来这些彩图. 如属过当行为,联系本人删除. 勘错表 http://candycat1992.github.io/unity_shaders_book/unity_shaders_book_corrigenda.html 转自:http://candycat1992.github.io/unity_shaders_book/unity_shaders_book_images.html 前言 第2章 渲染流水线 图2.1 真实生活中的流水线 图2.2 渲染流水
Unity Shader入门精要学习笔记 - 第6章 开始 Unity 中的基础光照
转自冯乐乐的<Unity Shader入门精要> 通常来讲,我们要模拟真实的光照环境来生成一张图像,需要考虑3种物理现象. 首先,光线从光源中被发射出来. 然后,光线和场景中的一些物体相交:一些光线被物体吸收了,而另一些光线被散射到其他方向. 最后,摄像机吸收了一些光,产生了一张图像. 在光学中,我们使用辐照度来量化光.对于平行光来说,它的辐照度可通过计算在垂直于l的单位面积上单位时间内穿过的能量来得到.在计算光照模型时,我们需要知道一个物体表面的辐照度,而物体表面往往是和l不垂直的,我们可以
Unity 图形学 基础知识总结
1. 渲染流水线 三大块:应用阶段,几何阶段,光栅化阶段 渲染图元 顶点信息 GPU流水线 顶点数据=> 顶点着色器;曲面细分着色器;几何着色器;裁剪;屏幕映射=> 三角形设置;三角形遍历;片元着色器;逐片元操作=> 屏幕图像 裁剪:可配置的,摄像机属性 逐片元操作:模板测试,深度测试,混合(不可编程,可以配置) 为了优化,Unity的Ztest是在片元着色器之前;
热门专题
java RequestBody 特殊符号转义
unity的ab包的设置
liteos sd卡
java 接口加密 过滤器 拦截器
EF Core 关联查询
psutil模块安装 error python.h
spring bean加载完成后初始化数据
三维数组作为CNN 的输入
树莓派安装Jupyter notebook
springboot 项目 知识图谱有哪些功能
ACCEL_PPTP 和PPTP
codesys进行串口
sqlite3执行不了VACUUM
fgets函数读取int
CEPH文件接口 python
freeswitch 域 nat
vue2双向绑定原理
STM32H7高级定时器的IO口需要打开AFIO时钟
lotus script的len方法
iso oracle linux 文件下载