Ant*_*ton 1 augmented-reality scenekit swift arkit realitykit
我正在编写一个使用 ARSCNViewhitTest函数的 ARKit 应用程序。该应用程序还将捕获的图像发送到服务器进行一些分析。
当我这样做时我注意到:
let viewportSize = sceneView.snapshot().size
let viewSize = sceneView.bounds.size
Run Code Online (Sandbox Code Playgroud)
那么第一个是第二个的两倍。
问题是:
让我们探讨一下 iPhone 7 的一些重要显示特性:
\n由于具有相同屏幕尺寸的移动设备可能具有截然不同的分辨率,因此开发人员viewports在创建 3D 场景或适合移动设备的网页时经常使用。在VR和AR领域:分辨率越低\xe2\x80\x93,渲染器速度越快,CPU/GPU负担也大大减轻。创建视口的思想主要用于移动设备。在 macOS 中Screen Resolution和Viewport Resolution是相同的。
在 iPhone 以及其他移动设备中,Viewport分辨率是按比例缩小的版本(通常每个轴小 2 或 3 倍),允许在不同设备上更一致地查看 3D 场景视口或网站(非常重要!)能源消耗更少。视口通常比分辨率尺寸更标准化且更小。
快照几乎总是反映真实的屏幕分辨率:
\nlet screenSize = sceneView.snapshot().size\n\n/* 750 x 1,334 */\n/* iPhone 7 rez */\nRun Code Online (Sandbox Code Playgroud)\nSceneView 大小通常反映标准化的屏幕分辨率(比规格分辨率小 4 倍):
\nlet viewportSize = sceneView.bounds.size \n\n/* 375 x 667 */\n/* ViewPort rez */\nRun Code Online (Sandbox Code Playgroud)\niPhone 7 中 Viewport Rez (1/4) 与 Screen Rez 的长宽比:
\n示意图!
\n\n视口大小及其在移动设备中的实际布局:
\n真实描绘!
\n\n附加参考:Phone XViewPort 分辨率( 375 x 812 ) 比屏幕分辨率 ( 1125 x 2436 )小九倍。
在命中测试和光线投射中使用视口坐标。
\n让我们使用命中测试方法 \xe2\x80\x93 进行 3 次点击,第一次点击左上角(靠近x=0和y=0),第二次点击屏幕中心,第三次点击右下角(靠近x=667和y=375):
let point: CGPoint = gestureRecognize.location(in: sceneView)\n\nprint(point)\nRun Code Online (Sandbox Code Playgroud)\n\niPhone 7 视口的坐标打印在控制台中:
\n\nQuod Erat Demonstrandum!\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
2217 次 |
| 最近记录: |