2016-08-05 3 views
1

Я пытаюсь сделать floortiles в opengl/processing3.Что не так с моей текстурой?

Вот мой код:

PImage floorImage; 

void setup() { 
    size(1200, 600, P3D); 
    smooth(8); 
    floorImage = loadImage("floor3.png"); 
} 

void draw() { 

    background(0); 
    ambientLight(255,255,255); 
    camera(0.0,100.0,-300.0,mouseX-width/2.0,-(mouseY-height/2.0),0.0,0.0,-1.0,0.0); 

    for(int x=-20;x<20;x++) 
    { 
    for(int z=-20;z<20;z++) 
    { 
     pushMatrix(); 
     translate(x*32.0,0.0,z*32.0); 
     beginShape(); 
     textureMode(NORMAL); 
     texture(floorImage); 
     vertex(-32.0,0.0,-32.0,0.0,0.0); 
     vertex(32.0,0.0,-32.0,1.0,0.0); 
     vertex(32.0,0.0,32.0,1.0,1.0); 
     vertex(-32.0,0.0,32.0,0.0,1.0); 
     endShape(CLOSE);  
     popMatrix(); 
    } 
    } 
} 

А вот текстура: tile texture

Конечный результат, однако, выглядит ужасно!

results with artefacts

Почему?

ответ

2

Похоже, у вас есть размер квадрата = 64, но вы перемещаете его по 32 в направлениях x и z. Я думаю, что у вас есть перекрестки. Попробуйте заменить на это:

translate(x*64.0,0.0,z*64.0); 
+0

Боже, как глупо, спасибо! – monoceres

+0

Dang, избили меня. Имейте upvote. –

Смежные вопросы