你好,我不能为我的生活解决如何使用scenekit在场景中添加2D图像甚至可能吗?我想要完成的是在2D背景图像上有一个3D飞行平面,但背景图像无法覆盖整个屏幕.感谢任何可以提供帮助的人
其他人在上面说了很多好的建议.
使用scnScene.background:最简单,但全屏和静态.您无法在场景的较小区域中显示,也无法自定义转换.
使用scnScene.overlaySKScene显示2D SKScene和添加图像精灵.这可能适合您的情况.如果您想要静态但具有可配置的转换,这是一个不错的选择.特别overlaySKScene推荐Apple在您的3D场景中创建HUD.
但是,如果您希望2D内容跟踪3D运动,则需要每帧从3D空间到2D空间进行一些坐标转换.坏消息是这项工作由CPU完成,这将增加性能拖累.(相信我,这也让我感到沮丧!)
使用SCNNode具有SCNPlane几何形状,并设置diffuse.content与图像; 添加SCNBillBoardConstraint到节点以确保它始终面向摄像头.
最灵活的.但是,如果你的相机不是正交的,那么随着相机fov的变化,图片会变焦,这看起来不是2D,而是一个悬挂的3D广告牌.
您可以使用SCNScene 上的背景属性来设置背景图像。
\n\nscnScene.background.contents = UIImage(named: "myImage")\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n\n\n您可以使用以下任意类型设置此属性的值:\n
\n\n颜色(NSColor/UIColor 或 CGColorRef),指定材质\xe2\x80\x99s 表面上的常量颜色\n
\n\n图像(NSImage/UIImage 或 CGImageRef),指定要映射到材质\xe2\x80\x99s 表面的纹理\n
\n\n指定图像文件位置的 NSString 或 NSURL 对象
\n\n六个图像的数组 (NSArray),指定立方体贴图的面
\n\n核心动画层(CALayer)
\n\n纹理(SKTexture、MDLTexture、MTLTexture 或 GLKTextureInfo)
\n\nSprite Kit 场景 (SKScene)
\n
| 归档时间: |
|
| 查看次数: |
6418 次 |
| 最近记录: |