草庐IT

GL_TEXTURE_BUFFER

全部标签

ios - 使用 GL_POINTS 时 gl_Position 是否设置矩形的中心?

我正在开发可在多个平台上运行的C#/OpenGL代码库:通过MonoTouch的iOS/OpenGLES2.0、通过OpenTK的Windows/OpenGL以及其他平台。当从四边形切换到GL_POINTS渲染时,我注意到我正在绘制的矩形在iOS上渲染时带有偏移量。似乎在Windows上,gl_Position定义了要绘制的矩形的中心。这是我期望的行为。在iOS/OpenGLES2.0/MonoTouch上,gl_Position似乎设置了矩形的左上角。我花了几个小时试图找出造成这种情况的原因,因为,当然,我认为这是由我的代码中的错误引起的。但在我浪费更多时间之前:使用GL_POINT

c++ - 绘制 gl 场景时 CPU 使用率高;起源?

既然除了窗口大小之外什么都没有变化,我的程序需要一个完整的核心来在最大化的窗口上渲染场景是否正常?我在Windows上使用C++语言的Qt4.7绘制150张尺寸为1754*1240的图片(组件为RGBA,每一个字节)。我像这样加载我的纹理:glGenFramebuffers(TDC_NB_IMAGE,_fborefs);glBindFramebuffer(GL_FRAMEBUFFER,_fbo);//initializetexglGenTextures(TDC_NB_IMAGE,_picrefs);for(inti=0;i我这样画我的场景:glBindFramebuffer(GL_FR

c++ - OpenCL/GL 互操作 : write_imagef to shared gltexture is all white (1, 1,1,1)

我正在尝试使用OpenCL编写光线追踪器。但是,我遇到了一些麻烦。我想在OpenGL和OpenCL之间共享纹理内存,以避免不必要的内存来回复制。我的程序运行良好,我在每次调用GL和CL后进行检查,没有发现任何错误。如标题中所述,使用write_imagef写入内核中的纹理会在每个channel中产生1.0。我怀疑纹理格式有问题,但我一直在互联网上寻找有效的纹理格式,但我看不出有什么问题。我尝试了write_imageui和write_imagef以及纹理格式的不同组合,但没有成功。内核程序:__kernelvoidDraw(__global__write_onlyimage2d_tim

windows - 硬件 H264 编码 ID3D11Texture2D with Media Foundation

我正在从事一个捕获屏幕并对其进行编码的项目。我已经可以使用桌面复制API(Win8+)捕获屏幕。使用API,我可以获得ID3D11Texture2D纹理并将它们从GPU传输到CPU,然后使用libx264对其进行编码。但是,将纹理从GPU拉到CPU可能是一个瓶颈,可能会降低fps。libx264也占用CPU周期(取决于质量)来编码帧。我正在寻找在GPU本身中编码ID3D11Texture2D纹理,而不是使用CPU进行编码作为优化。我已经检查了文档和一些示例代码,但没有成功。如果有人可以向我指出一些可靠地完成我想要的事情的资源,我将不胜感激。 最佳答案

windows - 是否可以在没有 GL 加载程序库的情况下在 Windows 上链接到 OpenGL > 1.1?

如果我只使用glcorearb.h,是否可以链接MSVC附带的1.1OpenGL.lib中未提供的OpenGL函数?当我只包含header(定义了GL_GLEXT_PROTOTYPES)并编译时,我得到了一堆未解析的外部信息,当我#defineGLAPI__declspec(dllimport)我得到一堆__imp__Unresolvedexternal问题。这些符号是从哪里来的?DependencyWalker在这里没有给我任何有用的信息。如果我可以这样做,我该如何在MSVC中进行设置?我问是因为我不需要加载程序提供的任何高级功能(即支持检测),但我确实需要现代OpenGL。

windows - 如何在 Windows 上设置 gl3w?

我一直在寻找设置Gl3w的详细指南,因为我到处都找不到! 最佳答案 首先,在https://github.com/skaslev/gl3w下载gl3w然后,下载Python3.x:https://www.python.org/downloads/接下来,运行脚本。它将在源文件夹中生成gl3w.c,并在include/GL/文件夹中生成gl3w.h和glcorearb.h。取其中三个,然后将它们直接添加到您的项目中,或者(更容易执行包含),将它们移动到项目的源文件文件夹中,然后将这3个添加到项目中。在您的主源代码和“gl3w.c”源代

windows - gl_VertexID 中断渲染

我有以下GLSL着色器(被加载到OpenGL3.3前向上下文中,但我在2.1中得到了相同的行为):constGLchar*constglsl_vertex_timeseries={"#version330\n""#extensionGL_EXT_gpu_shader4:enable\n""""invec2in_Y;""""voidmain()""{"//"intdummy=gl_VertexID;""gl_Position=vec4(in_Y,0.0,1.0);""}"};为了定位问题,简化了很多。如图所示,它编译、链接并显示我的几何图形。如果注释行被激活,它会在没有警告的情况下进行编

c++ - 我应该始终对 OpenGL 中的所有纹理使用 GL_ARGB 格式吗?

这一直困扰着我一段时间......而且很难真正看到性能上的任何差异,所以我在这里问:如果我的图像不使用alphachannel,我应该使用“GL_RGB”将它们保存在GFX卡内存中,还是应该使用“GL_ARGB”因为它的完整32位block处理速度更快?或者GFX卡是否会自动将24位图像转换为32位图像以缩短渲染时间?编辑:我没有性能问题,但我只想以最好的方式做到这一点!我还想确保该程序在旧显卡上呈现良好,而不必像新显卡那样优化东西。 最佳答案 选择适合您的纹理数据的格式,让显卡驱动程序操心细节。不要试图智取它。OpenGL实现非常

python - 在 Windows 中使用 Protocol Buffer

我正尝试在Windows中使用googleprotocolbuffer与python绑定(bind),但是我在安装步骤中遇到了一些问题。按照说明,我必须自己使用vs编译PB,但我的机器上没有安装vs,然后我在download找到了一个窗口二进制文件。页面。我还下载了完整的sourcecodepackage,然后我将protoc-2.5.0-win32.zip\protoc.exe放到C:\windows\system32。然后我转到protobuf-2.5.0.zip\python并运行pythonsetup.pyinstall来安装python绑定(bind)。但是我得到这样的错误:

c++ - 检索要通过网络发送的 ID3D11Texture2D 数据

我正在修改桌面复制api示例kindlyprovidedbyMicrosoft捕获屏幕并通过网络将更新发送到我的应用程序。我知道如何实际发送数据;我的问题是从ID3D11Texture2D对象获取数据。ID3D11Texture2D*m_AcquiredDesktopImage;IDXGIResource*desktopResource=nullptr;DXGI_OUTDUPL_FRAME_INFOFrameInfo;//GetnewframeHRESULThr=m_DeskDupl->AcquireNextFrame(500,&FrameInfo,&desktopResource);