问题标签 [freeglut]

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 投票
2 回答
1358 浏览

c++ - GLUT 和 C++ 类

不久前我开始使用 OpenGL,使用 GLUT。您不能将成员函数传递给 GLUT 函数。(或就此问题指向成员的指针,尽管我并没有真正探索该选项)。

我想知道是否有一种“体面”的方式,或者解决这个问题的“最体面”的方式是什么?我知道你可以使用静态成员函数,但没有更好的方法吗?

我知道还有其他库,例如 SFML,它们是用 C++ 编写的并提供基于 C++ 类的接口,但我想知道关于 GLUT 的可能性(确切地说是 freeglut)。

0 投票
1 回答
577 浏览

haskell - Ubuntu 中的 FunGen

我刚刚成功安装了 Ubuntu,主要是为了让使用 Haskell 库比在 Windows 中更容易。

当我运行一些我正在处理的 Haskell 代码时,它只会让我大吃一惊。我正在为我的游戏使用 FunGen 库,当我尝试运行它时出现此错误。

经过一些网络搜索后,我找到了一种在 C 代码中解决此问题的方法(使用GlutDouble代替GlDouble),并且我Graphics.Rendering.OpenGL.GLdouble在我的 Haskell 代码中使用了该类型。

更多研究告诉我,类型 GlDouble = Double,所以,这不是原因,此外,我刚刚删除了代码中的 gldouble 部分,但它仍然不起作用。所以,这里有一些简单的代码让我看到上一个错误:

关于版本,我得到了:freeglut3 2.6.0-1ubuntu2、ghc 6.12.3、fungen 0.3、haskell glut 2.2.2.0 和 ubuntu 11.04

这有发生在其他人身上吗?

0 投票
1 回答
2083 浏览

c - “openSuse 和 openGL”环境的示例程序

我在 OpenSuse 11.3(一个非常新的安装)中为 openGL 编写了这样的示例代码(安装了从 Yast2 的软件管理器中搜索 openGL 的所有库)。

我是否必须在 Suse 中安装任何其他库才能使其正常工作?

0 投票
1 回答
1036 浏览

haskell - 使用 GLUT 在多个窗口中同时绘图

当我创建两个窗口并在两个不同的线程(每个窗口一个)中重绘它们时,似乎所有绘图都转到第一个创建的窗口。它不断在两个窗口中应显示的内容之间切换。第二个仍然大部分是黑色的。

该代码仅在一个窗口中运行良好,然后我对其进行了更新 - 插入currentWindow $= Just glWindow到设置回调和调用渲染方法的函数的开头。

您认为造成这些问题的原因是什么?

编辑:

代码骨架:

顺便说一句,当我评论设置 reshapeCallback 的行(并且窗口在开始时被重新整形)并仅使用一个窗口启动图表时,我得到的效果与多窗口启动完全相同。我的意思是,(唯一的)窗口大部分是空的,就好像它是第二次创建的一样。

0 投票
3 回答
503 浏览

c++ - GL VBO 问题:第一条和最后一条三角形没有正确显示

我对 C++ 和 OpenGL 并不陌生,但我对使用 VBO 并不陌生。到目前为止,我一直很懒惰,几乎所有东西都使用显示列表。

我的问题很可能很简单,但很烦人!似乎第一个也是最后一个三角形列表没有正确显示,在这个例子中,我从一个简单的波前模型 obj 文件加载一个球体。对于显示列表和 VBO,我以完全相同的方式从 obj 文件中加载它,并且我已经验证它们从 obj 文件中获得了完全相同的数字。

在这个例子中,我使用了 STL 向量来存储顶点和顶点索引。但是我之前也尝试过使用 float* 和 int* ,但它给出了完全相同的结果。

所以这是一个从 VBO 绘制的球体屏幕

编辑:我删除了这个超链接,因为我不能发布超过 2 个,因为我的帐户仍然是新的......正如你所看到的,有一个巨大的圆锥体从球体的远端进入球体的中间,它很难看到,但从最近一侧到最远一侧的三角形带也是错误的,这将在接下来的几个屏幕之一中变得明显 这是从 DL 绘制的完全相同的球体

编辑:我删除了这个超链接,因为我不能发布超过 2 个,因为我的帐户仍然是新的...

您可以在那里看到 DL 正在正确绘制它们这是同时绘制的,您会看到最大的区别是线条是绿色的,这就是它们应该是的样子

编辑:我删除了这个超链接,因为我不能发布超过 2 个,因为我的帐户仍然是新的...

在这里更明显的是,从 VBO 中绘制的顶部条带是错误的

然后我尝试在每个顶点的 y 值上添加一个大数字,这表明我的 VBO 肯定有问题,因为球体内的圆锥体顶点永远不会移动!

好的,现在您已经对问题有了一个直观的了解,我想我会在这里扔一些代码,我可能只是错过了一步或有一个数字错误。请看一下

这就是我创建 vbo 的方式

{

}

其中 m_vertices 是 Vec3f 的 STL 向量,它简单地保存 x,y,z。我也试过这个作为向量,它给出了同样的问题,所以改变为向量或浮点*不是问题。

好的,现在到我画它的地方,我觉得这是我做错了什么

{

}

我正在使用 glPolygonMode( GL_FRONT_AND_BACK, GL_LINE ); 仅出于调试目的,因为它最好地显示了不正确三角形的问题。

谁能看看我是否做错了什么?我是否错误地初始化了某些东西?我错过了一步吗?我查看了各种教程并在谷歌上搜索了很多,我似乎与其他人并没有太大的不同。大多数教程都使用 float* 而不是 stl 向量,但我再次这样做了,它给出了完全相同的结果。

不确定我是否需要提供更多信息,我只包括 glew 和 freeglut (两者中最新的..在 Windows 上)

0 投票
2 回答
355 浏览

opengl - 将 OpenGL 库添加到软件包中

我开发了一个科学代码包(用于碰撞/引力 N 体模拟)。它不需要任何库即可运行。人们可以下载它并简单地输入 make 来编译它。我想保持这么简单。

我添加了 OpenGL 作为实时可视化模拟的选项。它看起来真的很棒。但是,有些人的机器上没有安装 OpenGL/GLUT 库。

允许这些用户使用我的代码而无需手动安装外部库的最简单方法是什么。我有一种感觉,如果我写一个像“请安装 OpenGL/GLUT”这样的句子。在手册中,它会让很多人望而却步。我可以将 freeglut 添加到我的源代码包中吗?这是个好主意,还是您有其他建议?

0 投票
1 回答
617 浏览

glut - 在重塑中调用 display() 而不是 glutPostRedisplay()?

reshape()函数中,我可以简单地调用回调函数display()而不是glutPostRedisplay()

0 投票
1 回答
357 浏览

opengl - freeGlut中的对象交集重叠

对于以下代码段,我的问题是两个对象相交,但视图(下图)不正确,对象1(框)插入圆柱体但侧视图(下图)不正确,看起来就像黄色盒子在气缸后面一样。我怎样才能让它看起来他们相交?

在此处输入图像描述
在此处输入图像描述

0 投票
1 回答
630 浏览

haskell - FreeGlut 在 ghci 中不起作用

我用“Glut”写了一个小程序

由 GHC 编译的程序运行良好(ghc --make t.hs),但是当我尝试从 ghci 运行程序时,ghci 崩溃并显示以下消息:

是否可以从 ghci 运行 Glut 程序?

0 投票
1 回答
868 浏览

visual-c++ - CMake 找到正确的库,但 VC++ 尝试与其他内容链接

我有一个 CMake 模块来定位 FreeGLUT:

freeglut_static.lib当我在 Windows 上生成 NMake Makefile 时,它​​可以正常工作并定位。我正在尝试将 FreeGLUT 静态链接到我的 DLL 中:

我的源代码构建正确,但是当它进入链接阶段时,VC++ 失败并显示:

链接:致命错误 LNK1104:无法打开文件“freeglut.lib”

这很奇怪,因为freeglut.lib我在生成的 NMake makefile 中没有提到任何地方。它应该尝试与freeglut_static.libCMake 定位和设置的FREEGLUT_LIBRARIES.

这可能是什么原因造成的?