问题标签 [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 时看起来像这样:

viewport3D 图像

请问有人可以帮我吗?

0 投票
1 回答
342 浏览

c# - wpf c#中GetEnumerator的问题

我想使用以下代码更改视口 3d 中的所有材质颜色:

但它得到错误:

请帮忙。谢谢。

0 投票
3 回答
894 浏览

c# - C# WPF ModelVisual3D 创建时间太长,无法在单独的线程上完成

我有一个 WPF 项目 ( VS2010, .NET4.0),在其中创建了一个相当大的ModelVisual3D对象(从自定义格式STL文件、进程信息、创建网格等读取)这大约需要 3-4 秒。要创建和另外 2-3 秒。做一个mainViewport.Children.Add(ModelVisual3D)。我在自定义类中完成所有这些并调用此方法:

返回值也是我创建的自定义类:

我想做的就是在程序开始时执行以下操作:

如果我在主线程上执行此操作,则 UI 会挂起。如果我在工作线程上执行此操作并调用mainViewport.Children.Add(...)它,则表示它无法访问在该工作线程上创建的资源。帮助?!

据我了解,我已经达到了一个地步,即我有两个线程和属于它们每个的资源(mainViewport => UIThread & myModel => WorkerThread)。两个线程都不能直接访问对方的资源,但是在 UIThread 上创建和使用 myModel 会使它挂起......我要做的就是从 UI 获得足够的响应能力,因此用户可以在等待程序加载模型时最小化程序,仅此而已。我怎样才能做到这一点?有没有办法在 UIThread 上完成所有 CPU 繁重的工作,因此不会出现资源冲突,并且有一个工作线程只处理那个时间的 UI?

PS:我已经尝试过使用 ThreadBackgroundWorkerTask<TResult>classes。如果不说同样的话,结果是相似的。

PPS:完整版将加载大量模型,加载时间超过 30-40 秒...

0 投票
1 回答
1697 浏览

wpf - 将 3D 对象数据移动到单独的 XAML 文件中

我有一些视图的 XAML 文件,其中定义了复杂的 3D 模型。问题是定义模型的部分非常大,超过 0.5 MB,而且很难浏览文件。有没有办法可以将例如移动Model3DGroup到另一个文件中,然后将其包含在我的主 XAML 文件中?我使用 SketchUp 到 XAML 的转换器,它以创建文件<Model3DGroup xmlns="..." xmlns:x="...">的根为根,所以我几乎可以肯定它可以以一种方便的方式完成。

我当前的 XAML 文件如下所示:

我想实现这样的目标:

@编辑

McGarnagle 的回答通常是可以的,但就我而言DataTemplate,我的UserControl.Resources. 正因为如此,我不得不创建这样一个结构:

0 投票
2 回答
769 浏览

c# - 在 ViewPort3D 之外的 RenderTargetBitmap 和 Viewport3D 渲染边距

奇怪的问题,但我发现 RenderTargetBitmap 函数正在渲染 ViewPort3D 左侧的边距。当我保存位图(在这种情况下为 PNG)时,最终图像的左侧有一个间隙,而右侧被切掉了相同的数量。ViewPort3D 的尺寸为 550 像素高 x 1024 像素宽。我在 RenderTargetBitmap 方法中使用相同的尺寸。我很困惑为什么它超出了定义的界限。

后面的代码(在 VB 中 - 抱歉):

我认为它所在的容器(网格)可能是问题所在。

0 投票
1 回答
5122 浏览

c# - 使用 wpf 3D 图形将 3d 模型显示为 3D 网格对象

我正在C# .Net使用 3DWpf图形的平台上工作。下面是代码流程:

1) 我从 kinect 获取深度数据并将其提供给一个计算 3d 点的函数。

私人无效 display3DView()

2)我用Kinect相机的相机参数和深度数据计算了3D点

私人 Point3DCollection Calculate_PointCloud(float[,] ImageArray) {

3)在这里,我转换为具有每个 3D 点的法线信息的三角形集,并将这些三角形提供给 3D 网格对象并使用 viewport3D 控件渲染 3d 网格对象

私人无效视图模型(Point3DCollection 点)

4)这是一个函数,它通过计算每个 3D 点的法线,将三个 3D 点作为三角形添加到 3D 网格对象中

5) 这是我的 XAML 代码

宽度=“967”背景=“黑色”/>

问题是我无法在 Wpf 屏幕中显示 3D 模型。请任何人都可以查看整个代码吗?让我明白我哪里出错了?以及建议我进行更正。提前致谢

0 投票
1 回答
2069 浏览

c# - Viewport3D 鼠标事件在点击背景时不会触发

我用 MouseEventHandler 设置了 Viewport3D

单击对象时它工作得很好。我的期望是:如果没有点击任何对象(因为用户点击了背景),结果为空。但实际上 mainViewport_MouseUp 方法甚至没有被调用。

我的问题:如何检测 Viewport3D 背景上的点击?