问题标签 [vertex-array]
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.
c++ - 圆的顶点数组
我想知道是否可以在 SFML 中创建一个 VertexArray 圆。我一直在寻找答案,但我没有找到任何可以帮助的东西。此外,我不理解 SFML 文档中关于我可以创建自己的实体的部分,我认为这实际上可能是我想要做的。
编辑:我想这样做,因为我必须画很多圈。
谢谢你帮助我
c++ - SFML 从 VertexArray 绘制图元
如何从构造的 VertexArray 中绘制我选择的图元?在下面的示例中,我将两个顶点添加到 'vertices' 数组中,并尝试使用 'window.draw(vertices, 2, sf::Lines)' 绘制它,但它给了我一个错误。我知道我可以使用 'sf::Vertex foo[] = {..}' 创建线对象,但我希望能够继续将顶点附加到数组而不是一次全部初始化。
android - 使用 OpenGL ES 2.0 渲染多个像素
从一开始就说明,我在 OpenGL 世界中非常新手,但我需要使用它在 Android 中进行一些渲染优化。我必须使用 OpenGL ES 2.0 在 2D 空间中渲染一个块或一堆连续像素。但是,我找到了一些合适的解决方案(此处和此处),并且我都尝试了它们,但我无法达到预期的结果。
第一件事是像素总是在原点(中心或 {0, 0}),我不能从那里移动它。我宁愿把它放在屏幕的左上角。
第二件事是我无法绘制多个像素。我想产生多个像素,而不仅仅是一个。
总结一下:我只想将像素连续放置,例如:第一个像素从左上角开始,第二个应该紧跟在 X 轴上的第一个像素之后,依此类推。当满足屏幕的结束边距时,新像素应从新行 (Y+1) 开始。
我正在使用的代码是:
这是视觉结果:
opengl - 在 DSA 代码的更新循环中是否使用 glBindVertexArray
我正在将一些opengl代码转换为DSA,并且在任何地方都编写了不绑定顶点数组,因为它在DSA中继承。所以我用
而不是 glGen... 对应物。
但是现在我只是想知道是否有在更新循环中绑定顶点数组的 DSA 版本。我现在有
这很好用。但是,如果我不将 替换glBindVertexArray
为其他东西,我会在以后的编码中遇到一些有趣的问题吗?就像我替换glBindTexture
为glBindTextureUnit
c++ - 如何将波前 .obj 数据组装成最小尺寸的元素和顶点数组?
我无法将数据放在波前 .obj 文件中。
这些是vec3
和vec2
定义
在向量中使用:
在哪里:
v_vec_index
是 的索引,std::vector<vec3<float>> v_vec
其字段包含顶点 x、y 和 z 坐标vt_vec_index
是std::vector<vec2<float>> vt_vec
包含纹理 u 和 v 坐标的索引vn_vec_index
是std::vector<vec3<float>> vn_vec
具有正常 x、y 和 z 坐标的索引
每个f_vec
字段都用于在内部创建一系列vert_x, vert_y, vert_z, tex_u, tex_v, norm_x, norm_y, norm_z
浮点值std::vector<float> vertex_array
。
此外,f_vec
' 字段的每个索引默认情况下都是std::vector<uint32_t>> element_array
- 的值,即它包含从0
到的整数范围f_vec.size() - 1
。
问题是vec3
里面的字段f_vec
可能会重复。因此,为了只组装上面提到的独特序列,我计划转成这样:
进入这个:
每次都会将一个元素f_vec
放入“ whatever container
”
将检查它是否是唯一的
如果是,那么它将被推到 的末尾,
container
其键是最大键之后的下一个自然数 - 键的值将被推到element_array
并且将在内部创建新顶点vertex_array
- 如果不是,那么它将被推到的末尾,
container
其密钥与其副本的密钥相同 - 密钥的值将被推到element_array
但vertex_array
将保持不变
我该怎么做?
java - 绘制动态 GL_TRIANGLE_STRIP 的最快方法
经过一番努力,我设法使用 OpenGL 绘制了动态的飞机轨迹。您可能会在下面看到我的部分代码:
使用上面的代码,我可以绘制一条动态的 3D 带状轨迹。但我需要提高代码的性能。
我的第一个问题:如何在不创建新值的情况下动态更改 FloatBuffer 的值。我问这个,因为在每一帧中,一个新的 Vec4 (x,y,z) 被添加到位置列表中,我想使用我现有的 FloatBuffer。因为随着位置的增加,trail的长度越来越长,所以getTrailVertices方法中的循环越来越大。例如,当程序运行 10 分钟后,positionList 变为 15,000 位置的 ArrayList。这很可能会降低性能。除了创建一个新的 FloatBuffer 之外,我可以从末尾删除最后 2 个顶点并将另外 2 个顶点添加到 FloatBuffer 的开头而不创建一个新顶点吗?
第二个问题:这种动态绘图可以使用VBO吗?如果是这样,我该如何使用 VBO?
第三个问题:如何动态改变 FLoatBuffer 的容量。我问这个是因为我想在飞行中增加或减少路径的长度。这意味着,如果我增加轨迹的长度,我将需要更多的顶点和更高容量的 FloatBuffer,如果我减少轨迹的长度,这意味着我将需要更少的顶点和更低容量的 FloatBuffer。
最后一个问题:我怎样才能在轨迹上放置纹理。或者让我这样问;我怎样才能在小径的尽头画一条褪色的小径。我想我需要使用 alpha fading?
c++ - C++ OpenGL,为什么顶点数组不绑定顶点缓冲区?
我很确定顶点数组没有绑定顶点缓冲区,因为如果我注释掉我取消绑定顶点缓冲区的行,它工作得非常好,这表明顶点数组没有正确绑定顶点缓冲区。这是代码(程序和窗口周围有一些抽象,但与问题无关):
有人知道我做错了什么吗?
c++ - 顶点着色器属性位置中的数据损坏
由于顶点着色器属性位置中的数据损坏,我的模型看起来被拉伸了
这是顶点着色器代码:
问题似乎是boneIDs 中的数据损坏(boneIDs 数据在 CPU 上很好,但在着色器中获取损坏的数据)。我尝试在着色器中硬编码 boneIDs 数据,效果很好。
这是 VAO 的代码:
BoneVertex 结构:
这很奇怪,因为前 3 个属性数据看起来不错。问题在于 boneIDs 和 boneWeights 这是否与填充有关,以及数据如何在结构中排列?还是我错过了其他东西?
谢谢
c++ - 瓦片地图SFML上的运动场显示
我试图编写一个代码,通过在英雄可以去的任何地方(英雄不能沿对角线移动)在瓷砖地图上绘制绿色矩形来绘制运动场。我读过这对我来说很难:https ://en.wikipedia.org/wiki/Taxicab_geometry但我仍然有问题。
这是一个类:
这是一个功能:
这是主要的代码:
如果我运行代码,只会出现一个矩形。我做错了什么?