问题标签 [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.

0 投票
1 回答
255 浏览

android - 绑定太多纹理(超过 100 个)会导致错误

我有一个代码以 obj 和 mtl 格式呈现对象(android - opengl es 1.1)对于小对象(很少纹理)我没有问题但是当纹理数量超过 30-40 时,我在我的 logcat 中收到这个:eglLockWindowSurface 失败将内存映射到...我在onSurfaceCreated使用glBindTexture和加载所有纹理texImage2D(全部到单个纹理单元)。并绑定它们以供绘制onDrawFrame

究竟是什么问题?我搜索了几个小时,但除了纹理图集之外找不到任何解决方案。由于我的公司给了我 blender/3dsmax 的导出文件,我不能使用这种方法。我怎样才能避免这个错误并使用太多的纹理?

提前致谢。

0 投票
0 回答
758 浏览

opengl-es - 与 obj/mtl 文件混淆

我真的对 obj 和 mtl 文件以及它们之间的关系感到困惑。我搜索并阅读了这些格式,但不太了解。我需要有人简要解释这些格式的逻辑,因为我有一个代码可以通过获取不正确的 obj 和 mtl 文件来呈现对象。(安卓opengles 1.1)

假设我们在 obj 中有这些行

以及 mtl 文件中的这些行

上层材质使用纹理,下层不使用。但两者都在“f”行中使用纹理数据!我应该为我标记的线使用什么纹理?一般来说,我与不参考纹理的材料下面的面有什么关系?同一种材料也有多种用途。这背后的原因是什么?

0 投票
1 回答
107 浏览

java - LWJGL 的显示问题

编辑:我已经回答了这个问题并且代码已经更改,所以它是可用的,请随意在您自己的项目中使用代码。亲切的问候,利亚姆

我目前正在使用 LWJGL 进行 3D 模型渲染,我遇到了一个问题,当我运行程序时,显示出现并且除了模型之外一切都可以工作。我测试了 3D 空间代码,绘制了一些随机点,我可以看到它们并四处走动,所以我的 3D 空间代码可以工作,但模型代码不能。

我的问题如下,是我的显示代码有问题还是我的模型加载代码,以下是我的源代码(很抱歉代码量很大,但我无法缩短它)。

游戏主线:

模型加载/渲染代码:

谢谢,利亚姆。

0 投票
0 回答
1482 浏览

size - opencl 最大工作组大小

Opencl 定义了最大工作组大小。这是什么原因?-是硬件限制还是软件设计?为什么我不能使用任何工作组大小?- 任何情况下,工作组都被“划分”为波前。每个波前确实应该有工作项的数量,这等于计算单元 (CU) 的处理元素 (PE) 的数量。因此,大小为 n 的工作组将是执行于

细胞(n/wavefront_size)

0 投票
1 回答
359 浏览

java - 无法弄清楚这个 Obj 文件解析器有什么问题

我很难弄清楚我的 obj 文件解析器有什么问题,它只是绘制了一些倾斜的三角形而不是立方体形状。解析器的代码

使用opengl初始化绘制它的代码

和drawOnFrame

0 投票
2 回答
2634 浏览

matlab - matlab中光波叠加的可视化

我写了一些快速代码,用于可视化空间中具有不同幅度的两个波的叠加,点源几何。这适用于 khanacademy CS 平台。http://www.khanacademy.org/cs/superposition/1245709541但我无法在 matlab 中重现确切的现象。我得到的只是一个嘈杂的图像。这与随机数生成的差异有关吗?我不知道 random(0,1)(in JS) 和 rand(in matlab) 有什么不同。

这是matlab代码

图像平面上点 x,y 的波叠加函数

测试脚本

0 投票
1 回答
1723 浏览

c++ - 如何在 DirectX 中标准化模型大小?

我在 DirectX 中创建了一个简单的“引擎”,它可以从 .obj 文件加载和渲染模型。对于我创建的对象,它可以正常工作,例如,坐标在 -1.0 到 1.0 范围内的简单立方体。然而,加载一个使用不同单位并且坐标在 -2k 到 2k 范围内的模型会导致一个巨大的东西,它甚至不完全适合深度缓冲区,所以我看到一个巨大的腿或类似的效果。

我记得在某处读过它,但最近我经历了很多 DX 的东西,我不记得它在哪里或是什么。所以我的问题是,假设我希望能够加载使用不同单位的不同模型,那么确保它们都具有相似尺寸并很好地适合屏幕的最佳方法是什么?

我可以尝试在加载对象时转换值,但也许还有更多使用转换矩阵或着色器的 DirectX 方式?

0 投票
2 回答
2464 浏览

c++ - 解析波前 obj 文件格式

我想将 obj 模型导入我的 opengl 程序。我有一个类/数据格式,用于将属性数据传递到着色器:

因此,我正在使用从 Internet 下载的小木屋模型。

小木屋有几个顶点、法线和纹理坐标定义,后面是面定义列表。

所以我的第一个直觉是解析 obj 文件并最终得到

将其转换为我的 CustomVertex 格式并不简单,因为文件中可能定义了 210 个顶点、100 个 tex 坐标和 80 个法线。

在以这种格式列出约 390 个面孔之后:

我在文件中遇到以下内容:

其次是更多的顶点定义。

因此,据此,我推断一个模型可能由几个子对象组成,每个子对象由多个面定义;每个面由 3 x vertex / normal / texcoord 索引值定义。

因此,为了获得 CustomVertex 的向量,我认为我需要执行以下操作:

创建和填充:

我需要为面部定义中的每个唯一的 v/vn/vt 三元组创建一个 CustomVertex。

所以我想到了创建一个地图:

所以我的想法是,对于我遇到的每个 v/vn/vt,我创建这个字符串的散列,例如 nHashId = hash("80/50/1")* 并在地图中搜索散列。如果不存在,我创建一个 CustomVertex 并将其添加到向量中,然后将新创建的哈希和 CustomVertex_index 添加到地图中。

*:通过创建 v/vn/vt 字符串的哈希,我正在创建一个与该字符串对应的唯一数值,我希望在地图中搜索/比较它比等效文本更快。

如果我遇到哈希匹配,我认为 customvertex 已经存在,而不是创建新的 CustomVertex,我只是将 CustomVertex_index 条目添加到索引向量并继续前进。

由于这似乎是一项计算成本很高的练习,我想我会将我的 CustomVertex 数组(和相应的索引数组)转储到磁盘以供以后检索,而不是每次都解析 obj 文件。

在我提出问题之前,我是否可以指出,由于时间限制并且不想重新设计我的 Vbo 类(一项不平凡的任务),我坚持使用 CustomVertex 格式 - 我知道它可以提供属性将数组与我的着色器分开,但我已经读过像使用 CustomVertex 一样交错数据可以提高性能。

所以我的问题是: 1. 我的方法看起来是合理的还是疯狂的?如果疯了,请指出我哪里出错了。

  1. 你能发现任何潜在的问题吗?

  2. 有没有人这样做过并且可以推荐一种更简单的方法来实现我想要的?

0 投票
2 回答
177 浏览

opengl - 在着色器中绑定纹理

我正在用 VBO 编写波前 (.obj) 加载器。

当调用“usemtl”时,我正在考虑将 textureID 与顶点、texCoord 和法线数据一起发送。

使用该纹理 ID,我可以在不调用 glBindTexture 的情况下将纹理绑定到顶点/片段着色器中吗?

0 投票
1 回答
752 浏览

three.js - 解析波前 obj 文件由 three.js 中的多边形组成

在我的 3D 对象中;我有几个盒子,比如;

在此处输入图像描述 但是,如果我尝试使用 three.js 加载和显示objmtl文件,则 5 面或多面对象未正确加载(如下所示)。然后; 我发现 three.js 仅支持 3 面或 4 面的面。

有没有办法在目标文件中划分这些面并加载它们?

在此处输入图像描述