• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >OpenGL > Fresnel效果和颜色色散(UsingOpenGL&Cg)

Fresnel效果和颜色色散(UsingOpenGL&Cg)

作者:Skyman的部落格 字体:[增加 减小] 来源:互联网 时间:2017-07-23

Skyman的部落格通过本文主要向大家介绍了c,OpenGL等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

1.Fresnel效果

一般来说,当光到达2种材质的接触面时,一些光在接触面的表面被反射出去,而另一部分光将发生折射穿过接触面,这个现象称为Fresnel效果。Fresnel公式描述了多少光被反射和多少光被折射。下面是Fresnel公式的一个近似:

reflectionCoefficient=max(0,min(1,bias+scale×(1+I·N)power))

反射系数reflectionCoefficient的范围被限制在[0,1]之间,我们根据下面的公式使用reflectionCoefficient来混合反射和折射向量(C代表颜色):

CFinal=reflectionCoefficient×CReflected+(1-reflectionCoefficient)×CRefracted

2.颜色色散

折射量除了基于表面法向量、入射角和折射系数比率外,还决定于入射光的波长。例如,红光要比蓝光折射得多,这个现象称为颜色色散(chromatic dispersion)。这就是为什么当白光进入棱镜会形成一个彩虹的原因。

真正的光有一个波段的波长,而不仅仅只有3个特殊的离散波长。但我们可以近似地只模拟光的红、绿和蓝色分量的波长。实践证明,这种近似是有效的。

结合了颜色色散的Fresnel效果将创建一种彩虹效果,就好像被渲染的物体是由水晶做成的一样。

本程序中,fresnelBias=0.1,fresnelScale=0.3,fresnelPower=0.2

(1). Red_etaRatio=1.10,Green_etaRatio=1.12,Blue_etaRatio=1.14时:

(2). Red_etaRatio=0.0,Green_etaRatio=1.12,Blue_etaRatio=0.0时:

程序下载(由于空间的原因,没包含cg.dll和cgGL.dll运行库文件,没有的可以到nVidia网站上去下载):

cg_fres_disper.part1.rar

cg_fres_disper.part2.rar

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Fresnel效果和颜色色散(UsingOpenGL&Cg)

相关文章

  • 2018-01-073D图形基础概念
  • 2017-07-23Fresnel效果和颜色色散(UsingOpenGL&Cg)
  • 2017-09-23unity3d中的物体,在Scene窗口中可以看到,而在Game窗口中看不到
  • 2017-07-23图像风格转换算法-卷积“换脸”
  • 2017-10-01unity 中DropDown控件的使用

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 图像风格转换算法-卷积“换脸”
    • unity3d中的物体,在Scene窗口中可以看到,而在Game窗口中看不到
    • Fresnel效果和颜色色散(UsingOpenGL&Cg)
    • 3D图形基础概念
    • unity 中DropDown控件的使用

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有