与此同时,有没有办法规定Matlab或paraview或任何其他使用openGL的应用程序以双精度进行操作?我可以为我的问题使用解决方法,但我不愿意:)谢谢!
编辑: 我试着更具体地解决问题/问题。前两张图片:
第一个是使用openGL渲染的,第二个(精细的)是在输入“opengl neverselect”方法后渲染的,后者切换到另一个渲染器。由于我在Paraview中遇到了非常类似的渲染问题,我很确定这是特定于OpenGL的,而不是matlab或Paraview的“错误”。当我移动下面评论中提到的值时,我也可以平滑地渲染图像。我认为这是因为我的数据范围从零开始有很大的偏移,并且重新编程例程的精度不够准确,并且在渲染计算中产生严重的舍入误差。
因此,我想知道你是否知道某种方式(在matlab中,Paraview,在OS设置中)将渲染精度设置得更高(我读到gpus / opengl通常以浮点数计算)
答案 0 :(得分:2)
首先,这与OpenGL无关。 Matlab实际上做绘图的部分是用一些编译语言编写的,并且只依赖OpenGL来显示屏幕内容。
使用的精度(double / float)被硬编码到程序中。您无法使用操作系统或强制程序使用不同的数据类型。在某些情况下,您可能能够对程序的源代码进行相关更改,然后重新编译,但这听起来并不适用于您的情况。
这并不意味着没有办法在Matlab中做你想做的事。事实上,由于该程序专门用于进行数值计算,因此几乎可以肯定是一种指定精度的方法。如果您想获得进一步的指导,您需要提供有关您的问题的更详细信息(屏幕截图?)。