Qt+OpenGL实现加载纹理

当需要给图像赋予真实颜色的时候,不太可能使用前面的方法,为每一个顶点指定第一个颜色。通常会采用纹理贴图

为了能够把纹理映射(Map)到三角形上,需要指定三角形的每个顶点各自对应纹理的哪个部分。这样每个顶点就会关联着一个纹理坐标(Texture Coordinate),用来标明该从纹理图像的哪个部分采样(译注:采集片段颜色)。之后在图形的其它片段上进行片段插值(Fragment Interpolation)。

纹理坐标在x和y轴上,范围为0到1之间(注意使用的是2D纹理图像)。使用纹理坐标获取纹理颜色叫做采样(Sampling)。纹理坐标起始于(0, 0),也就是纹理图片的左下角,终始于(1, 1),即纹理图片的右上角。下面的图片展示了是如何把纹理坐标映射到三角形上的。

接下来的工作:告诉OpenGL如何对纹理采样

float vertices_data[24] = {
        // 所有的值是在[-1, 1]之间的
        // 位置              // 颜色          //纹理坐标
        0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 0.0f,1.0f, 1.0f,   // 右下
        -0.5f, -0.5f, 0.0f, 0.0f, 1.0f, 0.0f,1.0f, 0.0f,  // 左下
        0.0f, 0.5f, 0.0f, 0.0f, 0.0f, 1.0f,0.0f, 0.0f,   // 顶部   
    };

由于添加了一个额外的顶点属性,必须告诉OpenGL新的顶点格式:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值