R语言用rayshader渲染3D地图遇RGL纹理尺寸超限警告求助
解决RGL纹理尺寸超出警告的方法
针对你在使用rayshader的plot_3d函数渲染亚利桑那州人口3D可视化时遇到的Maximum texture size of 1024x1024 exceeded警告,这里有几个可行的解决办法:
启用mipmapping(警告提示的方案)
在调用plot_3d之前,先配置rgl启用mipmapping,让OpenGL自动处理大纹理的缩放适配:# 启用mipmapping rgl::rgl.material(mipmap = TRUE) # 执行你的plot_3d调用 plot_3d(...) # 替换成你原有的plot_3d参数强制缩小纹理/渲染窗口尺寸
直接限制plot_3d的输出尺寸在1024x1024以内,避免超出显卡的纹理限制:plot_3d( your_heightmap, # 你的高度图数据 windowsize = c(1024, 1024), # 限制窗口与纹理尺寸 # 保留你原有的其他参数(如zscale、zoom等) )如果是输入的纹理图过大,也可以先缩放图像:
# 用magick包缩放纹理图到1024x1024 library(magick) resized_texture <- image_scale(image_read("your_texture.png"), "1024x1024") # 再将缩放后的纹理传入plot_3d使用检查并调整显卡驱动
既然昨天代码还能正常运行,大概率是显卡驱动出现异常或自动更新导致OpenGL纹理限制变化。前往显卡厂商官网(NVIDIA/AMD/Intel)下载重新安装对应型号的驱动,或者回滚到之前的稳定版本。重置RGL设备并切换渲染模式
尝试重置rgl设备,或者强制使用软件渲染绕开显卡硬件限制:# 关闭当前rgl设备 rgl::rgl.close() # 强制使用软件OpenGL渲染(Windows平台) options(rgl.useNULL = FALSE) Sys.setenv(RGL_USE_SOFTWARE = "TRUE") # 重新运行plot_3d代码
内容的提问来源于stack exchange,提问作者SignalWarrant
相关产品推荐
相关产品推荐

