- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发 3D LibGDX 项目,并尝试操作 3D 模型的顶点。我已经加载模型,并将其作为我的代码:
Model plain = assets.get("plain.g3db", Model.class);
for(Mesh m : plain.meshes){
float[] t = m.getVertices(new float[m.getMaxVertices()]);
float[] newVerticies = new float[m.getMaxVertices()];
for(int i = 0; i < t.length-1; i++){
newVerticies[i] = t[i];
System.out.println("X: " + t[i] + " " + i);
newVerticies[i] = t[i];
System.out.println("Y: " + t[i++] + " " + i);
newVerticies[i] = random.nextInt(1-0) + 0;
System.out.println("Z: " + t[i++] + " " + i);
newVerticies[i] = t[i];
System.out.println("R: " + t[i++]);
newVerticies[i] = t[i];
System.out.println("G: " + t[i++]);
newVerticies[i] = t[i];
System.out.println("B: " + t[i++]);
newVerticies[i] = t[i];
System.out.println("A: " + t[i++]);
}
m.setVertices(newVerticies);
}
这并不像我想要的那样工作,但我至少可以看到模型。如果我注释掉这些行:
newVerticies[i] = t[i];
System.out.println("R: " + t[i++]);
newVerticies[i] = t[i];
System.out.println("G: " + t[i++]);
newVerticies[i] = t[i];
System.out.println("B: " + t[i++]);
newVerticies[i] = t[i];
System.out.println("A: " + t[i++]);
我刚刚遇到黑屏。即使我四处走动,我也什么也看不见。我想知道的是,到底是什么float[] t = m.getVertices(new float[m.getMaxVertices()]);
输出。输出如何与模型对应?如何使Y值在一定范围内随机?
最佳答案
网格数据被组织到 VertexAttributes 中。这些始终包括位置,但也可以包括颜色、纹理坐标、法线等。例如,具有纹理的网格可能具有以下内容:
因此,使用 mesh.getVertices()
获得的 float 组将是每个顶点的这组 8 个浮点,一个接一个。
如果您从模型文件加载网格体而不是手动构建它,您可能不确定它具有什么 VertexAttribute 设置,因此您需要检查它以找出所需属性的偏移量是多少:
int positionOffset = mesh.getVertexAttributes().getOffset(Usage.Position);
int yOffset = positionOffset + 1; //skip X
int vertexSize = mesh.getVertexSize() / 4; //divide to convert bytes to floats
现在,如果你想改变 Y,你可以像这样循环遍历顶点:
//this is how to get the properly sized mesh:
float[] vertices = new float[mesh.getNumVertices() * mesh.getVertexSize() / 4];
mesh.getVertices(vertices);
for (int i = yOffset; i < vertices.length; i += vertexSize){
vertices[i] += someValue;
}
mesh.setVertices(vertices);
索引表示构成网格三角形的三个顶点组。如果网格上的多个顶点在多个三角形上相同,则它们可能仅在顶点列表中出现一次。这通常发生在网格的软着色顶点上,因为接触该顶点的所有相邻三角形的 UV 和法线都是相同的。
关于java - LibGDX 的 mesh.getVerticies 输出什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38731806/
我正在尝试安装 libmesh用于并行计算(固体力学问题)。 在安装过程中,我可以看到配置摘要,其中指出我在计算机上安装了几乎所有依赖项,但是一些重要功能,例如infinite elements和 n
我对 OGRE 图形引擎比较陌生,所以我的问题可能看起来太明显了,但是搜索相关信息没有成功。 鉴于: 我有一个 OGRE 应用程序,其中包含由一些网格、灯光、相机和纹理创建的场景。这很简单,我想。这一
给定一个网格(如左侧的立方体对象)和另一个自定义的类似球体的网格(右侧;如果更容易,它可以是另一种形状),Unity 和 C# 中的一个如何在运行时软包裹第二个网格围绕第一?谢谢! 最佳答案 以下方法
我有一个父节点的 webroot 路径,想返回这个节点的子节点。 使用 https://demo.getmesh.io/api/v1/demo/webroot/images/例如只产生节点本身。 最佳
我花了几个小时试图弄清楚为什么我看不到立方体内的文本,而且我不明白为什么它不起作用。 有两个网格,其中一个在另一个网格内部,但不可见。 当我注释将立方体网格添加到我的组中的行时,会出现文本(第 34
我正在将 GLTF 模型加载到 threejs 中。对象上使用的所有 Material (还有很多)都使用网格基础 Material ,我们希望它们是可以受光影响的 Material 。有没有办法将所
这是我第一次在这里发帖。我正在使用 python 制作房屋的 3D 模型,我想使用 FreeCAD 可视化输出。我找到了写入 dxf 格式的 ezdxf 接口(interface)(https://p
我想从点云生成视觉上吸引人的表面重建。 我正在使用点云库。我尝试使用泊松重建方法创建网格,但后来发现它提供了水密重建。 例如:在我的情况下,我有一个房间的点云 使用 http://justpaste.
我在 ogre3d 中使用了bulletphysics。为了让它们共享相同的顶点数据,我使用了这个: http://www.ogre3d.org/tikiwiki/BulletMeshStrider
我有一个从给定网格(形状)获取主曲率的问题。 我正在尝试使用 Matlab 文件交换中的“patchcurvature”方法。然而,该方法总是给出正曲率。我认为可能是该方法将网格视为单独的补丁,并计算
我正在寻找一种算法,该算法可以接收3d表面网格(即由3d三角形组成的一些流形的离散化)并在网格体积内生成四面体。 即,我想要与这个2d问题等效的3d:给定闭合曲线,对它的内部进行三角剖分。 很抱歉,如
我有一个包含彩色点云的 .ply 文件: 我需要将其转换为纹理网格。我可以创建一个空白网格: 过滤器 -> 点集 -> 表面重建:泊松 但结果是一个白色的网格 似乎所有关于颜色的信息都丢失了。有什么建
我有一个三角形网格类,其中包含一个节点列表(在我的情况下为 2d,但这无关紧要)和一个面列表。每个面都是一个三角形,它只包含节点数组的索引。网格来自 Delaunay 算法,因此非常干净。 对于网格中
我有一组点需要构建为一组三角形面以形成实体网格。我看过德劳内三角测量,但没有一个有意义。关于从哪里开始有什么建议吗?我不处理复杂的形状,它们最多包含 200 个顶点。 注意:这些点位于 x,y,z 空
我有一组点需要构建为一组三角形面以形成实体网格。我看过 Delaunay Triangulation,但没有任何意义。关于从哪里开始的任何建议?我不处理复杂的形状,它们最多包含 200 个顶点。 注意
最近我得到一个三角形网格,但是网格上三角形的法线方向是不一致。是否有任何算法可以使法线一致?从一本书中,它说“通常传播法线的方向沿着相邻补丁之间的最小生成树预处理步骤或隐含地遍历输入 [Hoppe等。
我正在用 Java3D 创建莫比乌斯带。我有一条缝,我似乎无法摆脱它!我假设它与法线有关,而且连接边之间的角度差在技术上是 180 度。谁能帮我去掉这个接缝? 这是我的代码: public c
比方说 data是一个大小为 129 * 129 的矩阵. 通过使用 mesh(data, 'FaceColor', 'none', 'EdgeColor', 'black') 我们得到类似的东西 我
网格和几何体之间有什么区别?它们不是一样的吗?即形成三角形的顶点的集合? 最佳答案 点是几何体,但它不是网格。曲线是几何体,但它不是网格。等值面是几何体,但它不是……现在您明白了。 网格是几何体,而不
我认为 OpenMesh 将支持对面边缘顶点的随机访问。我能找到的只是迭代器和循环器: for( auto v : mesh->vertices() ) mesh->point(v).data
我是一名优秀的程序员,十分优秀!