立体角(Solid Angle)_Z zz的博客-程序员宅基地

技术标签: PBR  Solid Angle  Math  立体角  

问题来源

  1. 今天在学习BRDF的时候遇到立体角这个概念,然后自己学习了一遍, 在这里和大家分享一下。

立体角定义:

 

  1.  以观测点为球心构造一个单位球(r = 1),任意物体投影到该球面上的投影面积(s),即为该物体对于该观测点的立体角。因此,立体角是单位球面上的一块面积。

二维平面上过渡理解:

在二维平面上我们先来理解圆心角这一概念,在这里我们知道 圆心角\theta = s / r,(\theta 代表圆心角, s 代表圆心角对应的弧度,r就是圆所对应的半径),这个概念概念我相信大家是非常熟悉的,如果还有不熟悉的请去回顾一下自己以前学习过的有关圆心角的基础知识。那么接下来我们考虑一下极限的情况,我们让是上面公式中的弧长s 等于对应圆的周长,根据公式我们可以得到此时对应的圆心角的弧度为:2{\color{Red} }π。立体角和圆心角非常类似,立体角有 \Omega = A / ^{^{}}r^{^{2}} sr(立体角一般用\Omega表示,A是这个立体角对应的球表面积,r在这同样表示圆球的半径,sr是单位,叫球面度) ,同样的 我们来将A 赋值为 4πr^{^{2}} ,也就是整个球的表面积,我们可以得到此时的立体角为4π。

立体角应用-立体角转换到球形角:

  1. 首先我们需要知道的是球面坐标方程如下:

这里就不再做过多的赘述,如果有不懂的话就自己去补补这方面的知识。

2.接下来我们就需要讲讲怎么来进行我们的转换:

9.png

如图所示:我们可以很容易的得到\theta角对应的弧长为:r_{\theta }\theta\phi所对应的弧长为:r_{\phi }\phi,到这里了, 到这里了我们可以很容易得到这两个弧长的微分形式分别为:r_{\theta }d\theta 和r_{_{\phi }}d\phi,那么 我们可不可以以微分的方法来近似的计算球面坐标的立体角呢?回答当然是可以的。在这里我们可以得出立体角:d\omega = r_{\theta }d\theta * r_{_{\phi }}d\phi。又由于我们从上图中可以得到一个r_{\theta } 和r_{\phi }的关系,r_{\phi } = r_{\theta }\sin \theta。我们知道我们所在的球体为单位球,那么可以得到,r_{\theta } = 1, 所以r_{\phi } = \sin \theta。所以 d\omega = \sin \thetad\thetad\phi。这里我们就得到了我们需要的结果了。所以在某些应用中我们需要求 球面坐标的立体角的时候,就可以使用该结果。

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/NCHUZHJ/article/details/83346358

智能推荐

分步表单如何实现 html_HTML表单入门的分步指南-程序员宅基地

分步表单如何实现 htmlby Abhishek Jakhar 通过阿比舍克·贾卡(Abhishek Jakhar) HTML表单入门的分步指南 (A step-by-step guide to getting started with HTML forms) 总览 (Overview)HTML forms are required when you want to collect som..._there are many values for

oracle中日期格式化后的比较_oracle 时间格式化对比-程序员宅基地

今天写sql 比较日期的时候,这样写了:to_char(sysdate,'yyyy-MM-dd') = to_char('2012-09-28 21:12:05','yyyy-MM-dd')结果报错,改来改去,发现,如果是日期类型则前面的写法是对的,但如果是一个字符串,则要写成:to_char(to_date('2012-09-28 21:12:05','yyyy-MM-dd HH24_oracle 时间格式化对比

数据结构与算法笔记(11) - 树的基本概念_单点树-程序员宅基地

定义树结构是由结点和结点之间的连接关系(后继关系)构成的一种层次结构。基本术语空树: 不包含任何结点的树单点树: 只包含一个结点的树树根: 树形结构的起始点,也叫其余结点的祖先结点父结点: 一个树的根结点称为子树根结点的父结点子节点: 一棵树的子树根结点称为树根结点的子节点边: 父结点到子结点的连线父子关系: 父结点到子结点的单向关系祖先/子孙关系: 祖先结点和子孙结点间的传..._单点树

解决power designer 生成sql脚本没有字段注释_mysql导入powerdesigner后表没字段-程序员宅基地

1、数据库>>Edit Current DBMS2、点击Script>>Object>>Column>>Add打开,然后将value中的信息拉到最后%.q:@OBJTLABL%]]改成%.q:COMMENT%]]点击确定即可_mysql导入powerdesigner后表没字段

SSM练手-增删改查-4-返回JSON数据_后台-程序员宅基地

本节学会使用如何将数据改为JSON,传送到前台。为什么用JSON?当Android,IOS, 浏览器向服务器发送请求数据的时候,若后台返回的是JSON数据,这三者均易解析数据,体现了平台无关性。使用步骤:1 加入所需要的jar包依赖:<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/j...

C++多线程编程-程序员宅基地

留个纪念,不错的总结。十个例子清晰列举啦多线程编程的奥妙。VC中多线程使用比较广泛而且实用,在网上看到的教程.感觉写的挺好.一、问题的提出编写一个耗时的单线程程序:  新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添...

随便推点

斯坦福CS231n作业代码(汉化)Assignment 3 Q1 - Q2_csdn 搜dsaa b第三次assignment q1 parents-程序员宅基地

第三次作业问题1和问题2编写:张礼俊/SlyneD校对:毛丽总校对与审核:寒小阳1. 问题背景在问题1里,我们要训练一个递归神经网络(Recurrent neural networks)来生成一个图片的文字注释(captions)。问题2中,用以长短时记忆单元(Long-short term memory,LSTM)为基础的递归神经网络来完成同样的任务。 我们将用到的数据..._csdn 搜dsaa b第三次assignment q1 parents

高校云平台——学生在线抽取试题及提交试卷-程序员宅基地

参加高校云平台项目有一段时间了,我主要负责学生端,我觉得学生端一大难点就在于抽取试题和提交试卷。 因为我们的试题都是动数据库都出来的,而每个试题下的选项是由单选框实现的,根据单选框的属性我们需要实现的是,单个试题下的四个单选框name必须相同,而试题与试题之间的单选框name必须不同,为的是实现每道题下都能且只能选择一个选项。 而我们为了实现起来方便并不是为每道试题下都通过代码添加四个

Codeforces-1234C Pips DFS深搜题解_codeforces上利用dfs进行搜索的题目-程序员宅基地

Codeforces-1234C Pips DFS深搜题解原题Problem DescriptionYou are given a system of pipes. It consists of two rows, each row consists of nn pipes. The top left pipe has the coordinates (1,1)and the bottom right — (2,n).There are six types of pipes: two types o_codeforces上利用dfs进行搜索的题目

abap al设置单元格可编辑 oo_REUSE_ALV_GRID_DISPLAY_LVC-可编辑单元格-程序员宅基地

使用REUSE_ALV_GRID_DISPLAY_LVC显示ALV时,如何将列、行或者具体的某个单元格设置成可编辑能输入状态?这个其实很简单,下面一一讲解:1, 列可编辑只要将catalog中的字段edit设置成‘X',整列就变成能输入的了,LVC_S_FCAT-EDIT代码:ABAPREPORT ztest_alv_lvc_edit.TYPES:BEGIN OF gty_ekko,ebeln T..._abap alv单元格可编辑

C++构造函数和析构函数!-程序员宅基地

目录语法:构造函数的分类及调用视频链接:https://www.bilibili.com/video/BV1et411b73Z?p=106构造函数和析构函数,你不写,编译器会帮你写(内容为空实现),并自动运行你写了就用你的语法:构造函数的分类及调用视频链接:https://www.bilibili.com/video/BV1et411b73Z?p=107调用有参,无参,copy构造函数注意:显示和隐式,隐式:会给你悄悄转成显示法的括号法最方便但不要用括号法调用默认