问题标签 [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.
opengl - 无论相机位置如何,都以相同大小渲染 3D 模型
我有一个特定的模型作为查看器中的控件。用户可以单击它的不同部分以在查看器中对另一个模型执行转换(如 Unity 或 Blender 等应用程序中的控件/句柄)。
无论相机如何放大/缩小,我们都希望控件保持相同的大小。我已经尝试根据物体和相机之间的距离来缩放它的大小,但它并不完全正确。有没有完成这样的事情的标准方法?
控件是使用固定管道渲染的,但我们还有其他组件使用可编程管道。
c++ - 窗口坐标中的 OpenGL 立即模式
正如标题所说,我试图在窗口坐标中以即时模式绘制东西——这可能是错误的术语。也就是说,坐标系的原点位于窗口的左上角,其 Y 轴沿窗口高度向下扩展,X 轴沿宽度向侧面扩展。我希望能够像这样从左上角到右下角画一条线:
是的,我知道立即模式已被弃用,但请在旧 OpenGL 的上下文中回答。我需要如何设置 OpenGL 的矩阵堆栈,以便可以在窗口坐标中绘制,如上所示?提前致谢!
c++ - 立即模式未正确绘制 Alpha 纹理
正如标题所说,每当我启用这样的混合时:
我无法使用立即模式绘制任何纹理。它是 RGBA 纹理。我确认图像加载和生成工作正常,因为当我从 GPU“下载”像素进行调试时,alpha 值似乎是正确的(例如,并非所有像素都是 255。)。但是,在启用混合的情况下像这样绘制纹理时,纹理就会消失:
简单_texture->setActive()
地称之为:
没有混合,我得到以下结果:
但是通过混合,它什么也不画(再次确认纹理的 alpha 值是正确的!):
当它看起来像这样时:
这里有什么问题?
更新
应用后glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
,我现在得到预期的输出:
compilation - 自定义控制流编译词示例
Forth 著名地允许用户通过为控制流定义新词来改变语言(超出标准给出的词:DO、LOOP、BEGIN、UNTIL、WHILE、REPEAT、LEAVE IF、THEN、ELSE、CASE、ENDCASE 等)
是否有人们实际创建自己的新控制流词的常见示例?有哪些典型和有用的例子?还是标准已经定义了人们实际需要的一切?
我希望找到一些有用的语言扩展的例子,这些扩展已经被接受或被证明通常有助于使语言更具表现力。
c++ - 与保留模式 GUI 相比,使用即时模式 GUI 对性能有何影响?
我目前正在开发一个标准的 Windows 桌面应用程序(标准意味着没有花哨的东西:只有按钮、文本、滑块等),并且在研究了一些 GUI 框架并被排斥后,决定自己编写一个 GUI 框架他们全部。由于这是一个爱好项目,我也愿意尝试,并决定制作 GUI 即时模式,而不是保留模式,因为我非常喜欢它简化代码的方式。不过,这是一个问题:
与保留模式 GUI 相比,在将其用于典型桌面应用程序时,使用即时模式 GUI 对性能有何影响?
我总是听说 IMGUI 性能更差,因为它必须重绘每一帧(或者,如果它以某种方式缓存,它仍然必须每帧执行逻辑)。但是我们在这里谈了多少?我会消耗两倍的 CPU 时间吗?更多的?如果我假设运行 20 个 IMGUI 程序,它会最大限度地消耗 CPU(假设我已经优化了它)?我只是想知道大致情况以及权衡在非游戏环境中是否仍然可行,在这种环境中不需要重绘每一帧。
关于延迟还有一个我不明白的含义。在Johannes Norneby的一本工作中讨论 IMGUI 的章节中,解释如下:
剪框
在实时应用程序的上下文中需要注意的 IMGUI 的一个方面(每秒不断地多次渲染新帧)是用户交互将始终响应在前一帧上绘制的内容。这是因为用户界面必须至少绘制一次,以便用户知道那里有要与之交互的小部件。大多数情况下,如果帧速率足够高,这不会导致任何问题,但需要注意这一点。
这在保留模式 GUI 中有何不同?这是否意味着我比保留模式 GUI 多了一个输入延迟帧?
opengl - 即时模式 OpenGL 是否可以保证在现代硬件上工作,即使它已被弃用?
我正在维护一个使用 OpenGL 进行渲染的遗留应用程序。
该应用程序在每个工作站上运行良好,即使它依赖于已弃用的立即模式。但是,如果工作站的硬件更换为现代硬件,应用程序能否保证按预期工作?
由于代码复杂性和时间限制,此时将应用程序移植到现代 OpenGL 是不可接受的。
较小的性能损失是可以接受和预期的,因为更新的硬件可能会针对 OpenGL 的保留模式进行优化。
这个应用程序可以在现代机器上运行吗?
vb.net - 无法在即时模式下访问 Word 类的类成员
我正在编写一个vb.net
自动化的桌面应用程序ms-word
。定义从单词对象模型中获取的类型的变量,在调试时,我无法以立即模式访问这些类的成员元素。当它运行时,我可以从我的代码中访问它们。
运行代码和访问aRange.Characters.Count
工作得很好。但是,当设置断点并? aRance.Characters.Count
在即时窗口中键入该行时,我收到错误消息:
错误 BC30456:“字符”不是“范围”的成员。
奇怪的是,打字? aRange.Text
在即时窗口中起作用。
我以前没有遇到过。谁能帮我解决这个问题?
performance - 由于不可避免的 CPU 负载,Direct2D 的“立即模式”性质是否会影响性能?
与高级 UI 框架相比,Direct2D 的一个(如果我可以说)非常规方面是它的“即时性”。
了解到这一点后,我认为这是一个潜在的严重性能问题:每个对象的每帧 CPU 负载仅由于其存在而增加。如果我被正确告知,在 Direct3D 中,静态场景只需要由 CPU 创建一次,然后就可以发送到 GPU。那么CPU只需要更新这个状态。这对于 Direct2D 来说似乎是不可能的。
那么这种担忧是否合理?
我已经看过一篇有相同问题的旧帖子,但既没有回答,也没有非常令人满意的评论。