問題タブ [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.

0 投票する
4 に答える
6138 参照

math - SCNNode の多軸 SCNVector4 回転を計算するにはどうすればよいですか?

SCNNodeSCNVector4は、角度 (w) と、その角度が各軸 (x、y、z) にどのように適用されるかの大きさを持つ を使用して回転します。たとえば、x 軸を中心に 45 度回転するには、次のSCNVector4よう に作成します。

たとえば、x 軸で 45 度、y 軸で 15 度、z 軸で -135 度です。final を計算するための数学を知っている人はいますSCNVector4か?

0 投票する
1 に答える
666 参照

cocoa - SCNView のサイズ変更の問題

ScreenKit フレームワークを使用して SCNView で 3D 棒グラフをレンダリングしようとしています。

私のレンダリングコードは、

レンダリングできますが、ビューのサイズを変更している間、チャート バーがビューの中央に移動します。

ビューのマージンをカバーするチャートをレンダリングする必要があり、サイズ変更時にそれに応じて変更する必要があります。以下の画像は私の問題を示しています。


元の画像:

ここに画像の説明を入力


両方のウィンドウの伸びが少ない画像:

ここに画像の説明を入力

誰でも問題を解決するのを手伝ってくれませんか。

0 投票する
1 に答える
2098 参照

ios - Collada から SceneKit から iOS

私は collada ファイルを持っています。そこにはキューブが含まれています。これから、データをファイル (生のバイトのみ) にエクスポートし、そのバイトを iOS にインポートします。大丈夫です。データを調べたところ、iOS と osx の頂点についてはすべて同じように見えます。

ただし、Collada ファイルを調べると、法線は SceneKit のものとは大きく異なります

SceneKit では、法線は 0、-1、または 1 のいずれかです。Collada ファイルには、-2.831...、-1.31... などがあります。

任意の洞察をいただければ幸いです。

ありがとう

D

0 投票する
2 に答える
1416 参照

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 のアプローチを解決するには、これらのキー フレームに使用される形式を見つける必要があります。

0 投票する
2 に答える
3121 参照

objective-c - シーンキットで既存の OpenGL テクスチャを使用する

Apple のドキュメントによると、NSColor、NSImage、および CALayer を使用して、テクスチャを SCNMaterialProperty に提供できます。SCNMaterialProperty

ただし、glGenTextures で作成され、個別にレンダリングされた既存の OpenGL テクスチャを提供する方法があるかどうか疑問に思っています。

もちろん、テクスチャのバッファを読み取り、NSImage をセットアップして、それを SCNMaterialProperty に提供できます。しかし、パフォーマンス上の理由から、これは明らかに最適ではありません。

私が推測する素材のシェーダープログラムをオーバーライドして上記を実装することは理にかなっていますが、これを行うためのドキュメントは存在しないようです.

0 投票する
2 に答える
2696 参照

ios - SceneKit と COLLADA オブジェクト

SCNNodeオブジェクトから開始を作成し、COLLADAそのノードを rootNode の子として追加する方法はありますか?

を使用してファイルから開始ScenKitすることができますSCNScene.dae

[SCNScene sceneWithURL:url options:nil error:&error];

しかし、dae から始めて Node を作成する方法が見つかりません。

0 投票する
1 に答える
837 参照

xcode5 - Xcode 5 - シーン キット ツールの警告

3D Collada (.dae) ファイルをインポートするためにサードパーティ フレームワーク (NinevehGL) を使用する iPad 用の XCode プロジェクトがあります。これは、既にコピー バンドル リソースにある既存の .dae に対しては正常に機能します。

ただし、Xcode 5 にアップグレードしてから、新しい .dae ファイルをリソースに追加すると、次の警告が表示されます。

/scntool: シーン キットが 10.6 でリソースをロードできないため、リソースはそのまま残されます。この問題を解決するには、製品の展開ターゲットを 10.9 以降に変更します。

これは iPad で実行しているため、Scene Kit は使用していません。

どんな助けでも大歓迎です。

ありがとう!

0 投票する
1 に答える
914 参照

macos - SceneKit CFURLCreateDataAndPropertiesFromResource がエラー コード -11 で失敗しました

私は SceneKit を試しているところです。私がやりたいことの 1 つは、COLLADA ファイルからシーンをロードすることです。これはうまく機能しますが、テクスチャが読み込まれず、ファイルを読み込むときに次のエラーが発生します。

ここでの問題の一部は、アプリ バンドル内のファイルを整理する方法にあると思います。Textures.bundleすべてのテクスチャを保持し、カテゴリ別に整理されたファイルとModels.bundle、COLLADA ファイルを保持するファイルです。

xcode ファイルツリー

正しいパスを返す、バンドルのカテゴリ (フォルダー) 内のファイルのパスを取得するクラスを作成しました。Xcode でさえ、ファイルを適切に取得し、同じ COLLADA ファイルを適切にロードでき、テクスチャ バンドル内の画像を認識するところまで進みます。

xcode COLLADA プレビュー

テクスチャの場所は「DAE ドキュメントに対する相対」として設定され、次の (正しい) パスが生成されます。../../Textures.bundle/ModelTextures/Computer/motherboard_motherboard.jpg

アプリでは、次のようにレンダリングされます。

レンダリング出力

何か案は?