在Unity中,在编写着色器时,
是否有可能着色器本身"知道"屏幕分辨率是什么,实际上着色器控制单个物理像素?
我只考虑为"2D"对象编写着色器的情况(例如UI使用,或者在使用正射相机的任何事件中).
(当然,通常在屏幕上显示一个物理像素完美的PNG,你只需要一个400像素的PNG,你就可以安排缩放,以便着色器恰好可以绘制到400个物理像素.我想知道什么about是一个只绘制的着色器,例如物理像素完美的黑线 - 它必须"知道"物理像素的确切位置.)
为此获得赏金......
我目前正在使用OpenGL编写科学成像应用程序.
我想知道当我的代码(C++/OpenGL和简单GLSL)在不同的硬件上执行时,OpenGL渲染(根据FBO检索到的像素)应该是完全确定的(ATI与NVidia,各种NVidia代和各种操作系统) )?
更确切地说,每次在任何硬件上运行我的代码(可以运行基本的GLSL和OpenGL 3.0)时,我都需要完全相同的像素缓冲区...
那可能吗?我应该考虑一些建议吗?
如果不可能,是否有一个特定品牌的视频卡(也许是Quadro?)可以在改变主机操作系统的同时做到这一点?