Files
ViewDesignEngine/docs/api/sdf__gradient_8h.html
T

264 lines
28 KiB
HTML
Raw Normal View History

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ViewDesignEngine: include/vde/sdf/sdf_gradient.h 文件参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ViewDesignEngine
&#160;<span id="projectnumber">3.1.0</span>
</div>
<div id="projectbrief">高性能 CAD 计算几何引擎</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','搜索');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('sdf__gradient_8h.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes"></a> &#124;
<a href="#namespaces">命名空间</a> &#124;
<a href="#func-members">函数</a> </div>
<div class="headertitle">
<div class="title">sdf_gradient.h 文件参考<div class="ingroups"><a class="el" href="group__sdf.html">SDF 模块 (vde::sdf)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>SDF 梯度计算(数值微分、解析梯度、链式法则)
<a href="#details">更多...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="sdf__primitives_8h_source.html">vde/sdf/sdf_primitives.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="sdf__operations_8h_source.html">vde/sdf/sdf_operations.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="point_8h_source.html">vde/core/point.h</a>&quot;</code><br />
<code>#include &lt;cmath&gt;</code><br />
<code>#include &lt;functional&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
sdf_gradient.h 的引用(Include)关系图:</div>
<div class="dyncontent">
<div class="center"><img src="sdf__gradient_8h__incl.png" border="0" usemap="#ainclude_2vde_2sdf_2sdf__gradient_8h" alt=""/></div>
<map name="ainclude_2vde_2sdf_2sdf__gradient_8h" id="ainclude_2vde_2sdf_2sdf__gradient_8h">
<area shape="rect" title="SDF 梯度计算(数值微分、解析梯度、链式法则)" alt="" coords="533,5,679,47"/>
<area shape="rect" href="sdf__primitives_8h.html" title="有符号距离函数(SDF)基础图元" alt="" coords="311,95,490,121"/>
<area shape="rect" href="point_8h.html" title=" " alt="" coords="332,169,459,196"/>
<area shape="rect" title=" " alt="" coords="619,333,681,360"/>
<area shape="rect" href="sdf__operations_8h.html" title="SDF 布尔运算、修饰算子与域变形" alt="" coords="515,95,697,121"/>
<area shape="rect" title=" " alt="" coords="773,95,860,121"/>
<area shape="rect" title=" " alt="" coords="569,169,654,196"/>
<area shape="rect" href="math__types_8h.html" title=" " alt="" coords="113,244,272,285"/>
<area shape="rect" href="tolerance_8h.html" title=" " alt="" coords="297,251,494,278"/>
<area shape="rect" title=" " alt="" coords="251,333,343,360"/>
<area shape="rect" title=" " alt="" coords="5,333,132,360"/>
<area shape="rect" title=" " alt="" coords="156,333,227,360"/>
<area shape="rect" title=" " alt="" coords="367,333,426,360"/>
<area shape="rect" title=" " alt="" coords="451,333,513,360"/>
</map>
</div>
</div><div class="textblock"><div class="dynheader">
此图展示该文件直接或间接的被哪些文件引用了:</div>
<div class="dyncontent">
<div class="center"><img src="sdf__gradient_8h__dep__incl.png" border="0" usemap="#ainclude_2vde_2sdf_2sdf__gradient_8hdep" alt=""/></div>
<map name="ainclude_2vde_2sdf_2sdf__gradient_8hdep" id="ainclude_2vde_2sdf_2sdf__gradient_8hdep">
<area shape="rect" title="SDF 梯度计算(数值微分、解析梯度、链式法则)" alt="" coords="5,5,151,47"/>
<area shape="rect" href="sdf__torch_8h.html" title="SDF 批量求值与梯度计算(CPU 后端)" alt="" coords="5,95,151,136"/>
</map>
</div>
</div>
<p><a href="sdf__gradient_8h_source.html">浏览源代码.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structvde_1_1sdf_1_1GradResult.html">vde::sdf::GradResult</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">前向模梯度结果: SDF 值 + 梯度 <a href="structvde_1_1sdf_1_1GradResult.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structvde_1_1sdf_1_1ParamGrad.html">vde::sdf::ParamGrad</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">参数梯度结构体 <a href="structvde_1_1sdf_1_1ParamGrad.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
命名空间</h2></td></tr>
<tr class="memitem:namespacevde"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde.html">vde</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespacevde_1_1sdf"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html">vde::sdf</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
函数</h2></td></tr>
<tr class="memitem:af260f5ad8965f5db556caf2a6e465fd9"><td class="memItemLeft" align="right" valign="top">Vector3D&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#af260f5ad8965f5db556caf2a6e465fd9">vde::sdf::gradient</a> (const std::function&lt; double(const Point3D &amp;)&gt; &amp;f, const Point3D &amp;p, double h=1e-6)</td></tr>
<tr class="memdesc:af260f5ad8965f5db556caf2a6e465fd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDF 的空间梯度(中心差分近似) <a href="namespacevde_1_1sdf.html#af260f5ad8965f5db556caf2a6e465fd9">更多...</a><br /></td></tr>
<tr class="separator:af260f5ad8965f5db556caf2a6e465fd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affdb6d73057aa00a86b58c5e383ffdf0"><td class="memItemLeft" align="right" valign="top">GradResult&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#affdb6d73057aa00a86b58c5e383ffdf0">vde::sdf::evaluate_with_gradient</a> (const std::function&lt; double(const Point3D &amp;)&gt; &amp;f, const Point3D &amp;p, double h=1e-6)</td></tr>
<tr class="memdesc:affdb6d73057aa00a86b58c5e383ffdf0"><td class="mdescLeft">&#160;</td><td class="mdescRight">同时计算 SDF 值和梯度的便捷函数 <a href="namespacevde_1_1sdf.html#affdb6d73057aa00a86b58c5e383ffdf0">更多...</a><br /></td></tr>
<tr class="separator:affdb6d73057aa00a86b58c5e383ffdf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d9d9c35a53af78240acf5f720733464"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#a7d9d9c35a53af78240acf5f720733464">vde::sdf::sphere_radius_gradient</a> (const Point3D &amp;p, double radius, double h=1e-6)</td></tr>
<tr class="memdesc:a7d9d9c35a53af78240acf5f720733464"><td class="mdescLeft">&#160;</td><td class="mdescRight">球体 SDF 对半径的参数梯度 ∂f/∂r <a href="namespacevde_1_1sdf.html#a7d9d9c35a53af78240acf5f720733464">更多...</a><br /></td></tr>
<tr class="separator:a7d9d9c35a53af78240acf5f720733464"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65151d2d143574ecae106b734c549eb2"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#a65151d2d143574ecae106b734c549eb2">vde::sdf::box_extent_gradient</a> (const Point3D &amp;p, const Point3D &amp;extents, int axis, double h=1e-6)</td></tr>
<tr class="memdesc:a65151d2d143574ecae106b734c549eb2"><td class="mdescLeft">&#160;</td><td class="mdescRight">长方体 SDF 对各轴半尺寸的参数梯度 ∂f/∂extent[i] <a href="namespacevde_1_1sdf.html#a65151d2d143574ecae106b734c549eb2">更多...</a><br /></td></tr>
<tr class="separator:a65151d2d143574ecae106b734c549eb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8004df170f9bc30341042677068bdf8"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#ac8004df170f9bc30341042677068bdf8">vde::sdf::torus_major_gradient</a> (const Point3D &amp;p, double major_r, double minor_r, double h=1e-6)</td></tr>
<tr class="memdesc:ac8004df170f9bc30341042677068bdf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">圆环 SDF 对主半径的参数梯度 ∂f/∂major_r <a href="namespacevde_1_1sdf.html#ac8004df170f9bc30341042677068bdf8">更多...</a><br /></td></tr>
<tr class="separator:ac8004df170f9bc30341042677068bdf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ab074db684a34dd527db44f4571515e"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#a8ab074db684a34dd527db44f4571515e">vde::sdf::torus_minor_gradient</a> (const Point3D &amp;p, double major_r, double minor_r, double h=1e-6)</td></tr>
<tr class="memdesc:a8ab074db684a34dd527db44f4571515e"><td class="mdescLeft">&#160;</td><td class="mdescRight">圆环 SDF 对副半径的参数梯度 ∂f/∂minor_r <a href="namespacevde_1_1sdf.html#a8ab074db684a34dd527db44f4571515e">更多...</a><br /></td></tr>
<tr class="separator:a8ab074db684a34dd527db44f4571515e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67cf56e19046940858f37b9916a75760"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#a67cf56e19046940858f37b9916a75760">vde::sdf::cylinder_height_gradient</a> (const Point3D &amp;p, double radius, double height, double h=1e-6)</td></tr>
<tr class="memdesc:a67cf56e19046940858f37b9916a75760"><td class="mdescLeft">&#160;</td><td class="mdescRight">圆柱 SDF 对高度的参数梯度 ∂f/∂height <a href="namespacevde_1_1sdf.html#a67cf56e19046940858f37b9916a75760">更多...</a><br /></td></tr>
<tr class="separator:a67cf56e19046940858f37b9916a75760"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3022e3d0f6b0ce5fb1874571f1edb481"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#a3022e3d0f6b0ce5fb1874571f1edb481">vde::sdf::cylinder_radius_gradient</a> (const Point3D &amp;p, double radius, double height, double h=1e-6)</td></tr>
<tr class="memdesc:a3022e3d0f6b0ce5fb1874571f1edb481"><td class="mdescLeft">&#160;</td><td class="mdescRight">圆柱 SDF 对半径的参数梯度 ∂f/∂radius <a href="namespacevde_1_1sdf.html#a3022e3d0f6b0ce5fb1874571f1edb481">更多...</a><br /></td></tr>
<tr class="separator:a3022e3d0f6b0ce5fb1874571f1edb481"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d6a68d57b617b8b9033d96ac6140a16"><td class="memItemLeft" align="right" valign="top">Vector3D&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#a0d6a68d57b617b8b9033d96ac6140a16">vde::sdf::sphere_gradient_analytic</a> (const Point3D &amp;p, double)</td></tr>
<tr class="memdesc:a0d6a68d57b617b8b9033d96ac6140a16"><td class="mdescLeft">&#160;</td><td class="mdescRight">球体 SDF 的解析梯度 <a href="namespacevde_1_1sdf.html#a0d6a68d57b617b8b9033d96ac6140a16">更多...</a><br /></td></tr>
<tr class="separator:a0d6a68d57b617b8b9033d96ac6140a16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a954757be09c6eafe3d8524e34d6cfe5a"><td class="memItemLeft" align="right" valign="top">Vector3D&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#a954757be09c6eafe3d8524e34d6cfe5a">vde::sdf::box_gradient_analytic</a> (const Point3D &amp;p, const Point3D &amp;half_extents)</td></tr>
<tr class="memdesc:a954757be09c6eafe3d8524e34d6cfe5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">长方体 SDF 的解析梯度 <a href="namespacevde_1_1sdf.html#a954757be09c6eafe3d8524e34d6cfe5a">更多...</a><br /></td></tr>
<tr class="separator:a954757be09c6eafe3d8524e34d6cfe5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d23eb598738b3053c9b774e27af0418"><td class="memItemLeft" align="right" valign="top">Vector3D&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#a9d23eb598738b3053c9b774e27af0418">vde::sdf::torus_gradient_analytic</a> (const Point3D &amp;p, double major_r, double minor_r)</td></tr>
<tr class="memdesc:a9d23eb598738b3053c9b774e27af0418"><td class="mdescLeft">&#160;</td><td class="mdescRight">圆环 SDF 的解析梯度 <a href="namespacevde_1_1sdf.html#a9d23eb598738b3053c9b774e27af0418">更多...</a><br /></td></tr>
<tr class="separator:a9d23eb598738b3053c9b774e27af0418"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1dd78ab7c46238fff4f470179c5ad70d"><td class="memItemLeft" align="right" valign="top">Vector3D&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#a1dd78ab7c46238fff4f470179c5ad70d">vde::sdf::cylinder_gradient_analytic</a> (const Point3D &amp;p, double)</td></tr>
<tr class="memdesc:a1dd78ab7c46238fff4f470179c5ad70d"><td class="mdescLeft">&#160;</td><td class="mdescRight">无限圆柱(沿 Y 轴)的解析梯度 <a href="namespacevde_1_1sdf.html#a1dd78ab7c46238fff4f470179c5ad70d">更多...</a><br /></td></tr>
<tr class="separator:a1dd78ab7c46238fff4f470179c5ad70d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e83bae2a1a877a29c7a1e42148e8061"><td class="memItemLeft" align="right" valign="top">Vector3D&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#a8e83bae2a1a877a29c7a1e42148e8061">vde::sdf::plane_gradient_analytic</a> (const Vector3D &amp;normal)</td></tr>
<tr class="memdesc:a8e83bae2a1a877a29c7a1e42148e8061"><td class="mdescLeft">&#160;</td><td class="mdescRight">平面的解析梯度 <a href="namespacevde_1_1sdf.html#a8e83bae2a1a877a29c7a1e42148e8061">更多...</a><br /></td></tr>
<tr class="separator:a8e83bae2a1a877a29c7a1e42148e8061"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29f036b4b8a09ecca3ad179028689f2e"><td class="memItemLeft" align="right" valign="top">Vector3D&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#a29f036b4b8a09ecca3ad179028689f2e">vde::sdf::capsule_gradient_analytic</a> (const Point3D &amp;p, const Point3D &amp;a, const Point3D &amp;b, double radius)</td></tr>
<tr class="memdesc:a29f036b4b8a09ecca3ad179028689f2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">胶囊体 SDF 的解析梯度 <a href="namespacevde_1_1sdf.html#a29f036b4b8a09ecca3ad179028689f2e">更多...</a><br /></td></tr>
<tr class="separator:a29f036b4b8a09ecca3ad179028689f2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63869bc353ef53c2182ac4146121de42"><td class="memItemLeft" align="right" valign="top">Vector3D&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#a63869bc353ef53c2182ac4146121de42">vde::sdf::chain_union</a> (const Vector3D &amp;grad_a, const Vector3D &amp;grad_b, double d1, double d2)</td></tr>
<tr class="memdesc:a63869bc353ef53c2182ac4146121de42"><td class="mdescLeft">&#160;</td><td class="mdescRight">并集操作后的梯度传递 <a href="namespacevde_1_1sdf.html#a63869bc353ef53c2182ac4146121de42">更多...</a><br /></td></tr>
<tr class="separator:a63869bc353ef53c2182ac4146121de42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e63208b304a8cb22d9272ecc9f4df71"><td class="memItemLeft" align="right" valign="top">Vector3D&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#a9e63208b304a8cb22d9272ecc9f4df71">vde::sdf::chain_intersection</a> (const Vector3D &amp;grad_a, const Vector3D &amp;grad_b, double d1, double d2)</td></tr>
<tr class="memdesc:a9e63208b304a8cb22d9272ecc9f4df71"><td class="mdescLeft">&#160;</td><td class="mdescRight">交集操作后的梯度传递 <a href="namespacevde_1_1sdf.html#a9e63208b304a8cb22d9272ecc9f4df71">更多...</a><br /></td></tr>
<tr class="separator:a9e63208b304a8cb22d9272ecc9f4df71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32e668de9dbb700500d2f03bccbe144d"><td class="memItemLeft" align="right" valign="top">Vector3D&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#a32e668de9dbb700500d2f03bccbe144d">vde::sdf::chain_difference</a> (const Vector3D &amp;grad_a, const Vector3D &amp;grad_b, double d1, double d2)</td></tr>
<tr class="memdesc:a32e668de9dbb700500d2f03bccbe144d"><td class="mdescLeft">&#160;</td><td class="mdescRight">差集操作后的梯度传递 <a href="namespacevde_1_1sdf.html#a32e668de9dbb700500d2f03bccbe144d">更多...</a><br /></td></tr>
<tr class="separator:a32e668de9dbb700500d2f03bccbe144d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19fea8b2d967c28d703fc742f37da5c0"><td class="memItemLeft" align="right" valign="top">Vector3D&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#a19fea8b2d967c28d703fc742f37da5c0">vde::sdf::chain_smooth_union</a> (const Vector3D &amp;grad_a, const Vector3D &amp;grad_b, double d1, double d2, double k)</td></tr>
<tr class="memdesc:a19fea8b2d967c28d703fc742f37da5c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">平滑并集操作的梯度传递(含完整链式法则) <a href="namespacevde_1_1sdf.html#a19fea8b2d967c28d703fc742f37da5c0">更多...</a><br /></td></tr>
<tr class="separator:a19fea8b2d967c28d703fc742f37da5c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad010ebbc9197cfb190a07fa9b1c50203"><td class="memItemLeft" align="right" valign="top">GradResult&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#ad010ebbc9197cfb190a07fa9b1c50203">vde::sdf::chain_translate</a> (const GradResult &amp;child_result, const Point3D &amp;)</td></tr>
<tr class="memdesc:ad010ebbc9197cfb190a07fa9b1c50203"><td class="mdescLeft">&#160;</td><td class="mdescRight">平移变换后的梯度传递(梯度不变) <a href="namespacevde_1_1sdf.html#ad010ebbc9197cfb190a07fa9b1c50203">更多...</a><br /></td></tr>
<tr class="separator:ad010ebbc9197cfb190a07fa9b1c50203"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63e4e6480b8a7c2ea1b0d9a3d90ecece"><td class="memItemLeft" align="right" valign="top">GradResult&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#a63e4e6480b8a7c2ea1b0d9a3d90ecece">vde::sdf::chain_rotate</a> (const GradResult &amp;child_result, double angle_rad)</td></tr>
<tr class="memdesc:a63e4e6480b8a7c2ea1b0d9a3d90ecece"><td class="mdescLeft">&#160;</td><td class="mdescRight">绕 Y 轴旋转后的梯度传递 <a href="namespacevde_1_1sdf.html#a63e4e6480b8a7c2ea1b0d9a3d90ecece">更多...</a><br /></td></tr>
<tr class="separator:a63e4e6480b8a7c2ea1b0d9a3d90ecece"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa55afba264eae4d7e939a3ab61aac641"><td class="memItemLeft" align="right" valign="top">GradResult&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#aa55afba264eae4d7e939a3ab61aac641">vde::sdf::chain_scale</a> (const GradResult &amp;child_result, const Point3D &amp;factors)</td></tr>
<tr class="memdesc:aa55afba264eae4d7e939a3ab61aac641"><td class="mdescLeft">&#160;</td><td class="mdescRight">非均匀缩放后的梯度传递 <a href="namespacevde_1_1sdf.html#aa55afba264eae4d7e939a3ab61aac641">更多...</a><br /></td></tr>
<tr class="separator:aa55afba264eae4d7e939a3ab61aac641"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2653a2bd7631cd47cb912a3275e70bfb"><td class="memItemLeft" align="right" valign="top">GradResult&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#a2653a2bd7631cd47cb912a3275e70bfb">vde::sdf::chain_twist</a> (const GradResult &amp;child_result, double amount, const Point3D &amp;p)</td></tr>
<tr class="memdesc:a2653a2bd7631cd47cb912a3275e70bfb"><td class="mdescLeft">&#160;</td><td class="mdescRight">扭曲变换后的梯度传递(含完整雅可比) <a href="namespacevde_1_1sdf.html#a2653a2bd7631cd47cb912a3275e70bfb">更多...</a><br /></td></tr>
<tr class="separator:a2653a2bd7631cd47cb912a3275e70bfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68853a02d70632a2ec509b50ef53ac5d"><td class="memItemLeft" align="right" valign="top">GradResult&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#a68853a02d70632a2ec509b50ef53ac5d">vde::sdf::chain_repeat</a> (const GradResult &amp;child_result, const Point3D &amp;, const Point3D &amp;)</td></tr>
<tr class="memdesc:a68853a02d70632a2ec509b50ef53ac5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">周期重复后的梯度传递(梯度不变) <a href="namespacevde_1_1sdf.html#a68853a02d70632a2ec509b50ef53ac5d">更多...</a><br /></td></tr>
<tr class="separator:a68853a02d70632a2ec509b50ef53ac5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2cdf3747a6427954f29546e3cee5722f"><td class="memItemLeft" align="right" valign="top">ParamGrad&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#a2cdf3747a6427954f29546e3cee5722f">vde::sdf::sphere_param_grad</a> (const Point3D &amp;p, double radius, double h=1e-6)</td></tr>
<tr class="memdesc:a2cdf3747a6427954f29546e3cee5722f"><td class="mdescLeft">&#160;</td><td class="mdescRight">球体所有参数的梯度(当前仅 radius 有意义) <a href="namespacevde_1_1sdf.html#a2cdf3747a6427954f29546e3cee5722f">更多...</a><br /></td></tr>
<tr class="separator:a2cdf3747a6427954f29546e3cee5722f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d471c3a1589a0d150b6d2748f953729"><td class="memItemLeft" align="right" valign="top">ParamGrad&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#a2d471c3a1589a0d150b6d2748f953729">vde::sdf::box_param_grad</a> (const Point3D &amp;p, const Point3D &amp;half_extents, double h=1e-6)</td></tr>
<tr class="memdesc:a2d471c3a1589a0d150b6d2748f953729"><td class="mdescLeft">&#160;</td><td class="mdescRight">长方体所有参数的梯度 <a href="namespacevde_1_1sdf.html#a2d471c3a1589a0d150b6d2748f953729">更多...</a><br /></td></tr>
<tr class="separator:a2d471c3a1589a0d150b6d2748f953729"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5203b48e22b2816bdc72a2e69f83516"><td class="memItemLeft" align="right" valign="top">ParamGrad&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacevde_1_1sdf.html#ad5203b48e22b2816bdc72a2e69f83516">vde::sdf::cylinder_param_grad</a> (const Point3D &amp;p, double radius, double height, double h=1e-6)</td></tr>
<tr class="memdesc:ad5203b48e22b2816bdc72a2e69f83516"><td class="mdescLeft">&#160;</td><td class="mdescRight">圆柱所有参数的梯度 <a href="namespacevde_1_1sdf.html#ad5203b48e22b2816bdc72a2e69f83516">更多...</a><br /></td></tr>
<tr class="separator:ad5203b48e22b2816bdc72a2e69f83516"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><p>SDF 梯度计算(数值微分、解析梯度、链式法则) </p>
<p>提供两类梯度计算:</p>
<ol type="1">
<li><b>空间梯度</b> ∇f(p) — SDF 在场中的方向导数(法向量方向)<ul>
<li>有限差分近似</li>
<li>各图元的解析梯度</li>
<li>CSG 操作的链式法则</li>
</ul>
</li>
<li><b>参数梯度</b> ∂f/∂θ — SDF 对形状参数的敏感度<ul>
<li>有限差分计算 ∂f/∂radius, ∂f/∂height 等</li>
<li>用于基于梯度的形状优化</li>
</ul>
</li>
</ol>
<h2><a class="anchor" id="autotoc_md25"></a>
梯度约定</h2>
<p>对于 SDF,梯度指向距离增加最快的方向。 在表面上 (f=0),∇f 等于外法向量(单位长度)。 在外部 (f&gt;0),∇f 指向远离表面的方向。 在内部 (f&lt;0),∇f 指向最近的表面。 </p>
<p class="definition">在文件 <a class="el" href="sdf__gradient_8h_source.html">sdf_gradient.h</a> 中定义.</p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_36dfe8171299c47a6036082559f11ede.html">vde</a></li><li class="navelem"><a class="el" href="dir_865941a50ed007925fcdd14642daadc9.html">sdf</a></li><li class="navelem"><a class="el" href="sdf__gradient_8h.html">sdf_gradient.h</a></li>
<li class="footer">生成于 2026年 七月 24日 星期五 11:21:23 , 为 ViewDesignEngine使用 <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>