标签: mesh

C++ OpenGL 网格渲染

我知道互联网上有很多关于此的资源,但它们似乎并没有帮助我。

我想要实现的目标:
我正在从将顶点存储在vector<Vector3>.
( Vector3is a sctructcontains float x, y, z)
它将三角形存储在map<int, vector<int>>
( 地图的关键是子网格和vector<int>三角形) 中
的 uv vector<Vector2>
(Vector2是一个struct包含float x, y)
和一个颜色值vector<Color>
( 颜色值适用于顶点,就像 uv 一样)

现在我想编写一个可以读取该数据并以最高性能将其绘制到屏幕上的代码

我得到了:

static void renderMesh(Mesh mesh, float x, float y, float z) {
    if (mesh.triangles.empty()) return;
    if (mesh.vertices.empty()) return;
    if (mesh.uvs.empty()) return;
    glColor3f(1, 1, 1);
    typedef std::map<int, std::vector<int>>::iterator it_type;
    for (it_type iterator = mesh.triangles.begin(); iterator != mesh.triangles.end(); iterator++) …
Run Code Online (Sandbox Code Playgroud)

c++ opengl mesh

7
推荐指数
1
解决办法
1万
查看次数

三 JS - 如何用 Y 平面切割 3D 对象?

是否可以使用 Three JS 切割网格或具有我们可以移动的平面(主要是 Y 轴)的对象?我想要显示在这张图片中的相同功能:

带有 3D 对象的 Y 平面

目标是保持网格完整,以允许用户移动平面并查看 Y 平面函数中的网格。

javascript 3d mesh three.js

7
推荐指数
1
解决办法
4090
查看次数

Python 3.6 Windows 上的 PyMesh 安装

我正在尝试在 Python 3.6 上安装 Pymesh。

在我的第一次尝试中,我通过 pip 安装,但是它安装了一个比我想要的错误的 PyMesh。它安装了以下内容,https://pypi.org/project/pymesh/,而我想要https://pymesh.readthedocs.io/en/latest/

我卸载了它,并尝试安装后来的 PyMesh,但是没有运气。没有关于窗户的说明。我从github下载了源代码。我提取并粘贴到 C:\Python36\Lib\site-packages

然后我跑了python3 setup.py build- 当出现错误时,我也尝试了python3 setup.py install,它奏效了。但是,我无法执行网页中提到的简单基本命令:https : //pymesh.readthedocs.io/en/latest/basic.html

它说 pymesh 没有模块名称 load_mesh。

寻找有关如何为 Windows 正确安装 pyMesh 的过程或想法。

windows mesh python-3.x

7
推荐指数
1
解决办法
2506
查看次数

Julia 中的 3D 网格数据插值

我正在努力将一些 MATLAB 代码转换为 Julia。我有一些 3D 网格数据(温度随时间和二维变化)并且想要从 (x,y,t) 网格更改为更松散的 (xi,yi,ti) 网格。在 MATLAB 中,这将是一个简单的interp(x,y,t,T,xi,yi,ti).

我尝试使用Interpolations, Dierckx,但两者似乎都只适用于二维网格数据。我有什么问题吗?我对 Julia 编程很陌生...

我已经在考虑通过PyCall一些NumPy/SciPy功能解决问题的可能性。

谢谢!

python matlab interpolation mesh julia

7
推荐指数
1
解决办法
431
查看次数

如何在Java中对某些形状进行三角测量/镶嵌?

我想从GeoTools镶嵌国家形状,在地球表面上以3D形式显示.GeoTools使用内部功能丰富的JTS拓扑套件.

是否包含镶嵌某些形状的实用程序?我看到有三角测量包,但无法弄清楚,如何将其用于带孔的形状.

另外,我不仅可以像这里一样连接现有的顶点

在此输入图像描述

它应该填充内部有多个顶点的形状.

UPDATE

我发现,JTS包含ConformingDelaunayTriangulationBuilder允许以某种方式制作希望镶嵌的类,但它的工作很糟糕.首先,它只允许约束,这意味着需要额外的代码来从凹陷区域中删除三角形.并且它还试图保留细分的Delaunay性质,这导致创建许多其他部分.

最后,它导致ConstraintEnforcementException复杂的形状像国家和无法使用.

我还发现了"三角形"包,用C语言编写并实现了Chew的第二种算法,效果很好

在此输入图像描述

现在我想知道,它是移植到Java还是包含它?

java jts mesh geotools tessellation

6
推荐指数
1
解决办法
1636
查看次数

设置网格透明度 Meshlab

我在使用 MeshLab 时遇到问题。我有三个网格,一个在另一个网格中,我想设置网格的透明度,以便我可以看到三层网格。Meshlab 有没有办法设置网格的透明度?非常感谢马可

3d transparency mesh meshlab

6
推荐指数
1
解决办法
3799
查看次数

如何使用Meshlab在.ply文件中画线?

例如,我想从所有点云中选择两个点,并在它们之间画一条线。我正在使用 Meshlab 处理 .ply 文件,但我不知道如何完成。我可以使用 Meshlab 或其他方式做到这一点吗?

3d mesh 3d-reconstruction meshlab ply-file-format

6
推荐指数
1
解决办法
2326
查看次数

在 Unity 中创建 2D 圆形网格

我目前有一个“CreateMesh”脚本,可以将其作为具有网格渲染器和网格过滤器的对象的组件,并且在给定“MeshType”变量的情况下,使用网格尺寸中的多边形碰撞器创建二维网格设置为“tri”或“box”(分别用于三角形和矩形网格。)我还想添加创建圆形网格的能力,但是从一些研究中我意识到这并不像我第一次那么简单想法。但是,我还没有找到任何有帮助的东西。

这是我的长方体和三角形网格的代码:

public float width = 5f;
public float height = 5f;

public string meshType;

public PolygonCollider2D polyCollider;

void Start()
{
    polyCollider = GetComponent<PolygonCollider2D>();
}

// Update is called once per frame
void Update () {
    if (meshType == "tri")
    {
        TriangleMesh(width, height);
    }
    if (meshType == "box")
    {
        BoxMesh(width, height);
    }

}

void TriangleMesh(float width, float height)
{
    MeshFilter mf = GetComponent<MeshFilter>();
    Mesh mesh = new Mesh();
    mf.mesh = mesh;

    //Verticies
    Vector3[] verticies = new Vector3[3]
    {
        new Vector3(0,0,0), …
Run Code Online (Sandbox Code Playgroud)

c# mesh unity-game-engine

6
推荐指数
1
解决办法
7955
查看次数

在 matplotlib 中使用三角测量时,如何处理在几何图形边缘之间形成的(不需要的)三角形

我有一个用空间中的 (x,y) 点列表定义的几何图形。我想用这些数据创建一个三角形网格,因此我尝试了matplotlib 中的三角测量函数来实现此目的。然而,由于我的几何体有一些曲线,该算法在我的零件的边缘之间生成不需要的三角形:

图像

红色曲线是我的几何图形的边缘。

有什么办法可以解决这个问题吗?也许三角测量功能不是我需要的,在这种情况下,您对使用什么有什么建议吗?

以下代码来自该示例。在示例中,他们通过显式命名三个点来定义三角形,而不是我想通过调用函数来使用的 Delaunay 三角剖分triang = tri.Triangulation(x, y),这将给我提供与原始图片相同的行为。

import matplotlib.pyplot as plt
import matplotlib.tri as tri
import numpy as np

xy = np.asarray([
    [-0.101, 0.872], [-0.080, 0.883], [-0.069, 0.888], [-0.054, 0.890],
    [-0.045, 0.897], [-0.057, 0.895], [-0.073, 0.900], [-0.087, 0.898],
    [-0.090, 0.904], [-0.069, 0.907], [-0.069, 0.921], [-0.080, 0.919],
    [-0.073, 0.928], [-0.052, 0.930], [-0.048, 0.942], [-0.062, 0.949],
    [-0.054, 0.958], [-0.069, 0.954], [-0.087, 0.952], [-0.087, 0.959],
    [-0.080, 0.966], [-0.085, 0.973], [-0.087, 0.965], [-0.097, …
Run Code Online (Sandbox Code Playgroud)

python mesh matplotlib

6
推荐指数
2
解决办法
3253
查看次数

如何将 3D 点云 (.ply) 转换为网格(具有面和顶点)?

我有一个包含 100 万个点的 3-D 点云文件,我需要将其转换为 trimesh 中的网格文件。这里的最终目标是获取一个点云并确定该点云是凸面还是凹面(trimesh 允许我在将云转换为网格后这样做)。我愿意接受其他图书馆来解决这个问题。

我已经尝试使用 scipy 进行 Delaunay 三角剖分,但似乎无法将我的点云转换为正确的格式,以便trimesh 可以读取它。

import open3d as o3d
import numpy as np
import trimesh
from scipy.spatial import Delaunay


pointcloud = o3d.io.read_triangle_mesh("pointcloud.ply")
points = np.array(pointcloud.points)
triangle_mesh = Delaunay(points)
#  How do i include triangle_mesh from Delaunay triangulation into processing the mesh file?
mesh = trimesh.load("pointcloud.ply")
print(trimesh.convex.is_convex(mesh))
Run Code Online (Sandbox Code Playgroud)

错误

geometry::TriangleMesh appears to be a geometry::PointCloud (only contains vertices, but no triangles).
geometry::TriangleMesh with 1390073 points and 0 triangles.
expected = (faces.shape[0], faces.shape[1] * …
Run Code Online (Sandbox Code Playgroud)

python mesh delaunay point-clouds trimesh

6
推荐指数
1
解决办法
2万
查看次数