问题标签 [opengl]

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 投票
5 回答
8750 浏览

c++ - 如何在OpenGL(使用GLUT)上绘制一个像圆锥体一样的填充信封?

我正在使用freeglut进行opengl渲染...

我需要绘制一个看起来像锥形(2D)的信封,必须填充一些颜色并应用一些透明度。

freeglut 工具包是否配备了这样的内置功能来绘制填充几何图形(或一些技巧)?或者是否有其他一些对填充几何图形具有内置支持的 api..

编辑1: 只是为了澄清2D锥体......包络是飞机在拦截期间(敌机)覆盖区域的图形解释......类似于圆形的扇区......我应该提到扇区反而..

和 glutSolidCone 对我没有帮助,因为我想绘制一个圆形的填充扇区......我已经完成了......剩下要做的就是用一些颜色填充它......如何在 opengl 中用颜色填充几何图形?

Edit2: 发布到这个问题的所有答案都可以在某种程度上解决我的问题。但我肯定想知道如何用某种颜色填充几何图形。假设我想绘制一个抛物线的包络线......在这种情况下,将没有默认的 glut 函数来实际绘制一个填充的抛物线(或者有没有?)......所以概括这个问题......如何以某种纯色绘制自定义几何图形?

Edit3: mstrobl 发布的答案适用于 GL_TRIANGLES 但对于这样的代码:

它画了一个正方形...只画了一个有线正方形...我需要用蓝色填充它。

反正要做吗?

如果我为闭合曲线放置一些绘图命令......就像一个馅饼......我需要用颜色填充它有没有办法让它成为可能......

我不知道 GL_TRIANGLES 怎么可能……但是对于任何闭合曲线如何做呢?

0 投票
6 回答
18353 浏览

python - OpenGL 与 Python

我目前正在学习使用 OpenGL 的课程,到目前为止,我一直在使用 C 语言编写所有程序。我在 Fedora 和 OpenGL 上安装了 Python,但是在我的 Python 代码中调用 OpenGL 命令的那一刻,我得到了一个分段错误。我不知道为什么会这样。

只是为了避免“只使用 C”注释,这就是我想使用 Python 的原因:

我想从 C 切换到 Python 有几个原因,但主要是因为我们即将开始编写光线追踪器,我想使用类来让我更轻松。因为我讨厌 C++ 中的类,而 C 中的结构似乎有点疯狂,所以我想我会尝试一下 Python。我也一直在寻找再次使用 Python 的理由,因为它已经有一段时间了。

谢谢你的帮助。

0 投票
2 回答
5278 浏览

python - opengl用顶点颜色设置纹理颜色

因为我需要显示大量独立移动的标签,所以我需要将pyglet中的标签渲染到纹理(否则为每个字形更新顶点列表太慢)。

我有一个解决方案,但我的问题是包含字形的纹理是黑色的,但我希望它是红色的。请参见下面的示例:

知道我怎么给这个上色吗?

0 投票
7 回答
2053 浏览

web-applications - JOGL——有用吗?问题+评论和经验

故事:

我一直在谷歌上搜索使用视频卡加速(无软件渲染)在网络上显示计算机图形的某种方式。我知道可以为IE编写 activeX 模块,但这不是一个完整的解决方案,因为它会吸引大量用户(firefox + macOS 粉丝)。这是我所想的更多的例子:

浏览器链接顶部的硬件加速示例


查询:

我最近发现您可以使用JOGL从浏览器将 opengl 调用与 java 绑定。所以我想知道一些事情:

A) JOGL是我故事的最佳解决方案吗?

B)我可以从 JOGL 查询 opengl 扩展吗?

C)我如何从 JOGL 加载纹理?


评论:

如果您在浏览器中使用过 JOGL,请告诉我您从中遇到的问题/经验。

0 投票
1 回答
821 浏览

c# - glDrawPixels 导致 AccessViolationException

我正在使用 glDrawPixels 来显示图像。我知道,我可能应该使用纹理,但我没有这样做是有原因的。至少现在不是。无论如何,正在显示的图像经常被更新,就好像它正在被扫描一样。只要我让它坐下来完成“扫描”,它就可以正常工作,但是,如果我在“扫描仍在进行中”时单击屏幕我的 glDrawPixels 出现 AccessViolation 异常。

mImageWidth 和 mImageHeight 是预期值,因此它们不是这个问题。

在 glDrawPixels 调用之前,我放置了一个 for 循环来查看 mDisplayBuffer 中的每个元素。这里没有发生任何问题,因此访问冲突似乎不是来自 mDisplayBuffer。

所以它一定是 glDrawPixels 中的东西吧?

我正在使用 TAO 框架,以便可以使用 C# 和 OpenGl。

0 投票
3 回答
2049 浏览

c++ - 动态 3D 数组上的 OpenGL glDrawPixels

如何使用 OpenGL glDrawPixels()绘制以下动态3D数组?您可以在此处找到文档:http: //opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/drawpixels.html

我只能使用以下头文件:

0 投票
1 回答
2209 浏览

java - 我需要用 Java+OpenGL 构建哪些 Ubuntu/Debian 软件包?

我想使用 JOGL(用于 Clojure,而不是 Java)。JDK 和 OpenGL 绑定的替代方案似乎有很多组合,我不想使用散弹枪方法并堵塞我的机器安装太多杂物。请帮助我开始!

  • 我需要安装哪些 Ubuntu/Debian 软件包?(例如以 开头sun-java6-jdk
  • 似乎没有 JOGL 包,那么安装它的最佳方法是什么?我应该从 CVS HEAD 构建,还是使用预构建的 jar 文件?

我将使用 Emacs 作为我的 IDE,所以我不需要安装 Eclipse 或任何东西,我只需要能够使用 ant 或其他东西进行构建。

请随时修改您的答案(基于其他人的答案)以提供全面的操作方法。

0 投票
3 回答
2895 浏览

opengl - glDrawPixels/glCopyPixels 获得放大视图,产生严重钳位的图像

尽管有一个较早的问题(问here),但我们的项目仅限于使用glDrawPixels,因此我们必须做一些hackery。

功能要求之一是能够在图像的单击区域上显示放大视图;所以,看着图像,我想点击鼠标,并在鼠标所在的位置显示 200% 的图像窗口。当我拖动光标时,窗口应该跟随光标。

上下文设置如下:

大红皮书的代码如下所示:

然后调用使较小但缩放的图像看起来像

其中 mStartY 和 mStartX 是点击发生的点。

问题是,显示的窗口实际上是在破坏查找表,并且实际上将图像压缩到本质上是黑白二值图像(即,没有灰色阴影)。

数据是一个黑白无符号短数组,并使用以下代码设置:

现在,根据这个文档,我应该使用 GL_PIXEL_MAP_I_TO_I 并将 INDEX_SCALE 和 INDEX_BIAS 设置为零,但这样做不会改变结果,即图像被严重钳位。所谓“严重钳制”,我的意思是它不是黑色就是白色,只有很少的灰色阴影,但原始未放大的图像看起来像预期的那样。

那么,如何避免放大视图的钳位呢?我应该创建一个跟随光标并用第一个控件的数据填充的第二个控件吗?这种方法似乎会将数组副本从图形卡带到 C# 中,这几乎按照定义会变慢,因此使控件无响应。

哦,我正在使用 C# 和 Tao 框架,如果这很重要的话。

0 投票
3 回答
3148 浏览

c# - C# 结合 GDI+ 和 OpenGL/DirectX

背景:我目前在我的 C# 项目中使用自定义控件(基本控件只是绘制自定义外观(使用 gdi+?))。这些控件中的大多数都具有用于不规则形状等的透明段。

问题:我希望在一组控件上覆盖一个半透明(不规则形状)面板。目前我将覆盖面板剪辑到所涉及的控件区域。这工作正常,结果看起来不错,但是过程太慢了。

问题:有什么方法可以通过混合一点 OpenGL/DirectX 并让视频卡执行所有必要的渲染而不是依赖相当慢的 CPU 来加快渲染过程?

0 投票
8 回答
2461 浏览

opengl - OpenGL 中的光照问题

我有一个没有纹理的三角形网格,但是有一个固定的颜色(蓝色)和 alpha(0.7f)。该网格是运行时生成的,并且法线是正确的。我发现在打开照明的情况下,我的对象的颜色会随着它在关卡中移动而发生变化。另外,灯光看起来也不对。当我绘制这个对象时,这是代码:

我注意到的另一件奇怪的事情是,当我禁用GL_FRONT_AND_BACK并仅使用GL_FRONTor时,照明会失败GL_BACK。这是我的照明设置(在渲染器开始时完成一次):

编辑:我做了很多工作来使法线“更”正确(因为我自己生成了表面),但是对象的颜色仍然会根据它的位置而变化。为什么是这样?openGL 是否有一些我不知道的特殊环境混合?

编辑:原来颜色变化是因为以前的纹理在纹理堆栈上,即使它没有被绘制,glMaterialfv也正在与它混合。