关于环境光、漫反射、镜面反射
光源:
1):环境光:环境光是一种低强度的光,由光线经过周围环境表面多次反射后形成的,利用环境光可以描述一块区域的亮度,通常在场 景中,环境光的颜色是一个常量.
2):太阳光:即定向光源,特点是从无穷远出发射光线,光线是平行的,光线强度不会随着距离衰减.
3):点光源:在有限空间内某个点上发出的光线,光线强度会随着距离衰减.衰减系数一般是距离的二次多项式倒数.
4):聚光灯:特点是有主照射方向,强度随着距离衰减,并且光线延着中心向外衰减.
漫反射
理想的漫反射表面把光线向所有方向均匀的散射,因此,这样的表面在所有观察者看来亮度都一样,理想的慢反射表面是如此粗糙,以至于向各个方向反射的光线强度都相等.这样的表面被成为Lambert表面(兰博特),OpenGL固定管线,或者Shader基于这个定律来建模.
环境光也就被建模为一个没有光源、没有方向并且对场景中的所有物体产生相同的点亮效果的一种光。
漫反射光强调的是光照射到物体表面的角度对物体亮度效果的影响.
漫反射光最重要的特性就是光的方向
镜面反射光与其说是光本身的特性不如说是物体的一种属性,
这种属性 是在入射光和观察者的视角都在某个特定的角度时会使物体高度发光,比如在晴天会看到小汽车的某个边缘会格外的发光耀眼。
计算镜面反射光既要考虑光的入射角度又要考虑观察者的视角位置。
通过同时增大或者缩小各通道的值,可以在保持颜色不变的情况下使其变量或者变暗。
光照与阴影
通过vtkVolumeProperty可以设置体绘制的阴影效果,阴影效果主要受环境光系数、散射光系数、反射光系数和高光强度4个参数影响。
SetDiffuse() //设置散射光系数(使具有立体感)
SetAmbient() //设置环境光系数(光的强度)
SetSpecular() //设置反射光系数(光滑度,明暗)
一般情况下,着三个系数之和为1.
高光强度系数用于控制体绘制外观平滑程度,使用SetSpecularPower()函数设置。
vtkVolumeProperty中默认是关闭阴影效果,因此需要显示调用ShadeOn()函数来打开阴影效果。
光线投射中,投射光线上的采样步长是一个很重的参数,设置函数:SetSampleDistance(float),步长越小,采样点越多,效果越好。但计算量变大。当数据变化剧烈时,应该减少采样步长以获得更好的效果。
Ambient demo:https://lorensen.github.io/VTKExamples/site/Cxx/Rendering/AmbientSpheres/
Diffuse demo:https://lorensen.github.io/VTKExamples/site/Cxx/Rendering/DiffuseSpheres/
Ambient demo:https://lorensen.github.io/VTKExamples/site/Cxx/Rendering/SpecularSpheres/
关于环境光、漫反射、镜面反射相关推荐
- 庄懂的TA笔记(五)<漫反射 镜面反射>
1.漫反射: 黑话: 常用向量:(全要记) nDir:法线方向,点乘操作,简称,n; lDir:光照方向,点乘操作,简称,l: vDir:观察方向,点乘操作,简称,v: rDir:光反射方向,点乘操作 ...
- Unity_ShaderGraph初体验_简易的漫反射+镜面反射
^ ^ 准备 开始 漫反射 镜面反射 叠加 https://www.bilibili.com/video/BV1TW411e74C 感谢傅老师 准备 第一次使用.(Unity 2019.3.15 1. ...
- [What is the PBR?] - 对Reflection的误解(漫反射镜面反射)
[ What is the PBR? ] - 对Reflection的误解(漫反射&镜面反射) 对Reflection的误解(漫反射&镜面反射) 字面含义 我们通常使用diffuse ...
- C++ opengl 漫反射和镜面反射参数
漫反射和镜面反射参数 开启光照后,物体表面的颜色:由 环境光+漫反射+镜面反射 组成 漫反射: glLightfv(GL_LIGHT0,GL_DIFFUSE,whiteColor); glMateri ...
- Lambertian 反射(也叫理想散射)
(总结整合几篇blog和一些国外图书的内容) 常见的反射类型分为:Lambertian反射.理想镜面反射.Lambertian反射与镜面反射相结合 1.Lambertian反射(也叫理想散射) Lam ...
- VTK 学习----3D基础知识-着色器和图形管道
2.5 着色器和图形管道 2.5.1 图形管道 在三维绘图引擎中,一切物体都在三维空间,但屏幕和窗口是2D像素阵列,因此三维引擎的大部分工作是将所有3D坐标转换为合适屏幕的2D像素.将3D坐标转换为2 ...
- 计算机图形学复习(自用)
文章目录 1. dll文件与lib文件的区别与作用 :one: 各种文件 :two: 内存结构 2. 相机拍摄景物模型 3. OpenGL支持绘制的图元 GL_POINTS GL_LINE_STRI ...
- 图形学基础|各项异性与头发渲染
图形学基础|各项异性与头发渲染 文章目录 图形学基础|各项异性与头发渲染 一.前言 二.各向异性光照 2.1 各向异性光照现象 2.2 ShadingModel扩展 三.头发光照模型 3.1 Kaji ...
- 计算机图形学(七)——Phong光照模型
计算机图形学(七)--Phong光照模型 Phong光照反射模型 点光源 环境光 漫反射 镜面反射 Phong光照反射模型 Phong反射模型认为来自一个表面的反射由下面三个线性叠加的分量组成: 反射 ...
- Shader笔记(一)
Shader Fixed shader: shader1.0 固定管线 Vertex/Fragment shader : shader 2.0 顶点/片段 Surface shader :Unity3 ...
最新文章
- python自动测试p-Python实践60-性能调优之pstats模块
- SecureCRT上传和下载文件
- python3协程 queue_使用gevent库+queue模块实现多协程爬虫,提高爬取效率!
- 详解JMeter函数和变量
- 深入V8引擎-AST(2)
- android 调用默认铃声后怎么改起始的默认选择位置?
- dns轮训python
- java.lang.NumberFormatException: null
- 小程序使用微信地址or小程序跳转设置页
- 介绍Unreal Engine 4中的接口(Interface)使用C++和蓝图
- Google 网站品质指南
- 为opencv添加contrib库
- offline tablespace的几种方法
- 禁止前端页面用户打开HTML页面调试功能的初级方法
- 虚拟机中修改Fedora10/9屏幕的分辨率
- 数据分析流程——业务需求分析
- 《可复制的领导力》脑图
- div p、divp、div+p、div~p、div.a 、p,span的用法和区别
- 7月第1周风控关注 微信支付SDK曝XXE漏洞 可伪造订单
- 汽车之家的后台怎么统计对比记录的,怎么做数据分析?