首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SceneKit:材质预览始终为黑色

SceneKit是苹果公司提供的一个用于构建3D场景和渲染3D图形的框架。它是基于OpenGL的高级图形框架,可以在iOS和macOS平台上使用。SceneKit提供了一系列功能强大的工具和API,使开发者能够轻松地创建逼真的3D场景和动画效果。

材质预览始终为黑色的问题可能是由于以下几个原因导致的:

  1. 材质设置错误:在SceneKit中,材质决定了物体的外观和质感。如果材质预览始终为黑色,可能是因为材质的属性设置有误。可以检查材质的颜色、光照、纹理等属性是否正确设置。
  2. 光照问题:光照是影响3D场景中物体外观的重要因素。如果没有正确设置光照,材质预览可能会显示为黑色。可以检查光源的位置、强度和类型是否正确设置。
  3. 渲染问题:如果渲染管道或渲染设置有误,也可能导致材质预览为黑色。可以检查渲染管道的配置和渲染设置是否正确。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SceneKit_入门08_材质

_入门06_行为动画 SceneKit_入门07_几何体 SceneKit_入门08_材质 SceneKit_入门09_物理身体 SceneKit_入门10_物理世界 SceneKit_入门11...(取值范围0-1,默认值1) var intensity: CGFloat 会产生什么影响呢?...会自动创建若干个mipmap层,给材质属性的图片内容,渲染的时候,SceneKit 会自动采样mipmap层 可选值 typedef enum : NSInteger { SCNFilterModeNone...3.SceneKit自动增加或降低需要最大限度地提高渲染质量渲染每个像素的各向异性,由该属性指定的限制,渲染时所使用的最大各向异性水平依赖于使用中的图形硬件,如果设置值MAXFloat 约束使用最高的...,比如映射属性白色反射所有光,所以你看不见任何颜色,黑色吸收任何光,光能照射到物体上,物体能反射光,所以你能看见。

1.2K40
  • SceneKit 场景编辑器-您的AR体验构建3D舞台

    这是正确的,它是您在手机上看到的预览船。应用程序加载时调用此场景。 SceneKit%20Scene%20Editor 视口(VIEWPORT) 包含飞船的中间部分是视口。...我经常将它设置前面,因为这是在屏幕上添加模型时的起始角度。如果场景附带动画,您可以通过单击“ 播放”按钮进行预览。 场景图视图 打开场景时,通常会隐藏场景图视图。...节点分配默认颜色白色。你现在看到它是黑色的,因为背景也是白色的。让我们在屏幕上保存一些不动产并隐藏Project Navigator。按Command + 0。 背景 对于设计师来说,背景是平淡的。...转到材质检查器,再次将“ 着色”更改为“ Blinn”并指定漫反射颜色黑色。 表冠 现在,我们将在侧面增加表冠。转到对象库,选择一个圆柱体并将其放在场景中。...结论 现在,我们只使用基本几何图形制作了一个简单的3D对象,并应用材质使其看起来更真实。我们学会了如何定位,旋转和缩放它。使用SceneKit场景编辑器可以避免很多代码,就像故事板一样。

    5.5K20

    ARKit示例 - 第4部分:现实主义 - 照明和PBR

    在黑暗环境中一个明亮的立方体 - 感觉完全不合适 在明亮的位置(也是灯的方向关闭)的黑色立方体 因此,让我们从一开始就建立起更高和更高水平的现实主义。...首先,如果您的虚拟场景没有灯光,那么就像在现实世界中所有内容都是黑色一样,没有光线反射物体表面。...autoenablesDefaultLighting SceneKit SCNView有一个叫做财产autoenablesDefaultLighting如果设置true,SceneKit将一个Onmi...它映射到材质的漫反射组件,它是材质纹理,在光照或阴影信息中没有任何烘焙。 粗糙度  - 描述材料的粗糙程度,较粗糙的表面显示较暗的反射,更光滑的材料显示更明亮的镜面反射。...lightingModelName设置SCNLightingModelPhysicallyBased并设置各种材质类型。

    1.2K30

    SceneKit_入门04_灯光

    _入门06_行为动画 SceneKit_入门07_几何体 SceneKit_入门08_材质 SceneKit_入门09_物理身体 SceneKit_入门10_物理世界 SceneKit_入门11...的黑色 @property(nonatomic, retain) id shadowColor; 设置阴影的采样角度 默认值3 @property(nonatomic) CGFloat shadowRadius...45度 当你要使用碰撞检测时,请设置下面的属性 @property(nonatomic) NSUInteger categoryBitMask NS_AVAILABLE(10_10, 8_0); 点光源材质属性...因为物体材质中没有黄色成分,比如你传的是一件绿色的衣服,你用黄光照射他,你不可能看见衣服是绿色或者黄色的,这里你可以把物体的颜色变为黄色试试看。 问题2:那为什么和不添加环境光一样的效果呢?..._03.gif 我们的点光源的位置(0,0,100),我们把位置改为(0,100,100),看一下效果,对比一下,你就掌握了这种光的特点 改变位置后 点光源的特显,你应该明白了!

    1.3K20

    导入 3D 模型-将您自己的设计融入现实生活中

    它们充满了您在SceneKit编辑器中找不到的功能。后者更多用于编辑和添加效果。无论您是自己创建还是购买,都需要将它们导入Xcode。...我们甚至可以在新的AR Quick Look应用程序中进行真实预览。 下载导入3D模型 要学习本教程,您需要Xcode 10或更高版本,以及SceneKit场景编辑器中的最终Xcode项目。...您可以打开它以直接预览它。文件夹模型实际上是材质,因为它有一个iPhoneX屏幕的图像文件。在我们导入之前,我想将文件夹重命名为iPhoneX。 导入模型 现在,让我们导入。...同样,如果高度5.635,由边界框的深度定义,其中间点2.818。考虑到父节点对x,y和z放置0并且原始枢轴点位于左侧,我们应该将group_0的x位置设置-1.410。...对z执行相同操作,将其设置2.818。现在枢轴点位于模型的中心。 展平节点 最后,我们现在需要做的是将所有节点展平只有一个节点。如果我们不这样做,我们稍后会遇到一些操纵模型的问题。

    3.1K10

    SceneKit_高级01_GLSL

    SceneKit_入门01_旋转人物 SceneKit_入门02_如何创建工程 SceneKit_入门03_节点 SceneKit_入门04_灯光 SceneKit_入门05_照相机 SceneKit..._入门06_行为动画 SceneKit_入门07_几何体 SceneKit_入门08_材质 SceneKit_入门09_物理身体 SceneKit_入门10_物理世界 SceneKit_入门11..._粒子系统 SceneKit_入门12_物理行为 SceneKit_入门13_骨骼动画 SceneKit_中级01_模型之间的过渡动画 SceneKit_中级02_SCNView 详细讲解 SceneKit..._中级08_阴影详解 SceneKit_中级09_碰撞检测 SceneKit_中级10_滤镜效果制作 SceneKit_中级11_动画事件 SceneKit_高级01_GLSL SceneKit...我们知道SceneKit框架中有一个类几何对象SCNGeometry,它里面有一个属性shaderModifiers,这个属性是一个字典类型,它的key值可以设置四种下面几种 SCNShaderModifierEntryPoint.geometry

    77710

    SceneKit_入门09_物理身体

    SceneKit_入门01_旋转人物 SceneKit_入门02_如何创建工程 SceneKit_入门03_节点 SceneKit_入门04_灯光 SceneKit_入门05_照相机 SceneKit..._入门06_行为动画 SceneKit_入门07_几何体 SceneKit_入门08_材质 SceneKit_入门09_物理身体 SceneKit_入门10_物理世界 SceneKit_入门11..._粒子系统 SceneKit_入门12_物理行为 SceneKit_入门13_骨骼动画 SceneKit_中级01_模型之间的过渡动画 SceneKit_中级02_SCNView 详细讲解 SceneKit...尝试1: 我们设置下面的柱子静态身体,球也静态身体,给球设置一个向下移动的行为 让思考也变成习惯 尝试2: 设置下面的柱子静态身体,球运动身体 让思考也变成习惯 尝试3: 设置下面的柱子动态身体...,球动态身体 思考力决定你能走多远 尝试4: 设置下面的柱子动态身体,球运动身体 多思考就能发现新大陆 总结: 静态身体 不能主动给物体施作用,不能和动态身体和运行身体起作用 动态物体

    50430

    SceneKit_入门10_物理世界

    SceneKit_入门01_旋转人物 SceneKit_入门02_如何创建工程 SceneKit_入门03_节点 SceneKit_入门04_灯光 SceneKit_入门05_照相机 SceneKit..._入门06_行为动画 SceneKit_入门07_几何体 SceneKit_入门08_材质 SceneKit_入门09_物理身体 SceneKit_入门10_物理世界 SceneKit_入门11..._粒子系统 SceneKit_入门12_物理行为 SceneKit_入门13_骨骼动画 SceneKit_中级01_模型之间的过渡动画 SceneKit_中级02_SCNView 详细讲解 SceneKit...scnView.scene.physicsWorld.gravity.z); 输出结果: x:0.000000 y:-9.800000 z:0.000000 我们发现我们创建创景的时候,系统已经给我添加了一个向下的重力,如果把重力加速度设置(...模拟运行的速度(默认值1) @property(nonatomic) CGFloat speed; 用法: 如果你想要增加或者减小模拟运行的速度,可以调节这个属性,但是会影响模拟的物理世界的真实性

    68910

    SceneKit_入门11_粒子系统

    SceneKit_入门01_旋转人物 SceneKit_入门02_如何创建工程 SceneKit_入门03_节点 SceneKit_入门04_灯光 SceneKit_入门05_照相机 SceneKit..._入门06_行为动画 SceneKit_入门07_几何体 SceneKit_入门08_材质 SceneKit_入门09_物理身体 SceneKit_入门10_物理世界 SceneKit_入门11..._粒子系统 SceneKit_入门12_物理行为 SceneKit_入门13_骨骼动画 SceneKit_中级01_模型之间的过渡动画 SceneKit_中级02_SCNView 详细讲解 SceneKit..._中级08_阴影详解 SceneKit_中级09_碰撞检测 SceneKit_中级10_滤镜效果制作 SceneKit_中级11_动画事件 SceneKit_高级01_GLSL SceneKit...]; [node addParticleSystem:particleSystem]; node.position = SCNVector3Make(0, -1, 0); // 3.将粒子系统节点设置四方体的子节点

    84911

    SceneKit_高级06_加载顶点、纹理、法线坐标

    SceneKit_入门01_旋转人物 SceneKit_入门02_如何创建工程 SceneKit_入门03_节点 SceneKit_入门04_灯光 SceneKit_入门05_照相机 SceneKit..._入门06_行为动画 SceneKit_入门07_几何体 SceneKit_入门08_材质 SceneKit_入门09_物理身体 SceneKit_入门10_物理世界 SceneKit_入门11..._粒子系统 SceneKit_入门12_物理行为 SceneKit_入门13_骨骼动画 SceneKit_中级01_模型之间的过渡动画 SceneKit_中级02_SCNView 详细讲解 SceneKit..._中级08_阴影详解 SceneKit_中级09_碰撞检测 SceneKit_中级10_滤镜效果制作 SceneKit_中级11_动画事件 SceneKit_高级01_GLSL SceneKit...bytesNoCopy: data, length: MemoryLayout.size*array.count, freeWhenDone: true) as Data } 提示: 我们定义泛型接口

    95210

    SceneKit_中级11_动画事件

    SceneKit_入门01_旋转人物 SceneKit_入门02_如何创建工程 SceneKit_入门03_节点 SceneKit_入门04_灯光 SceneKit_入门05_照相机 SceneKit..._入门06_行为动画 SceneKit_入门07_几何体 SceneKit_入门08_材质 SceneKit_入门09_物理身体 SceneKit_入门10_物理世界 SceneKit_入门11..._粒子系统 SceneKit_入门12_物理行为 SceneKit_入门13_骨骼动画 SceneKit_中级01_模型之间的过渡动画 SceneKit_中级02_SCNView 详细讲解 SceneKit...CAAnimation 类型,就是我们创建的动画,第二个参数any 当动画添加到节点上,那这个就是节点对象,第三个参数 动画是否回退执行 重点内容来了,我们做一个颜色变化的事件,当动画开始执行是,我们的文字颜色红色...,动画指定一般颜色紫色,动画执行完整时,颜色绿色,我们重复这个行为 创建三个事件 // 开始事件 let startEvt = SCNAnimationEvent(keyTime:

    48200

    iOS - SceneKit显示与交互3D建模(一)

    SceneKit,而且这个是原生的,速度可想而知要比集成U3D后运行要来得快~ SceneKit建立在 OpenGL 的基础上,包含了如光照、模型、材质、摄像机等高级引擎特性。...SceneKit实现的内容节点层次结构树,也被称为场景图。一个场景由一个场景世界定义一个坐标空间的根节点,以及其他的可视节点组成。...�接着来来了解下坐标吧,查阅苹果官方文档,可以看到如下这张图片,SceneKit使用的是右手坐标系,默认视图的方向是沿负Z轴方向的。可以简单的记住红色x轴,绿色y轴,蓝色z轴。 ?...它支持一种后缀dae的模型文件,我们后续就会用到。 ? 目录结构 运行后如图所示,真是有够炫的,图的下方显示的是当前渲染相关数据,方便我们开发者查看。 ?...引入SceneKit库 在ViewController中导入SceneKit #import 接下来在桌面上新建一个art文件夹,并加上后缀【.scnassets

    4.3K40

    SceneKit_中级08_阴影详解

    _入门06_行为动画 SceneKit_入门07_几何体 SceneKit_入门08_材质 SceneKit_入门09_物理身体 SceneKit_入门10_物理世界 SceneKit_入门11...动态 设置灯光的属性castsShadow YES 则,物体移动时,阴影也会跟着变化 投射 通过设置灯光的属性gobo,来捕捉阴影 一起敲代码 第一步 先创建工程 让学习成为一种习惯 第二步...rootNode.addChildNode(cameraNode) 提示: 摄像机默认方向 -Z 轴, 我设置它的位置(0,1000,1000) ,沿自身坐标系x轴顺时针旋转了45度,这个是由于我的模型比较大...灯光对象的属性 shadowMode 默认为.forward,如果你设置了这个属性,灯光效应下的阴影效果才能呈现出来,它会根据灯光效应去调节阴影颜色的阿尔法分量值 问题1:知道为什么要设置灯光的最远距离2000...因为灯光的最远注意默认值100 ,由于我们将灯的指点放在1000 灯光照射不到那个距离,所以我们需要调节灯光照射的最远距离 问题2:为什么要给灯光添加一个支点,不添加可以吗?

    75910

    SceneKit_入门12_物理行为

    SceneKit_入门01_旋转人物 SceneKit_入门02_如何创建工程 SceneKit_入门03_节点 SceneKit_入门04_灯光 SceneKit_入门05_照相机 SceneKit..._入门06_行为动画 SceneKit_入门07_几何体 SceneKit_入门08_材质 SceneKit_入门09_物理身体 SceneKit_入门10_物理世界 SceneKit_入门11..._粒子系统 SceneKit_入门12_物理行为 SceneKit_入门13_骨骼动画 SceneKit_中级01_模型之间的过渡动画 SceneKit_中级02_SCNView 详细讲解 SceneKit..._中级08_阴影详解 SceneKit_中级09_碰撞检测 SceneKit_中级10_滤镜效果制作 SceneKit_中级11_动画事件 SceneKit_高级01_GLSL SceneKit...SCNVector3Make(0, 0, 10); [scnView.scene.rootNode addChildNode:cameraNode]; 5.添加四个文字几何对象模型,并且设置他们的身体动态身体

    78330

    SceneKit_中级03_切换照相机视角

    SceneKit_入门01_旋转人物 SceneKit_入门02_如何创建工程 SceneKit_入门03_节点 SceneKit_入门04_灯光 SceneKit_入门05_照相机 SceneKit..._入门06_行为动画 SceneKit_入门07_几何体 SceneKit_入门08_材质 SceneKit_入门09_物理身体 SceneKit_入门10_物理世界 SceneKit_入门11..._粒子系统 SceneKit_入门12_物理行为 SceneKit_入门13_骨骼动画 SceneKit_中级01_模型之间的过渡动画 SceneKit_中级02_SCNView 详细讲解 SceneKit..._中级08_阴影详解 SceneKit_中级09_碰撞检测 SceneKit_中级10_滤镜效果制作 SceneKit_中级11_动画事件 SceneKit_高级01_GLSL SceneKit...上图原理: 我们首先创建一个地月节点,将其设置太阳的自节点,这样太阳旋转的时候,我们的地月节点,就会围绕这太阳转动,然后我们创建一个地球节点,让其成为地月节点的子节点,这样地球就能和地月节点一起围绕太阳节点转动了

    60420

    SceneKit_中级04_约束的使用

    _入门06_行为动画 SceneKit_入门07_几何体 SceneKit_入门08_材质 SceneKit_入门09_物理身体 SceneKit_入门10_物理世界 SceneKit_入门11...我们看这个类有哪些属性 /* * 作用: 影响因子,决定约束的强度 * 工作原理: 如果设置1 那么在游戏每一帧渲染的时候,系统都会调整这个约束,如果你设置0.5 在游戏的某些帧,系统不会进行约束调整...0 完全忽略约束 * 注意 SCNTransformConstraint 对这类约束不起作用 */ var influenceFactor: CGFloat,默认值 1,这是0 时,则...),当系统进行下一次渲染的时候,会重新计算这个块中的约束,然后调整节点的状态 2.创建方法 /* * world 设置YES 使用世界坐标系,设置NO 使用自身坐标系 + (instancetype...这个值可以动态的改变 3.举个例子理解一下 比如机器人的组成身体 上臂 胳膊 和 手,身体是上臂的根节点,上臂是胳膊的根节点,胳膊是手的根节点,手是身体的根节点,如果我们要实现上面的约束的话,需要将约束的根节点设置上臂

    64710
    领券