我目前拥有的内容:根据矩形的宽度和高度以及纹理的比例因子生成纹理坐标。这很好:
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 };
我如何实现纹理“与世界对齐”而不是它们所坐的矩形?
答案 0 :(得分:0)
这种技术可能方式过于笼统,但在这里:你可以将纹理坐标投影到几何上。
整个工作流程与处理几何体本身相同,但在这里,所有世界点都分配了纹理坐标。通过另一个MVP矩阵(代表投影仪)推动几何体中的每个点,并将(x, y)
结果作为此点的纹理坐标(假设正交投影);透视要求事后按w
进行划分。
我希望你明白这个主意。搜索它,我找不到体面的描述或教程。 阴影映射使用相同的技术,但其目标是确定一个点是否被遮蔽;在这里,目标是找到普通投影仪的纹理坐标。