coin3d屏幕外渲染类SoOffscreenRenderer能够渲染不适合屏幕或渲染缓冲区的大图像(例如,4000x2000像素)。这是通过将图像划分为一个接一个渲染的平铺来实现的,其中这些平铺的默认大小为1024 x 1024。
我查看了SoOffscreenRenderer和CoinOffscreenGLCanvas的代码,找到了COIN_OFFSCREENRENDERER_TILEWIDTH COIN_OFFSCREENRENDERER_TILEHEIGHT的环境变量。我可以使用这些变量更改瓦片大小,但只能更改为小于1024的大小。我可以创建512x512像素的瓦片,也可以创建768x768的瓦片。当我使用大于1024的值时,得到的平铺大小始终为1024x1024。
是否可以使用更大的瓦片尺寸,如2048 x 2048或4096 x 4096,我该怎么做?
发布于 2017-05-05 14:04:44
可以使用更大的瓷砖,硬币可以自动完成。它将通过查询显卡驱动程序找出哪些磁贴大小有效。
来自CoinOffscreenGLCanvas.cpp
// getMaxTileSize()返回从//各种GL驱动程序信息中收集的理论最大值。我们不能保证//能够分配这种大小的缓冲区--例如,由于gfx卡上的内存//限制。
它不起作用的原因是在我们的应用程序中使用coin_setenv("COIN_OFFSCREENRENDERER_MAX_TILESIZE", "1024", 1);设置了环境变量COIN_OFFSCREENRENDERER_MAX_TILESIZE。删除此调用允许使用更大的图块大小。
在CoinOffscreenGLCanvas::getMaxTileSize(void)中,读取变量COIN_OFFSCREENRENDERER_MAX_TILESIZE,并相应地钳制平铺大小。
在我的旧电脑上,它生成的瓷砖大小为1024,但在新机器上,瓷砖的大小为4096。
https://stackoverflow.com/questions/43349994
复制相似问题