位置: 编程技术 - 正文

opengl光照 Blinn-Phone模型与实现(opengl光照效果)

编辑:rootadmin

推荐整理分享opengl光照 Blinn-Phone模型与实现(opengl光照效果),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:opengl光照效果,opengl光照纹理三个球,opengl光照算法,opengl光照模型,opengl光照设置,opengl光照效果,opengl光照效果,opengl光照模型,内容如对您有帮助,希望把文章链接给更多的朋友!

这里介绍的方法,考察从光源发出的光线,这些光线与物体表面相互作用进行建模,这个方法和光线追踪类似,但是只考虑光源与表面之间的一次相互作用。

Phone 模型

phone模型如图所示,使用图示的l,n,r,v四个向量来计算任意点p得颜色值: l是光源入射的方向反向 n是p点得法线方向 r是反射光线方向 v是观察者所在方向,主要考察光源与材质的三种相互作用 环境光反射,漫反射和镜面反射

环境光 物体表面所有处的环境光强度相同

漫反射 一个理想的漫反射表面把光线向所有方向均匀散射,因此,这样的表面在所有观察者看来亮度都一样,不过反射光线的强度既依赖于材质,也依赖于光源相对表面的位置。一个物体的表面是粗糙的话,就会发生漫反射,理想的漫反射表面是如此粗糙,以至于各个方向的反射光强度都相等,称为lambert表面,计算公式如下 Colorlambert=Lcos(n,l) L是入射光强和漫反射系数的乘积,n,l是两个向量,含义之前已介绍

opengl光照 Blinn-Phone模型与实现(opengl光照效果)

镜面反射

使用了环境光和漫反射后,物体表面已经有明暗变化,但是缺少光泽,图像中缺少的是高光,高光的颜色通常与环境光与满反射的颜色不同,就是光源的颜色,而且,所有得反射光线都在一个方向上,观察者看到的光线强度取决于理想反射器光线反射方向r和观察者方向v的夹角ϕ Colorspec=Lcosα(r,l) 其中,α是高光系数,α无限大代表镜面

改进的Phone模型(Blinn-Phone模型)

在phone模型中,计算镜面光成分需要计算r向量,计算r*v夹角 现在用h和n夹角代替。 h=l+v|l+v| n和h的夹角是r和v的夹角的一半,个人简单证明,当5个向量共面时 cosψ=nl+v|l+v|=n∗l+n∗v|l+v|=cosθ+cos(θ+ϕ)|l+v| 2cos2ψ−1=(cosθ+cos(θ+ϕ))2−1−cos(2θ+ϕ)1+cos(2θ+ϕ) 经过漫长化简路之后可得,上式中分子为cosψ(1+cos(2θ+ϕ)) 即证明cos2ψ=cosϕ 这样就无需计算向量r,不过采用另外一个高光系数

我使用opengl进行测试, 使用系数: light 0 5 1(位置) 0.6 0.3 0.0 1.0(颜色) ambient 0.2 0.2 0.2 1 diffuse 0.2 0.2 0.2 1 specular 1 1 1 1(三者皆为颜色) shininess (高光系数) 效果如下: 我时在fragment shader中进行的光照计算, 代码如下

vertex shader如下;

深入理解OpenGL拾取模式(OpenGL Picking) 深入理解OpenGL拾取模式(OpenGLPicking)转自

如何使用Android中的OpenGL ES媒体效果 Android的媒体效果框架允许开发者可以很容易的应用多种令人印象深刻的视觉效果到照片或视频之上。作为这个媒体效果的框架,它使用GPU来处理图片处

Nehe第六章纹理映射 纹理映射的时候,使用了AUX_RGBImageRec结构体和auxDIBImageLoad函数,这两个是位于glaux头文件中的,glaux是gl的辅助类,并不是opengl中自带的,所以系统中可

标签: opengl光照效果

本文链接地址:https://www.jiuchutong.com/biancheng/369457.html 转载请保留说明!

上一篇:OpenGL二十面体及多次细分成球体(正二十面体怎么建模)

下一篇:深入理解OpenGL拾取模式(OpenGL Picking)(opengl learning)

  • 企业所得税年度汇算
  • 增值税普通发票需要交税吗
  • 合伙企业所得税怎么征收
  • 企业如何代员工缴社保
  • 税控盘和税控钥匙一样吗
  • 公司注销投资款退回给股东,附言写什么
  • 本期金额和上期金额怎么填写
  • 小型企业利润表
  • 一般纳税人企业所得税政策最新2023税率
  • 期间费用的控制方法主要有
  • 实报实销电话费
  • 研发设备一次性扣除账务处理
  • 小规模纳税人一年不超过多少万
  • 增值税专用发票可以开电子发票吗
  • 去年没有交社保,今年交了有用吗
  • 个人所得税申报错误如何更正申报
  • 如果没有预缴就开票会怎样?
  • 小规模纳税人咨询服务费的税率是多少
  • 应收利息和应计利息有什么不同
  • 增值税小规模纳税人减免增值税政策
  • 城市维护建设税计算公式
  • 会计科目未付利润属于哪个科目
  • 给员工购买的意外保险可以税前扣除
  • 辅助生产车间工人工资
  • win10错误代码0xc0000001
  • element ui datepicker 源码
  • 本月未抵扣完的进项税是否转出
  • php数组函数实现机选双色球
  • au_.exe是什么进程
  • 汇算清缴期结束后,税务机关发现企业
  • wordpress 函数
  • 私有化部署chatGPT,告别网络困扰
  • 发票已开,款未到的会计分录
  • 销售产品是销项税额还是进项税额
  • 程序员神器
  • 文件上传模板怎么弄
  • php 错误和异常处理
  • docker常用命令大全简书
  • 产品检测费可以放入研发费用吗
  • 种植中药材公司取名字大全
  • 新法典离职
  • sql死锁的原因及解决方法
  • 销售费用工资是什么科目
  • SQL2005 自动备份的脚本
  • 待抵扣进项税额是二级还是三级
  • 为什么运输合肥料检测核辐射人会拿一个玻璃棒
  • 新成立的小规模纳税人什么时候报税
  • 房租收入税费
  • 退回多交的所得税抵欠税怎么做账
  • 长期股权投资损益调整是什么意思
  • 收到客户账款会计分录
  • 咨询服务费可以全额扣除吗
  • 非流动资产包括哪些会计科目
  • 月末库存商品的成本怎么算
  • 低值易耗品最新定义
  • 修改mysql配置的两种方法
  • sqlserver中将varchar类型转换为int型再进行排序的方法
  • win7和winxp区别
  • linux/tmp
  • gentoo linux优点
  • 因以下文件的损坏或者丢失,windows无法启动hal.dll
  • ubuntu开发板
  • 如果在一个命令行上输入和执行多条命令
  • Win10 Redstone 11082视频快速上手:已知bug及新变化一览
  • win8开始菜单没有了
  • win7显示桌面的组合键
  • linux常用命令详解
  • 辅组什么词?
  • jquery图片轮播无缝连接
  • 文本框css关闭输入框
  • python matplotlab
  • unity jsonutility 数组
  • Android 获取网络时间
  • shell脚本随机数
  • 事务所是干什么的会计
  • 移交税务稽查的条件标准
  • 工会的会费收入是什么意思
  • 社保银行代扣收费吗
  • 个税汇算清缴申报方式选哪个
  • 山东省地方税务局公告2018年第6号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设