问题标签 [wavefront]
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.
indexing - directX 9 中的对象加载器
我写了一个程序来在directx 9中加载一个obj文件。我所做的只是从文件中读取顶点数据和索引数据(我没有读取任何纹理或顶点法线数据)。然后我将这些数据直接插入顶点和索引缓冲区。
当我运行代码时,对象被渲染,但它们不是正确的形状。网格变形。这是我的代码 -
当我显示一个立方体时,它只显示了一半,并且缺少一些面。我怀疑是索引缓冲区有问题,但我不知道如何解决。
我真的需要帮助。谢谢大家。
opengl - 如何使用 libg3d 将波前模型加载到 OpenGL
我正在做我的论文项目。我需要一些帮助来尝试将波前 (.obj) 模型加载到 OpenGL。我一直在寻找,我找到了可以让你加载各种 3d 模型格式的Libg3D 。
我在理解如何加载模型以及是否可以通过 libg3d 将模型加载到我的 opengl 应用程序时遇到问题。
opengl - 将 OpenGL 中的网格渲染为一系列子组?
我正在完成一个波前对象解析器,我想用它来构造通用网格对象。我的引擎使用 OpenGL 4 和着色器来绘制引擎中的所有内容。
我的问题是关于如何确保渲染网格的最佳渲染效率。
波前.obj 文件通常指定了许多对象子组。
可能会为子组分配特定的材料(例如闪亮的红色)。
因此,网格可能是相当复杂的子组集合,每个子组都分配有自己的材质。
我的问题是——
问:我是否需要分别绘制每个子组,例如为每个子组调用 glDrawElements ?(因此,如果我有 4 个单独的子组,我将不得不进行 4 次 glDrawElements 调用,从而通过 4 次统一更改(对于材质/纹理)调用着色器 4 次)
如果这是正确的,那么我将不得不计算:
每个子组中的索引(意味着每个子组有一个单独的索引数组和 VAO) 子组开始的顶点偏移量
这似乎非常低效,我是在吠叫错误的树吗?
此外,来自Wavefront obj wiki 页面:
谁能建议平滑着色值表示什么?例如 s1、s2、s4 等。
c++ - 如何组织要渲染的对象
我想渲染从波前 obj 文件导入的对象。该对象具有多个组和材质:
模型的不同部分需要单独渲染,因为它们具有不同的材质。
我将构建一个包含有关模型的信息的容器,并且我想知道组织要渲染的对象的“队列”的最佳/常用方法是什么。
我的想法,我不知道它是否好,如下(使用伪代码):对于每个组,g
将所有顶点信息存储在 object 中VertexInformation g1, g2
,并将每个usemtl
关于面(和使用的材料)的信息存储在FaceInformation f1, f2, f3, f4
.
然后渲染将如下所示:
g1
或者也许更好地一次加载所有顶点g2
?
是这样吗?或者它有一些巨大的缺点?
java - WaveFront .obj 文件 - “f”命令有什么作用?
我一直在阅读David Brackeen 的用 Java 开发游戏。直到现在我都明白了书中的一切。在 Wavefront 对象文件中,我了解该v
命令的作用,但我不了解该f
命令。例如:
f
命令在这里做什么?
java - 波前 .obj .Mtl 结构
我正在尝试使用 lwjgl 在 Java 中加载 .obj 文件,而无需使用任何库来执行此操作。我创建了一个类来加载没有材质和纹理的模型。这很容易。但现在我想用材质和纹理来加载模型。我的问题是关于 .mtl 文件的知识。我在任何地方都没有找到 .mtl 文件的任何解释。但我需要知道这些 Ka、Kd、Ks、Tr、Ns 和 map_... 是什么意思。也许有人知道网络上某个地方的一个很好的解释?
我的第二个问题是关于 .obj 文件中纹理的纹理坐标。我不明白如何在具有 2D 纹理坐标的 3D 模型上绘制 2D 纹理,因为您需要 3D 房间中的第三个值,因为 3D 房间中的 2D 平面也需要每个顶点 3 个值。
blender - Wavefront .obj 文件的规格是什么?
我想为 Blender 的 .obj 文件编写一个解析器。文件格式似乎不言自明,但似乎也缺少一些数据。例如,一个简单的立方体(默认的 Blender 立方体)有 8 行顶点,但我期望看到 36 行(12 个三角形组成一个立方体)。
我认为,至少对我来说,这种困惑源于在 direct3d 中创建立方体的方式。Direct3d 需要 36 个顶点来形成一个立方体。所以我认为我需要推断其他 28 个顶点。当尝试解析更复杂形状的顶点时,这种类型的猜测可能会导致问题。所以,我想如果我能找到有关文件格式的官方规范,它可能会为我提供一些关于如何解释数据的见解。
之前似乎有人问过同样的问题:如何从 DCC 工具(如 Blender)中获取 OBJ 文件中适当数量的顶点以用于 OpenGL ES? 但它对我没有任何有用的信息。
android - 将波前文件绘制到 android opengl gles20
这是我的问题。我试图从资产中读取波前 obj 文件,显然它可以正确读取,但是当我尝试将对象绘制到 8 个三角形的 glsurfaceview 2 上时,没有绘制,我不知道为什么。
这是 obj 文件(一个八面体):
这是读取文件的代码:
这是将对象绘制到 opengl GLES20 中的代码:
php - 来自php中多维数组的3d波前对象坐标数据
嗨,我做了一个简单的脚本(算法)来用 php 解析波前目标文件。我可以提取每个顶点的 3d 坐标并将它们分配到一个数组中,我有每个顶点的数组 $y、$x、$z。我的目标是围绕主坐标创建一个顶点立方体,所以我将每个轴的负坐标和正坐标转换为绝对值,然后将它们除以分离距离。
例如:
相同的过程为我提供了每个轴的 $number_of_vertex 。从中我可以使用循环来创建新点的 x、y、z 坐标,以在我的 3d 形状周围形成一个点的立方体。我的最终目标是只保留原始 3d obj 02.0000 以内的点,这是一种三角测量形式,我想就如何有效地做到这一点提供一些建议。
首先形成一个立方体然后提取端点对我来说很重要,因为我希望结果对象是原始对象的细分版本,由类似于用于 3d 打印的 gcode 的相同大小的矩形面制成,但在我的情况下,我的对象将是由多个小方脸组成。
谢谢,我希望我的目标足够明确。
opengl - Wavefront *.OBJ 文件中的第三个纹理坐标
Wavefront *.OBJ文件中纹理坐标中的第3个分量是什么意思?
文件看起来像
更新模型是在 3DS Max 中创建的,源纹理是 PNG 文件。所以纹理是二维的
更新 2
当我翻转第二个坐标时,当我使用 OpenGL 渲染它时,纹理看起来正确。第三坐标
u1 = u v1 = 1 - v
w - 根本不使用。