我正在尝试创建一个照亮立方体的聚光灯.然后下面的表面应该显示阴影.不幸的是我无法做到这一点.光线忽略了立方体并将光线投射到表面和立方体上 - 无论立方体是否在路上.
看起来如何:

代码,我只是在每个节点上将castsShadow设置为YES进行测试,但到目前为止没有任何帮助:
BOOL shadows = YES;
_baseNode.castsShadow = shadows;
_scene.rootNode.castsShadow = shadows;
SCNBox *box = [SCNBox boxWithWidth: 50 height: 50 length: 50 chamferRadius: 10];
box.firstMaterial.diffuse.contents = [UIColor colorWithRed: 0.0 green:0.0 blue: 0.8 alpha: 1.0];
box.firstMaterial.doubleSided = YES;
SCNNode *boxNode = [SCNNode nodeWithGeometry: box];
boxNode.position = SCNVector3Make(100, 100, 100);
boxNode.castsShadow = shadows;
[_baseNode addChildNode: boxNode];
SCNBox *plane = [SCNBox boxWithWidth: 1000 height:1000 length: 40 chamferRadius: 10];
plane.firstMaterial.diffuse.contents = [UIColor colorWithWhite: 0.2 alpha: 1.0];
SCNNode *planeNode = [SCNNode nodeWithGeometry: …Run Code Online (Sandbox Code Playgroud) 如何获得SCNPhyisicsBody的当前速度?
velocity属性总是返回(0.0,0.0,0.0),而我的SCNNode的prensetationNode的physicsBody也是nil.
首先感谢您花时间查看此内容 - 我们感谢您的任何意见!
\n关于我们现在面临的问题:\n在过去的几个月里,我们在 Android 上的游戏应用程序中遇到了随机 fps 下降到接近于零的情况,并且到目前为止尚未成功调试该问题。它完全随机发生(有时在 3 分钟后,有时在 3 小时后),感觉就像冻结一样 - 但实际上 FPS 在仍在运行时下降得非常快。\n我们已经花了相当多的时间使用各种工具进行调试和分析。现在我们希望您能帮助我们并从我们的数据中得出新的结论。
\n版本:
\n线索:
\nperformance android opengl-es game-development unity-game-engine
是否可以在后台线程中加载UIImage而不会导致线程问题?如果不是最好的方法是什么?我正在使用iOS 8.这就是我现在这样做的方式:
dispatch_queue_t backgroundQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0);
dispatch_async(backgroundQueue, ^{
UIImage *image = [UIImage imageNamed: fileName];
// only update UI on the main thread
dispatch_async(dispatch_get_main_queue(), ^{
[self setImage: image];
});
});
Run Code Online (Sandbox Code Playgroud) 我发现将SCNNodes(带有SCNGeometry)添加到场景会导致严重的滞后峰值.
根据Time Profiler,它必须生成几何(至少函数/方法被称为).它在将节点添加到场景时执行此操作,而不是在创建节点时执行此操作.因此,使用SCNNodes创建池将不起作用.
有没有办法摆脱这种滞后?我希望能够在没有任何FPS丢弃的情况下向场景添加节点.
到目前为止,我唯一的想法是将所有内容添加到场景中然后隐藏/取消隐藏它,尽管这不是一个干净的解决方案.
这是Time Profiler的一个镜头:

我目前正在使用此代码(在SCNNode子类中)在SceneKit中播放声音.
let audioSource = SCNAudioSource(named: "coin.wav")
let audioPlayer = SCNAudioPlayer(source: audioSource)
self.addAudioPlayer(audioPlayer)
Run Code Online (Sandbox Code Playgroud)
这并不理想,因为每次播放新声音时它都会填充audioPlayers数组.理想情况下,我可以为每个我想播放的声音设置一个SCNAudioPlayer,只需调用"播放"功能即可播放.
不幸的是,我找不到播放功能.令我恼火的是,SCNAudioPlayer在添加到节点时会自动播放声音.但我想在没有任何声音回放的情况下设置我的整个场景,然后在稍后的时间点播放声音.
使用SceneKit音频引擎的正确方法是什么?
我目前正在努力有效地使用Ausampler Unit.我使用了apple示例中的代码:https://developer.apple.com/library/ios/#samplecode/LoadPresetDemo/Introduction/Intro.html#//apple_ref/doc/uid/DTS40011214-Intro-DontLinkElementID_2
缺点似乎是它会立即停止一个音符/样本,如果相同的音符再次出现.因此,如果我发送带有长号预设的midi音符60.然后在拿着这个的时候,我又发了一张纸条60.它切断了第一个音符事件.有没有人知道是否/如何能够持有每一个音符直到音符关闭事件(这个特定音符)进来?
其他问题:如何在发送后改变音符的音量?例如,我用100速度发送了midi音符60和70.虽然音符60仍然播放,但我想减少音量,但保持音符70.这将被称为midi aftertouch.
希望你能帮忙:)
我正在尝试将包含几个CAShapeLayers的CATransformLayer渲染到png文件中.我知道如何设置基本渲染,这确实有效.
虽然当我在CATransformLayer上调用renderInContext时,它会将所有内容展平为2D并完全忽略我的变换矩阵(旋转和/或透视).
如何将我的3d CATransformLayer及其所有CAShapeLayers呈现为PNG/UIImage?
我目前正在尝试使用SceneKit中的SCNShapeNode渲染圆。但是不幸的是,它并不能绘制出一个完美的圆,而是一个八边形。
有什么方法可以设置SCNShape的渲染细节吗?
UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter: CGPointMake(0, 0) radius: 2 startAngle: 0.0 endAngle: M_PI * 2.0f clockwise: NO];
SCNShape *shape = [SCNShape shapeWithPath:path extrusionDepth: 1.0];
shape.firstMaterial.diffuse.contents = [UIColor colorWithRed: 1.0 green:0.0 blue:0.0 alpha:1.0];
SCNNode *shapeNode = [SCNNode nodeWithGeometry: shape];
[scene.rootNode addChildNode: shapeNode];
Run Code Online (Sandbox Code Playgroud) 在UISlider上释放触摸时,滑块的值会稍微变化并且不受控制地变化.它非常灵敏,甚至只是在屏幕上释放手指时也会发生变化.如何实现用户可以设置他想要的值而不会出现问题?
这就是我创建UISlider的方式:
UISlider *slider = [[UISlider alloc] initWithFrame: CGRectMake(100.0, 100.0, 200.0, 40.0)];
slider.minimumValue = 0.0;
slider.maximumValue = 100.0;
[slider addTarget: self action: @selector(sliderChanged:event:) forControlEvents:UIControlEventAllEvents];
[slider setValue: 50.0 animated: NO];
Run Code Online (Sandbox Code Playgroud) 必须使用什么orthographicProjection才能在SceneKit中以1:1的方式制作2D应用程序SceneKit指向屏幕点/像素比率?
示例:我想在屏幕上放置一些(200,200),我想使用带有(200,200,0)的SCNVector.我需要什么orthographicProjection呢?