source: http://cgangs.com/article/2557?source=weibo

就我们的目的来说,海洋环境仅由四部分组成:水表、空气、阳光和水表以下部分。在本节中,我们在数学和图示的基础上,通过环境,从光源到相机追踪了光线的 流动。一般来说,此处的光能传递方程与任何其他光能传递问题一样都是耦合。然而,在合理范围内,这种耦合可以缩短,简化的热能传递问题就有了相对快速的解 决方案。

相机看到的光线依赖于光能的流动,从源头(即太阳和天空)流动到水表并进入相机。除了直射阳光的镜面反射和来自水表的天空光,一些入射光碎片通过水表发 射。最终,一部分传入光被水容量散射回空气中。在表面反射或折射的一些光线再次撞击表面,产生更多的反射和折射事件。在某些外观条件下,多次反射和折射可 以对图像产生显著影响。所以,对于我们而言,我们一次忽略的不只是表面的一个反射或折射。

在表面上方环境中的任何点,包括在相机上,来自任何方向的总光强度(辐射率),都有三个贡献:

LABOV E = rLS + rLA + tU LU

所用术语定义如下:

(1)r为菲涅耳反射率,即从海洋表面上一点到相机的反射。

(2)tU是传输系数,来自海洋体积的光线LU,在表面折射后,进入相机。

(3)LS是直接来自太阳的光线总量,通过大气,到海洋表面上一点,而这一点就是从海洋表面反射到相机的点。

(4)LA是(漫反射)大气天空光。

(5)LU是通过表面发射到空气中的水表以下的光线。

方程故意用速记法写,隐藏了对空间位置的依赖,及光线运行的方向。

而方程似乎有相对简单的结构,原则上,术语LS , LA, 和LU相互依赖,错综复杂,反射率和透射率也是如此。大量的研究资料详细调查了这些依赖关系,但我们此时不会崇尚这些定量方法。但是,我们可以进一步阐述耦合。

然而继续用同样的简化符号来写。来自太阳的直射光线LS为:

LS = LT OA exp{−τ

其中LT OA是大气顶部直射阳光的强度,而τ是阳光方向和地球上点的大气的"光学厚度"。漫反射大气天空光LA和上升流光线LU都可以写为以下两个方程的总和:

这些方程揭示了问题的潜在复杂性。

LA 和 LU在都依赖阳光直射的同时,也相互依赖。例如,渗入到海洋中的光线总量来自直射阳光和大气阳光。一些进入海洋的光线被微粒和分子散射到海洋 中,并返回大气。一些上升流的光线反过来又被散射到大气中,成为照射在表面的天空光的一部分,而且持续不断。这是一个典型的光能传递问题。它不是专门为这 种情况设定的,与其他光能传递问题截然相反,除了这样一个事实,即上升流光线很难计算,因为它来自体积多重散射。

为了文章的目的,我们解决光能传递问题的方法很简单:使天空光仅仅依赖于来自太阳的光线,因为上升流贡献代表了对阳光的“第三方”依赖;完全用一个实验公式取代LU方程式,基于对海洋的科学观测,这种观测只依赖于阳光直射和一些其他指示水的类型和透明度的参数。

水表以下,光能传递方程有图解形式:

分别代表了:

(1)t是菲涅尔透射率,在表面上每个点和角度通过水面的传递。

(2)LD是渗透到水中的太阳直射光线。

(3)LI是渗透到水中的大气非直射光线。

(4)LSS是来自太阳和大气的单次散射光,在到达任何点之前,一旦进入水体就散射开来。

(5)LM是多次散射光。是单次散射光线经历更多的体积散射事件。

正如上述水的情况,这些方程式彼此都以相对复杂的方式相互关联。例如,单次散射光线依赖于直射光线和非直射光线:

LSS = P (tLI ) + P (tLD )

量P是它论证的线性函数运算符,其中包含有关单次散射事件的信息,以及当它通过散射点到达相机时,散射光线的衰减信息。同样,多次散射光线也依赖于单次散射:

LM = G(tLI ) + G(tLD ) .

函数图解的量P和G是相关的,因为多次散射就是一系列的单次散射。从形式上看,这两种依赖于运算符,形式如下:

图1  空气和水界面的多次反射和传递表达式

图2 光线方向的追踪

此时,图1通过空气和水界面的多次反射和传递的图示法可能就没什么用了,因为卷积状运算符⊗有复杂的含义(并非此处定义),而且依据P的G的表达式已经创建了一个更加清晰的示意图对P取幂。所以,现在我们不管示意图,而是继续应用一些更具体的量。

在这里提出的正式原理图的讨论,确实有数学和物理上精确对应的事物。对辐射传输领域的研究长久以来已被大量研究人员应用于水的光学中。引用的参考文献是获取更多信息的优秀读物。

如前所述,在某种情况下,可能有一种额外的光能传递情境会对海洋渲染很重要,但我们不会考虑。这种情况在图2有示意。按照箭头所示,追踪行进的方向光线, 我们看到,有时进入水面(从上方或下方)的光线可以不止一次的穿过水面,进行反射和/或透射。大量产生这种行为的条件是:浪高必须相当高,观看海浪的方 向、或光源的方向必须接近水面。海浪越高,越不需要接近光源或相机。这种现象已经通过实验并在计算机上模拟审查通过。

[zz] 海洋环境的光能传递的更多相关文章

  1. 2017-5-22 ASP六大 内置对象

    ASP内置对象:提供内建对象,这些对象使用户更容易收集通过浏览器请 求发送的信息.响应浏览器以及存储用户信息(如用户首选项). 1.Request  --- 获取请求对象 获取通过地址栏传值过来的对象 ...

  2. Lightscape

    Lightscape是一种先进的光照模拟和可视化设计系统,用于对三维模型进行精确的光照模拟和灵活方便的可视化设计. Lightscape是一个光照渲染软件,它特有的光能传递计算方式和材质属性所产生的独 ...

  3. 【Unity】3.3 用3ds Max 2015制作模型并将其导入到Unity

    分类:Unity.C#.VS2015 创建日期:2016-04-05 一.常用三维软件简介 由于游戏引擎本身的建模功能相对较弱,无论是专业性还是自由度都无法同专业的三维软件相比,所以大多数游戏中的模型 ...

  4. 3DSMAX中英文对比大全(从A-Z分类)

    A Absolute Mode Transform Type-in绝对坐标方式变换输入 Absolute/Relative Snap Toggle Mode绝对/相对捕捉开关模式 ACIS Optio ...

  5. 3ds Max从入门到精通

    1. 软件的下载与安装 这里用的是3ds Max2009简体中文版 32位 在 Win7上运行记得打上sp2补丁,不然会有bug. 2. 3ds Max的历史 3ds Max可以用在动画和游戏,点云数 ...

  6. Unity 手机屏幕适配

    ////如有侵权 请联系我进行删除 email:YZFHKM@163.com 1.游戏屏幕适配 屏幕适配是为了让我们的项目能够跑在各种电子设备上(手机,平板,电脑) 那么了解是适配之前首先要了解两个知 ...

  7. jsp页面间传递参数 中文乱码问题(zz)

      jsp页面间传递参数 中文乱码问题 1.传递参数 var url = "*****Test.jsp?param1="+encodeURI(encodeURI(str));//对 ...

  8. 大叔也说Xamarin~Android篇~Activity之间传递数组

    回到目录 我们在开发应用程序时,不可能只使用一个Layout或者一个Activity,比如你个管理系统,要求用户先登陆然后再使用,这时你至少要有两个activity吧,先登陆一个,然后成功后需要跳到别 ...

  9. Vue基础知识之组件及组件之间的数据传递(五)

    vue中的组件是自定的标签,可以扩展的原生html元素,封装可复用的代码 note: 1.在标签命中不要使用大写,标签名字必须用短横线隔开 2.模板中只能有一个根元素,不能使用并列标签. 定义组件 全 ...

随机推荐

  1. easyUI参数传递Long型8100131457085857579980953变成8.100131457085857e 24的问题,如下可以解决

    function addOptBtn(val, row, index) { var ht = "<a href='${pageContext.request.contextPath}/ ...

  2. HDU 5398 (动态树)

    Problem GCD Tree 题目大意 n个点的无向完全图,标号1~n,每条边u-->v 的权值为gcd(u,v),求其最大生成树,输出最大边权和. n<=10^5,有多个询问. 解题 ...

  3. guess number

    crossin的前面几章基本和LPTHW内容重合,因此我直接做了他前面的一个综合练习. 猜数游戏, 即系统随机记录一个数,根据用户猜的记录,如果正确则告知,且退出游戏,如不正确,则提示答案与用户输入的 ...

  4. 支持向量机 (SVM)分类器原理分析与基本应用

    前言 支持向量机,也即SVM,号称分类算法,甚至机器学习界老大哥.其理论优美,发展相对完善,是非常受到推崇的算法. 本文将讲解的SVM基于一种最流行的实现 - 序列最小优化,也即SMO. 另外还将讲解 ...

  5. 记录一些PHP7RCC1编译问题

    1,php7rc1源码编译undefined symboles的问题 自己计划将php7环境部署到cubieboard上,懒得去找别人预编译的版本,所以动手从源码编译,中间遇到了一个小问题,此处记录一 ...

  6. ABAP下载txt文件

    IF NOT DOWN_F[] IS INITIAL.    CASE DOWN_MODE . "下载模式是放在所选路径下的.TXT文档中      WHEN 'X' .        CA ...

  7. UE4 4.14 专用服务器没有生成解决办法

    简单说一下UE4 专用服务器的生成(网上也有其它版本的但是在4.14.1 上不管用) 1.用源代码编译的引擎(如何获取百度上有很多介绍)创建一个C++ UE4 工程. 2. 在vs 中找到红色这个文件 ...

  8. CSS3的calc()使用

    CSS3的calc()使用 calc是英文单词calculate(计算)的缩写,是css3的一个新增的功能,用来指定元素的长度.比如说,你可以使用calc()给元素的border.margin.pad ...

  9. Java笔记10-Object包装类型字符串

    提纲: 1.java.lang.0bject中常用方法介绍 2.基本类型对应的包装类型的介绍 以及基本类型和包装类型之间的相互转换 3.java.lang.String 字符串处理类 java.lan ...

  10. NSLog 自定义 屏蔽

    1.如何自定义NSLog呢? 直接在工程的XXX_Prefix.pch中加入以下语句(就相当于在全局中定义了)#define NSLog NSLog(@"#%s##%d#",str ...