小编Aut*_*kos的帖子

从SDL2表面创建OpenGL纹理 - 奇怪的像素值

我正在尝试使用SDL2为Wavefront Objects的OpenGL渲染加载纹理(目前我正在使用固定管道进行测试,但我最终计划移动到着色器).问题是应用于四边形的加载纹理(以及使用纹理右下角的一小部分的模型)如下所示:

效果样本http://image-upload.de/image/daKaEf/e433b140c9.png 这是我用过的纹理

使用SDL函数绘制时,图像加载正常并且看起来完全正常,因此可能是转换为已损坏的OGL纹理.请注意,我启用了alpha混合,纹理仍然完全不透明 - 因此值不是完全随机的,可能不是未初始化的内存.这是我转换表面的代码(从这里的各种教程和问题拼凑而成):

GLuint glMakeTexture(bool mipmap = false, int request_size = 0) { // Only works on 32 Bit Surfaces
    GLuint texture = 0;
    if ((bool)_surface) {
        int w,h;
        if (request_size) { // NPOT and rectangular textures are widely supported since at least a decade now; you should never need this...
            w = h = request_size;
            if (w<_surface->w || h<_surface->h) return 0; // No can do.
        } else {
            w = _surface->w;
            h = _surface->h;
        } …
Run Code Online (Sandbox Code Playgroud)

c++ opengl textures loading sdl-2

8
推荐指数
1
解决办法
2357
查看次数

标签 统计

c++ ×1

loading ×1

opengl ×1

sdl-2 ×1

textures ×1