问题标签 [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 投票
0 回答
986 浏览

c# - 如何在 WPF viewport3D 中围绕自己的轴旋转相机?

我正在开发 WPF 中的 3D 应用程序并且遇到了相机问题。应该可以使用鼠标围绕自己的轴旋转相机(换句话说,环顾四周),但我无法让它正常工作。我使用以下代码创建相机:

然后我尝试使用以下代码旋转它:

然而,看起来旋转并没有在相机周围发生,而是在其他地方发生。我在位置 (0,0,0) 加载的模型在我绕 z 轴旋转 180 度后变得可见,这不应该是这种情况。

我错过了什么?

0 投票
1 回答
605 浏览

wpf - 在 WPF 应用程序中加载到 HELIX 的 3D 视口后如何最小化 STL 文件

您好,我创建了一个应用程序,用户可以通过该应用程序导入 STL 文件,我已将其作为 WPF 应用程序并尝试使用 Helix 3D 工具包打开文件,但问题是当我尝试打开 STL 文件时图像被放大而且我无法最小化它的大小/保持它适合中心。在此处输入代码 请找到我为打开 STL 文件编写的附加代码。 MainWindow.XAML//导入的helix 3d工具包,用于打开STL文件

helix:HelixViewport3D x:Name="viewPort3d" ZoomExtentsWhenLoaded="True" CoordinateSystemHeight="100" Margin="0,50,0,0"

MainWindow.XAML,cs File// on button click 我正在导入 STL 文件。

请找到以下图片以便更好地理解

我的输出 在此处输入图像描述

所需输出 在此处输入图像描述

您能帮我在加载到 viewport3D 后如何最小化 STL 文件大小吗?

提前致谢

0 投票
0 回答
209 浏览

c++ - 在 OpenGL 上使用两个视口在鼠标单击时绘制对象

我正在尝试在我的 opengl 程序中通过鼠标单击来渲染多边形,但我遇到了问题。基本上它在我使用一个视口时有效,但是当我尝试放置两个视口时,正方形不再出现在正确的位置。计算正确位置的鼠标函数是上面的 GMouse。

我使用 y = 250-y 因为视口的宽度为 250,但窗口大小为 (500,500) 并且 InitWindowPosition 为 (0,0),如上面 view() 函数中所述。

0 投票
1 回答
276 浏览

wpf - 在 Viewport3D 的顶部渲染 Visual 3D 容器

使用 Helixtoolkit,您已经设置了一个场景(视口)。添加了相机、默认灯光、网格等。您还添加了一个 SortingVisual3D,例如,您可以在其中添加各种框元素。它们在放置在视图中时被渲染。一切都很好。

现在我想要实现的是为 3D 对象创建一个新的容器,我的移动 Gizmo 将被放置在其中(每个对象都有一个)。如果我将 gizmo 添加到排序容器,它可能不可见(框重叠 gizmo),所以我需要一个单独的容器,它必须呈现在所有内容之上。

如何将容器(内容)设置为在所有内容之上渲染 - 无论其物理位置如何,同时在旋转相机时仍将其保持在正确的 3d 空间中。像3dsmax 这样的东西 (example)

Tnx

0 投票
1 回答
811 浏览

c# - 拉伸四边形以适合矩形

我正在开发一个 WPF 应用程序,它必须允许用户定义任何四边形以用作相机框架的裁剪区域。这是通过用线连接的四个点覆盖视频流来实现的,以可视化应该在输出图像中使用哪个区域。

作为给我带来麻烦的第二步,我想展示将选定的四边形转换为矩形的结果。我已经设法使用 opencv 的warpPerspective函数来做到这一点,但事实证明这很慢(处理器很重)。

我相信它也可以通过 WPF(GPU 加速)使用Viewport3D和 3D 转换来完成。我发现了一篇非常有用的文章,它使我找到了以下代码

不幸的是,这与我需要的相反 - 它将框架角移动到Corners集合中定义的点,而我需要将定义的点放在Canvas' 角中。

在下面的图像中,矩形和内部四边形之间的区域将被剪裁,而四边形的内容应该被拉伸以适合外部矩形。 我的意图的可视化

我必须应用另一种转换来实现这一目标吗?也许有一个简单的转换可以应用于框架角坐标以将定义的点移动到那里?

0 投票
1 回答
782 浏览

c# - 如何在 WPF 中将 ViewModels 对象数据绑定为 3DModels

我正在开发一个应用程序,该应用程序正在生成一堆代表木板的 ViewModel 实例集合(所有需要attriuttes-x,y,z,posx,posy,posz)。这工作正常。

现在我想在 3d 环境中可视化应用程序内部的这些木板:

我找到了很多如何viewport3d Frameworkelement3dobject. 我一直在尝试和试验,但我没有找到一个示例来说明如何对整个集合进行数据绑定、转换单个框、旋转和调整它们的大小。

有谁知道如何在 WPF 中绑定 3D 视图模型集合?

0 投票
1 回答
2342 浏览

c# - 在 C# 中将 PerspectiveCamera 朝它所面对的方向移动

我目前正在使用带有Viewport3D摄像头的 wpf 应用程序。我正在创建一个 3D 演练模块。我希望我PerspectiveCamera在外观方向改变后根据它所面临的方向移动。我正在使用我的键盘来控制移动,例如::
NUMPAD8向前
NUMPAD2移动:向后移动
NUMPAD4:向左
NUMPAD6旋转:向右旋转

下面这个方法是检测键盘事件:

这是计算旋转:

这是计算相机运动:

旋转计算工作完美,但移动似乎效果不佳,因为它根据相机位置而不是旋转后的面向方向移动相机。

0 投票
1 回答
592 浏览

java - libgdx如何将屏幕分成4个部分

这就是我希望我的屏幕看起来的样子: 主屏幕 在左上角我需要 63d models所以我将使用PerspectiveCamera. 右上角的笑话需要提供一些数据,所以我将使用scene2d. 3d models当将被 a 淹没时,左下角需要一个组合,batch.dra()PerspectiveCamera有关模型的数据将是 a scene2d。在右下角,我需要一个scene2d table来显示所有连接的用户。我的问题是如何将屏幕拆分为 4,以便屏幕的每个部分都以不同的方式呈现。

0 投票
1 回答
1170 浏览

c# - 获取WPF中Viewport3D中所有Point3D的列表

是否有一种简单的方法可以返回 WPF 中 Viewport3D 对象中存在的所有 Point3D 的列表?我需要这个集合来确定 XYZ 边界,以便我可以定位相机,使所有 Point3D 都在视野内。

如果没有简单的方法,我需要迭代哪些集合以确保捕获所有 Point3D?

0 投票
1 回答
100 浏览

c# - 大型 ModelVisual3D 停止渲染

我正在尝试渲染一个相当大的(三角形计数和跨度Viewport3DModelVisual3D,如果最后一个三角形(在模型中)离开屏幕,它就会消失MeshGeometry3D,尽管模型的其他部分仍在屏幕上。特定问题三角形在下图中以红色圈出。我说它是一个大型模型,但是当它正确渲染时,它不会降低帧速率。然而,大约有 150 个绿色拱门,都在同一个网格中。有趣的是,蓝线没有表现出同样的问题。

我可以通过将模型分解成更小的部分来解决这个问题。但是,这并不理想。

不起作用的事情:

  • 设置Viewport3D.ClipToBoundsfalse
  • 修改 FarPlaneDistanceNearPlaneDistance

值得注意的是,这是托管在WinForms.

在此处输入图像描述

编辑:我收回它,即使我分解模型,问题仍然存在,只是规模较小(每个模型的最后一个三角形必须保留在屏幕上)。