问题标签 [3d-modelling]

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 投票
1 回答
914 浏览

c# - 将 jpeg 图像系列转换为 vti 图像文件

我在我的 C# 应用程序中使用 VTK API。请有人解释一下如何将我的 .jpeg 格式的图像系列转换为 .vti 图像文件以便能够在我的应用程序中使用它?图像系列包含连续的腹部图像。快速回复将是最合适的。提前致谢!

0 投票
2 回答
1953 浏览

android - 如何在 Android OpenGL 中创建 3D 旋转效果?

我目前正在使用 OpenGL-ES 为 Android 开发 3D 模型查看器。我想根据给定的手势创建一个旋转效果。我知道如何进行单轴旋转,例如仅在 x、y 或 z 轴上旋转。但是,我的问题是我不知道如何将它们全部 3 组合在一起,并让我的应用程序知道我想根据触摸手势在哪个轴上旋转。我想到的手势是:

  • 向上/向下滑动 x 轴
  • 向左/向右滑动 y 轴
  • 以圆周运动滑动 z 轴

我怎样才能做到这一点?

编辑:我发现 3 种类型的滑动会使这一刻变得非常难看。因此,我所做的是移除 z 轴运动。删除该条件后,我发现其他两个与相同的算法一起工作得非常好。

0 投票
2 回答
2420 浏览

c# - 在 Visual Studio 2010(WPF) 中导入 3D 模型

我在 VS2010(WPF 应用程序)中为 3D 游戏工作,我使用 Visual C# 与 OpenGL 和 GLControl,我需要有关导入 3D 模型的帮助。谷歌搜索并没有太大帮助,我需要更多关于在这些技术中导入 3D 模型的知识。

0 投票
1 回答
1752 浏览

c++ - 推荐一个库来测试“.stl”几何的“封闭性”?

一些澄清是必要的,我不是指标准模板库。我指的是'.stl 文件格式'

<我的最终目标> 一点背景知识,我的最终目标是使用 Kinect 和“点云”类型扫描来创建 .stl 文件。这些 .stl 表示将提供给 3D 打印服务以创建 3D 模型。我的点云扫描工作得非常好,并且可以简单地导出到 .stl(因为它真的没那么难)</我的最终目标>

在大多数 3D cad 软件包中,您可以将模型导出为 .stl 格式。手动创建格式非常简单,我在这里没有问题。我的问题源于大多数 3D 打印服务(PonokoShapeways 等)如果不是“封闭”(也就是“三角形”的每一边都是另一个三角形的边)将不会接受您的模型的要求,是为了创建 3D 对象而期望的。

有一些软件包(例如Nettfab)可以“修复”这些问题,但使用 3rd 方程序对我不起作用。

有没有人有任何经验或知道能够进行“封闭性”检查的“.stl”库?如果没有,我将继续前进并创建一个......但我不想把时间和精力投入到(可能)已经完成和审查的事情上......

如果存在,我也对 python 库开放。

编辑

还在寻找这个库来“修复” stl 边缘......只需进行封闭性测试就可以很容易地完成,但修复它是问题......

0 投票
1 回答
2857 浏览

3d - Triangle vertex winding order in stereolithography (STL) files (triangulated objects)

I'm working on an STL file importer and thought I'd make use of the normal given to determine the triangle winding order. Sample data with 4 triangles is included below (original data has over 70k triangles). My code's logic computes the normal assuming the vertices are specified anticlockwise, then does a dot product of this calculated normal with the supplied normal. If the result is positive, then I assume anticlockwise, else clockwise.

This logic fails on a set of files from a particular 3D scanner. When I load these files into Rhino3D though, and issue "Dir" to look at the normal direction, Rhino has the direction correct! Same with a couple of other STL viewers I've tried.

My code deduces that the vertices are supplied in clockwise order on the sample data, but when using that winding order, the model is inside-out, implying the supplied normals are wrong.

This leads me to the conclusion that it is convention for STL importers to ignore the supplied normal, and assume anticlockwise winding order. I'm looking for people with more experience in the STL file format to weigh in on whether my assumption is correct.


EDIT: My calculations for the first facet:

0 投票
1 回答
5898 浏览

c# - XNA - 3D 游戏 - 为所有模型应用灯光

我想制作一个带有 3D 图形的 XNA 游戏,我想知道一件事。假设我Model的场景中有 10 秒,我想用相同的光源来绘制它们,比如定向光。现在我知道Models 有Effects 和Effects 有照明信息等等。我的问题是,如何将相同的光源应用于场景中的所有模型,而不是每个模型都有自己的光源?有人告诉我,如果我离基地很远。

0 投票
1 回答
1173 浏览

java - 在 Matlab/Java 中将手部运动建模为 3D 曲线

我只需要一些关于我遇到的问题、去哪里等的指示。我正在为我的一个项目使用运动跟踪手套,它为每个手指和手掌返回 X、Y 和 Z 值。

我想做的是首先根据这些坐标创建每个手指运动的表示,然后将它们中的每一个附加到手掌的运动上,以获得手的表示。一旦我完成了第一步,第二步就很容易了,但是……我做不到。

我正在尝试用 Java 实现它(更好的分析可能性),但只能同时制作一个包含所有点的 3D 图。每条曲线中大约有 45,000 个,所以...您知道如何使它更像动画,例如在给定时间 t 在其 XYZ 坐标处显示一个点吗?

另一个问题是:matlab 实际上是最好的选择吗?我知道如何在 Java 中制作这个动画,但我从来没有使用 Java 进行数据管理,我怀疑它真的很擅长它。是否有另一种擅长数据管理和动画的软件/语言?还是我应该只使用Java制作动画,并使用Matlab进行分析?

谢谢!

0 投票
1 回答
494 浏览

textures - 在 Blender 2.6 中创建 md3 模型

我正在使用 Blender 2.6 创建 Quake III 格式 (md3) 的模型。我设法创建了一个 UV 贴图,并且纹理在 Blender 中正确映射。但是,当模型在游戏中使用时,纹理映射是完全错误的。我需要做的不仅仅是创建 UV 贴图吗?md3 文件似乎没有纹理对齐数据。

0 投票
1 回答
1744 浏览

java - 构建 3D 建模软件的起点

我需要构建一个简单的软件,该软件应该能够以简单方便的方式构建 3D 模型,我有很强的 Java 技能,并考虑使用 Java3D 或 Java Monkey Engine 作为我的后端。我很想听听您对如何启动这样一个项目的想法。一开始你会怎么做?

任何想法和建议将不胜感激!

0 投票
3 回答
21446 浏览

c++ - 没有相机信息的 2 张图像的 3D 重建

我是这个领域的新手,我正在尝试用 2d 图像在 3d 中建模一个简单的场景,但我没有任何关于相机的信息。我知道有3 个选项

  • 我有两张图像,并且我知道我从 XML 加载的相机模型(内部模型),例如loadXMLFromFile()=> stereoRectify()=>reprojectImageTo3D()

  • 我没有,但我可以校准我的相机 => stereoCalibrate()=> stereoRectify()=>reprojectImageTo3D()

  • 我无法校准相机(这是我的情况,因为我没有拍摄 2 张​​图像的相机,然后我需要使用 SURF、SIFT 在两张图像上找到对关键点(我可以使用任何 blob检测器),然后计算这些关键点的描述符,然后根据它们的描述符匹配右图和左图的关键点,然后从中找到基本矩阵。处理要困难得多,大概是这样的:

    1. 检测关键点(SURF,SIFT)=>
    2. 提取描述符 (SURF,SIFT) =>
    3. 比较和匹配描述符(BruteForce,基于 Flann 的方法)=>
    4. 从这些对中找到基本 mat ( findFundamentalMat()) =>
    5. stereoRectifyUncalibrated()=>
    6. reprojectImageTo3D()

我正在使用最后一种方法,我的问题是:

1) 对吗?

2)如果没问题,我对最后一步有疑问stereoRectifyUncalibrated()=> reprojectImageTo3D()。函数的签名reprojectImageTo3D()是:

参数:

  • disparity– 输入单通道 8 位无符号、16 位有符号、32 位有符号或 32 位浮点视差图像。
  • _3dImage– 输出与 . 大小相同的 3 通道浮点图像disparity。的每个元素都包含从视差图中计算出_3dImage(x,y)的点的 3D 坐标。(x,y)
  • Q– 4x4 透视变换矩阵,可以用 获得stereoRectify()
  • handleMissingValues– 指示函数是否应处理缺失值(即未计算差异的点)。如果handleMissingValues=true,则与异常值相对应的具有最小视差的像素(请参阅StereoBM::operator())被转换为具有非常大 Z 值(当前设置为 10000)的 3D 点。
  • ddepth– 可选的输出数组深度。如果为-1,则输出图像将具有CV_32F深度。ddepth也可以设置为CV_16S,CV_32S或 `CV_32F'。

我怎样才能得到Q矩阵?是否可以通过,和或以其他方式获得Q矩阵?FH1H2

3)是否有另一种方法可以在不校准相机的情况下获得 xyz 坐标?

我的代码是: