问题标签 [glu]
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++ - opengl渲染半个圆柱体
好的,我是opengl的新手,我只使用我用c++编写的核心opengl和glut创建了一个台球游戏
我知道如何画一个圆柱体:
我想知道我是否可以将这个圆柱体减半,这样我就可以使用曲线来修整我的桌子/口袋边缘任何帮助伤口不胜感激谢谢
opengl - JOGL 中的纹理二次曲面
我无法对 glu Quadric (gluSphere) 进行纹理处理:我得到的不是纹理,而是纹理的平均颜色。
opengl - 绘制 NURBS 曲线时结的含义?
我gluNurbsCurve
用一些控制点来绘制一些曲线。我已经完成了红皮书中描述的基本设置,并且我正在尝试对其进行扩展。
此示例如下所示:
我想知道的一件事是结数据的含义。它如何影响结果?我可以在那里尝试哪些其他选项?
由于某种原因,我找不到任何可以正确解释这一点的教程。
python - 我可以在无头服务器上运行 GLU (OpenGL) 吗?
我们正在尝试在无头的 GNU/linux 服务器上使用 GLU 的曲面细分功能。我们想为此使用 PyOpenGL,但问题是它在调用 gluNewTess 时崩溃(分段错误)
gdb backtrace 说它在 glGetError 中,这让我认为 GLU tesselation 需要 GL 上下文?或者它只是 PyOpenGL 中的一些错综复杂的东西?
我试图找到一些关于如何在无头(和虚拟化)机器上初始化 GL 上下文的信息,但没有运气。感谢您提供有关这些主题的任何信息。
opengl - 为什么 gluTess 在第一次通话时不工作?
我正在使用 gluTess* 函数来绘制非凸多边形。为了避免在每一步都重新进行镶嵌,我将结果存储在一个数组中,并使用 OpenGL 的顶点数组功能进行绘制。
我的问题是,由于某种原因,我第一次使用 gluTess* 时只绘制了部分三角形。如果我强制重新创建 gluTess*,那么一切都很好。
请注意,为了重新创建 gluTess*,我完全销毁包含顶点数组的对象并重新创建它(这会强制重新计算顶点数组对象)。
知道为什么会这样吗?
一些随机的想法:
- 可能是因为对于第一个 OpenGL 调用,窗口还没有达到完整大小吗?
- 我是否需要设置一些 OpenGL 状态,这将在稍后完成,但不是在第一次调用时完成?
谢谢。
编辑:作为测试,我刚刚创建、销毁并重新创建了顶点数组。它解决了问题。这意味着:在 OpenGL 状态没有任何变化的情况下,第一次调用 gluTess* 无法正确细分多边形。但是第二个成功了。以前有人注意到吗?
编辑(2):这是代码:
随着第二次调用成功,我怀疑 beginVA、endVA 和 vertexVA 工作正常(正如我所说,第二次调用是通过破坏主要保存顶点数组的数据结构 VA 进行的)。
编辑(3):这是缺少的代码:
编辑(4):最后,错误出现在其他地方。我一定是累了,我使用了一个 std::vector 来存储 combine 函数的结果。我不知道为什么后来它起作用了,但是它肯定是正常的,它第一次不起作用!对不起,我现在关闭这个话题。
opengl - 有没有办法强制 GLUtessellator 只使用 GL_TRIANGLES?
我正在尝试使用 GLUtesselator 在 OpenGL 中生成 3D 挤压文本。以下是相关代码:
如果我相信第 11 章中的红皮书,
...如果有一个与启用边缘标志的 GLU_TESS_EDGE_FLAG 关联的回调,则仅使用 GL_TRIANGLES 调用 GLU_TESS_BEGIN 回调。
那么我相信我应该只使用GL_TRIANGLES
.
但是,我可以看到在我的自定义 tessellator 回调中调用的类型可以是或中GL_TRIANGLE_FAN
的任何一个。我只问是否有办法强制执行此操作,因为我太忙于创建一个可以处理除or之外的任何其他内容的 VBO 。GL_TRIANGLE_STRIP
GL_TRIANGLES
GL_QUADS
GL_TRIANGLES
c++ - 尝试在 OpenGL/SFML 中实现鼠标外观“相机”
一段时间以来,我一直在使用带有 SFML 1.6 的 OpenGL,这真是太棒了!除了一个例外:我似乎无法正确实现相机类。你看,我正在尝试创建一个名为“Camera”的 C++ 类。这是我的功能:
Camera::Strafe(float fSpeed)
检查是否按下了 WASD 键,如果是,则以“fSpeed”在它们各自的方向上移动相机。
Camera::MouseMove(int currentX, int currentY)
应该提供第一人称鼠标外观,获取当前鼠标坐标并相应地旋转相机。我的 Strafe() 实现工作正常,但我似乎无法让 MouseMove() 正确。
通过阅读有关 OpenGL 鼠标外观实现的其他资源,我已经知道我必须在每一帧之后将鼠标居中,并且我将那部分放在了下方。但仅此而已。我似乎无法从鼠标坐标中获得如何在现场实际旋转相机。我敢打赌,可能需要使用一些触发器。
opengl - cmake 不使用 QtOpenGL 链接 libGLU
我正在尝试编译使用 QtOpenGL 的软件,但由于 -lGLU 不存在,因此出现链接错误。使用 cmake。在我看来,CMakeLists.txt 文件中唯一相关的行find_package(Qt4 REQUIRED)
系统是Linux 64bit,Debian不稳定,qt版本4.7.3,cmake版本2.8
iphone - iPhone4 OpenGL ES GLuProject returning wrong y-coordinate
I have a baffling problem with an iPhone 4 OpenGL ES app that I have been trying to tackle on and off for a couple of months now and have hit a dead end despite some really useful and tantalising tips and suggestions on this site.
I am writing a 3d game which simply draws blocks and allows the user to move them around into various arrangements and the bulk of the app is written in C++.
My problem is that I am trying to use GLuUnproject which I found source code for here:
http://webcvs.freedesktop.org/mesa/Mesa/src/glu/mesa/project.c?view=markup
to interpret the 3d point (and hence the block) selected by the user in order to move and rotate it which I convered to floating point rather than double precision.
Please note that I have compared this source to other versions on the net and it appears to be consistent.
I use the following code to get the ray vector:
The vector code for tracing out the returned ray from the near plane to the far plane is straightforward and I find that blocks near the bottom of the screen are correctly identified but as one moves up the screen there seems to be an increasing discrepancy in the reported y-values and the expected y values for the points selected.
I have also tried using GLuProject to manually check which screen coordinates are generated for my world coordinates as follows:
Again, the results are consistent with the ray tracing approach in that the GLuProjected y coordinate gets increasingly wrong as the user clicks higher up the screen.
For example, when the clicked position directly reported by the touchesBegan event is (246,190) the calculated position is (246, 215), a y discrepancy of 25.
When the clicked position directly reported by the touchesBegan event is (246,398) the calculated position is (246, 405), a y discrepancy of 7.
The x coordinate seems to be spot on.
I notice that the layer.bounds.size.height is reported as 436 when the viewport height is set to 480 (the full screen height). The layer bounds width is reported as 320 which is also the width of the viewport.
The value of 436 seems to be fixed no matter what viewport size I use or whether I display the status screen at the top of the window.
Have tried setting the bounds.size.height to 480 before the following call:
But this seems to be ignored and the height is later reported as 436 in the call:
I have seen some discussion of the difference in points and pixels and the possible need for scaling but have struggled to use that information usefully since these hinted that the difference was due to the retina display resolution of the iPhone 4 and that different scaling would be required for the simulator and the actual device. However, as far as I can tell the simulator and device are behaving consistently.
30-Aug-2011 As not getting any feedback on this one - is there more information I can supply to make the question more tractable?
31-Aug-2011 OpenGL setup and display code as follows:
c++ - gluCylinder() 和纹理坐标偏移/乘数?
如何为 gluCylinder() 和 gluDisk() 等函数设置纹理坐标偏移和乘数?
因此,如果通常纹理将从点 0 开始,我想将其设置为从点 0.6 或 3.2 等开始,乘数我的意思是纹理会变大或变小。
解决方案不能是 glScalef() 因为 1) 我使用法线,2) 我也想调整纹理开始位置。