VoxelGeneral

技术解读

基于unity平台,使用Brust编译器的体素建模插件。

体素引擎

体素引擎是一种尝试模拟原子的软件。每个原子或“体素”都占据一个定义的空间并具有特定的属性。
体素最基本的属性是固体或非固体。这些还可以包含其他值以定义其他属性,例如颜色或材料。每个体素的属性都非常适合应用程序的要求,因为内存需求是巨大的。
最常见的样本是[Minecraft](一个成功的游戏)。这些块可以使用各种工具雕刻。当然有许多用例,例如游戏,但也包括任何体积数据集的可视化,例如计算机断层扫描。

引擎开发原理

1.实现数据结构:稀疏八叉树,每当修改体素时,细分和合并体素,减少内存消耗。
2.可视化系统:检查数据结构是否有效,使用立方体进行构造。
3.体素的修改:简单的工具进行修改体素数据,例如碰撞去除。
4.体素的优化:多线程,Brust和ECS。C#的unsafe。float的精度误差。算法对模型平滑。

软件及功能简介

1.无限世界生成。
2.切片扫描的图片直接生成体素模型。
3.网格,地形直接生成体素模型。
4.多个体素模块叠加。
5.灵活的实时修改。
6.多个贴图支持。
7.不受渲染管线影响,全平台兼容。
8.灵活的加载和保存系统。

限制

1.体素分层限制,正常不应该超过32层,会带来很大的锯齿。
2.消除锯齿需要平滑算法,设置边缘体素块的大小。插件自带有算法,还未研究。
2.运行电脑的内存应大于4G。
3.32位电脑运行Brust有兼容性问题。

代码解析

VoxelGeneral

体素生成主要组成部分,为体素数据提供层次和的数据结构。
--VoxelSize:体素块的物理尺寸,占据的空间。蓝色方块表示,不接收负值,1-100是理想的性能。
--InitialValue:新生成块的初始值。255表示实心,0表示空心。真正值取决于附加的Hull Generators
--Depth:深度是体积⼤⼩。深度越⾼,体素变得越⼩。
--Subdivision Power:定义了底层数据结构的布局(等于3时候具有最佳的内存/性能比)。
--Dimension Count:体素⽣成器具有第四维度。如果此值⼤于 1,则 Voxel Generator 将同时管理多个 Voxel Data。第⼀维总是⽤来描述哪些区域是实⼼的。附加维度是隐藏的,除⾮船体⽣成器将附加维度⽤于某些恶作剧,例如多纹理⽀持,其中第⼆个维度描述材料类型。
--Rebuild():重新⽣成外壳⽣成器。
--SetVoxels()/SetvoxelsAdditive():提供直接或以附加⽅式修改体素的直接功能。基本参数通常是局部位置、⽬标深度和ID。
--SetRegionsDirty():将区域标记为脏,因此必须更新视觉效果。
--SetNeighbor(int ID, VoxelGenerator generator):将体素⽣成器与另⼀个体素⽣成器连接起来。 ID是位置,0为左
下前,26为右上后。

VoxelSaveSystem

提供⽤于保存体积数据集的选项,并在保存场景本⾝时⾃动保存体素数据。
--ApplyRawVoxelData:将 RawVoxelData 应⽤于⽬标 VoxelGenerator。
--DynamicLoad():在不中断游戏玩法的情况下从任何来源加载任何体素贴图的实时⽅法。可以在加载期间修改 VoxelGenerator,但在加载完成之前抑制外壳⽣成器。
--DynamicSave():不会导致性能峰值的实时保存选项。将体素贴图作为⼆进制⽂件保存到持久数据路径中,应在不中断游戏玩法的情况下调⽤。 VoxelGenerators 在保存过程中被锁定。
--Load():加载体素数据并重建VoxelGenerator。
--Save():⽴即保存体素数据。 (导致性能飙升)。

VoxelModifier

修改体素的主要⼯具。该脚本允许在编辑模式下进⾏绘画,并提供其他功能来修改数据集。
--TargetDimension:修改的维度,标准为0。最终取决于Hull生成器。大于0可以用于温度,适度,压力等。
--Depth:修改的目标分辨率,大小。
--VoxelModifyPosition是⽤于修改程序定位的组件。⽰例场景 Marching
Cubes 包含⼀个使⽤此类组件的雪⽣成器 GameObject。

ColliderToVoxel

--Tolerance:公差,体素离碰撞器多近才能转化为实体。
--Falloffdist:定义距离不够近时的强度衰减。大的值会导致急剧衰减,是结果块状,理想在1000,10000之间,可以创建平滑的结果。
--FinalMultiplier:是一个乘法器,值为负时材料会被移除。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,287评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,346评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,277评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,132评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,147评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,106评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,019评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,862评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,301评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,521评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,682评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,405评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,996评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,651评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,803评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,674评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,563评论 2 352

推荐阅读更多精彩内容