最近这里的一个问题让我又想起了SceneKit,想起了一个一直没解决的问题。
我的应用使用 SK 显示天线设计。大多数天线使用金属杆和网状反射器,所以我使用 SCNCylinder 作为杆,SCNPlane 作为反射器,SCNFloor 作为地面。整个过程花了几个小时,而我对 3D 完全是菜鸟。
但是一些天线使用弯曲成弧形或螺旋线的电线,我在这里用平底船并使用几个首尾相连的圆柱体制作了蹩脚的分段物体。看起来棒极了。
理想情况下,我想要一个单一的对象来呈现具有圆柱横截面的圆弧或螺旋线。基本上是 SCNTorus,但有开始和结束角度。 This post谈到在 SK 中使用 UIBezierPath,但它使用 extrude 来生成类似丝带的形状。有没有办法做一些类似的事情,但有一个圆柱横截面(比如部分 SCNTorus)?
我知道我可以通过创建顶点(和法线等)来制作自定义形状,但我希望我错过了一个更简单的解决方案。
最佳答案
您可以使用 SCNShape 制作弧线。从我的其他答案中的技术开始,以获得挤压的带状弧线。您需要确保您的路径追溯回自身的部分偏移与挤压深度相同的距离,因此您最终会得到一个横截面为正方形的形状。
要使其横截面呈圆形,请使用 chamferProfile属性——给它一个四分之一圆的路径,并设置倒角半径等于挤压深度的一半,四个四分之一圆倒角会相交,形成一个圆形横截面。
螺旋是另一回事。 SCNShape 采用平面路径 - 仅在两个维度上变化的路径 - 并将其挤出以形成三维实体。螺旋是开始时在三个维度上变化的路径。 SceneKit 没有任何用这种术语描述形状的东西,所以这里没有 super 简单的答案。
@HalMueller 提到的着色器修改器解决方案很有趣,但存在问题。在几何体入口点使用修改器来进行简单的弯曲很简单——比如说,将每个 y 坐标偏移一定量,甚至偏移量是原因的函数。但那是一个一维变换,所以你不能用它来把电线绕在自己身上。 (它也改变了横截面。)最重要的是,着色器修改器在渲染时发生在 GPU 上,所以它们的效果是一种幻觉:SceneKit 模型中的“真实”几何体仍然是一个圆柱体,所以像 HitTest 这样的功能适用于那个而不是转换后的几何体。
制作类似螺旋线的最佳解决方案可能是自定义几何体 — 生成您自己的顶点数据 (SCNGeometrySource)。如果您遵循该形状的 definition,则在螺旋上找到一组点的数学运算非常简单。 .要围绕它缠绕一个横截面,请遵循 Frenet formulas在螺旋上的每个点创建一个局部坐标系。然后创建一个索引缓冲区 (SCNGeometryElement) 以将所有这些点缝合到具有三角形或三 strip 的表面中。 (好吧,围绕一个很深的主题有很多麻烦,但是完整的教程对于 SO 答案来说太大了。不过,这应该足以作为入门的面包屑……)
关于swift - 在 SceneKit 中绘制 3D 圆弧和螺旋线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34680582/
无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD
本教程将在Unity3D中混合Optitrack与数据手套的数据流,在人体运动的基础上,添加双手手指部分的运动。双手手背的角度仍由Optitrack提供,数据手套提供双手手指的角度。 01 客户端软件分别安装MotiveBody与MotionVenus并校准人体与数据手套。MotiveBodyMotionVenus数据手套使用、校准流程参照:https://gitee.com/foheart_1/foheart-h1-data-summary.git02 数据转发打开MotiveBody软件的Streaming,开始向Unity3D广播数据;MotionVenus中设置->选项选择Unit
Unity自动旋转动画1.开门需要门把手先动,门再动2.关门需要门先动,门把手再动3.中途播放过程中不可以再次进行操作觉得太复杂?查看我的文章开关门简易进阶版效果:如果这个门可以直接打开的话,就不需要放置"门把手"如果门把手还有钥匙需要旋转,那就可以把钥匙放在门把手的"门把手",理论上是可以无限套娃的可调整参数有:角度,反向,轴向,速度运行时点击Test进行测试自己写的代码比较垃圾,命名与结构比较拉,高手轻点喷,新手有类似的需求可以拿去做参考上代码usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;u
之前说过10之后的版本没有3dScan了,所以还是9.8的版本或者之前更早的版本。 3d物体扫描需要先下载扫描的APK进行扫面。首先要在手机上装一个扫描程序,扫描现实中的三维物体,然后上传高通官网,在下载成UnityPackage类型让Unity能够使用这个扫描程序可以从高通官网上进行下载,是一个安卓程序。点到Tools往下滑,找到VuforiaObjectScanner下载后解压数据线连接手机,将apk文件拷入手机安装然后刚才解压文件中的Media文件夹打开,两个PDF图打印第一张A4-ObjectScanningTarget.pdf,主要是用来辅助扫描的。好了,接下来就是扫描三维物体。将瓶
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭9年前。Improvethisquestion是否有适用于这些的3d游戏引擎?
文章目录1.自动驾驶实战:基于Paddle3D的点云障碍物检测1.1环境信息1.2准备点云数据1.3安装Paddle3D1.4模型训练1.5模型评估1.6模型导出1.7模型部署效果附录show_lidar_pred_on_image.py1.自动驾驶实战:基于Paddle3D的点云障碍物检测项目地址——自动驾驶实战:基于Paddle3D的点云障碍物检测课程地址——自动驾驶感知系统揭秘1.1环境信息硬件信息CPU:2核AI加速卡:v100总显存:16GB总内存:16GB总硬盘:100GB环境配置Python:3.7.4框架信息框架版本:PaddlePaddle2.4.0(项目默认框架版本为2.3
我希望遍历类似于Loopinginaspiral的矩阵但是从外向内循环,而不是从内向外循环。任何人都可以帮助我为任何大小的矩阵执行此操作的好方法,最好是在Ruby中?例子:在3x4矩阵中,我想从[0,0]开始向右移动,然后在到达[3,0]时向下移动,在[3,2]向左移动等等。[0,0][1,0][2,0][3,0][0,1][1,1][2,1][3,1][0,2][1,2][2,2][3,2]移动顺序如下图所示:01239101148765输出将是:[0,0],[1,0],[2,0],[3,0],[3,1],[3,2],[2,2],[1,2],[0,2],[0,1],[1,1],[2,
我正在寻找一种简单的方法来绘制大约10个点和矩形,以便能够查看我的算法哪里出了问题。我查看了gnuplot,但似乎绘制矩形特别糟糕。 最佳答案 SVG(MDNTutorial)是一种非常简单的基于文本(XML)的格式,您可以使用Ruby轻松生成它,而无需任何SVG库,并可以在任何现代Web浏览器中查看。这是一个示例:通过字符串插值的SVG点points=(0..5).map{[rand(100)-50,rand(100)-50]}puts#{points.map{|x,y|""}.join("\n")}ENDSVG输出:http:/
目录一、世界坐标系与本地坐标系二、srcGameObject.transform.TransformPoint(Vector3 vec)三、srcGameObject.transform.TransformVector(Vector3 vec)四、srcGameObject.transform.TransformDirection(Vector3 vec)五:示例一、世界坐标系与本地坐标系 世界坐标很好理解,就是模型的transform.position,通常在无父物体的情况下,创建出来的模型默认位置就是世界坐标系的原点。 每个物体都有自身的坐标系,此坐标系就是本地坐标系。本地坐标
我正在寻找用于开发ruby游戏的3D引擎。我找到了一些类似G3Druby或ogreb的东西。哪个更好用,功能更好?还有比这些更好的引擎吗? 最佳答案 两者似乎都是G3D和Ogre的包装器,因此您实际上应该比较G3D或Ogre是否更适合您的需求。通过包装器的大部分ruby外访问将在设置场景时进行,因此繁重的工作(每一帧)仍然在C/C++库和图形硬件上完成。因此,您应该比较这两个库。我不知道G3D,但它似乎提供了Ogre所缺乏的离线渲染功能。如果您需要专业游戏渲染引擎的广泛功能,Ogre通常是首选,并且您会发现几乎所有您会遇到的