o2co2 |
2014-05-08 00:13 |
有谁用过 QOpenGLTexture 做skybox吗?
我一直不成功不知为什么?
请大家帮帮忙
skyTex = new QOpenGLTexture( QOpenGLTexture::TargetCubeMap ); skyTex->create(); skyTex->bind( 0 ); skyTex->setSize(512,512); skyTex->allocateStorage();// skyTex->setMipLevels(0);// skyTex->setLayers(1); QString fileName; fileName = "/Users/army/code/QT_OpenGL/OpenGLQT_Demos/assets/skybox/snow_posx.jpg"; QImage image_posx( fileName ); skyTex->setData( 0,0,QOpenGLTexture::CubeMapPositiveX,QOpenGLTexture::RGBA,QOpenGLTexture::UInt8,image_posx.bits() ); fileName = "/Users/army/code/QT_OpenGL/OpenGLQT_Demos/assets/skybox/snow_negx.jpg"; QImage image_negx( fileName ); skyTex->setData( 0,0,QOpenGLTexture::CubeMapNegativeX,QOpenGLTexture::RGBA,QOpenGLTexture::UInt8,image_negx.bits() ); fileName = "/Users/army/code/QT_OpenGL/OpenGLQT_Demos/assets/skybox/snow_posy.jpg"; QImage image_posy( fileName ); skyTex->setData( 0,0,QOpenGLTexture::CubeMapPositiveY,QOpenGLTexture::RGBA,QOpenGLTexture::UInt8,image_posy.bits() ); fileName = "/Users/army/code/QT_OpenGL/OpenGLQT_Demos/assets/skybox/snow_negy.jpg"; QImage image_negy( fileName ); skyTex->setData( 0,0,QOpenGLTexture::CubeMapNegativeY,QOpenGLTexture::RGBA,QOpenGLTexture::UInt8,image_negy.bits() ); fileName = "/Users/army/code/QT_OpenGL/OpenGLQT_Demos/assets/skybox/snow_posz.jpg"; QImage image_posz( fileName ); skyTex->setData( 0,0,QOpenGLTexture::CubeMapPositiveZ,QOpenGLTexture::RGBA,QOpenGLTexture::UInt8,image_posz.bits() ); fileName = "/Users/army/code/QT_OpenGL/OpenGLQT_Demos/assets/skybox/snow_negz.jpg"; QImage image_negz( fileName ); skyTex->setData( 0,0,QOpenGLTexture::CubeMapNegativeZ,QOpenGLTexture::RGBA,QOpenGLTexture::UInt8,image_negz.bits() );// skyTex->create(); skyTex->setWrapMode(QOpenGLTexture::DirectionS, QOpenGLTexture::ClampToEdge ); skyTex->setWrapMode(QOpenGLTexture::DirectionR, QOpenGLTexture::ClampToEdge ); skyTex->setWrapMode(QOpenGLTexture::DirectionT, QOpenGLTexture::ClampToEdge ); skyTex->setMinificationFilter( QOpenGLTexture::Linear ); skyTex->setMagnificationFilter( QOpenGLTexture::Linear ); qDebug()<<"textureId:"<<skyTex->textureId(); |
|