四棱锥映射贴图-VR播放显示

主要基于开源代码:https://github.com/ValveSoftware/openvr/tree/master/samples/hellovr_opengl 

进行修改,开发工具:VS2015。

首先你得有四棱锥全景图,如下:xxx.png  xxx.jpg  分辨率必须是4的倍数 宽高相同

bool CMainApplication::SetupTexturemaps()
{// 初始化 读取图片
	rgbImg = imread("C:/.../xxx.jpg");
	if (rgbImg.cols != rgbImg.rows | rgbImg.rows % 4 != 0 | rgbImg.cols % 4 != 0) {
		cout << "分辨率有问题!" << endl;
		getchar();
		return false;
	}	
	glGenTextures(1, &m_iTexture);
	glBindTexture(GL_TEXTURE_2D, m_iTexture);
	glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, rgbImg.cols, rgbImg.rows, 0, GL_BGR, GL_UNSIGNED_BYTE, rgbImg.data);//贴图
	glGenerateMipmap(GL_TEXTURE_2D);
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
	glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
	GLfloat fLargest;
	glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &fLargest);
	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, fLargest);
	glBindTexture(GL_TEXTURE_2D, 0);
	return (m_iTexture != 0);
}

 

 

然后修改void CMainApplication::AddCubeToScene( Matrix4 mat, std::vector<float> &vertdata )函数ÿ

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值