gpt4 book ai didi

c++ - OpenGL 同时绘制 2D 和 3D

转载 作者:搜寻专家 更新时间:2023-10-31 01:12:03 26 4
gpt4 key购买 nike

我有一个正在绘制的 3D 场景,我想为对话文本绘制一个矩形,该矩形将针对所有屏幕宽度进行拉伸(stretch),考虑到性能,实现此目的的最佳方法是什么?

我发现 glOrtho() 可以用于精确放置像素,但由于它是一个矩阵乘法任务,在有对话的场景中我的应用程序不会感觉更重吗?如果是,我是否应该尝试找到一个数学解决方案来根据某个 Z 距离找到左窗角的 X 位置并从那里绘制一个 QUAD? (这甚至可能吗?)

最佳答案

glOrtho() 是要走的路。

OpenGL's rendering Pipeline的过程中,在原始装配阶段,每个顶点都将从眼睛坐标转换(投影)到剪辑坐标。无论您的投影矩阵是用于 3D 透视还是 2D 正交化,在光栅化开始之前它仍然是每个顶点的一个矩阵乘法。

glOrtho() 会将您的投影矩阵更改为正交矩阵,但每帧只需要生成一次矩阵,并且这样做所需的方程式非常简单:

enter image description here

(image credit:MSDN)

一旦有了投影矩阵,就不要让矩阵乘法的想法吓到您。这正是视频卡的设计目的,如今对于任何处理器或 GPU 来说,这都不是什么可怕的任务。

关于c++ - OpenGL 同时绘制 2D 和 3D,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14105017/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com