一张图搞定SDF的概念

本文仅代表个人理解,谬误之处请指正。

SDF:

Signed Distance Field,译为有向距离场,“有向”、“距离”、“场”这三个词非常精确的描述了sdf究竟是个什么东西。GPU
Gems 3中是这么描述sdf的:“SDF是由到(多边形模型)物体表面最近距离的采样网格。作为惯例,使用负值来表示物体内部,使用正值表示物体外部。SDF理念对于图形图像及相关领域具有很大的诱惑力。它经常被用于布料动画碰撞检测、多物体动力学、变形物体、mesh网格生成、运动规划和雕刻。”

关于sdf的更多知识可参考如下链接:GPU
Gem 3
Byte
wrangler`s blog
,SIGGRAPH2007_AlphaTestedMagnification

在naiad中的sdf是个3d的东西,但我接下来用自己制作的一幅二维图像来解释2d的sdf,这样反而更容易理解3d的sdf~

图1

图1中:

1、蓝色线条为sdf的零边界连线,在naiad中则是iso-scope显示的iso
surface。

2、“有向”“距离”“场”的概念:voxel中数字正负与黑色箭头代表“signed”,正负数字与零边界之差为“distance”,青色区域代表“field”。

3、青色区域为sdf存在的区域,在naiad中则是fine
tile区域。

Iso-surface:

译为等值面、等参面、等值参数面,在naiad中可以理解为一种用于可视化sdf等值面的一种显示方法,iso-scope默认显示的是sdf的零参数面(零边界)。

iso-scope:

iso-scope用来查看sdf在不同边界值下的iso-surface,在naiad中使用的非常频繁。

图2

图3

iso-scope不仅能显示模型的原生sdf,也能显示原生sdf通过零边界偏移后的情况,如图4:

图4

图4中Iso
 Value中的数值0.1可以理解为显示SDF值为0.1的等值面。

iso-scope所查看的对象必须是body,而且这个body必须带有这样一个Field
Channel,这个Field Channel必须是distance
channel,也就是sdf。

Quality菜单下

Slice Count:iso-scope的显示原理是把sdf根据voxel进行采样并切片显示。Slice
Count越高,sdf显示越细致,显存\刷新速度越慢,Slice
Count与显存占用呈线性关系。

SuperSampling:对于voxel的超采样精度。SuperSampling越高,sdf显示越准确,显存\刷新速度越慢,SuperSampling与显存占用成指数递增关系,过高容易导致显存溢出,显卡停止响应。

tile-scope:

tile-scope用来查看body的tile-layout,tile-layout指的是naiad中body的field
channel所存在的区域。查看tile-layout是naiad中用来了解资源占用以及各种性能问题诊断的重要手段。一个正常的带有field的body通常有能将其粒子、模型完全包裹的tile-layout,如图5:

图5

tile-layout包含fine
tile和coarse tile,sdf只存在于fine
tile中,通常关注fine tile就可以。

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

原文地址:https://www.cnblogs.com/skiwnchiwns/p/10345407.html

时间: 2024-10-26 19:17:45

一张图搞定SDF的概念的相关文章

一张图搞定CSS3全部新特性【king】

最近这张图火了,让我火遍了大江南北,震惊了整个CSS圈 一张思维导图搞定CSS3全部新特性(图片太大,切片上传) 原图下载地址 配套CSS3实战视频地址 由king老师历时一个月,精心收集与整理的CSS3全部新特性的素材,包括国外资源.辅助工具.项目素材.实战案例...就不一一列举了,好不好看了就知道,兄弟姐妹们,顶起哈~ 山哥出品,必属精品 Powered By King 原文地址:https://www.cnblogs.com/jlfw/p/12219688.html

Oracle 一张图搞定触发器 以及 触发时结束语句的方法

Oracle中的触发器是一个非常有用的技术,它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而触发器是由一个事件来启动运行.即触发器是当某个事件发生时自动地隐式运行,也就是可以非常给力的监控用户的操作,这使得触发器可以帮助我们做一件让每个程序员都很高兴的事:规范用户的输入,在用户输入不符合逻辑的数据时及时阻止并提示他,维护数据的合理性. 首先通过一张图来解读触发器的基本使用方法:       那么如何打断一个不合理的操作呢...好吧其实就是字面上的那个意思,有异常就抛呗,通过抛

一张图搞定OAuth2.0

1.引言 本篇文章是介绍OAuth2.0中最经典最常用的一种授权模式:授权码模式 非常简单的一件事情,网上一堆神乎其神的讲解,让我不得不写一篇文章来终结它们. 一项新的技术,无非就是了解它是什么,为什么,怎么用.至于为什么,本篇文章不做重点探讨,网上会有各种文章举各种什么丢钥匙.发船票的例子供你去阅读,个人认为还是有些哗众取宠,没有聊到本质. 那我们就重点聊聊OAuth2.0是什么,怎么用.但首先在读本文之前,你要先对OAuth2.0有一定的了解,建议先读一下阮一峰的oauth2.0文章,直接看

我爱java系列---【项目研发流程——一张图搞定】

古语有言:“道不明,何以言术?”,所以,干什么都要清清楚楚的干,有思路,有计划的进行,下面这张图,是一个大致的介绍,帮助我们更清晰的认清自己在项目中的职责. 原文地址:https://www.cnblogs.com/hujunwei/p/12623751.html

个人电脑配置FTP服务器,四张图搞定。项目需要,并自己写了个客户端实现下载和上传的功能!

测试结果:

一张图搞懂分布式大型网站的前世今生

大型的网站都是从小网站一步一步发展过来的,每个阶段都随着访问量的不断上涨面临不同的问题,以下是根据某本书整理出来的网站发展历程及其用到的技术,供大家参考: 一张图搞懂分布式大型网站的前世今生

Spark技术内幕:一个图搞定Spark到底有多少行代码

Spark1.0.0发布一个多月了,那么它有多少行代码(Line of Code, LOC)? 注:代码统计未包含测试,sample. Spark技术内幕:一个图搞定Spark到底有多少行代码

一张图搞清楚PMBOK所有过程的使用

很多参加PMP培训的学员大概都会有一个感受,上课时似乎每个知识点都听懂了,大的知识框架也弄明白了,但是所有这些串起来在实践中怎么用呀!说的再直接一点,在考试的时候这些过程和活动是以怎样的逻辑来应用的.不用捉急,看完下面这张图,您就清楚了. (1)注意启动那一栏中的"理解商业论证",要理解成为"理解项目的商业论证"(商业论证是项目立项的原因),因为商业论证将指导项目的所有活动,以确保在项目结束的时候来所有的投资都是值得的.对于商业论证的重要性,很多考生在考试中都不太注

一张图搞懂容器所有操作 - 每天5分钟玩转 Docker 容器技术(26)

前面我们已经讨论了容器的各种操作,对容器的生命周期有了大致的理解,下面这张状态机很好地总结了容器各种状态之间是如何转换的. 如果掌握了前面的知识,要看懂这张图应该不难.不过有两点还是需要补充一下: 可以先创建容器,稍后再启动. ① docker create 创建的容器处于 Created 状态.② docker start 将以后台方式启动容器. docker run 命令实际上是 docker create 和 docker start 的组合. 只有当容器的启动进程 退出 时,--rest