Ogre实现渲染大量矢量快速更新颜色的方法

本文探讨了在三维GIS渲染中提高效率的一种方法,通过在顶点缓存中添加颜色和纹理坐标缓存,实现了大量矢量渲染时颜色的快速更新。在修改颜色时,只需锁定相关缓存并遍历赋值即可。代码示例展示了如何添加颜色缓存、纹理坐标缓存以及如何更新颜色,使得在一个批次中渲染的多个实体能独立改变颜色。
摘要由CSDN通过智能技术生成

      三维GIS的渲染不得不考虑的是效率问题,显卡的工作方式是可以高效的处理大量少批次的三角面,而不是处理少量大批次的三角面。所以为了保证效率,将相同渲染规格的渲染实体合并到一个批次去渲染,会大大提高渲染效率。但是这样也带来一个问题,就是虽然效率提高了,但是可编辑性降低了,合并在一起的实体很难去编辑。

       本文介绍一种大量矢量渲染的快速更新颜色的方法,重点是更新颜色,因为合并矢量渲染实体很简单,这里不做太多的介绍。

       首先说一下思想,在顶点缓存中加入颜色缓存,加入纹理坐标缓存(用一维纹理坐标代替矢量的ID)。在修改颜色时,锁定纹理坐标缓存,和颜色缓存,根据ID遍历,将颜色赋值即可。

添加颜色缓存代码如下:

         //创建颜色数据
	vbuf =
		HardwareBufferManager::getSingleton().createVertexBuffer(
		decl->getVertexSize(COLOURBUFFER),
		vertexCount,
		HardwareBuffer::HBU_DYNAMIC_WRITE_ONLY); 
	//绑定颜色顶点
	mRenderO
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值