问题标签 [immediate-mode]

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 回答
662 浏览

opengl - 无论相机位置如何,都以相同大小渲染 3D 模型

我有一个特定的模型作为查看器中的控件。用户可以单击它的不同部分以在查看器中对另一个模型执行转换(如 Unity 或 Blender 等应用程序中的控件/句柄)。

无论相机如何放大/缩小,我们都希望控件保持相同的大小。我已经尝试根据物体和相机之间的距离来缩放它的大小,但它并不完全正确。有没有完成这样的事情的标准方法?

控件是使用固定管道渲染的,但我们还有其他组件使用可编程管道。

0 投票
1 回答
533 浏览

macos - OpenGL立即模式纹理不起作用

我正在尝试使用即时模式纹理构建一个简单的项目。不幸的是,当我渲染时,显示的是 GL 颜色而不是纹理。我四处寻找解决方案,但发现在线示例和我的代码之间没有有意义的区别。

我已将其简化为一个最小的失败示例,我在此处提供了该示例。如果我的理解是正确的,这应该会产生一个带有黑色、红色、绿色和蓝色角的纹理四边形。不幸的是,它看起来是紫色的,好像它完全忽略了纹理。我究竟做错了什么?

输出: 四边形是紫色的

还可能值得一提:

我正在 Mac 上构建这个项目(运行 El Capitan 10.11.1)

显卡:NVIDIA GeForce GT 650M 1024 MB

0 投票
0 回答
52 浏览

c++ - 窗口坐标中的 OpenGL 立即模式

正如标题所说,我试图在窗口坐标中以即时模式绘制东西——这可能是错误的术语。也就是说,坐标系的原点位于窗口的左上角,其 Y 轴沿窗口高度向下扩展,X 轴沿宽度向侧面扩展。我希望能够像这样从左上角到右下角画一条线:

是的,我知道立即模式已被弃用,但请在旧 OpenGL 的上下文中回答。我需要如何设置 OpenGL 的矩阵堆栈,以便可以在窗口坐标中绘制,如上所示?提前致谢!

0 投票
1 回答
136 浏览

c++ - 立即模式未正确绘制 Alpha 纹理

正如标题所说,每当我启用这样的混合时:

我无法使用立即模式绘制任何纹理。它是 RGBA 纹理。我确认图像加载和生成工作正常,因为当我从 GPU“下载”像素进行调试时,alpha 值似乎是正确的(例如,并非所有像素都是 255。)。但是,在启用混合的情况下像这样绘制纹理时,纹理就会消失:

简单_texture->setActive()地称之为:

没有混合,我得到以下结果:

实际无混合

但是通过混合,它什么也不画(再次确认纹理的 alpha 值是正确的!):

实际混合

当它看起来像这样时:

预期的

这里有什么问题?

更新

应用后glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);,我现在得到预期的输出:

output_final

0 投票
2 回答
419 浏览

compilation - 自定义控制流编译词示例

Forth 著名地允许用户通过为控制流定义新词来改变语言(超出标准给出的词:DO、LOOP、BEGIN、UNTIL、WHILE、REPEAT、LEAVE IF、THEN、ELSE、CASE、ENDCASE 等)

是否有人们实际创建自己的新控制流词的常见示例?有哪些典型和有用的例子?还是标准已经定义了人们实际需要的一切?

我希望找到一些有用的语言扩展的例子,这些扩展已经被接受或被证明通常有助于使语言更具表现力。

0 投票
1 回答
421 浏览

java - OpenGL混合:删除被绘制的像素(立即模式)

我想要实现的是一种混合,我在彼此上方绘制两个四边形,都是透明的,最后绘制的四边形将完全取消前一个四边形的颜色,就好像它从未存在过一样。但是,除了单个其他四边形之外,它可能不会影响其后面的任何东西。因为我在解释方面很糟糕,所以我制作了以下图片:

在此处输入图像描述

我正在使用非常基本的 openGL 即时模式功能。目前我有一些类似的东西:

0 投票
1 回答
43472 浏览

c++ - 与保留模式 GUI 相比,使用即时模式 GUI 对性能有何影响?

我目前正在开发一个标准的 Windows 桌面应用程序(标准意味着没有花哨的东西:只有按钮、文本、滑块等),并且在研究了一些 GUI 框架并被排斥后,决定自己编写一个 GUI 框架他们全部。由于这是一个爱好项目,我也愿意尝试,并决定制作 GUI 即时模式,而不是保留模式,因为我非常喜欢它简化代码的方式。不过,这是一个问题:

与保留模式 GUI 相比,在将其用于典型桌面应用程序时,使用即时模式 GUI 对性能有何影响?

我总是听说 IMGUI 性能更差,因为它必须重绘每一帧(或者,如果它以某种方式缓存,它仍然必须每帧执行逻辑)。但是我们在这里谈了多少?我会消耗两倍的 CPU 时间吗?更多的?如果我假设运行 20 个 IMGUI 程序,它会最大限度地消耗 CPU(假设我已经优化了它)?我只是想知道大致情况以及权衡在非游戏环境中是否仍然可行,在这种环境中不需要重绘每一帧。

关于延迟还有一个我不明白的含义。在Johannes Norneby的一本工作中讨论 IMGUI 的章节中,解释如下:

剪框

在实时应用程序的上下文中需要注意的 IMGUI 的一个方面(每秒不断地多次渲染新帧)是用户交互将始终响应在前一帧上绘制的内容。这是因为用户界面必须至少绘制一次,以便用户知道那里有要与之交互的小部件。大多数情况下,如果帧速率足够高,这不会导致任何问题,但需要注意这一点。

这在保留模式 GUI 中有何不同?这是否意味着我比保留模式 GUI 多了一个输入延迟帧?

0 投票
0 回答
133 浏览

opengl - 即时模式 OpenGL 是否可以保证在现代硬件上工作,即使它已被弃用?

我正在维护一个使用 OpenGL 进行渲染的遗留应用程序。

该应用程序在每个工作站上运行良好,即使它依赖于已弃用的立即模式。但是,如果工作站的硬件更换为现代硬件,应用程序能否保证按预期工作?

由于代码复杂性和时间限制,此时将应用程序移植到现代 OpenGL 是不可接受的。

较小的性能损失是可以接受和预期的,因为更新的硬件可能会针对 OpenGL 的保留模式进行优化。

这个应用程序可以在现代机器上运行吗?

0 投票
1 回答
120 浏览

vb.net - 无法在即时模式下访问 Word 类的类成员

我正在编写一个vb.net自动化的桌面应用程序ms-word。定义从单词对象模型中获取的类型的变量,在调试时,我无法以立即模式访问这些类的成员元素。当它运行时,我可以从我的代码中访问它们。

运行代码和访问aRange.Characters.Count工作得很好。但是,当设置断点并? aRance.Characters.Count在即时窗口中键入该行时,我收到错误消息:

错误 BC30456:“字符”不是“范围”的成员。

奇怪的是,打字? aRange.Text在即时窗口中起作用。

我以前没有遇到过。谁能帮我解决这个问题?

0 投票
0 回答
65 浏览

performance - 由于不可避免的 CPU 负载,Direct2D 的“立即模式”性质是否会影响性能?

与高级 UI 框架相比,Direct2D 的一个(如果我可以说)非常规方面是它的“即时性”

了解到这一点后,我认为这是一个潜在的严重性能问题:每个对象的每帧 CPU 负载仅由于其存在而增加。如果我被正确告知,在 Direct3D 中,静态场景只需要由 CPU 创建一次,然后就可以发送到 GPU。那么CPU只需要更新这个状态。这对于 Direct2D 来说似乎是不可能的。

那么这种担忧是否合理?


我已经看过一篇有相同问题的旧帖子,但既没有回答,也没有非常令人满意的评论。