2016-04-29 4 views
3

Ich versuche, eine Model Viewer in three.js mit OpenGL machen. Und eines der Features, die ich machen möchte, ist Texturen während der Laufzeit zu ändern. Ich habe es schon getan. Aber es scheint mir etwas brutal, ich wollte etwas Cooles. So, video. Natürlich weiß ich, dass es ein fortgeschrittenes Zeug ist, aber ich habe keine Beispiele dafür gefunden. Einige Tipps?Gibt es eine Möglichkeit, einen benutzerdefinierten Übergang zwischen Texturen in three.js

+0

Ich denke, dass Sie ein benutzerdefiniertes ShaderMaterial benötigen würden – 2pha

Antwort

2

Sie müssen Lerp (linear interpoliert) zwischen den beiden Texturen. Ihr Fragment-Shader muss beide Texturen enthalten und dann Lerping auslösen, sobald Sie die zweite Textur laden, die Sie ändern möchten. Verwenden Sie dann den Vorgang wie col = fromTex.rgb * (1.0-t) + toTex.rgb * t und ändern Sie den Misch-/Lernkoeffizienten t während der gesamten Zeit, bis Sie vollständig in die zweite Textur übergehen. t kann als eine Uniform gesendet werden, die sich langsam von der 0.0->1.0 im Laufe der Zeit ändern würde.

+0

Das ist es! Gut gearbeitet. –

+0

Oder Sie könnten die 'mix' Funktion im Fragment-Shader verwenden. Noch einfacher. – taseenb