2016-05-09 2 views
1

Я недавно начал заниматься программированием шейдеров с помощью babylon.js. Я пытаюсь написать фрагментарный шейдер, поддерживающий повторяющиеся текстуры. Я использовал довольно тривиальный способ сделать это, как вы можете сказать по ссылке.babylon.js повторяющийся текстурный шов/артефакт

http://www.babylonjs.com/cyos/#CARU2#1

vec2 xy = vUV; 
vec2 phase = fract(xy/vec2(1.0/vScale,1.0/vScale)); 
vec3 color = texture2D(textureSampler, phase).rgb; 

Проблема заключается в том, что это создает странный pixelating эффект на швах повторяющейся текстуры, как показано на следующем рисунке.

My problem

Как я могу это исправить? Это должно быть что-то не так с моим шейдером фрагмента, потому что использование стандартного материала не дает этой проблемы.

Если бы кто-нибудь мог помочь, я был бы бесконечно благодарен.

ответ

0

Ничего себе я идиот, я искажал изображение действительно глупо и неэффективно. Я не думаю, что я действительно понял, что линия:

vec2 phase = fract(xy/vec2(1.0/vScale,1.0/vScale)); 

Выполнял. Я все еще не на 100%, но логичным способом является просто умножить вектор uv на повторяющийся фактор.

vec2 phase = vec2(xy.x*vScale,xy.y*vScale); 

Вы можете увидеть результат здесь:

http://www.babylonjs.com/cyos/#CARU2#2

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