SDF,占用场,辐射场简要笔记

符号距离函数(Signed Distance Function,SDF)的数学公式用于描述空间中任意点到某个几何形状边界的最短距离,并通过符号区分点在边界内外。具体定义如下:

假设 Ω \Omega Ω 是一个几何形状的边界,对于空间中的任意点 x \mathbf{x} x,符号距离函数 S D F ( x ) SDF(\mathbf{x}) SDF(x) 定义为:

  1. 如果 x \mathbf{x} x 在边界 Ω \Omega Ω 上,则 S D F ( x ) = 0 SDF(\mathbf{x}) = 0 SDF(x)=0
  2. 如果 x \mathbf{x} x 在边界 Ω \Omega Ω 内部,则 S D F ( x ) < 0 SDF(\mathbf{x}) < 0 SDF(x)<0
  3. 如果 x \mathbf{x} x 在边界 Ω \Omega Ω 外部,则 S D F ( x ) > 0 SDF(\mathbf{x}) > 0 SDF(x)>0

具体公式可以表示为:
S D F ( x ) = { min ⁡ y ∈ Ω ∥ x − y ∥ if  x ∉ Ω − min ⁡ y ∈ Ω ∥ x − y ∥ if  x ∈ Ω SDF(\mathbf{x}) = \begin{cases} \min_{\mathbf{y} \in \Omega} \|\mathbf{x} - \mathbf{y}\| & \text{if } \mathbf{x} \notin \Omega \\ -\min_{\mathbf{y} \in \Omega} \|\mathbf{x} - \mathbf{y}\| & \text{if } \mathbf{x} \in \Omega \end{cases} SDF(x)={minyΩxyminyΩxyif x/Ωif xΩ
其中, ∥ x − y ∥ \|\mathbf{x} - \mathbf{y}\| xy 表示点 x \mathbf{x} x 到边界上点 y \mathbf{y} y 的欧几里得距离。

常见几何形状的SDF公式

  1. 球体
    对于中心在 c \mathbf{c} c,半径为 r r r 的球体,其SDF公式为:
    S D F ( x ) = ∥ x − c ∥ − r SDF(\mathbf{x}) = \|\mathbf{x} - \mathbf{c}\| - r SDF(x)=xcr
    其中, ∥ x − c ∥ \|\mathbf{x} - \mathbf{c}\| xc 是点 x \mathbf{x} x 到球心 c \mathbf{c} c 的距离。

  2. 矩形
    对于中心在原点,宽度为 w w w,高度为 h h h 的矩形,其SDF公式为:
    S D F ( x , y ) = max ⁡ ( ∣ x ∣ − w 2 , ∣ y ∣ − h 2 ) SDF(x, y) = \max\left(|x| - \frac{w}{2}, |y| - \frac{h}{2}\right) SDF(x,y)=max(x2w,y2h)
    如果点在矩形内部,则取负值。

  3. 圆角矩形
    对于圆角矩形,其SDF公式可以通过在普通矩形的SDF基础上减去圆角半径 r r r 来实现:
    S D F ( x , y ) = max ⁡ ( ∣ x ∣ − w 2 , ∣ y ∣ − h 2 ) − r SDF(x, y) = \max\left(|x| - \frac{w}{2}, |y| - \frac{h}{2}\right) - r SDF(x,y)=max(x2w,y2h)r
    这样可以将矩形的角部变成圆角。

特点

  • 连续性:SDF在空间中是连续的,便于数值计算和优化。
  • 可微性:在大多数情况下,SDF是可微的,其梯度可以用于法线计算。
  • 零水平集表示边界:SDF的零水平集 S D F ( x ) = 0 SDF(\mathbf{x}) = 0 SDF(x)=0 表示几何形状的边界。

SDF在计算机图形学、碰撞检测、路径规划等领域有广泛应用。

符号距离函数(Signed Distance Function,SDF)的映射关系公式可以表示为:
S D F : R 3 → R SDF: \mathbb{R}^3 \rightarrow \mathbb{R} SDF:R3R

解释:

  1. R 3 \mathbb{R}^3 R3
    表示三维欧几里得空间,即所有可能的三维点的集合。每个点 x \mathbf{x} x 可以用一个三维向量 ( x , y , z ) (x, y, z) (x,y,z) 表示,其中 x , y , z x, y, z x,y,z 都是实数。

  2. R \mathbb{R} R
    表示实数集,即所有可能的实数值的集合。在SDF中, R \mathbb{R} R 用于表示符号距离函数的输出值,这个值是一个实数。

  3. 映射关系
    S D F : R 3 → R SDF: \mathbb{R}^3 \rightarrow \mathbb{R} SDF:R3R 表示SDF是一个从三维空间 R 3 \mathbb{R}^3 R3 到实数 R \mathbb{R} R 的函数。对于任意点 x ∈ R 3 \mathbf{x} \in \mathbb{R}^3 xR3,SDF计算出一个实数值 s ∈ R s \in \mathbb{R} sR,表示该点到几何形状边界的符号距离。

1. 占用场的网络表示

占用场的网络表示通常通过隐式函数实现,该函数将三维空间中的点映射为一个概率值,表示该点是否被物体占据。具体的网络表示可以表示为:
f θ : R 3 → [ 0 , 1 ] f_{\theta}: \mathbb{R}^3 \rightarrow [0,1] fθ:R3[0,1]
其中, θ \theta θ 表示网络参数,输入是三维空间中的点 p = ( x , y , z ) \mathbf{p} = (x, y, z) p=(x,y,z),输出是该点的占用概率。

2. 占用场表示RGB

占用场表示RGB的扩展是将占用概率扩展为颜色信息,即将每个点的占用概率替换为RGB颜色值。具体表示为:
f θ : R 3 → R 3 f_{\theta}: \mathbb{R}^3 \rightarrow \mathbb{R}^3 fθ:R3R3
其中,输出的 R 3 \mathbb{R}^3 R3 表示RGB颜色值。

神经辐射场(Neural Radiance Fields,简称NeRF)是一种先进的三维场景重建和渲染技术,它利用深度学习模型从一组稀疏的二维图像中重建出场景的连续体积表示。这种表示能够捕捉场景的几何结构和光照信息,从而允许从新的视角生成高质量的图像。

NeRF的核心是一个多层感知机(MLP)网络,该网络学习将空间位置和观察方向映射到颜色和密度值。这可以表示为以下函数:

F : ( x , y , z , d ) → ( R , G , B , σ ) F: (x, y, z, d) \rightarrow (R, G, B, \sigma) F:(x,y,z,d)(R,G,B,σ)

其中:

  • ( x , y , z ) (x, y, z) (x,y,z) 表示三维空间中某点的位置坐标。
  • d d d 表示从该点出发的光线的方向向量。
  • ( R , G , B ) (R, G, B) (R,G,B) 表示该点的颜色值,通常为RGB三通道。
  • σ \sigma σ 表示该点的体积密度,用于体积渲染过程中计算光线的吸收和散射。

体积渲染

NeRF使用体积渲染技术来合成图像。对于每条从相机发出的光线,NeRF沿光线路径采样多个点,并使用网络 F F F 预测每个点的颜色和密度。然后,通过积分这些点的颜色和密度来计算光线的最终颜色。体积渲染方程可以表示为:

C ( r ) = ∫ t n t f T ( t ) σ ( r ( t ) ) c ( r ( t ) , d ) d t C(\mathbf{r}) = \int_{t_n}^{t_f} T(t) \sigma(\mathbf{r}(t)) \mathbf{c}(\mathbf{r}(t), d) dt C(r)=tntfT(t)σ(r(t))c(r(t),d)dt

其中:

  • r ( t ) = o + t d \mathbf{r}(t) = o + td r(t)=o+td 表示光线的参数化表示,其中 o o o 是相机位置, d d d 是光线方向, t t t 是沿光线的参数。
  • T ( t ) T(t) T(t) 是累积透射率,表示光线从起点到当前点未被吸收的概率。
  • σ ( r ( t ) ) \sigma(\mathbf{r}(t)) σ(r(t)) c ( r ( t ) , d ) \mathbf{c}(\mathbf{r}(t), d) c(r(t),d) 分别是通过神经网络 F F F 预测的体积密度和颜色。

参考链接:
https://blog.csdn.net/weixin_43117620/article/details/131980822

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/71095.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

solidwork智能尺寸怎么对称尺寸

以构造轴为中心线就能画智能尺寸的对称尺寸。先点击边再点击构造线

如何从零开始理解LLM训练理论?预训练范式、模型推理与扩容技巧全解析

Part 1&#xff1a;预训练——AI的九年义务教育 &#x1f4da; 想象你往峨眉山猴子面前扔了1000本《五年高考三年模拟》-我那时候还在做的题&#xff08;海量互联网数据&#xff09;&#xff0c;突然有一天它开口唱起《我在东北玩泥巴》&#xff0c;这有意思的过程就是LLM的预…

工程化与框架系列(13)--虚拟DOM实现

虚拟DOM实现 &#x1f333; 虚拟DOM&#xff08;Virtual DOM&#xff09;是现代前端框架的核心技术之一&#xff0c;它通过在内存中维护UI的虚拟表示来提高渲染性能。本文将深入探讨虚拟DOM的实现原理和关键技术。 虚拟DOM概述 &#x1f31f; &#x1f4a1; 小知识&#xff1…

设计模式--spring中用到的设计模式

一、单例模式&#xff08;Singleton Pattern&#xff09; 定义&#xff1a;确保一个类只有一个实例&#xff0c;并提供全局访问点 Spring中的应用&#xff1a;Spring默认将Bean配置为单例模式 案例&#xff1a; Component public class MySingletonBean {// Spring 默认将其…

深入浅出:Spring AI 集成 DeepSeek 构建智能应用

Spring AI 作为 Java 生态中备受瞩目的 AI 应用开发框架&#xff0c;凭借其简洁的 API 设计和强大的功能&#xff0c;为开发者提供了构建智能应用的强大工具。与此同时&#xff0c;DeepSeek 作为领先的 AI 模型服务提供商&#xff0c;在自然语言处理、计算机视觉等领域展现了卓…

CSS浮动详解

1. 浮动的简介 浮动是用来实现文字环绕图片效果的 2.元素浮动后会有哪些影响 对兄弟元素的影响&#xff1a; 后面的兄弟元素&#xff0c;会占据浮动元素之前的位置&#xff0c;在浮动元素的下面&#xff1b;对前面的兄弟 无影响。 对父元素的影响&#xff1a; 不能撑起父元…

python数据类型等基础语法

目录 字面量 注释 变量 查数据类型 类型转换 算数运算符 字符串定义的三种方式 字符串占位 数据输入 字面量 被写在代码中固定的值 六种数据类型: 1 字符串 String 如"egg" 2 数字 Number: 整数int 浮点数float 复数complex :如43j 布尔…

Android 图片压缩详解

在 Android 开发中,图片压缩是一个重要的优化手段,旨在提升用户体验、减少网络传输量以及降低存储空间占用。以下是几种主流的图片压缩方法,结合原理、使用场景和优缺点进行详细解析。 效果演示 直接先给大家对比几种图片压缩的效果 质量压缩 质量压缩:根据传递进去的质…

Flutter状态管理框架GetX最新版详解与实践指南

一、GetX框架概述 GetX是Flutter生态中轻量级、高性能的全能开发框架&#xff0c;集成了状态管理、路由导航、依赖注入等核心功能&#xff0c;同时提供国际化、主题切换等实用工具。其优势在于代码简洁性&#xff08;减少模板代码约70%&#xff09;和高性能&#xff08;基于观…

【linux】详谈 环境变量

目录 一、基本概念 二、常见的环境变量 取消环境变量 三、获取环境变量 通过代码获取环境变量 环境变量的特性 1. getenv函数:获取指定的环境变量 2. environ获取环境变量 四、本地变量 五、定义环境变量的方法 临时定义&#xff08;仅对当前会话有效&#xff09; 永…

LangChain教程 - RAG - PDF问答

系列文章索引 LangChain教程 - 系列文章 在现代自然语言处理&#xff08;NLP&#xff09;中&#xff0c;基于文档内容的问答系统变得愈发重要&#xff0c;尤其是当我们需要从大量文档中提取信息时。通过结合文档检索和生成模型&#xff08;如RAG&#xff0c;Retrieval-Augment…

大白话前端性能优化方法的分类与具体实现

大白话前端性能优化方法的分类与具体实现 一、资源加载优化 1. 压缩与合并文件 大白话解释&#xff1a; 咱们的网页代码里&#xff0c;就像一个房间堆满了东西&#xff0c;有很多没用的“杂物”&#xff0c;比如代码里的空格、注释啥的。压缩文件就是把这些“杂物”清理掉&a…

MySQL并发知识(面试高频)

mysql并发事务解决 不同隔离级别下&#xff0c;mysql解决并发事务的方式不同。主要由锁机制和MVCC(多版本并发控制)机制来解决并发事务问题。 1. mysql中的锁有哪些&#xff1f; 表级锁&#xff1a; 场景&#xff1a;表级锁适用于需要对整个表进行操作的情况&#xff0c;例如…

【Kubernets】K8S内部nginx访问Service资源原理说明

文章目录 原理概述**一、核心概念****二、Nginx 访问 Service 的流程****1. Service 的作用****2. Endpoint 的作用****3. Nginx Pod 发起请求****(1) DNS 解析****(2) 流量到达 kube-proxy****(3) 后端 Pod 处理请求** **三、不同代理模式的工作原理****1. iptables 模式****2…

HTML:自闭合标签简单介绍

1. 什么是自结束标签&#xff1f; 定义&#xff1a;自结束标签&#xff08;Self-closing Tag&#xff09;是指 不需要单独结束标签 的 HTML 标签&#xff0c;它们通过自身的语法结构闭合。语法形式&#xff1a; 在 HTML5 中&#xff1a;直接写作 <tag>&#xff0c;例如 …

《几何原本》公理

《几何原本》公理 等于同量的量彼此相等 即若 a b , b c ab,bc ab,bc 则 a c ac ac 等量加等量&#xff0c;其和仍相等 即若 a b ab ab 则 a c b c acbc acbc 等量减等量&#xff0c;其差仍相等 即若 a b ab ab 则 a − c b − c a-cb-c a−cb−c 彼此能够&a…

学习路程十一 langchain核心组件 Memory

前序 在最开始我们就通过实验知道LLM 本身是没有记忆的&#xff0c;每一次LLM的API调用都是一个全新的会话。但在某些应用程序中&#xff0c;如&#xff1a;聊天机器人&#xff0c;让LLM记住以前的历史交互是非常重要&#xff0c;无论是在短期的还是长期的。langchain中的“Me…

Spring-AI搭建企业专属知识库 一

环境介绍&#xff1a;Spring3.3.2 JDK 21 POM文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation&…

C语言多级指针详解 - 通过实例理解一级、二级、三级指针

C语言多级指针详解 - 通过实例理解一级、二级、三级指针 文章目录 C语言多级指针详解 - 通过实例理解一级、二级、三级指针引言一、示例代码二、指针基础回顾&#xff08;先备知识&#xff09;1.生活中的类比2.指针变量定义3.关键操作符4.解引用本质 三、多级指针的本质1.层级关…

Difyにおけるデータベースマイグレーション手順

Difyにおけるデータベースマイグレーション手順 はじめに主要マイグレーションコマンドAlembic直接コマンドFlask-Migrate経由コマンド 標準マイグレーション作業フローデプロイ時の対応注意事項 はじめに Difyプロジェクトでのデータベースマイグレーションには、Alembicコマ…