問題タブ [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.
math - SCNNode の多軸 SCNVector4 回転を計算するにはどうすればよいですか?
SCNNodeSCNVector4
は、角度 (w) と、その角度が各軸 (x、y、z) にどのように適用されるかの大きさを持つ を使用して回転します。たとえば、x 軸を中心に 45 度回転するには、次のSCNVector4
よう に作成します。
たとえば、x 軸で 45 度、y 軸で 15 度、z 軸で -135 度です。final を計算するための数学を知っている人はいますSCNVector4
か?
cocoa - SCNView のサイズ変更の問題
ScreenKit フレームワークを使用して SCNView で 3D 棒グラフをレンダリングしようとしています。
私のレンダリングコードは、
レンダリングできますが、ビューのサイズを変更している間、チャート バーがビューの中央に移動します。
ビューのマージンをカバーするチャートをレンダリングする必要があり、サイズ変更時にそれに応じて変更する必要があります。以下の画像は私の問題を示しています。
元の画像:
両方のウィンドウの伸びが少ない画像:
誰でも問題を解決するのを手伝ってくれませんか。
ios - Collada から SceneKit から iOS
私は collada ファイルを持っています。そこにはキューブが含まれています。これから、データをファイル (生のバイトのみ) にエクスポートし、そのバイトを iOS にインポートします。大丈夫です。データを調べたところ、iOS と osx の頂点についてはすべて同じように見えます。
ただし、Collada ファイルを調べると、法線は SceneKit のものとは大きく異なります
SceneKit では、法線は 0、-1、または 1 のいずれかです。Collada ファイルには、-2.831...、-1.31... などがあります。
任意の洞察をいただければ幸いです。
ありがとう
D
objective-c - SceneKit を使用して DAE/COLLADA からアニメーション化された頂点を抽出する
Mac OS X で SceneKit を使用して COLLADA (DAE) ファイルをロードすると、SCNNode:s とそれぞれの SCNGeometry:s のツリーをトラバースすることですべてのジオメトリを簡単に取得でき、[geometry geometrySourcesForSemantic: SCNGeometrySourceSemanticVertex] を使用して頂点データを抽出できます。
ただし、アニメーション化されたオブジェクトを含む DAE ファイルが与えられた場合、SceneKit はアニメーションの特定の時間における各頂点の正確な位置を提供できますか、または関連する CAAnimation オブジェクトからすべてのアニメーション データを抽出できますか?
私の使用例は、SceneKit を使用して DAE ファイルをインポートしたいが、それ以外はすべて独自のレンダリング パイプラインを使用したいというものです。
明確化 これを達成する方法は明らかに 2 つあります。
1) 関連するアニメーションからキー フレームを取得して解析する
2) SceneKit に所定の時間シーンを評価させ、事前に計算された頂点 (など) 座標を提供します。
私のユースケースで目指していたのは #2 でしたが、SceneKit で使用されているキー フレーム フォーマットのドキュメントを見つけることができれば #1 でもかまいません。
私の問題は、#1の場合、次のこと以上を掘り下げることができないことです。
SCNNode.animationKeys は、指定された SCNNode で使用できるアニメーション キーを提供します。[SCNNode animationForKey:key] 指定された CAAnimationGroup オブジェクトから、CAAnimationGroup.animations を介して CAAnimation オブジェクトが取得されます。CAAnimation オブジェクトは (私の DAE ファイルの場合) 実際には CAKeyframeAnimation のインスタンスであり、そこから CAKeyframeAnimation.values を取得します。
Keyframe (1 / 40): <00000000 0000f0bf 00000080 d9956d3c 000000a0 0e32a13c 00000000 00000000 00000020 636772bc 00000020 2914ef3f 00000000 0f7ecebf 00000000 00000000 00000020 1324a1bc 00000000 0f7ecebf 00000020 2914efbf 00000000 00000000 00000000 00000000 000000c0 205c6d40 00000000 00a069c0 00000000 0000f03f>
など.. したがって、上記の #1 のアプローチを解決するには、これらのキー フレームに使用される形式を見つける必要があります。
objective-c - シーンキットで既存の OpenGL テクスチャを使用する
Apple のドキュメントによると、NSColor、NSImage、および CALayer を使用して、テクスチャを SCNMaterialProperty に提供できます。SCNMaterialProperty
ただし、glGenTextures で作成され、個別にレンダリングされた既存の OpenGL テクスチャを提供する方法があるかどうか疑問に思っています。
もちろん、テクスチャのバッファを読み取り、NSImage をセットアップして、それを SCNMaterialProperty に提供できます。しかし、パフォーマンス上の理由から、これは明らかに最適ではありません。
私が推測する素材のシェーダープログラムをオーバーライドして上記を実装することは理にかなっていますが、これを行うためのドキュメントは存在しないようです.
ios - SceneKit と COLLADA オブジェクト
SCNNode
オブジェクトから開始を作成し、COLLADA
そのノードを rootNode の子として追加する方法はありますか?
を使用してファイルから開始ScenKit
することができますSCNScene
.dae
[SCNScene sceneWithURL:url options:nil error:&error];
しかし、dae から始めて Node を作成する方法が見つかりません。
xcode5 - Xcode 5 - シーン キット ツールの警告
3D Collada (.dae) ファイルをインポートするためにサードパーティ フレームワーク (NinevehGL) を使用する iPad 用の XCode プロジェクトがあります。これは、既にコピー バンドル リソースにある既存の .dae に対しては正常に機能します。
ただし、Xcode 5 にアップグレードしてから、新しい .dae ファイルをリソースに追加すると、次の警告が表示されます。
/scntool: シーン キットが 10.6 でリソースをロードできないため、リソースはそのまま残されます。この問題を解決するには、製品の展開ターゲットを 10.9 以降に変更します。
これは iPad で実行しているため、Scene Kit は使用していません。
どんな助けでも大歓迎です。
ありがとう!
macos - SceneKit CFURLCreateDataAndPropertiesFromResource がエラー コード -11 で失敗しました
私は SceneKit を試しているところです。私がやりたいことの 1 つは、COLLADA ファイルからシーンをロードすることです。これはうまく機能しますが、テクスチャが読み込まれず、ファイルを読み込むときに次のエラーが発生します。
ここでの問題の一部は、アプリ バンドル内のファイルを整理する方法にあると思います。Textures.bundle
すべてのテクスチャを保持し、カテゴリ別に整理されたファイルとModels.bundle
、COLLADA ファイルを保持するファイルです。
正しいパスを返す、バンドルのカテゴリ (フォルダー) 内のファイルのパスを取得するクラスを作成しました。Xcode でさえ、ファイルを適切に取得し、同じ COLLADA ファイルを適切にロードでき、テクスチャ バンドル内の画像を認識するところまで進みます。
テクスチャの場所は「DAE ドキュメントに対する相対」として設定され、次の (正しい) パスが生成されます。../../Textures.bundle/ModelTextures/Computer/motherboard_motherboard.jpg
アプリでは、次のようにレンダリングされます。
何か案は?