当前位置: 首页 > news >正文

空间栅格化(体素化)及射线选择原理

对于一个空间的多个primitive,栅格化是计算这些primitive的AABB包围盒bbox,定义或者估计x y z方向分割为多少栅格m n k

例如bbox的x方向长度xh=12.6 m=3

则分割的每个小栅格x方向长度xd=xh/m=4.2

对于图元i,假设它的包围盒i.bbox的最小角点i.bbox.minpt

对于一个double的值v确定它栅格索引这样计算

int celli=(v-v0)/d

d是栅格该维度的长度, v0是该维度的最小值

假设d=1.1 v0=0.7 v=3.5

则计算后celli= 2 即v在第2个cell里

组织为函数 int geiId(double v, double v0, double d)

对于一个三维点vec3d pt则落在空间cell 或者叫体素索引 计算函数为

vec3i getPointI(vec3d pt, vec3d minpt, vec3d d)

{

int xi=getId(pt.x, minpt.x, d.x);

int yi=getId(pt.y, minpt.y, d.y);

int zi=getId(pt.z, minpt.z, d.z);

return vec3i(xi,yi,zi);

}

这个第一阶段是栅格化:对于n个primitive 先确定每个cell包含哪些primitive;

这个阶段是比较耗时一般是场景才建立时候;

然后射线查询阶段,这个经常性要求快:通过ray和整个bbox求交计算,得到ray和bbox六个面的两个交点a, b;

基于getPointId或者由a b确定遍历的cell范围,或者是由a b算出的栅格索引坐标计算哪些cell被ray碰到了,可以参考直线线段的光栅化算法,这样其实得到小数量的可能cells;

设置tmin为DBL_MAX,primitive_i为-1

然后对于cells每个cell遍历cell包含的每个primitive

进行更精细的ray和primitive相交判断算法,计算和primitive的交点距离射点的距离t 记录最小tmin及primitive_i

if(t<tmin)

{

tmin=t; primitive_i=primitive

}

遍历完cells后就得到射到的primitive_i

有可能在分配图元到栅格阶段.,一个图元可能分到不同的cell里,这是存在的,例如一条线段就划到多个cell.

http://www.jsqmd.com/news/487137/

相关文章:

  • 【2026年最新600套毕设项目分享】springboot房屋交易系统(14149)
  • **发散创新:基于Python的脉冲神经网络模拟与实时计算优化实践**
  • 爱心捐赠系统,公益捐赠系统, 基于SpringBoot3+vue3的原创精品,适用于毕业设计、实习项目、学习项目
  • YOLO11 改进 - 主干网络_ FasterNet (基于PConv部分卷积的神经网络):轻量级设计优化内存访问效率,实现精度与速度双重提升
  • YOLOv11涨点改进| CVPR2026 |全网创新首发、Conv卷积改进篇 | 引入MSInit轻量级多尺度卷积,捕获局部细节和结构纹理信息,助力YOLOv11目标检测,图像分割,图像分类高效涨点
  • # 虚拟世界中的编程艺术:用 Rust构建轻量级 3D 场景引擎 在虚拟世界的浪潮中,**开发
  • 前端如何渲染 Markdown 格式:从基础到实战全指南
  • 快捷键及Dos命令
  • YOLO11 改进 - 主干网络_ MobileNetV4 移动网络第四版:通用倒瓶颈与移动注意力协同优化硬件效率,提升移动端检测适应性
  • H6光伏逆变器仿真模型:与量产程序一致的代码控制探索
  • YOLO11 改进 - 主干网络_ LSKNet大型选择性核网络:大核深度卷积与空间选择机制协同动态调整感受野,增强旋转目标检测
  • 大数据与会计专业必考证书有哪些?
  • 如何基于页面设计测试点(测试实习经验总结)
  • YOLO11 改进 - 主干网络_ EfficientRep:一种旨在提高硬件效率的RepVGG风格卷积神经网络架构
  • 飞桨动态图超流畅
  • 财务BP
  • 基于微信小程序的竞赛报名系统_13348
  • 青龙面板密码和账户错误重置
  • 基于 MATLAB 的改进带记忆模拟退火算法求解 TSP 问题
  • DeepSeek-V3发布:性能超越,成本仅为Llama 3的七分之一
  • WPS办公技巧:多工作表自动汇总与拆分
  • 金刚石切割片选购指南:从科创研磨看国产刀具的技术突围
  • 文件包含漏洞
  • 基于滑模的永磁直线同步电机鲁棒H无穷控制Matlab程序探索
  • 深度剖析AI专著生成工具,开启高效专业学术专著撰写新体验
  • 当AI学会“欺骗“裁判:推理型LLM评判员的双刃剑效应
  • plotXVG:分子模拟数据顶刊级可视化工具 安装与实用教程
  • CC工具箱使用指南:【获取要素图层的符号系统Json文本】
  • 让旧Mac再战几年:使用 OpenCore Legacy Patcher 升级不支持的 macOS(完整教程)
  • Java 从入门到精通(五):封装、继承、多态到底怎么串起来理解?