最近重温3DMM中的公式,推导反射光线的公式,过程如下:

  1. 根据反射定律,反射角与入射角相等,设为 θ \theta θ。将入射光线记为 I I I,反射光线记为 R R R,平面法向量为 N N N,如下图所示。
  2. 引入两个变量A和B
    其中, B = − c o s ( θ ) ∗ N B = -cos(\theta)*N B=−cos(θ)∗N, 由向量关系可得:
    I = A + B R = A − B \begin{aligned} I &= A + B\\ R &= A - B \\ \end{aligned} IR​=A+B=A−B​

将 B B B带入 I I I和 R R R的表达式中,可得:
I = A − c o s ( θ ) ∗ N R = A + c o s ( θ ) ∗ N \begin{aligned} I &= A - cos(\theta)*N \\ R &= A + cos(\theta)*N \\ \end{aligned} IR​=A−cos(θ)∗N=A+cos(θ)∗N​

因此, R = I + 2 c o s ( θ ) ∗ N R = I + 2cos(\theta)*N R=I+2cos(θ)∗N

又有 c o s ( θ ) = − N ⋅ I cos(\theta) = -N \cdot I cos(θ)=−N⋅I 由此可得反射光线3D表达:
R = I − 2 ( N ⋅ I ) N R = I - 2(N \cdot I)N R=I−2(N⋅I)N
证毕。

与原文 2 ( N ⋅ I ) N − I 2(N \cdot I)N-I 2(N⋅I)N−I相差一个负号,并不影响后继计算。

参考链接:
https://www.scratchapixel.com/lessons/3d-basic-rendering/introduction-to-shading/reflection-refraction-fresnel

3DMM反射光线3D表达相关推荐

  1. 3DMM(3D Morphable Model)原理和实现

    实现: - 首先,你需要准备一个包含二维人脸图像和对应的三维人脸模型的数据集.你可以使用CASIA WebFace数据集¹²,并利用多图像3DMM重建方法¹来生成每个个体的三维人脸模型. - 然后,你 ...

  2. 即得宝,用3D助力珠宝首饰行业的线上表达与远程沟通

    互联网的媒介形态沿着文字.图片.音频.视频的轨迹演进.媒介的信息密度的越来越高,信息效率也越来越高. 互联网媒介的每一次革新都会带来大量的商业机会.文字互联网时代,电商平台只能在网上售卖图书之类的高标 ...

  3. [TOG2020](综述)3D Morphable Face Models—Past, Present, and Future

    标题:3D Morphable Face Models-Past, Present, and Future 链接:https://arxiv.org/pdf/1909.01815 这是一篇关于3DMM ...

  4. 腾讯优图提出LAP无监督多视角人脸3D重建算法,高清还原面部细节

    编辑丨腾讯优图AI开放平台 近日,腾讯优图实验室提出无监督多视角人脸3D重建算法LAP(Learning to Aggregate and Personalize),摆脱人脸3D训练样本真值依赖,高清 ...

  5. Unsupervised Learning of Probably Symmetric Deformable 3D Objects from Images in the Wild

    Abstract 提出了一种从原始单视图像中学习三维可变形物体的方法,该方法无需外部监督.该方法基于自动编码器,将输入图像分解为深度.反照率.视角和光照.为了在没有监督的情况下解耦(分解)这些组成部分 ...

  6. Towards High-Fidelity 3D Face Reconstruction from In-the-Wild Images

    论文链接:https://arxiv.org/pdf/2003.05653.pdf Abstract 首先肯定了3DMM 从单视图图片重建人脸的巨大成功,然后点出了存在的不足--面部纹理失真,然后介绍 ...

  7. SadTalker: Learning Realistic 3D Motion Coefficients for Stylized Audio-Driven Single Image Talking

    链接 arxiv:https://arxiv.org/abs/2211.12194 Project page:https://sadtalker.github.io/ 摘要 通过人脸图像和一段语音音频 ...

  8. PointNet:3D点集分类与分割深度学习模型

    之前的一篇博客<动手学无人驾驶(4):基于激光雷达点云数据3D目标检测>里介绍到了如何基于PointRCNN模型来进行3D目标检测,作者使用的主干网是PointNet++,而PointNe ...

  9. 【点云系列】综述: Deep Learning for 3D Point Clouds: A Survey

    文章目录 起因 题目 摘要 1 简介 2 背景 2.1 数据集 2.2 衡量指标 3 3D形状分类 3.1基于多视角的方法 3.2基于体素的方法 3.3 基于点的方法 3.3.1逐点MLP网络 3.3 ...

最新文章

  1. 深入浅出统计学(十三)假设检验
  2. 从零开始学习jQuery (七) jQuery动画-让页面动起来!
  3. qt 解决中文乱码问题
  4. Oracle数据库与Access互导实例
  5. 【Java类加载机制】深入类加载器(二)自定义加密、解密类加载器
  6. [8.21NOIP模拟赛]决战【tarjan】
  7. JSTL标签库中fmt标签,日期,数字的格式化
  8. idea内存溢出解决_各种OOM代码样例及解决方法
  9. Java面试——RabbitMQ系列总结
  10. Java使用自定义包
  11. ifconfig相关
  12. 单曲《我是一个程序员》
  13. NHibernate :何必到处都virtual
  14. Segger Embedded Studio使用有什么技巧?
  15. 我还在努力,你千万不要喜欢上别人
  16. HUAWEI 机试题:统计射击比赛成绩
  17. 解决Docker 一直starting 的办法
  18. Excel怎么一次性删除数据末尾的空格
  19. 突破IP封锁,共享网络
  20. XSS(Cross Site Scripting)攻击简介

热门文章

  1. 整型转字符串(C语言)
  2. Java——内部类详解
  3. nginx(三十一)proxy_intercept_errors指令应用
  4. 349. 两个数组的交集(集合 / 双指针实现)
  5. 基于准确度评估的7自由度手术机器人术前摆位优化算法
  6. 2021-10-28 SDR模块RSP1收听并显示ADS-B 航班信息
  7. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java基于网络的景区旅游服务管理系统q57ng
  8. 独立站建站需要考虑的关键功能有哪些
  9. libxml/parser.h not found
  10. 现代 Web CI/CD 系统的搭建