【发布时间】:2019-12-14 20:15:01
【问题描述】:
我有一个矩阵,当您将 vec2 插入其中时,它会为您提供屏幕坐标。 它产生如下结果:
我可以反转矩阵,并插入鼠标坐标并使用它来让您用光标放置块
但是有一个问题,如果分辨率不遵循 width=height*2 那么你会得到一个混乱的图像
切换着色器,以便在向量修复此问题后矩阵相乘,但现在光标不会与块对齐
这是确定位置的着色器代码(按此顺序相乘会破坏光标但修复分辨率错误):
gl_Position.xy= a_position.xy * u_pixelMatrix ;
这是我正在使用的矩阵
26 * renderSettings.blockRotation[0] / renderSettings.screenSize[0]*0.95
,26 * renderSettings.blockRotation[1] / renderSettings.screenSize[0]*0.95
,12 * renderSettings.blockRotation[2] / renderSettings.screenSize[1]*0.95
,12* renderSettings.blockRotation[3] / renderSettings.screenSize[1]*0.95;
这是我提供给反转矩阵的鼠标位置坐标
playerControls.mousePosition[0]/canvas.width-0.5,-playerControls.mousePosition[1]/canvas.height+0.5
此外,我使用 gl-matrix 进行矩阵反转和乘法运算,它只允许我将鼠标坐标向量乘以矩阵,反之亦然。谢谢。
【问题讨论】:
标签: matrix vector graphics webgl multiplication