OpenGL ES 纹理阵列的实现

简介: OpenGL ES 纹理阵列的实现 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循“署名-非商业用途-保持一致”创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。

OpenGL ES 纹理阵列的实现

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es)

本文遵循“署名-非商业用途-保持一致”创作公用协议

转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino否则,出自本博客的文章拒绝转载或再转载,谢谢合作。




以下是纹理的参数设置,对这些参数,绝对脑袋大好几圈儿。

+ (void)setTextureParameter {
    
    // It can be GL_NICEST or GL_FASTEST or GL_DONT_CARE. GL_DONT_CARE by default.
    glHint(GL_GENERATE_MIPMAP_HINT, GL_NICEST);
    
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
}

不过,今天在三维模型中,想把一个房间的屋顶和地面换成适合的图片,但从网上下载的图片都不太大,我的贴图坐标是整个贴满这个长方体底面儿的所有三角形(这句话,太精炼了,包含了太丰富的内容在里面,不过只有你知道,你才能看得懂)但这张图如果被拉伸后,一整个花铺满地面,确实不好看,我想让它自动的复制拼合成一大张,再贴上去,这样一个地面,就由N多个这个图案的花铺就的了,这样子才好看些。

其实,在 3DMAX 中看到别人这样弄过,即然 3DMAX 能弄,我们OpenGL ES中也应该能弄,不过具体怎样弄,还不知道。

突然想到上面的那堆让人脑袋大好几圈的纹理参数,最后两行是纹理的S坐标和T坐标,换了所有三个:

+ (void)setTextureParameter {
    
    // It can be GL_NICEST or GL_FASTEST or GL_DONT_CARE. GL_DONT_CARE by default.
    glHint(GL_GENERATE_MIPMAP_HINT, GL_NICEST);
    
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_MIRRORED_REPEAT);
}

结果还是一个样子,具体这些参数是重复什么,还真的搞不清楚。


无耐想到一个损招,说它损,是因为要增加很多的与GPU的交互过程,所以看看效果就行了,最好不用,多用些功夫在研究OpenGL ES本身提供的功能上。

这招就是,人为地把那个面上的三角形进行分组,这个需要设计一个算法,然后贴同样的一张图,纹理坐标不变。


说来,我也不会去试它了,耽误工夫,我还是先用photoshop组出一张来为好,这样涉及OpenGL ES的复杂性降到最低,才能突现出研究目标,避勉引入杂质,影响对进程的判断。




目录
相关文章
|
2月前
|
XML 小程序 Java
【Android App】三维投影OpenGL ES的讲解及着色器实现(附源码和演示 超详细)
【Android App】三维投影OpenGL ES的讲解及着色器实现(附源码和演示 超详细)
73 0
|
存储 编解码 算法
Opengl ES之LUT滤镜(上)
Opengl ES之连载系列
371 0
|
数据安全/隐私保护 开发者
OpenGL ES 多目标渲染(MRT)
Opengl ES连载系列
246 0
|
数据安全/隐私保护 索引
Opengl ES之纹理数组
Opengl ES连载系列
203 0
|
数据安全/隐私保护
Opengl ES之水印贴图
Opengl ES之连载系列
107 0
|
Java 数据安全/隐私保护 Android开发
Opengl ES之矩阵变换(下)
Opengl ES连载系列
94 0
|
Java API 数据安全/隐私保护
Opengl ES之矩阵变换(上)
Opengl ES连载系列
99 0
|
存储
Opengl ES之踩坑记
Opengl ES之连载系列
104 0
|
存储 编解码 算法
Opengl ES之RGB转NV21
Opengl ES连载系列
124 0
|
并行计算 C++
Opengl ES之YUV数据渲染
Opengl ES连载系列
142 0