GLSL 中的光照计算】的更多相关文章

理论知识转载地址:http://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°),Ild…
转载:http://blog.csdn.net/hgl868/article/details/7872414 逐像素的方向光(Directional Light per Pixel) 这一节将把前面的shader代码改为逐像素计算的方向光.我们需要将工作按照两个shader拆分,以确定哪些是需要逐像素操作的. 首先看看每个顶点接收到的信息: •法线 •半向量 •光源方向 我们需要将法线变换到视点空间然后归一化.我们还需要将半向量和光源方向也归一化,不过它们已经位于视点空间中了.这些归一化之后的向…
转载:http://blog.csdn.net/hgl868/article/details/7872350 引言 在OpenGL中有三种类型的光:方向光(directional).点光(point).聚光(spotlight).本教程将从方向光讲起,首先我们将使用GLSL来模仿OpenGL中的光. 我们将向shader中逐渐添加环境光.散射光和高光效果. 后面的教程中我们将使用逐像素光照以获得更好的效果. 接下来我们将实现逐像素的点光和聚光.这些内容与方向光很相近,大部分代码都是通用的. 在卡…
写在前面 自己写过Vertex & Fragment Shader的童鞋,大概都会对Unity的光照痛恨不已.当然,我相信这是因为我们写得少...不过这也是由于官方文档对这方面介绍很少的缘故,导致我们无法自如地处理很多常见的光照变量.这篇我们就来讨论下Unity内置的一些光照变量和函数到底怎么用. 以下内容均建立在Forward Rendering Path的基础上. 自己总结的,如果有硬伤一定要告诉我啊!感激不尽~ 主要参考: http://en.wikibooks.org/wiki/Cg_P…
全局光照 GI 这里所说的反射就是,一个红色的物体,当太阳照射它的时候,它周围的物体也会变得有点红. 1:Realtime每帧都会计算光照,实时光照是不会反射的,所以它的光影显得单调;2:Baked GI:通过烘培光照贴图的方式获得很好的光照效果,无法实时的改变光照;3: 预先计算全局光照: Precumputed Realtime GI 实时光照不能很好的显示间接光照的效果, 比如实时光照到一个红色的物体上. 红色物体发生反射,本来如果是实时不会有反射,如果使用预先光照,那么会预先计算好静态物…
Mobile Diffuse Unity自带的一种shader,用的比较多,性能还可以.我们默认创建的unit shader基本和它一致,但是没有参与光照计算,看起来和Mobile Diffuse有区别 1: 漫反射着色器, 最简单的3D着色模式;光照在物体上,漫反射就是原本是什么样的颜色,就显示什么样的颜色.2: 模型顶点,到顶点的纹理坐标,到着色的时候选择纹理上的颜色着色;3: 在光照之前,你把纹理本来的颜色着色上去,参与光照,漫反射部分; Standard Unity自带的一种shader…
Lighting:https://www.evl.uic.edu/julian/cs488/2005-11-03/index.html 光照 OpenGL中的光照(Linghting)是很重要的,为什么重要?请看下图 上图中左图是有光照的效果,右图是没有光照的效果. 有光照的好处: 给人更多关于曲率和深度的视觉感受 给人更明显的3D效果 隐藏面清除 在照明和着色中,深度信息和法向量变得非常重要. 旧的painter算法是这样的: while (1) { get_viewing_point_fro…
Deferred Shading,看过<Gems2> 的应该都了解了.最近很火的星际2就是使用了Deferred Shading. 原帖位置:   http://blog.csdn.net/noslopforever/archive/2009/03/03/3951273.aspx 这篇文章是对GEMS2里<Deferred Shading in S.T.A.L.K.E.R.>(中文译名<S.T.A.L.K.E.R.中的延期着色>,原作者Oles Shishkovtsov…
http://zuoye.baidu.com/question/44e2a82d7ad5c0e1d33ddb9a40e0bf86.html  Opengl场景中加光照包含几个步骤,各个步骤实现用的函数是什么?这两个问题回答清楚就行了,不用说别的.粘贴的一律无视. 小白小菜0026 2014-10-10 优质解答下载作业帮App,拍照秒答 主要分三步:设置光源参数 .开启光照.设置法线信息. 1.设置光源参数.通过多次调用带有不同参数的glLightfv()函数来实现.一般会设置环境光(Ambie…
下面介绍 Shader 中 gl_FragColor 的计算与转换: 一.颜色计算 1. 加 这里要讲讲三原色和三基色:三原色一般指的是红.绿.蓝三种,简称 RGB,这是加色系.就是光源只含有特定的波段,本身就是色光,将不同颜色的光加在一起形成新的颜色.典型的例子是显示屏,关系如下: 显然,shader 中的颜色属于加色系.当我们把颜色相加时,会形成新的颜色,并且颜色会往白色靠拢.颜色的混合规律符合三原色规律. 顏色相加是指光的疊加,物理上是光的強度相加.例如多個光源照射到一個表面後反射至攝像機…