草庐IT

opengl-compat

全部标签

Avalonia 跨平台框架中如何以正确的姿势使用 OpenGL ES 渲染。

前言这是一篇很水的文章,没有任何技术含量,在Github已经有很多人对Avalonia的OpenGLES支持进行了讨论,但是我还是想写一篇文章来记录一下我是如何在Avalonia中使用OpenGLES的。介绍在介绍Avalonia和OpenGLES之前,我们先来了解一下什么是Avalonia和OpenGLES以及Avalonia是如何支持OpenGLES的。Angle和OpenGLESANGLE是一个开源的项目,它的目标是将OpenGLES2.0、3.0和3.1应用程序转换为Direct3D11、Vulkan、Metal和OpenGL3.0+应用程序。ANGLE通过将OpenGLESAPI调用

qt程序中,如何做才能用到OpenGL ES图形api

要在Qt程序中使用OpenGLES图形API,您可以通过以下几种方式实现:使用QOpenGLWidget:QOpenGLWidget是Qt提供的一个用于OpenGL渲染的窗口部件。它简化了OpenGL上下文的创建和管理,使开发者可以专注于编写渲染代码。通过继承QOpenGLWidget并重写其初始化函数和paintGL函数,您可以在其中直接使用OpenGLESAPI进行绘制。使用QOpenGLExtraFunctions:如果您需要使用更高版本的OpenGLES(如3.0、3.1或3.2),可以使用QOpenGLExtraFunctions类。这个类提供了跨平台的OpenGLES3.xAPI,

我的应用使用意图创建OpenGL活动时会崩溃

当我使用意图打开一个创建glsurfaceview的活动时,我的应用程序会崩溃,但是代码可以正常编译,如果您将活动“opengles20activity”设置为清单中的主要活动,绕过溅起屏幕,则应用程序可行,但是当splashsplash时屏幕是在主要活动中进行的,当我按下按钮时,应用程序会崩溃。这是用于发送意图的按钮的代码:importandroid.content.Intent;importandroid.support.v7.app.AppCompatActivity;importandroid.os.Bundle;publicclassSplashextendsAppCompatAct

c++ - 模型在窗口调整 OpenGL 3.2 大小时拉伸(stretch)

我已经设置了一个包含OpenGL3.2渲染上下文的窗口(在MFC中)。因为它与OpenGL3.2一起使用,所以我想使用着色器等,所以我手动构建投影和View矩阵。我用过this教程作为构建它们并将它们传递给我的着色器的输入。现在的问题是(即使在教程的示例中)当我调整窗口大小时,模型被拉伸(stretch)。这是我用来构建矩阵的代码(我重建它们并在每次刷新窗口时将它们发送到我的着色器)。查看矩阵:floatzAxis[3],xAxis[3],yAxis[3];floatlength,result1,result2,result3;//zAxis=normal(lookAt-positio

c++ - 写入 OpenGL 模板缓冲区

我一直在阅读OpenGL中的模板缓冲区。基本概念是有道理的;只有在与模板缓冲区中的值按位与运算后满足特定条件时,才会绘制片段。但是我不明白的一件事是你实际上是如何写入模板缓冲区的。是否有我在这里缺少的功能?附言当我说写入时,我的意思是在模板缓冲区中指定特定的值。 最佳答案 没有人回答这个问题,这是一个有效的问题,所以一年多后,这里是您问题的答案。stencilbuffer理论上和backbuffer、depthbuffer一样是一个缓冲区。他们三个被同时写入(启用时)。您可以通过特定调用启用/禁用写入它们:glColorMask(r

c++ - OpenGL:顶点索引缓冲区的问题

我刚开始使用VBO,除了顶点索引缓冲区外,一切似乎都很好。如果我在启用索引缓冲区后调用glDrawElements,我会收到访问冲突错误(找不到索引),如果我只是用指向内存中索引数组开头的指针调用它,它就可以工作..//DOESN'TWORKglBindBuffer(GL_ELEMENT_ARRAY_BUFFER,indices);glDrawElements(GL_TRIANGLES,stripIndices.size(),GL_UNSIGNED_INT,0);//WORKSglDrawElements(GL_TRIANGLES,stripIndices.size(),GL_UNSI

c++ - 尝试在 OpenGL/SFML 中实现鼠标外观 "camera"

我将OpenGL与SFML1.6结合使用已有一段时间了,效果非常好!除了一个异常(exception):我似乎无法正确实现相机类。你看,我正在尝试创建一个名为“Camera”的C++类。这是我的功能:Camera::Strafe(floatfSpeed)检查是否按下了WASD键,如果是,则以“fSpeed”向各自的方向移动相机。Camera::MouseMove(intcurrentX,intcurrentY)应提供第一人称鼠标外观,采用当前鼠标坐标并相应地旋转相机。我的Strafe()实现工作正常,但我似乎无法正确使用MouseMove()。通过阅读有关OpenGL鼠标外观实现的其他

c++ - glGetUniformLocation OpenGL ES 2.0 (ipad 3 iOS 7.0.3 返回结果错误)

这是我的顶点着色器:attributevec4a_position;uniformmat4u_projection;uniformvec4u_origin_translation;uniformvec4u_translation;attributevec2a_texCoord;varyingvec2v_texCoord;uniformvec4u_color;varyingvec4v_color;attributevec4a_color;voidmain(){vec4pos=a_position+u_origin_translation+u_translation;gl_Position

c++ - 不破坏上下文的常见 OpenGL 清理操作

最近,我一直在为我的实时程序做屏幕外GPU加速。我想创建一个上下文并多次重复使用它(100+)。我正在使用OpenGL2.1和GLSL1.20版。每次重用上下文时,我都会做以下事情:编译shaders,链接program然后glUsePrograme(问题1:我应该重新链接program还是重新链接program?每次都创建程序?)生成FBO和Texture,然后绑定(bind)它们以便进行离屏渲染。(问题2:我应该销毁那些FBO和Texture)生成GL_Array_BUFFER并将一些顶点数据放入其中。(问题3:我什至需要清洁这个吗?)glDrawArraybluhbluh...调

c++ - 在 Qt 的外部类中使用 OpenGL 上下文

我在Qt中有一个继承自QGLViewer的窗口。如果我在该类中创建任何着色器程序,QGLShaderProgrammyShader一切都运行良好。但是,我开始将一些渲染调用移至具有draw()调用的类之外​​的类,结果出现问题。应用程序编译正常,没有错误,但在执行时我收到错误Theprogramhasunexpectedlyfinished。我发现从Qt4到Qt5着色器类发生了变化,成为Qt5中使用的QOpenGLShaderProgram。我试了一下,但还是出现了同样的问题,不过我收到了一条不同的错误消息QOpenGLFunctionscreatedwithanon-currentc