SDF Marching Cubes Ray-marching Teahouse

news2024/9/25 0:29:39

SDF & Marching Cubes & Ray-marching

SDF

SDF(Signed Distance Field)有向距离场。SDF是由到(多边形模型)物体表面最近距离的采样网格。作为惯例,使用负值来表示物体内部,使用正值表示物体外部。

SDF

SDF

Marching Cubes

marching cubes算法是一种3D等值面表示技术。

SDF(2D&3D)表达仅仅包含对二三维数据的表达,而并不是面片最终的表达。SDF是一种隐函数,如果需要对最终面片进行表达,需要通过marching cubes 算法提取各个体素的面片。
marching cubes
marching cubes

示例

Sphere
// Radius of the world
const float Radius = 100.f;
// Normalize the position to get the 3D noise sample position
const FVector SamplePosition = FVector(X, Y, Z).GetSafeNormal();
// Compute noise. Note that the noise has a much higher frequency since the sample position is normalized
const float Height = Radius + Noise.GetPerlin_3D(SamplePosition.X, SamplePosition.Y, SamplePosition.Z, 1.f) * NoiseHeight;
// Value = DistanceFromCenter - Height
float Value = FVector(X, Y, Z).Size() - Height;
// Smoother gradient
Value /= 5;
return Value;

在这里插入图片描述

Sphere

Heightmap

根据地形高度图生成体素地形(Top+Side+Bottom)。
在这里插入图片描述

VoxelWorld

Ray-marching

Ray-Marching,又叫光线步进的算法。这种算法在只提供像素着色器的情况下也能进行3D图形渲染。
光线行进是一种计算机图形绘制方法。 与其他使用纹理网格的绘制方法相比,光线行进算法在场景的符号距离场(SDF)表示上运行。
如果不需要对SDF进行面片表达,可以使用Ray-marching 算法来表达SDF。
Ray-marching
在这里插入图片描述

Render

相关链接

  1. https://users.polytech.unice.fr/~lingrand/MarchingCubes/algo.html#msAmb
  2. https://www.cnblogs.com/skiwnchiwns/p/10345407.html
  3. https://docs.voxelplugin.com/v/1.2-legacy/getting-started/world-generation/world-generators
  4. https://github.com/kyle-rosa/ray_marching
  5. https://blog.csdn.net/mrbaolong/article/details/124414392
  6. https://michaelwalczyk.com/blog-ray-marching.html

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

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

相关文章

CUDA编程05 - GPU内存架构和数据局部性

一:概述 到目前为止,我们已经学会了如何编写 CUDA 核函数,以及如何设置和分配大量线程来执行核函数。我们还了解了当前 GPU 硬件的计算架构,以及线程在硬件上调度执行过程。在本章中,我们将重点关注 GPU 的片上(on-chi…

golang实现Digest认证鉴权接口

什么是Digest认证鉴权接口? Digest认证鉴权接口是一种基于摘要算法的身份验证方法,用于确保API请求的安全性。在实际应用中,常常使用HTTP协议的Digest认证鉴权接口来验证请求的合法性。下面是一种常见的Digest认证鉴权流程: 1. 客户端发送HTTP请求到服务器,请求接口资源…

【MCAL】TC397+EB-tresos之ADC配置实战 - (模数转换)

本篇文章首先从理论讲起,基于《MC-ISAR_TC3xx_UM_Adc.pdf》介绍了ADC模块的理论知识,然后详细介绍了在TC397平台使用EB-tresos对ADC驱动模块进行配置与调试的实战过程,帮助第一次接触这个模块的读者能够更快的上手来实现符合自己项目要求的开…

OSPF TE

OSPF TE(OSPF Traffic Engineering,即OSPF流量工程)是为了支持MPLS流量工程(MPLS TE),支持建立和维护TE的标签交换路径LSP(Label Switch Path)而在OSPF协议基础上扩展的新特性。在MP…

Qt WebEngine基于WebEngineScript注入js脚本

在之前的文章中,我们介绍了Qt WebEngine注入js的用法,及runJavaScript()的用法,该方法主要是用在页面加载完成后,为了和网页做一些交互时使用。有时候需要监听网页加载完成的一些状态或信息,则需要网页加载前注入js来实…

【CodinGame】趣味算法(教学用) CLASH OF CODE -20240802

[toc] 正文 最大最小值 import math import sys# Auto-generated code below aims at helping you parse # the standard input according to the problem statement.a int(input()) b int(input()) c int(input()) d int(input())mylist [] mylist.append(a) mylist.app…

如何写好提示词?《Midjourney常用关键词大全》-附关键词文件

​ Midjourney如何写好提示词从而生成高质量图片? 并且随心所欲生成各种风格的图片? 这是一份关于Midjourney常用关键词的文件: 风格形式/摄影构图/灯光材质/渲染方式/常见设备/常见元素等不同类别, 关键词分门别类&#xff0…

从PyTorch官方的一篇教程说开去(6.2 - 张量 tensor 矩阵运算等)

您的进步和反馈是我写作最大的动力,小伙伴来个三连呗!共勉~ 话不多说,书接上文,需要温习的小伙伴请移步 - 从PyTorch官方的一篇教程说开去(6.1 - 张量 tensor 基本操作)-CSDN博客 借图镇楼 - 1 - 矩阵乘…

【面经】 HR面试套路一览 | 10条面试要点总结

博客主页:Duck Bro 博客主页 关注博主,后期持续更新系列文章 如果有错误感谢请大家批评指出,及时修改 感谢大家点赞👍收藏⭐评论✍ 面经总结 目录 面经总结前言1. 期望薪资2. 关于加班的问题3. 平时是如何学习的(学…

光电测径仪和激光测径仪的区别

光电测径仪和激光测径仪都是用于测量物体直径的精密仪器,它们在工作原理、测量范围、精度、适用场景等方面有所不同。光电测径仪通常使用CCD光电传感器来检测通过物体的光强度变化,而激光测径仪则使用激光作为测量信号,通过发射激光束并接收反…

IT服务质量管理攻略(至简)

质量管理、风险管理和信息安全管理是IT服务监督管理的重要内容,三者之间相对独立。IT服务质量管理是通过制订质量方针、质量目标和质量计划,实施质量控制、质量保证和质量改进活动,确保IT服务满足服务级别协议的要求,最终获得用户…

案例分享-国外UI设计界面赏析

国外UI设计倾向于简洁的布局和清晰的排版,减少视觉干扰,提升用户体验。通过合理的色彩搭配和图标设计,营造舒适愉悦的使用氛围。 设计师不拘泥于传统框架,勇于尝试新元素和理念,使界面独特有趣。同时,强调以…

班美净创始人钟书兰 引领美业新潮流,铸就美丽传奇

在竞争激烈的中国美业市场中,一位杰出的女性创业者凭借其独特的眼光、创新的理念和坚定的决心,开辟出了一片属于自己的辉煌天地。钟书兰,作为班美净的创始人,正以其卓越的领导力和对美的执着追求,在问题性皮肤管理领域…

上网行为监控是如何监控的,能监控到哪些内容,是否合法?

上网行为监控已成为许多企业和机构保障信息安全、提高工作效率的重要手段。 那么,上网行为监控是如何实现的? 它能监控到哪些内容? 这一行为在法律上是否合法? 本文将围绕这些问题展开探讨。 上网行为监控是如何监控的&#x…

CNAS认可认证!

在中国,CNAS(中国合格评定国家认可委员会)认可认证作为质量管理与国际接轨的重要标志,不仅促进了国内检测、校准和检验实验室的技术能力提升,还极大地增强了我国检验检测服务行业的国际竞争力。本文将从CNAS认可认证的…

Lombok的坑:VUE通过ajax.post请求向spring后台传参,部分属性接收不到。

一、问题:VUE通过ajax.post请求向spring后台传参,bAppId属性接收不到,其他的值均正常接收 实体类定义: VUE代码: JAVA代码: 二、原因 实体类使用lombok.Data的Data注解生成get/set,针对首字母小…

Java集合知识点

一、集合类及其特点 在程序设计中,一个重要的组成部分就是如何有效地组织和表示数据通常,我们把用于存储和管理数据的实体称为数据结构而把一组元素按照一定的数据结构进行存储和管理的容器。就称为集合。通过数据结构,我们可以实现不同特性…

制程能力指数(CPK)定义、计算方法知识

一、Cpk的定义 Cpk (Process Capability Index )的定义:制程能力指数; Cpk的意义:是制程水平的量化反映,用来表达制程的水平。 制程能力指数:是一种表示制程水平高低的方便方法,其实质作用是反映制程 合…

程序员VS人工智能

随着Chat GPT人工智能大模型的问世,人工智能将成为普遍的工具。 人工智能优点在于"效率高,方便快捷……",吸引了一大群用户。人工智能在未来世界中,占据了不可缺的地事例1 据海南日报报道,为确保考试公平公正&#xff…

跟《经济学人》学英文:2024年08月03日这期 India’s electric-scooter champion goes public

India’s electric-scooter champion goes public It promises to be a wild ride for investors electric-scooter:电瓶车,电动车 wide ride: 充满波折的过程 解释:指经历一个充满波折、刺激或不可预测的过程。通常用来形容冒险或经历的起…