Найди центр сетки, найди расстояние между центром и опорной точкой, определи сжатие(растяжение), составь на всё матрицы, перемножь: сетка х смещение опорной точки в 0 х масштаб х смещение обратно и будет тебе счастье.
Ауру делаешь?
k119_55524
> Ауру делаешь?
Нет. Пробую эту идею как решение подзадачи, но кстати пригодилось бы.
[A][R][T]
> graveman
> Для некоторых тел такое невозможно сделать, например для бублика
Действительно. Вообщем, обыкновенное масштабирование не прокатывает. Необходимо неравномерно масштабировать скорее от некоей срединной линии тела, есть в некоторых пейперах про диаграмму Вороного изложение этого понятия. Что-то вроде скелета.
Появились некоторые соображения, буду пробовать.
graveman
Как правильно отписался народ, наш мир реален и понятие центра - абстрактная условность. Центр имеют симметричные фигуры. Причём этот центр может быть вне фигуры. Поэтому тебе нужен свод правил (алгоритм), которым ты определяешь то место, относительно которого ты масштабируешь.
Возможно тебе нужно найти локальное место фигуры с максимально большим объёмом ?
Ответ 2.
Если ты делаешь что-то типа ауры, у тебя тело лежит внутри себя же. тогда всё просто:
Если у тебя тело надето на скелет, то скелет не трогаешь, а немного масштабируешь размер. На стыках конечно небольшая лажа получится, зато по краям смотреться будет нормально.
Если нет скелета, тогда границы отмасштабированного объекта должны быть одинаково смещены относительно границ неотмасштабированного в противоположных сторонах. Соответственно тебе нужно искать геометрический центр. И для этого лучше объект вписать в сферу. Её центр и будет точкой, относительно которой нужно масштабировать.
Не сильно вчитывался, но имхо большинство предложений(по крайней мере с центром) - чистейший бред.
Единственный, с моей точки зрения ТРУЪ вариант - создать копию меша, причем каждую вершину сместить относительно её позиции на вектор нормали умноженный на необходимое расстояние, т.е.:
new_Vpos = Vpos * Vnor * dist;
Но тут как всегда будут некорректности с выпуклой геометрией(треугольники может выворачивать при слишком больших сдвигах).
Обходные пути вроде бы есть, но не такие уж и тривиальные.
Тема в архиве.