問題タブ [viewport3d]

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 投票する
2 に答える
1199 参照

c# - Viewport3D は再スケーリング/サイズ変更を無効にします

WPF で Viewport3d の次の奇妙なサイズ変更/サイズ変更動作を無効にするにはどうすればよいですか? ウィンドウの高さを変更していないことに注意してください。

http://i.stack.imgur.com/jCgPe.png

http://i.stack.imgur.com/Q0V6X.png

WPF のこの「機能」を無効にするにはどうすればよいですか (または、なぜこれを行うのですか?)

0 投票する
0 に答える
2637 参照

wpf - WPF ディスプレイ FPS

Viewport3D の FPS を表示しようとしています。

調べてみると、CompositionTarget.Rendering に出くわしましたが、これは「WPF パフォーマンス スイート」ツールで表示される FPS とは異なる結果になるようです。

CompositionTarget.Rendering を使用すると、(マウス/キーボード イベントに応答して) ビューポート カメラと対話するまで、安定した 60 fps が表示されます。その後、fps は 150 から 200 fps まで上昇しますが、「WPF パフォーマンス スイート」はツールは引き続き安定した 60 fps を表示します。

これは、「WPF パフォーマンス スイート」ツールが正確な FPS を表示するためだと思います。つまり、WPF チームが実際にバックバッファーで Present を呼び出すたびに、CompositionTarget.Rendering は内部で更新される fps ですが、実際の fps を表すものではありません。

「WPF パフォーマンス スイート」ツールに沿ったものをもっと表示したいのですが、どうすればこれを実現できますか?

次のようにCompositionTarget.Renderingを使用しています-

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

wpf - WindowsサービスからのViewport3dレンダリング

いくつかのレポートを生成するWPFアプリケーションがあります。このアプリケーションをWindowServiceから起動する必要があり、現在LocalSystemとして実行されているサービスから実行しています。Pie 3dを除いて、すべてのレンダリングは適切に行われ、Viewport3Dオブジェクトに表示されます。これは、動作を示すコード抽出です。

そして、これは呼び出しコードです:

そして、はい、ビューポートは適切に測定/配置されています。

3Dオブジェクトの非対話型アプリケーションからのレンダリングにいくつかの制限がありますか?私はWindows7-2008サーバー環境にいます。?回避策はありますか?

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

c# - Viewport3D コンテンツ サイズ

私はイメージを含む Viewport3D を持っています。これが私のコードです:

問題は、画像サイズが次のようになっていることです。

実際の画像 Viewport3D を使用すると、次のようになります。

ビューポート3D イメージ

誰か助けてくれませんか?

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

c# - wpf c# の GetEnumerator の問題

このコードを使用して、ビューポート 3d のすべてのマテリアルの色を変更したい:

しかし、エラーが発生します:

助けてください。ありがとう。

0 投票する
3 に答える
894 参照

c# - C# WPF ModelVisual3D の作成に時間がかかりすぎて、別のスレッドで実行できない

私はかなり大きなオブジェクトを作成するWPFプロジェクト(VS2010、 )を持っています(カスタムフォーマットファイルからの読み取り、情報の処理、メッシュの作成など)。これには約3〜4秒かかります。作成され、さらに2〜3秒。すること。これをすべてカスタム クラスで行い、次のメソッドを呼び出します。.NET4.0ModelVisual3DSTLmainViewport.Children.Add(ModelVisual3D)

戻り値も、​​私が作成したカスタム クラスです。

私がやりたいのは、プログラムの最初に次の1回だけです。

メイン スレッドで実行すると、UI がハングします。ワーカー スレッドで実行して呼び出すmainViewport.Children.Add(...)と、そのワーカー スレッドで作成されたリソースにアクセスできないと表示されます。ヘルプ?!

私が理解していることから、2 つのスレッドとそれぞれに属するリソースがあるところまで来ました ( mainViewport => UIThread & myModel => WorkerThread)。どちらのスレッドも他のリソースに直接アクセスできませんが、UIThread で myModel を作成して使用するとハングします... UI から十分な応答性を得たいだけなので、ユーザーはプログラムがモデルをロードするのを待っている間にプログラムを最小化できます、 これ以上何もない。どうやってやるの?UIThread ですべての CPU 負荷の高い作業を行う方法はありますか?リソースの競合が発生せず、その時間の UI のみを処理するワーカー スレッドを持つことはありませんか?

BackgroundWorkerPS:スレッドとTask<TResult>クラスで試しました。同じとは言わないまでも、結果は似ていました。

PPS: フルバージョンでは、30 ~ 40 秒以上ロードされる大規模なモデルがロードされます...

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

wpf - 3D オブジェクト データを別の XAML ファイルに移動する

複雑な 3D モデルが定義されているビューの XAML ファイルがあります。問題は、モデルを定義する部分が非常に大きく、0.5 MB を超え、ファイルを参照するのが非常に難しいことです。たとえば、Model3DGroup別のファイルに移動して、それをメインの XAML ファイルに含める方法はありますか? ルートとしてファイルを作成するSketchUpからXAMLへのコンバーターを使用している<Model3DGroup xmlns="..." xmlns:x="...">ため、便利な方法で実行できるとほぼ確信しています。

現在の XAML ファイルは次のようになります。

そして、私はこのようなことを達成したい:

@編集

McGarnagle の回答は一般的には問題ありませんが、私の場合DataTemplateUserControl.Resources. このため、次のような構造を作成する必要がありました。

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

c# - ViewPort3D の外側の RenderTargetBitmap および Viewport3D レンダリング マージン

奇妙な問題ですが、RenderTargetBitmap 関数が ViewPort3D の左側の余白をレンダリングしていることがわかりました。ビットマップ (この場合は PNG) を保存すると、最終イメージの左側にギャップがあり、右側が同じ量だけ切り取られます。ViewPort3D のサイズは、高さ 550 ピクセル、幅 1024 ピクセルです。RenderTargetBitmap メソッドで同じ寸法を使用します。なぜ定義された境界の外に出るのか、私は困惑しています。

そして背後にあるコード (VB で - 申し訳ありません):

それが入っているコンテナ(グリッド)が問題かもしれないと思っています。

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

c# - wpf 3D グラフィックスを使用して 3D モデルを 3D メッシュ オブジェクトとして表示する

C# .Net3DWpfグラフィックスを備えたプラットフォームで作業しています。コードの流れは次のとおりです。

1) kinect から深度データを取得し、3D ポイントを計算する 1 つの関数に渡します。

プライベート ボイド display3DView()

2) カメラ パラメーターと Kinect カメラの深度データを使用して 3D ポイントを計算しました

private Point3DCollection Calculate_PointCloud(float[,] ImageArray) {

3)ここでは、各 3D ポイントの法線情報を使用して三角形のセットに変換し、それらの三角形を 3D メッシュ オブジェクトに与え、viewport3D コントロールを使用して 3D メッシュ オブジェクトをレンダリングします。

private void viewModel(Point3DCollection ポイント)

4) これは、3 つの 3D ポイントを取得し、各 3D ポイントの法線を計算して三角形として 3D メッシュ オブジェクトに追加する関数です。

5) これが私の XAML コードです

幅="967" 背景="黒" />

問題は、Wpf Screen に表示された 3D モデルを取得できないことです。コード全体を確認できる人はいますか? どこが間違っているのかを理解させますか?同様に、修正を提案してください。前もって感謝します

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

c# - バックグラウンドにヒットしたときに Viewport3D マウス イベントが発生しない

MouseEventHandler を使用して Viewport3D をセットアップしました

そして、オブジェクトがクリックされると、かなりうまく機能します。私の期待は次のとおりです。オブジェクトがクリックされない場合 (ユーザーがバックグラウンドでクリックしたため)、結果は null になります。しかし、実際には mainViewport_MouseUp メソッドは呼び出されません。

私の質問: Viewport3D の背景でクリックを検出するにはどうすればよいですか?