2016-04-29 4 views
3

Я пытаюсь сделать моделью viewer в three.js, используя opengl. И одна из функций, которые я хочу сделать, это изменить текстуры во время выполнения. Я уже сделал это. Но для меня это кажется немного жестоким, мне хотелось чего-то более крутого. Нравится video. Конечно, я знаю, что это продвинутый материал, но я не нашел примеров. Некоторые советы?Есть ли способ сделать пользовательский переход между текстурами в three.js

+0

Думаю, вам нужен пользовательский ShaderMaterial – 2pha

ответ

2

Вы должны Lerp (линейно интерполировать) между двумя текстурами. Ваш шейдер фрагмента должен содержать обе текстуры, а затем запускать lerping после загрузки второй текстуры, той, которую вы хотите изменить. Затем используйте операцию, например col = fromTex.rgb * (1.0-t) + toTex.rgb * t, и измените коэффициент смешивания/lerping t на протяжении всего времени, пока вы полностью не соединитесь со второй текстурой. t можно отправить как форму, которая будет медленно меняться с 0.0->1.0.

+0

Вот и все! Хорошо работает. –

+0

Или вы можете использовать функцию «mix» в шейдере фрагмента. Еще проще. – taseenb

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