Tag: 3d

Primeros Pasos con ARKit

十一月十一日在iOS 11上的发布会上,您将收到更多关于ARKit的信息。 iOS框架的清晰实现。 虚拟现实的存在于iOS上的存在,而虚拟现实的存在则在虚拟现实中得以实现,而在大多数情况下,这种行为就存在于新闻媒体中。 在iOS平台上,您可以通过视觉工具(VIO)组合视觉信息(VIO)。 ARKittienelacapacidaddereconocerlascaracterísticasmás著名的Lasimágenes,现实的侦探对比检测器的差异,在视频和视频的位置。 您可以在teoría的despuésde Toda laTeoría度假,也可以在墨西哥的tirarlíneasdecódigo度假。 ¿Cómoempezamos un proyecto de realidad aumentada? 在Xcode上的第9个版本,它们是“增强现实应用程序”。 不适用的常规技术:SpriteKit,SceneKit o Metal,电子游戏,电子游戏,3D场景摄影机等。 从苹果到苹果的视频聊天,从苹果到苹果的存在,从游戏到游戏,从头到尾都是真实的游戏Tener unos conocimientosbásicosy muchaimaginación。 实名制制的唱片(唱片,唱片,没有模拟唱片)在发行中。 您可以在ARKit上购买自己的产品和服务。 Para empezar,necesitamosañadirnuestro escenario,este caso和al trabajar con SceneKitseríaun objeto del tipo ARSCNView。 @IBOutlet var sceneView:ARSCNView! 在视图中将出现escena的配置。 ARWorldTrackingConfiguration以及您在escena上的新的配置文件中使用了Aquíestálomásbásicopara que funcione。 覆盖func viewWillAppear(_动画:Bool){super.viewWillAppear(animated)//创建会话配置let configuration = ARWorldTrackingConfiguration()//运行视图的sessionseneView.session.run(configuration)} 您可以在viewDidLoad中轻松地进行操作。 在3D显示器上显示3D图像。 覆盖func viewDidLoad(){super.viewDidLoad()//设置视图的委托sceneView.delegate = self //显示诸如fps和计时信息之类的统计信息sceneView.showsStatistics […]

在iPhone X上使用面部跟踪进行3D ARKit

iOS开发人员Peter Norrby在Twitter上演示了他即将推出的应用程序“ Parallax View”的嘲笑。 在其中,您可以在显示器上看到3D图像,该图像随着设备倾斜而改变了用户视角。 这是Cupertino的ARKit在iOS开发平台上增强现实创造力的另一个示例。 利用iPhone X的面部跟踪功能,应用程序可以利用精确的TrueDepth相机,并通过根据其脸部位置更改显示器上的3D图像来向用户提供反馈。 AppStore中还有其他类似的应用程序,但是没有一个使用iPhone X的最新硬件进行人脸跟踪。 最初发布在 imthemobile.guru上 。

ARKit 2简介-世界地图

按照系列,第二部分介绍ARKit 2中的World Mapping 。系列的其余部分如下: 影像追踪 世界地图 物体扫描 视觉整合(即将推出) 金属和反射性表面(即将推出) World Mapping是ARKit 2中一个了不起的新功能,它允许用户在以前的AR体验中保存的环境中进行保存和加载。 例如,您可以在后院的桌子周围移动,捕获尽可能多的东西,然后在桌子中间放一碗水果。 当天晚些时候,您可以将应用重新打开到同一张桌子。 该应用程序会自动检测到您之前保存的同一张桌子,然后重新加载之前的场景-在这种情况下,桌子上放着一碗水果。 物理3D映射 使用ARKit 2,您的应用程序将基本上能够以3D映射您的物理空间。 通过移动对象(如上表),您将为您的应用提供相同物理环境的多个视角。 这些观点通常称为锚点。 特征点 使用世界地图,您的设备还将扫描许多特征点,这些特征点将再次用于识别空间。 这些特征可以驻留在平面,拐角,点上,或者仅驻留在唯一的感兴趣的随机区域上。 分享经验 ARKit中的世界地图允许您与另一台设备共享地图,例如另一台具有ARKit 2(iOS 12或更高版本)的iPad或iPhone。 这样,您就可以进行实时交互并体验相同的事物,然后再次返回。 您还可以建立网络体验,并在诸如游戏之类的事物上同时互动。 Apple演示的一个示例(是开源的)是SwiftShot。 你可以在这里下载。 持久的AR体验 这样,您可以在关闭应用程序之前保存世界地图,然后在下次打开应用程序时将其加载。 如果在与保存时相同的物理空间中打开,则虚拟体验将继续。 一个示例用例是在墙上或桌子上加载并保存一个木板,该木板上有您需要记住的东西列表(非常乏味的示例,但无论如何)。 每次您在办公桌附近或与该板子在同一位置打开该应用程序时,它都会像从未离开过一样重新加载。 实例化和使用世界地图所需的主要方法是getCurrentWorldMap(completionHandler:) 。 这使您可以保存会话的世界地图。 然后,可以将其分配给配置的initialWorldMap属性,并使用run(_:options:)启动具有相同锚点和物理世界地图的另一个会话。 从会话对象中检索世界地图 会议。 getCurrentWorldMap {worldMap,错误 守卫 let worldMap = worldMap else { showAlert(错误) 返回 } return […]

远程托管3D模型

我们正在为家具制造商开发增强现实应用程序。 您可以将家具虚拟地放置在想要布置的空间中,这样一来,您就可以准确地看到其实际外观。 基本要求是: 检测平坦的表面(通常是地板)以放置3D模型; 尽可能逼真的渲染模型; 更改模型的大小(如果存在不同的大小); 更改放置的模型上的纹理。 除此之外,我们还需要支持大量的模型和纹理。 需要随时添加或更改它们,而无需发布该应用程序的新版本或扩大应用程序的大小。 那就是我们面临的挑战-这就是我们的经验。 在开始尝试ARKit时,我们将模型保存在.scnassets中。 我们研究了模型应包含的内容,如何对齐它们,应用哪些照明模型等。这是测试模型更改的不错选择。 然后我们意识到这不是我们应用程序的解决方案。 缺点是应用程序具有所有模型和纹理的大小。 同样,在不发布新版本应用程序的情况下,无法添加,更改或删除模型。 下一步是找到一种解决方案,将资产保留在其他位置,并在需要时提取它们。 经过研究,我们发现了Apple On-Demand Resources。 对于我们的案例,这似乎是一个很好的解决方案。 按需资源是Apple提供的即用型解决方案。 它将资产与应用程序分离,并在需要时提取它们。 资产与应用程序一起上传到App Store,但在安装应用程序时未下载到设备。 而是,应用程序在必要时下载它们。 那解决了我们的第一个问题:在App Store上应用程序的大小。 因此,我们实施了此解决方案,并遵循了Apple文档。 通过将“启用按需资源”的“构建设置”更改为“是”,我们在项目中启用了按需资源。下一步是为资产分配标签。 标签是远程服务器上一组资产的密钥,这些资产一起下载。 这意味着,当我们从应用程序请求带有特定标签的资产时,我们将下载带有该标签的所有资产,而不是一个一个地下载。 可以为一个资源分配一个标签,但是Apple不推荐这样做。 有两种添加标签的方法: 在资源标签中添加资产 将标签写入资产的标签属性中。 带有标签的资产将部署到App Store。 如果应用程序不是通过App Store分发的,则可以将其存储在自己的Web服务器上。 当我们在应用程序中请求资产时,它会检查它们是否已在设备上。 如果没有,它将下载它们。 这样可以防止重复,节省内存空间和网络使用率。 当用户在移动网络上时,这特别有用。 我们的问题是无法确定资产将永久保存在您的设备上。 应用关闭后,它们可能随时消失,我们需要通过多次运行来保存它们。 可以对保留进行优先级排序,并告诉系统哪些资源在保留中具有更高的优先级。 但这仍然不是解决方案。 此外,上载新资源的唯一方法是发布新版本以及新资产。 比我们需要找出新的解决方案而忘记Apple On-demand资源。 最后,我们同意我们需要自己的定制解决方案来解决所有现有问题。 我们不想为此构建整个后端。 相反,我们使用Firebase Realtime数据库和存储。 它可以是任何存储或任何类似JSON的数据库,但我们决定使用Firebase。 […]

SceneKit的厄运

SceneKit — 3Dграфики,которыйпоможетвомсоздаватьанимиреенныененные3D Онвключаетвсебяфизическийдвижок,генераторчастицинаборпростыхдействийдля3Dобъектов,которыепозволятвамописатьвашусценувтерминах контента – геометрии,материалов,освещения,камер – ианимироватьеёчерезописаниеизмененийдляэтих объектов 。 – 苹果 Сегоднямывнимательным,немногосуровымвзглядомпосмотримнаSceneKit,но,дляначала,обратимсякосновам,ипосмотрим,чтопредставляетизсебя3Dсцена,ичтонужносделать,чтобыеёсоздать。 Дляначала,нужносоздатьосновнуюструктурусцены,котораясостоитизнод,илиузловсцены。 Каждаянодаможетсодержатьвсебекакгеометрию,такидругиеноды。 Геометрияможетбытьпростой,вродешара,куба,илипирамиды,такиболеесложной,созданнойво。 Затем,дляэтойгеометриинеобходимозадатьматериалы,которыебудутопределятьбазовоепредставла。 Каждыйматериалсамзадаётсвоюмодельосвещения,и,взависимостиотнеё,используотвазличный。 Каждоетакоесвойствообычнопредставляетизсебяцветилитекстуру,но,помимоэтихчастоиспользуемыхвариантов,естьещёвозможностьиспользовать的CALayer,AVPlayer,иSKScene。 Послеэтого,необходимодобавитьисточникиосвещения,которыеопределяютто,насколькоооо Они,поаналогиисгеометрией,должнылежатьвнутрикакой-нибудьноды。 SceneKit是Поддерживаетмногоразныхтиповосвещения或такженескольковидовтеней的产品。 Затемнужносоздатькамеру(иположитьеёвотдельнуюноду)изадатьдлянеёосновныепараметры。 Ихдовольномного,но,спомощьюнихможносоздаватькрутыеэффекты。 Изкоробкиподдержибокэ(илиэффектразмытия),HDRсадаптацией,свечение,SSAOиоооии。 И,наконец,SceneKit在3Dобъектов,которыепозволяюннетевель Такжесценкитподдерживаетдействия,JavaScript,ноэтотемадляотдельнойстатьи。 Помимографики,главнымифишкамиSceneKit’аявляютсягенераторчастиципродвинутыйфизическийдвижок,которыйпозволяетзадаватьреальныефизическиесвойствакакобычнымобъектам,такисчастицамизгенератора。 Провсеэтифишкинаписанобольшоеколичествотуториалов,которыерассказываютпронихвововоо。 Новпроцессеразработкимыэтивозможностипрактическинеиспользовали… Однажды,янаписалмодельосвещениядля3D-игрлучшереальногосолнечногосвета,дающуюприемлемуюFPSнаNvidia的8800,ноярешилневыпускатьдвижоквсвет,таккакБогмнесимпатичен,иянехочупоказыватьегонекомпетентностьв этомвопросе 。 —ДжонКармак Подробноеизучениемыначнемсдовольнопростойзадачи,котораявозникаетпрактическиувсех,работающихсоSceneKit’омдовольносерьёзно:какзагрузитьмодельсосложнойгеометриейиподключеннымиматериалами,освещением,даещеисанимациями? Естьнесколькоспособов,ивсеониимеютсвоиплюсыиминусы: SCNScene(named)—получаетсценуизбандла; SCNScene(url:options 🙂 —загружаетсценупоurl; SCNScene(mdlAsset 🙂 —конвертируетсценуизразныхформатов; SCNReferenceNode(URL 🙂 —ленивозагружаетсцену。 Получаемсценуизбандла Можновоспользоватьсяметодом:положитьнашумодель。 Ночтоделать,есливыхотитесамиконтролироватьобновлениемоделей,невыпускаяобнове Иливыхотитеподдержатьсозданныепользователямикартыимодели? Илидажевепростонехотитеувеличиватьразмерприложения,таккак3Dграфиканеявоеосевашей Загружаемсценупоurl МожноиспользоватьконструкторсценыизURL .scnфайла。 […]

如何在iPhone应用程序中将2D图像转换为3D

input: 2D图像 输出: 3D图像 平台: IOS 我需要在我的ios应用程序中将2D图像转换为3D。如何在我的ios应用程序中执行此操作? 什么是我需要使用的框架? OpenGL-es会有帮助吗? 或者IOS里有其他的软件包来做这个吗? 我需要遵循什么步骤来制作2D图像到3D? 项目描述:我需要做一个类似于这个“ Morfo ”或“ 照片说话 ”的应用程序。 在这些应用程序中,我相信他们正在将2D图像转换为3D图像,这就是我在这里发布的一些启动和帮助的原因。

编码和解码3D MPO文件Objective-C

MPO文件是包含两个静止图像的文件,并且通常由3D相机使用。 我想将两个jpg图像转换成一个MPO文件,也是相反的。 我的平台是iOS(Objective C)。 我已经find了这样的解码MPF立体图像文件中的mpf exif块,但它或多或less是这样一个MPO文件的二进制结构。 有谁知道已经存在的转换器在iOS中使用或任何提示来实现这样一个转换器? 问候西蒙

nineveh vs cocos3d

我正在学习如何用cocos2d开发游戏程序,这非常有趣。 但是当我准备好时,我想要探索一个好的3D引擎来创build3D应用程序。 在网上我注意到了这两个工具:nineveh&cocos3d。 有没有人能教会我的差异,什么是最好的? (我知道团结3d也,但我不喜欢它),谢谢

在iOS中显示纹理的3D模型

我一直在使用软件生成罗马考古文物的纹理3D模型(请参阅地图界面模型 – 点击模型图标 )。 软件( 3DSom Pro )使用Flash或Java通过浏览器显示模型。 我需要一个用于浏览iOS的非Flash / Java解决scheme,但是WebGL仅在Safari的夜间版本(或者我知道 – 对于广告而言)中受到支持,这排除了普通用户。 有没有人成功地在iOS上的Web浏览器中显示带纹理的3D模型? 我知道页面(我认为)支持原生SketchUp文件和iOS设备可以显示3D,但在浏览器…?

Opengl着色器问题 – 奇怪的光reflection文物

这几天我一直在摔跤。 我想我已经把它缩小到每个顶点切线的问题了,但我不确定解决这个问题的最好方法。 上下文是iPhone应用程序,opengl es2使用我自己的引擎。 我的着色器是使用提供的每个顶点切线创buildTBNmatrix的凹凸贴图(法线贴图)。 顶点着色器将光vector和眼vector转换为切空间,将它们传递给碎片着色器并计算光照。 但是我的前两个testing模型中的一些几何graphics在光照中显示了奇怪的伪像。 在镜面reflection中最容易看到。 在试图debugging这个我已经取代了正常的地图与平坦的普通PNG ..所有像素是128,128,255。 我也硬编码的颜色。 我的第一个模型是一个button形状。 它显示了神器在外圈上的扇形镜面reflection。 重要的是要注意的是,这里的UV贴图方法是“平坦的”,使得垂直于贴图的边基本上在那里纹理纹理。 我会认为这会使切线难以计算,因为两个点将具有完全相同的纹理坐标。 我尝试debugging渲染设置gl_FragColor不同的variables。 当设置为每个顶点的法线时,我们看到扇形消失,表明法线是正确的。 但是,将其设置为每个顶点的切线时,您可以看到扇贝。 下一个形状是一个简单的球体。 有了它,模型的顶部和底部就是神器展示的地方。 在线框中,你会看到这是几个三angular形在一个顶点相遇的地方。 因为每个三angular形都有完全不同的紫外线贴图,所以我无法将自己的头围绕在切线上。 如果我不显示着色器代码,我想我会得到很多flack。 顶点着色器: v_fragmentTexCoord0 = a_vertexTexCoord0; gl_Position = u_modelViewProjectionMatrix * vec4(a_vertexPosition,1.0); vec3 normal = normalize(u_normalMatrix * a_vertexNormal); vec3 tangent = normalize(u_normalMatrix * a_vertexTangent); vec3 bitangent = cross(normal, tangent); mat3 TBNMatrix = mat3(tangent, bitangent, normal); […]