Opengl es GopenGL将纹理坐标与世界对齐,而不是与面对齐

Opengl es GopenGL将纹理坐标与世界对齐,而不是与面对齐,opengl-es,coordinates,textures,Opengl Es,Coordinates,Textures,我目前拥有的:根据矩形的宽度和高度以及纹理的比例因子生成纹理坐标。这很好: vertices = new float[] { 0, 0, 0, this.height / (this.texture.height * this.texScaleHeight), this.width, 0, this.width / (this.texture.wi

我目前拥有的:根据矩形的宽度和高度以及纹理的比例因子生成纹理坐标。这很好:

vertices = new float[] {
                    0,          0,              0, this.height / (this.texture.height * this.texScaleHeight),
                    this.width, 0,              this.width / (this.texture.width * this.texScaleWidth), height / (this.texture.height * this.texScaleHeight),
                    this.width, this.height,    this.width / (this.texture.width * this.texScaleWidth), 0,
                    0,          this.height,    0, 0 };
我现在想做的是,一些不同位置的矩形,即彼此相邻的矩形,有一个无缝的纹理刻度。我尝试了下列方法,但没有取得好结果

vertices = new float[] {
                    0,          0,              -this.getPosition().x * this.texScaleWidth, this.height / (this.texture.height * this.texScaleHeight) -this.getPosition().y * this.texScaleHeight,
                    this.width, 0,              this.width / (this.texture.width * this.texScaleWidth) -this.getPosition().x * this.texScaleWidth, height / (this.texture.height * this.texScaleHeight)-this.getPosition().y * this.texScaleHeight,
                    this.width, this.height,    this.width / (this.texture.width * this.texScaleWidth) -this.getPosition().x * this.texScaleWidth, -this.getPosition().y * this.texScaleHeight,
                    0,          this.height,    -this.getPosition().x * this.texScaleWidth, -this.getPosition().y * this.texScaleHeight };

如何实现纹理与世界对齐,而不是与它们所在的矩形对齐?

这项技术可能过于笼统,但这里是这样的:可以将纹理坐标投影到几何体上

整个工作流与处理几何体本身相同,但在这里,所有世界点都指定了纹理坐标。通过表示投影仪的另一个MVP矩阵推送几何体中的每个点,并将x、y结果作为该点的纹理坐标(假设为正交投影);透视图需要在后面除以w

我希望你能明白。搜索它时,我没有找到一个像样的描述或教程。阴影贴图使用相同的技术,但其目标是确定点是否被阴影遮挡;这里的目标是为普通投影仪找到纹理坐标