0

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 × 1024。

是否可以使用更大的瓷砖尺寸,如 2048 x 2048 或 4096 x 4096,我该怎么做?

4

1 回答 1

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。

于 2017-05-05T06:04:44.103 回答