coin3d屏幕外渲染类SoOffscreenRenderer
能够渲染大图像(例如4000 x 2000像素),这些图像不适合屏幕或渲染缓冲区。这是通过将图像分割成一个接一个渲染的图块来完成的,其中这些图块的默认大小为1024 x 1024。
我查看了SoOffscreenRenderer
和CoinOffscreenGLCanvas
的代码,找到了环境变量COIN_OFFSCREENRENDERER_TILEWIDTH
COIN_OFFSCREENRENDERER_TILEHEIGHT
。我可以使用这些变量更改拼贴大小,但仅限于小于1024的大小。我可以创建512 x 512像素的拼贴,也可以创建768 x 768.当我使用大于1024的值时,生成的拼贴总是大小为1024 x 1024。
是否可以使用更大的瓷砖尺寸,如2048 x 2048或4096 x 4096,我该怎么做?
答案 0 :(得分:0)
可以使用更大的瓷砖和硬币自动完成。它将通过查询显卡驱动程序找出哪些瓷砖尺寸有效。
来自CoinOffscreenGLCanvas.cpp
:
// getMaxTileSize()返回从中收集的理论最大值 //各种GL驱动程序信息。我们不能保证我们会成功 //能够分配这种大小的缓冲区 - 例如由于记忆 //对gfx卡的限制。
它不起作用的原因是环境变量COIN_OFFSCREENRENDERER_MAX_TILESIZE
是使用coin_setenv("COIN_OFFSCREENRENDERER_MAX_TILESIZE", "1024", 1);
在我们的应用程序中的某处设置的。删除此调用允许使用更大的磁贴大小。
在CoinOffscreenGLCanvas::getMaxTileSize(void)
中,读取变量COIN_OFFSCREENRENDERER_MAX_TILESIZE
并相应地压缩切片大小。
在我的旧计算机上,它生成了大小为1024的磁贴,但在较新的计算机上,磁贴的大小为4096.