OpenGL 3.0中glDrawPixels的替代方案
An alternative to glDrawPixels in OpenGL 3.0?
所以我知道glDrawPixels已被弃用。有没有做同样事情的函数?我曾想过使用纹理,但它们是由当前矩阵修改的,而不是由glDrawPixels绘制的像素。
我想过使用纹理,但它们被当前的矩阵修改了
"当前矩阵"在3.0中被弃用,在3.1+中也被删除。所以,如果你不使用glDrawPixels
,你也不会使用矩阵函数。所以没什么好担心的。
您可以使用片段着色器,其中gl_FragCoord
的函数用于对矩形纹理进行采样。
或者,您可以使用更传统的方法,只需设置变换矩阵来近似窗口的像素坐标系,然后用图像绘制纹理四边形。
您需要使用绘制一个四边形
- 一个特定的ModelViewProjection矩阵,它将把它放在你想要的地方(正如Nicol所说,现在已经没有"当前"矩阵了)
- 一个简单的顶点着色器,它将使用所述矩阵来实际变换顶点
- 一个简单的片段着色器,它将对纹理进行采样
- 当然,还有足够的纹理坐标
首先,使用"标识"矩阵和X坐标和Y坐标在0和1之间的网格。
您可能需要使用http://www.opengl-tutorial.org/beginners-tutorials/tutorial-2-the-first-triangle/和http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-11-2d-text/(尽管后一个应该根据所使用的矩阵进行改进)
相关文章:
- 运行同一解决方案的另一个项目的项目
- Project Euler问题4的错误解决方案
- 计算每个节点的树高,帮助我解释这个代码解决方案
- C++:Application.cpp中抛出了未解析的外部符号(解决方案在问题的末尾,供未来的读者参考)
- visual c++,如何获取解决方案目录中的代码
- 有没有办法在远程设备上打开和编辑visual Studio 2017解决方案
- C++Matching Brackets 2解决方案不起作用
- 在 ubuntu3 上C++ goto 定义有什么解决方案吗16.04?
- C++11 中不同类型的对象的 std::array 的替代方案
- 在 leetcode 上提交解决方案时出现堆栈缓冲区溢出错误
- 别名模板的专业化 C++11 中没有开销的最佳替代方案
- 我的固定时间步长与增量时间和插值的解决方案是错误的吗?
- 无法在问题解决方案中执行输出逻辑
- 最大的回文产品 - 程序未运行,编写解决方案但无法理解问题
- 从预序遍历构造 bst 的 c++ 和 python 解决方案之间的区别
- 在一个解决方案中针对第三方静态库 (Creo) 的不同版本(版本)进行构建
- 如何巧妙地编写两个函数——一个用于检查是否存在解决方案,另一个用于获取所有解决方案
- 使用 Git 处理 C++ Visual Studio 2019 解决方案的外部依赖项源代码管理的最佳方法是什么?
- N-queen问题:无法弄清楚为什么我的解决方案不起作用
- OpenGL 3.0中glDrawPixels的替代方案