java - 使用 OpenGL 调整图像大小

标签 java c++ opengl resize rendering

我想使用 OpenGL 调整图像的大小。我更喜欢 Java,但 C++ 也可以。

我对整个事情真的很陌生,所以这是我所看到的文字过程:

  1. 将图像作为纹理加载到 OGL 中
  2. 设置一些关于状态和过滤的东西
  3. 将不同大小的纹理绘制到另一个纹理上
  4. 将纹理数据放入数组或其他东西中

您认为使用 OpenGL 和 GPU 会比使用基于 CPU 的 BLIT 库更快吗?

谢谢!

最佳答案

您可以简单地使用硬件 blit 功能,而不是将四边形渲染到目标 FBO 中:glBlitFramebuffer。它的论点很直接,但需要仔细准备源和目标 FBO:

  • 确保 FBO 完整(glCheckFramebufferStatus)
  • 独立设置读取FBO目标和写入FBO目标(glBindFramebuffer)
  • 设置绘图缓冲区和读取缓冲区 (glDraw/ReadBuffers)
  • 调用glBlitFramebuffer,在参数中设置GL_LINEAR过滤器

我打赌它在 GPU 上会快得多,尤其是对于大图像。

关于java - 使用 OpenGL 调整图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5102277/

相关文章:

java - 显示\t\n为节点的原因是什么?

c++ - 如何在不以问号开头的情况下写入xml文件c++

c++ - 将 std::complex<double> 类型转换为 __complex128

java - libgdx 着色器 - 尝试设置颜色

c++ - 使用 OpenGL 在 C++ 中绘制 8 x 15 矩形网格 - 崩溃

c++ - 加速转换计算

java - 如何用java在openCv中找到矩形的角点

java - 提取json对象时出错

java - 设置Excel工作表背景图片

c++ - 子类编辑控件的输入验证只接受 float