Я новичок в vertex-shader, и я использую threejs morphTargets и Points для рендеринга меша моего объекта, и я использую vertex-shader для рендеринга и анимации меша.
В каждой размещенной мною вершинеизображение сферы (скажем, молекулы), и я хочу, чтобы они вибрировали случайным образом в направлениях х и у.Я пытаюсь добавить некоторые случайные значения, чтобы они вибрировали с одинаковой скоростью в случайных направлениях.
void main() {
//Morph the position based on morphTargets
vec3 morphed = vec3( 0.0 , 0.0 , 0.0 );
morphed += ( morphTarget0 - position ) * morphTargetInfluences[0];
morphed += position;
// // vibrate the molecules based on temperature
float degrees = temperature + 60.0;
float amplitude = degrees + 100.0 / degrees;
float rand1 = (random * rand(position.xy) * amplitude) * 0.00001;
morphed.x = morphed.x + rand1;
morphed.y = morphed.y + rand1;
//morphed.z = morphed.z + rand1;
gl_Position = projectionMatrix * modelViewMatrix * vec4( morphed, 1.0 );
}
Приведенный выше код вибрирует молекулы в одном направлении, похоже, что весь контейнер молекулы движется, а не молекулы.
Так, как я могу получить случайные колебания для каждой вершины?