【问题标题】:Scene Kit override SCNNode renderingScene Kit 覆盖 SCNNode 渲染
【发布时间】:2012-08-14 16:07:46
【问题描述】:

我查看了 Scene Kit,它看起来非常易于使用。有一种方法可以覆盖 SCNNode 的渲染,这很好。 问题是我想在默认渲染旁边渲染其他元素。 当我覆盖 SCNNodeRendererDelegate 中的渲染时,它不再渲染例如附加到它的几何图形。 假设我想在顶部渲染几何体的线框、边界框或 2dtext。 有什么建议吗?

【问题讨论】:

    标签: scenekit


    【解决方案1】:

    添加一个子节点并将节点的渲染委托设置为这个子节点怎么样? 然后使用 [node parentNode] 从渲染器委托方法访问父节点/几何等。

    【讨论】:

    • 这将是一个很好的解决方法,可以使用,例如通过访问父节点的几何图形来添加边界框。但它仍然无法绘制线框。至少没有那么容易。因为我仍然必须使用自己的实现来绘制线,而不是简单地覆盖 opengl 属性来绘制线。
    【解决方案2】:

    可能是一个愚蠢的问题,但您是否尝试使用 super first 调用原始方法?

    - (void)renderNode:(SCNNode *)node renderer:(SCNRenderer *)renderer arguments:(NSDictionary *)arguments{
        [super renderNode:node renderer:renderer arguments:arguments];
        //... then your stuff here....
    
    }
    

    【讨论】:

    • 没有原始方法,这是一个委托回调,super是你设置的委托。
    猜你喜欢
    • 2015-03-04
    • 1970-01-01
    • 2015-07-31
    • 2015-03-01
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    • 2017-12-11
    • 2014-01-31
    相关资源
    最近更新 更多