小编Rya*_*yan的帖子

opengl - 帧缓冲区纹理剪裁得比我设置的小?

我正在使用 opengl ES 2.0 我正在使用链接到纹理的帧缓冲区来编译屏幕外渲染(一些简单的元球),然后我将该纹理渲染到主后台缓冲区。

除了纹理看起来被剪裁外,一切看起来都很棒,即。它不是完整的窗口尺寸(在一个轴上短约 128 个像素)。这是屏幕截图:http : //tinypic.com/r/9telwg/7

任何想法可能导致这种情况?我在这里读到将 glViewport 设置为纹理的大小,但这给了我不同的纵横比,因为纹理 metaballsTexture 是方形(1024x1024)而我的窗口是 768x1024。它仍然有点被剪裁,因为似乎我无法让帧缓冲区足够大,即使纹理大于我的窗口大小。下面是我的代码。当我准备好时,我在渲染期间调用 PrepareToAddMetaballs(),然后连续调用 AddMetaball,现在渲染到我的屏幕外 FBO,然后在我完成后调用 FinishedAddingMetaballs,然后调用 Render() 以显示链接到 FBO 的屏幕外纹理到主后台缓冲区。

#include "Metaballs.h"
#include "s3e.h"
#include "IwGL.h"
#include "Render.h"
#include "vsml.h"
#include <vector>
#include <string>
#include <iostream>
#include "1013Maths.h"

#define GL_RGBA8 0x8058

MetaBalls::MetaBalls() : metaballsTexture(NULL), metaballsShader(NULL) {
    glGenFramebuffers(1, &myFBO);

    metaballTexture[0] = NULL;
    metaballTexture[1] = NULL;
    metaballTexture[2] = NULL;
    CRender::Instance()->CreateTexture("WaterCanvas.png", &metaballsTexture);
    CRender::Instance()->CreateTexture("metaball.pvr", &metaballTexture[0]);
    CRender::Instance()->CreateTexture("metaball-1.png", &metaballTexture[1]);
    CRender::Instance()->CreateTexture("metaball-2.png", &metaballTexture[2]);
    CRender::Instance()->CreateShader("Shaders/metaballs.fs", "Shaders/metaballs.vs", &metaballsShader);

    glBindFramebuffer(GL_FRAMEBUFFER, myFBO);
    // Attach texture …
Run Code Online (Sandbox Code Playgroud)

c++ textures opengl-es framebuffer clipping

2
推荐指数
1
解决办法
2598
查看次数

为什么 VS2015 Enterprise 中禁用 MSBuild 分析代码覆盖率选项?

我的解决方案中有工作单元测试(从向导生成的单独项目)。我尝试安装通用测试设置文件。确保我已登录并拥有我名下的有效企业许可证。

但我的分析代码覆盖率工具被禁用:

两个地方都禁用

项目结构

更新:添加了创建新项目的屏幕截图 新项目

msbuild unit-testing visual-studio-2015

2
推荐指数
1
解决办法
1464
查看次数