最近在学Unity Shader,看到说DX和OpenGL的差异有一个例子是:在RenderTexture上,Opengl的坐标系是原点在左下角,DirectX是在左上角,并且opengl是左手坐标系,dx是右手坐标系。
为了做一个简单的测试,新建了一个工程,在我的辣鸡华硕飞行堡垒gtx1050,win10上搞了一个测试,如图所示,却发现了另外一个问题,即对于Unity创建的那个Plane,它在采样renderTexture纹理的时候是一个相反(左右相反,上下相反)的过程。摄像机的预览图和Plane(这里没有做任何的旋转,保持了和世界坐标原点的R和T完全一致)不一样。
本来我想这可能是我的操作有误,因此随便拖拽了一个JPG生成sprite作为一个standard material的albedo属性,发现它也是相反的,因此得出结论这个是Plane本身的uv坐标(右上(0,0)开始到左下(1,1)),特此做一个记录。如果有什么不对,请各路大神及时指出。