问题标签 [opengl-1.x]

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 投票
1 回答
197 浏览

c++ - 如何使用材质的环境颜色而不是灯光的全局环境颜色?(OpenGL 1)

我正在用 OpenGL 1.1 编写我的编程的灯光效果。灯光和法线的东西有效。我只有错误的颜色

我想使用所用材料的环境颜色,而不是全局环境光。

当我使用此代码时,我有一个深灰色(64、64、64)用于遮光的脸,但绝不是黑色(0、0、0)。

这是伪代码:

0 投票
1 回答
1570 浏览

minecraft-forge - Minecraft 透明渲染隐藏块

我迷失了为什么当我从南方或东方看时我的纹理会按预期渲染,但从北方或西方看时隐藏在它们后面的对象。

我有一个不可见的块,它在其中呈现多个项目,并且在使用具有半透明纹理的块时遇到问题。已尝试切换基础块和纹理块的所有块属性(例如渲染类型、图层、不透明),并尝试在渲染上使用不同的混合选项。

锻造版本 1.12

普通视图 正常的南视图 破碎视图 从北面看破的景色 渲染器

0 投票
1 回答
4971 浏览

opengl - OpenGL3中的虚线?

我目前正在将使用线框模型的旧 OpenGL 1.1 应用程序移植到 OpenGL 3.0。

在 1.1 中,以下代码用于创建虚线:

这里像往常一样将参数推送到堆栈以影响所有后续绘图操作。

我的问题:在不再使用此堆栈的 OpenGL3 中如何做到这一点?如何将我的线设置为虚线(可能在将坐标交给 glBufferData() 之前?

0 投票
2 回答
1139 浏览

c - OpenGL中的glColor3f亮度很小

我在 OpenGL 中的代码有问题,我需要做一个游戏引擎。我使用 freeglut 库。我用旧的 Visual Studio 版本做了这个练习,我没有这个问题。但是在 Visual Studio 2017 中,该属性glColor3f显示的亮度很小。为什么?

这是我用来显示文本的代码:


更新:

这是我的代码的结果

亮度这么低,但模型很好。我glColor3f(0.0f, 1.0f, 1.0f);输入了新代码,但结果是一样的。


Update2 这是我的 displayMe 函数:

0 投票
2 回答
246 浏览

c++ - opengl中的多个聚光灯不起作用

我将 opengl 用于教育目的,但我无法创建多个聚光灯来表示路灯。我使用迭代器创建了几个,但最后只有最后一个聚光灯得到光,我相信问题出在 addlight 方法中,但我不知道发生了什么。

在下图中,您可以看到发生的情况。

https://imgur.com/Y77eHl​​n

0 投票
0 回答
53 浏览

opengl - 在旧版 OpenGL 1.x 中恢复最后的纹理状态

我想记住 OpenGL 1.x 中的当前纹理状态,然后再恢复它。我可以glIsEnabled用来检查哪些纹理类型处于活动状态。

  1. GL_TEXTURE_2D例如,启用多种文本类型是否有意义GL_TEXTURE_CUBE_MAP

例如, glGet*函数允许获取当前纹理 ID,GL_TEXTURE_BINDING_2D但要绑定以前的纹理,我还需要知道 glBindTexture 的适当目标。

  1. 如何实现?
0 投票
1 回答
73 浏览

c - 使用静态管道的 GLFW3/GLU 3D 世界空间

在之前的项目中,我启用了深度测试,使用在启动时调用一次的gluPerspective来设置 3D 空间。目前,在使用以下代码初始化 3D 世界后,我正在渲染一个介于 -0.5 和 0.5 之间的正方形,其原点为 0.0,这将导致正方形覆盖整个屏幕:

我正在寻找的是一种设置视角的方法,以便在世界空间中呈现形状。例如,下面的代码片段应该会渲染一个 200x200 的正方形:

下面的代码是我目前用来初始化 3D 世界的代码。

我是否错过了设置 3D 空间的任何步骤,如果gluPerspective用于执行此操作,是否有任何建议为什么它不起作用?

我能够使用 2D 实现这一点ortho,重要的是世界是 3D。一切都是用 C 语言编写的,使用 OpenGL 和 GLU 高达 1.3,我的 GLFW 设置与相同。由于技术限制,我无法使用现代管道。

0 投票
1 回答
27 浏览

c - 顶点对象不显示(旧版 OpenGL 1.2)

所以我得到了 OpenGL Redbook 3e,目前在第 2 章(对于初学者来说,较新的 OpenGL 似乎太难进行图形编程)。我从书中复制了一个代码片段(我添加了初始化代码和绘图代码),并尝试了渲染顶点数组(、、和)的glDrawElements每个glDrawRangeElements选项gDrawArrays。对于这个示例,我决定使用 glDrawArrays,因为它似乎是最直接的。据我所知,这段代码没有任何问题,因为它可以编译并运行。但是,没有绘制多边形。有谁知道发生了什么?我觉得我要么犯了一个非常愚蠢的错误,要么错过了一些基本的东西。

0 投票
0 回答
82 浏览

c++ - 将阴影贴图添加到封闭源单通道固定功能管道 OpenGL 1.x 游戏

我一直在破解一个非常古老的固定功能管道 OpenGL 1.x 游戏。我一直在拦截 opengl 调用并注入各种现代 opengl 元素,这样我就实现了新的照明并添加了后期处理着色器(可编程管道)。

我想为这个目前不支持的游戏生成一个阴影贴图(用于实时阴影)。据我了解,我需要执行游戏当前不支持的多通道渲染,并且我需要其中一个通道来使用光源作为相机位置,以生成阴影贴图。

我在想我可以加倍绘制调用(drawelements和drawarrays),对于每个调用之一,使用gluLookAt将场景转换为灯光位置的透视图,并将其渲染到帧缓冲区,然后恢复相机并继续渲染

但是,我不确定我是否足够了解 opengl 状态来执行此操作,因为在单独的渲染调用之前每次使用 gluLookAt 都会给我带来非常时髦的结果,即使我提供了从模型视图矩阵中提取的当前相机位置。这些时髦的结果就像,一些随机顶点在正确的位置,而许多不在,它们在整个地方闪烁和移动

我假设我不应该在单个渲染调用顶点数组时尝试转换相机..但我不确定下一步该怎么做,因为我需要两次通过。

问题:在渲染调用期间是否存在执行 gluLookAt 有意义的特定时间,或者使用它从单个渲染调用的上下文中转换整个场景的方法?

我唯一的另一个想法实际上是按顺序记录所有渲染和矩阵转换,然后重播它们以进行第二遍。

0 投票
1 回答
67 浏览

opengl - 是否可以在使用 glBitmap 绘制的位图上使用 glScalef?

我正在制作一个使用 FreeType 2 和旧版 OpenGL 的文本渲染器。问题是,FreeType 2 的坐标系在左上角有 (0, 0),而 OpenGL 的坐标系是笛卡尔坐标系。这意味着我必须翻转位图。我希望 glScalef 可以与 glBitmap 一起使用,但它没有效果。谁能告诉我是否可以使用 glScalef 垂直翻转位图,或者如果不可能,请指向其他可以翻转位图的源(最好尽可能高效)?