你如何启用垂直同步?
它简单glEnable(GL_VSYNC)吗?(虽然在glEnable接受的选项中没有GL_VSYNC或类似的东西).
或者在opengl中没有标准的方法吗?
我的目标是将没有窗口的OpenGL场景直接渲染到文件中.场景可能比我的屏幕分辨率大.
我怎样才能做到这一点?
我希望能够选择任何大小的渲染区域大小,例如10000x10000,如果可能的话?
我需要将三角形打包成一个盒子,尽可能合理,作为3D优化的一部分(我将使用不同纹理的片段填充到单个不同的纹理中,用于深度排序,因此纹理不会切换每一个新的三)
有这样做的算法吗?三角形本身可以制成可叠加的(可转换为直角,有效地使其成为盒填充算法),但我想尽可能避免这种情况,因为它会扭曲底层纹理艺术.
我正在使用随机分形为视频游戏在程序上生成一些污垢.我已经使用中点位移算法生成了高度图并将其保存到纹理中.我有一些关于如何将其变成法线纹理的想法,但是一些反馈将非常受欢迎.
我的高度纹理目前是257 x 257灰度图像(高度值是为了可见性而缩放):

我的想法是,图像的每个像素表示在256×256网格的格子坐标(因此,为什么有257 X 257的高度).这意味着坐标(i,j)处的法线由(i,j),(i,j + 1),(i + 1,j)和(i + 1,j + 1)处的高度确定. )(分别称为A,B,C和D).
因此,考虑到A,B,C和D的3D坐标,它是否有意义:
......还是有一种我更容易丢失的方法?
你知道任何积极开发的C/C++库,它可以采用一堆(最好是大量)4D顶点,将它们投射到3D空间中,相对于某些任意"4D相机"投影矩阵并输出常规3D顶点我可以用OpenGL进行硬件加速可视化吗?我还需要能够在4D空间中执行标准变换(平移,沿所有4个轴旋转和均匀缩放).
编辑:为了进行实时绘图,在opengl和opencl之间的"互操作性"中开始使用ljjgl(jmonkeyengine和jocl的基础),现在可以实时计算和绘制100k粒子.也许mantle版本的jmonkey引擎可以解决这个drawcall开销问题.
几天来,我一直在学习Eclipse(java 64位)中的jMonkey引擎(版本:3.0)并尝试使用GeometryBatchFactory.optimize(rootNode);命令优化场景.
没有优化(具有改变球体位置的能力):

好的,只有1-fps来自pci-express带宽+ jvm开销.
通过优化(无法改变球体位置):

现在即使三角形数量增加也是29 fps.
Java3D有一种setCapability()方法,即使在优化的形式下也能够读/写场景对象.jMonkey引擎3.0必须能够满足这个主题,但我找不到它的任何痕迹(搜索过的教程和示例,失败了).
问题:如何在jMonkey 3.0中设置场景节点的read/write position/rotation/scale功能optimized?如果你不能回答第一个问题,你能告诉我为什么在使用优化命令时三角数会增加吗?我是否必须创建一种新方法来访问图形卡并自己更改变量(可能是jogl?)?
场景信息:16k粒子(16x16 res的球体)+ 1点光源(以及4096分辨率的阴影).
我确信我们可以通过pci-express轻松地在几毫秒内发送数千个浮点数.
对于batchNode.batch();优化的情况,这里再次使用减少的对象数1 fps:

对象编号现在只有几百个,但fps仍然是1!
将球体位置发送到gpu并让它计算顶点位置可能比计算cpu上的顶点以及向gpu发送大量数据更好.
这里没有人帮忙吗?已经尝试过batchNode但没有帮助.
我不想改变3d api,因为jMonkey人已经重新发明了轮子,我对目前的情况很满意.只是试图挤出更多的性能(取消阴影给出100%的速度,但质量也很重要!).
这个java程序将成为一个小行星撞击场景模拟器(将有小行星大小,质量,速度,角度的选择)与带有LOD的行进立方体算法(将是数百万个粒子).
Marching-cubes算法会大大减少三角形数.如果你无法回答这个问题,那么任何行进立方体(或任何O(n)凸包)算法都将被接受!数据:作为源的x,y,z数组和作为目标的三角形条形阵列(等面网格点)
谢谢.
以下是有关流的一些示例(分辨率低得多):
1)通过引力折叠立方体形状的岩石组:

2)排斥力开始显现:

3)排斥力+引力使得组形成更平滑的形状:

4)组形成一个球体(如预期的那样):

5)然后,一个大的恒星身体接近:

6)即将触摸:

7)影响的时刻:

借助Barnes-Hutt算法和截断电位,粒子数将增加10倍(可能超过100倍).
不是Marching-Cubes算法,包裹nbody的鬼布可以给出低分辨率的船体(比BH更容易但需要更多的计算)
鬼布会受到nbody(重力+排除)的影响,但是不会受到包裹它的布的影响.Nbody不会被渲染,但布料网格将以较低的triange数量渲染.

如果MC或以上工作,这将使程序渲染一个包裹布,大约200倍的粒子.
glVertexAttribPointer应该调用何时从文档中看不出来.看起来它是VBO初始化的一部分,但我注意到在渲染过程中调用它的示例代码.
glVertexAttribPointer(vertexAttributeId, 2, GL_FLOAT, GL_FALSE, sizeof(Vertex2D), reinterpret_cast<const GLvoid*>(offsetof(Vertex2D, m_x)));
应该glVertexAttribPointer在初始化期间调用,GL_ARRAY_BUFFER还是应该在渲染期间调用(调用之后glBindBuffer)?
我按照本教程中的说明将OpenGL安装到运行Linux Mint的计算机上.我正在尝试编译一个使用OpenGL的程序,但是我遇到了编译错误:fatal error: GL/glew.h: No such file or directory.我检查/ usr/include/GL文件夹,确实缺少glew.h.我不知道为什么它丢失了,因为我做了命令sudo apt-get install libglew1.5并且它给出了输出:
Reading package lists... Done
Building dependency tree
Reading state information... Done
libglew1.5 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 465 not upgraded.
Run Code Online (Sandbox Code Playgroud)
为什么缺少glew.h文件?