gpu: fix untextured faces

This commit is contained in:
Dennis
2018-11-22 18:42:50 +01:00
committed by Adam
parent fd6b67fae2
commit 3bbf188130
2 changed files with 18 additions and 19 deletions

View File

@@ -324,14 +324,14 @@ class SceneUploader
if (tile.getTexture() != -1)
{
float tex = tile.getTexture();
uvBuffer.put(tex, 1.0f + 1f, 1.0f + 1f, 0f);
uvBuffer.put(tex, 0.0f + 1f, 1.0f + 1f, 0f);
uvBuffer.put(tex, 1.0f + 1f, 0.0f + 1f, 0f);
float tex = tile.getTexture() + 1f;
uvBuffer.put(tex, 1.0f, 1.0f, 0f);
uvBuffer.put(tex, 0.0f, 1.0f, 0f);
uvBuffer.put(tex, 1.0f, 0.0f, 0f);
uvBuffer.put(tex, 0.0f + 1f, 0.0f + 1f, 0f);
uvBuffer.put(tex, 1.0f + 1f, 0.0f + 1f, 0f);
uvBuffer.put(tex, 0.0f + 1f, 1.0f + 1f, 0f);
uvBuffer.put(tex, 0.0f, 0.0f, 0f);
uvBuffer.put(tex, 1.0f, 0.0f, 0f);
uvBuffer.put(tex, 0.0f, 1.0f, 0f);
}
return 6;
@@ -396,10 +396,10 @@ class SceneUploader
{
if (triangleTextures[i] != -1)
{
float tex = triangleTextures[i];
uvBuffer.put(tex, vertexXA / 128f + 1f, vertexZA / 128f + 1f, 0f);
uvBuffer.put(tex, vertexXB / 128f + 1f, vertexZB / 128f + 1f, 0f);
uvBuffer.put(tex, vertexXC / 128f + 1f, vertexZC / 128f + 1f, 0f);
float tex = triangleTextures[i] + 1f;
uvBuffer.put(tex, vertexXA / 128f, vertexZA / 128f, 0f);
uvBuffer.put(tex, vertexXB / 128f, vertexZB / 128f, 0f);
uvBuffer.put(tex, vertexXC / 128f, vertexZC / 128f, 0f);
}
else
{
@@ -531,10 +531,10 @@ class SceneUploader
{
if (u != null && v != null && (uf = u[face]) != null && (vf = v[face]) != null)
{
final short texture = faceTextures[face];
uvBuffer.put(texture, 1f + uf[0], 1f + vf[0], 0f);
uvBuffer.put(texture, 1f + uf[1], 1f + vf[1], 0f);
uvBuffer.put(texture, 1f + uf[2], 1f + vf[2], 0f);
float texture = faceTextures[face] + 1f;
uvBuffer.put(texture, uf[0], vf[0], 0f);
uvBuffer.put(texture, uf[1], vf[1], 0f);
uvBuffer.put(texture, uf[2], vf[2], 0f);
}
else
{

View File

@@ -34,13 +34,12 @@ out vec4 FragColor;
void main() {
float n = fUv.x;
float u = fUv.y;
float v = fUv.z;
if (u > 0.0f && v > 0.0f) {
if (n > 0.0) {
n -= 1.0;
int textureIdx = int(n);
vec2 uv = vec2(u - 1, v - 1);
vec2 uv = fUv.yz;
vec2 animatedUv = uv + textureOffsets[textureIdx];
vec4 textureColor = texture(textures, vec3(animatedUv, n));