問題タブ [scenekit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xcode - 物理シミュレーションの SceneKit Update メソッド
私はスプライト キットで遊んで、update メソッドを使用して、タイム ステップごとに処理するものを設定しました。シーンキットを使用して迅速に学習しようとしていますが、同等のものを見つけることができないようです。
SceneKit の update メソッドの実装例を教えてください。ありがとう。
ios - iOS 上の Swift のカスタム SceneKit ジオメトリが機能しないが、同等の Objective C コードは機能する
新しい Swift 言語を採用したいと思っています。これが Apple の開発を前進させる方法だと思われるからです。また、iOS 8 の新しい SceneKit サポートにも感銘を受けました。実行時にカスタム ジオメトリをプログラムで作成したいのですが、Swift コードを機能させるのに苦労しています。それでも、Objective C の同等のコードは問題なく動作します。
これはバグであるか、私が間違っている可能性があります。
私は単に単一の三角形を作成してレンダリングしようとしています。簡単にするために、この時点では法線やテクスチャなどは無視します。したがって、黒い三角形が表示されることだけを期待しています。
Swift コード (動作しない)
Objective C コード (動作します)
任意のポインタをいただければ幸いです。
ios - オブジェクトに回転 シーン キット
だから私は iOS8 と Scene Kit で多くの作業を行ってきました。これは、ユーザーが画面をタップし、ユーザーがクリックした場所を 3D モデルが指すことを嬉しく思います。
ios - SceneKit軌道変換
そのため、SceneKit を使い始めてから、レイヤー上の CA3d* 変換のようなものだと思い込んで変換にたどり着くまで、これまでのところすべてうまくいきました。
しかし、私はかなり間違っているようで、Z 軸の動作に関しては変換の動作がまったく異なります。
たとえば、カルーセルの外観に似た、3D 軌道スタイルの動きを実現しようとしています。この CA3D コードの一部は、それを行うために見事に機能します。
異なる "deg" 値を持つ複数のオブジェクトに適用すると、見栄えの良い円形の 3D 軌道が得られます。
同じ SceneKit を使用すると、異なる結果が生成されます。
実際に何が起こるかは、回転後に Z 値軸が変化し、CAT3D + レイヤーで適用された回転に基づいて移動しますが、SceneKit では Z 軸は常に一定であるため、移動はそれらをすべて一緒に移動するだけなので、押しつぶされます。見る。
したがって、これが真の 3D 空間で機能していることは理解していますが、同じことを行うには、球と楕円の数学を使用する必要があるようです。
では、私がやろうとしていることを行うためのヒントを誰でも提供できますか? 私は現在、球面数学を試して SCNMatrix4Translate を使用していますが、まだ数学を正しく理解していません。
私が必要としているのは、楕円の xyz を計算するための式だと思います。これと非常によく似たものを求めています。
http://en.wikipedia.org/wiki/Ellipse#mediaviewer/File:Conicas1.PNG
この種の軌道は、上記のレイヤの CAT3D スニペットを使用して実現できます。
簡単に言えば、上の図のような軌道レイアウトを取得する必要があり、SceneKit や幾何学計算を使用してそのレイアウトを支援する必要があります。すべてのオブジェクトは、軌道のように中心原点を中心に回転する必要があります
ios - Playground と iOS デバイス/シミュレーターの間で座標系が一致していないようです
ここ数日、Xcode 6 と iOS 8 のすべての利点について頭を悩ませてきました。私は現在、SceneKit を使用して、何ができるかを感じています。
シーンにオブジェクトを配置しやすくするために、視覚的なグリッドを構築しようとしています。
Playground は期待どおりに表示されますが、Simulator/Device はそうではありません。それがバグなのか、何か間違ったことをしているのかはわかりません。
次のコードがあります。
Playground の 2 行目はlet i = CGFloat(index)
ですが、コードは Playground と私が持っている iOS Xcode 6 プロジェクトの間で同じです。
Playground では、目的のグリッドを取得します。ただし、シミュレーターとデバイスでは、ガベージが発生します。呼び出しをどのように変更してもSCNVector3Make
、iOS またはシミュレーターでグリッドを適切に表示できません。
また、シミュレータとデバイスに表示される内容は同じであることに注意してください。
シーンにもボックスを追加してみました。を使用するSCNBox
と、正しく表示されますが、必要以上に大きくなります。ただし、(Playground で正しく動作する) カスタム ジオメトリを使用すると、ボックスの寸法が大きくずれます。立方体というより壁のように見えます。
私が見ているものを示すためにスクリーンショットを含めようとしましたが、画像を投稿するには少なくとも10の評判ポイントが必要なようです.
前もって感謝します!
アップデート
以下のコメンターの質問に答えるには(シーンの初期化方法に関して):
プロジェクト(Simulator/Device で実行される)では、次のように取得します。
Playground では、次のようにします。
更新 2
OSX アプリを作成し、生成された GameViewController コードを変更して同じ構造を生成すると、すべてが期待どおりに機能しました。ボックスの色を赤に更新しませんでした。OSX アプリではキューブとカメラの位置が少し異なります。
十分なポイントが得られたので、私が見ているものを示す画像を追加します。
また、 Xcode Beta 2 と 3 の両方でこれを試したことに注意してください。結果は同じでした。
プレイグラウンドで見たもの
OSX アプリに表示される内容
iOS シミュレータで見たもの
iOS 8 を電話と iPad で削除したので、それらのスクリーン ショットはありませんが、シミュレータと同じように見えます。
これについては、Apple を通じてバグ レポートを提出します。
更新 3
これらのプロジェクトのリポジトリを作成したので、興味のある人は誰でも見ることができます (おそらく、私が間違っていることに気付いていないことがあります)。
私が間違っていることや、どうすればもっとうまくやれるか教えてください。
助けてくれてありがとう!