相关疑难解决方法(0)

我们可以在SceneKit中的透明平面上渲染阴影

我已经为平面使用了着色器修改器,但它不起作用.任何人都可以建议我如何解决它?

let myShaderfragment = "#pragma transparent;\n" + "_output.color.a = 0.0;"
let myShaderSurface = "#pragma transparent;\n" + "_surface.diffuse.a = 0.0;"
 material.shaderModifiers = [SCNShaderModifierEntryPoint.fragment : myShaderfragment, SCNShaderModifierEntryPoint.surface : myShaderSurface]
Run Code Online (Sandbox Code Playgroud)

ios scenekit swift

3
推荐指数
1
解决办法
1746
查看次数

ARKit – 在平面上投射 3D 物体的阴影

这是我用来在平面上显示对象的函数。

private func loadScene(path: String) -> SCNNode {

    let spotLight = SCNLight()
    spotLight.type = SCNLight.LightType.probe

    spotLight.spotInnerAngle = 30.0
    spotLight.spotOuterAngle = 80.0
    spotLight.castsShadow = true

    let result = SCNNode()
    result.light = spotLight
    result.position = SCNVector3(-10.0, 20.0, 10.5)
    result.addChildNode(result)

    let scene = SCNScene(named: path)!
    for node in scene.rootNode.childNodes {
        result.addChildNode(node)
    }       
    return result
}
Run Code Online (Sandbox Code Playgroud)

我想在平面上显示阴影,如下图所示。

平面上有阴影的图像

当我设置如下聚光灯类型时

spotLight.type = SCNLight.LightType.directional
Run Code Online (Sandbox Code Playgroud)

它用明暗阴影显示对象本身,并且不会将阴影落在表面上。

有人可以指导我如何实现如图所示的输出吗?

xcode augmented-reality scenekit swift arkit

2
推荐指数
1
解决办法
2380
查看次数

标签 统计

scenekit ×2

swift ×2

arkit ×1

augmented-reality ×1

ios ×1

xcode ×1