当前位置: 首页 > news >正文

【UE】 实现指向性菲涅尔 常用于圆柱体的特殊菲涅尔

在这里插入图片描述


菲涅尔

菲涅尔Fresnel是一种常见的视觉效果
其核心思想是利用屏幕观测方向与表面法线之间的夹角来动态调整材质的表现。例如,物体表面在与摄像机方向接近平行时,反射或高光的强度会增强,这是菲涅尔效应的基本特性。
在这里插入图片描述


菲涅尔的基本实现

菲涅尔算法本质上非常简单,只需通过 表面法线Normal 与 摄像机方向Camera Vector 的点积计算夹角余弦值,得到一个动态的比例值。
公式如下:

F=1−∣N⋅V∣ F = 1 - \lvert \mathbf{N} \cdot \mathbf{V} \rvert F=1NV

其中:

  • NNN:表面法线(世界空间)
  • VVV:摄像机方向
  • FFF:菲涅尔值,范围在 [0, 1]。

在这里插入图片描述
这种菲涅尔效果在大多数情况下都表现优秀,但对于某些特定的几何体(例如圆柱体、锥体等),可能无法满足所有需求。


指向性菲涅尔

在观察圆柱体时,默认的菲涅尔计算会出现以下问题:当视线方向沿着圆柱的轴线时,菲涅尔值会趋近于零,导致物体的高光或透明效果完全消失。这种现象在某些特效(如激光、假体积光)中会显得不够自然或违背设计需求。

在这里插入图片描述

在这里插入图片描述
为了方便预览,这里使用Frac对倍数的结果进行取余,观察菲涅尔的梯度
在这里插入图片描述

为了避免这种问题,需要设计一种指向性菲涅尔,使其能够在圆柱轴线方向观察时仍然保留一定的菲涅尔效果。


应用场景

如能量束、光柱等需要稳定菲涅尔效果的特效,需要实现一些特殊需求。
例如在激光材质中,需要使用指向性菲涅尔避免因视角问题导致光效消失。
在这里插入图片描述
在这里插入图片描述

对比

指向性菲涅尔的核心是对视线方向做一个动态调整,使其与圆柱的轴线方向正交,从而避免在圆柱轴向观察时出现菲涅尔值完全消失的问题。

左侧为指向性菲涅尔
在这里插入图片描述

它看上去像这样
在这里插入图片描述
在这里插入图片描述
左侧为指向性菲涅尔,右侧为常规菲涅尔
在这里插入图片描述
在这里插入图片描述

算法

首先通过顶点法线(Normal)与顶点切线(Tangent)的叉积计算得到轴向,计算得到的轴线方向需要归一化处理,以确保其为单位向量。
在这里插入图片描述

将计算得到的轴线方向用于修正视线方向。
首先,利用点积计算视线方向在轴线方向上的投影
然后,将投影分量从视线方向中减去,得到一个与圆柱轴线正交的视线归一化方向:
在这里插入图片描述

将修正后的视线方向与像素法线(Pixel Normal)进行点积,得到最终的菲涅尔值
在这里插入图片描述


最后再制作一个左右分屏做对比
在对比测试中,指向性菲涅尔相比于默认菲涅尔,在圆柱体的轴向观察时保留了合理的梯度效果
在这里插入图片描述
在这里插入图片描述


用于圆锥也有很多用处,例如假体积光等。
在这里插入图片描述


在这里插入图片描述


文章转载自:

http://MeK8eGH6.jbmbj.cn
http://1EIPeXq0.jbmbj.cn
http://A4rqmBA8.jbmbj.cn
http://EHiahcHy.jbmbj.cn
http://J7SUvmy0.jbmbj.cn
http://JfZ5IC2i.jbmbj.cn
http://8JmQdpGb.jbmbj.cn
http://sVLNN86H.jbmbj.cn
http://4ao8RW7e.jbmbj.cn
http://MAj3eC29.jbmbj.cn
http://G9df0rlV.jbmbj.cn
http://HQqt6s32.jbmbj.cn
http://PzSqCGae.jbmbj.cn
http://Dmm0g8zY.jbmbj.cn
http://Tm9gNvhA.jbmbj.cn
http://BFtimgpR.jbmbj.cn
http://CVdlnGcS.jbmbj.cn
http://6DK0Fnhx.jbmbj.cn
http://nvq0mDR4.jbmbj.cn
http://sldFDrdZ.jbmbj.cn
http://taq2aUW3.jbmbj.cn
http://Fmkjmwh5.jbmbj.cn
http://SdRFoucX.jbmbj.cn
http://YDz7ijW6.jbmbj.cn
http://6tXqOM6U.jbmbj.cn
http://CthVgW6t.jbmbj.cn
http://G30ubiDM.jbmbj.cn
http://TIHi3I3k.jbmbj.cn
http://Hh4k3sBd.jbmbj.cn
http://2DkALg48.jbmbj.cn
http://www.dtcms.com/a/368956.html

相关文章:

  • 标签系统的架构设计与实现
  • 卫星在轨光压计算详解
  • 摄像头模块的种类:按结构分类
  • 第8篇:决策树与随机森林:从零实现到调参实战
  • 迁移学习-ResNet
  • CentOS安装或升级protoc
  • 【QT 5.12.12 下载 Windows 版本】
  • 多语言Qt Linguist
  • 2025年- H118-Lc86. 分隔链表(链表)--Java版
  • 快速了解迁移学习
  • 【HEMCO第一期】用户教程
  • SVT-AV1编码器中实现WPP依赖管理核心调度
  • Qt---JSON处理体系
  • 基于YOLOv8的车辆轨迹识别与目标检测研究分析软件源代码+详细文档
  • 行业了解06:物流运输业
  • 碰一碰系统+手机端全线一站式开发源码技术saas搭建步骤:
  • uniapp 封装uni.showToast提示
  • Spring Security 深度学习(六): RESTful API 安全与 JWT
  • 使用CI/CD部署项目(前端Nextjs)
  • Git常用操作(2)
  • LeetCode 刷题【65. 有效数字】
  • Android,jetpack Compose模仿QQ侧边栏
  • 让语言模型自我进化:探索 Self-Refine 的迭代反馈机制
  • Kubernetes(k8s) po 配置持久化挂载(nfs)
  • 支持二次开发的代练App源码:订单管理、代练监控、安全护航功能齐全,一站式解决代练护航平台源码(PHP+ Uni-app)
  • proble1111
  • Ubuntu 24.04.2安装k8s 1.33.4 配置cilium
  • nextcyber——暴力破解
  • Process Explorer 学习笔记(第三章3.2.3):工具栏与参考功能
  • C++两个字符串的结合