![]() |
ScaleEntity & ScaleMesh
Вижу разницу между етими ф-ями, но понять ее не могу !!
ScaleEntity - меняет размер Entity !! ScaleMesh - меняет размер Mesha !! а разницы , если Entity у меня Mesh ?? и еще : если ScaleEntity в цикле, то все норм скалит ScaleEntity man,1,1,1 если ScaleMesh в цикле, то скалит каждый цыкл ScaleMesh man,1,1,1 и потом получаем размер меша NaN !! помогите разобраться !! |
Re: ScaleEntity & ScaleMesh
Разница между ними очень велика, а именно- если скалить размер объекта как ЕНТИТИ то размер самого меша не меняется, т.е. меняется размер пивота на котором крепиться меш(вродь так=)) а када меняеш размер мешу то он уже изменяет позиции вершин, для чего ето нада- много где нада, особенно если ты работаеш с перебором треуголдьников + их позициями, например тени, физика ....
|
Re: ScaleEntity & ScaleMesh
пойняв !! а почему тогда это:
Цитата:
|
Re: ScaleEntity & ScaleMesh
меш - это сама сетка модели в памяти
ентити - ее "отражение", то есть тот же меш но перемноженый на матрицы скейла поворота перемещения. От одного меша может быть множество "отражений" и у каждого свои параметры. |
Re: ScaleEntity & ScaleMesh
Еще могу добавить свои смутные сомнения, возможно у меня параноя, но кажется соскаленные мэши рэндэрятся чуть быстрее чем также сплющенные энтити.
|
Re: ScaleEntity & ScaleMesh
одинаково
|
Re: ScaleEntity & ScaleMesh
я так и не получил прямого ответа на вопрос почему, меш скалится каждый цыкл, а entity тоже, но только это не изменяет видимые размеры меша/ентити ??
|
Re: ScaleEntity & ScaleMesh
как я помню :
ScaleMesh bla,1.1,1.1,1.1 - домножить все координаты меша на 1.1 ScaleEntity bla,1.1,1.1,1.1 - домножить все координаты меша на 1.1 тоесть в первом случае они в цикле будут изменятся во втором - нет |
Re: ScaleEntity & ScaleMesh
Цитата:
из-за разницы самих функций в структере или че ?? |
Re: ScaleEntity & ScaleMesh
Меш - масив координат и масив сойденений етих координат
Ентети - ССЫЛКА на ети координаты к примеру у тебя есть mesh1 и entity1,entity2 которые ссылаются на mesh1 ScaleEntity entity1,2,2,2 ScaleEntity entity2,3,3,3 тут entity2 увеличится в два раза, entity3 увеличится в 3 раза если опять вызвать ети же команды - ничего не произойдет потому что оригинальный mesh1 увиличат опять в два раза .. получим тоже самое при ScaleMesh mesh1,2,2,2 сам mesh1 увеличится в 2 раза и entity1,entity2 увеличатся в 2 раза ! |
Re: ScaleEntity & ScaleMesh
Да вы не так ему обьясняете :)
IGR Представь что Entity это мат. матрица, а Mesh - это набор точек в пространстве Когда ты скейлишь Mesh - координаты всех точек домножаются и изменяют свои положения При следующем вызове координаты опять домножаются и опять изменяют свое положение, т.е. - 1.0 * 0.5 = 0.5 - 0.5 * 0.5 = 0.25 - 0.25 * 0.5 = 0.125 А когда ты скелишь Entity - изменяется мат. матрица. А как известно, при отрисовке меша координаты его точек умножаются на эту матрицу конкретно для рендеринга (локально), т.е. точки меша не меняют своего положения Вот формула скейлинга матрицы 4x4 Код:
[x 0 0 0] - 1.0 = 0.5 = 0.5 - 0.5 = 0.5 = 0.5 - 0.5 = 0.5 = 0.5 Теперь понятно?:) |
Re: ScaleEntity & ScaleMesh
- Папа, ты сейчас с кем разговаривал ? (с)
|
Re: ScaleEntity & ScaleMesh
И еще такой вопрос:
-если использовал ScaleEntity не значит ли это, что энтити будет скалится каждый раз перед рэндэром, т.е. не добавляет ли ScaleEntity новых мат.операций над энтити (матрицей) или энтити так и так какбы скалится под 1, даже без использования ScaleEntity? --- т.е. вопрос в конечном итоге какбы о том кто скалит энтити dx или сам блиц? |
Re: ScaleEntity & ScaleMesh
В Блице ты трансформируешь матрицу ентити, а DX уже каждый раз перед выводом меша, устанавливает свою матрицу трансформации (мировую) по той матрице которая у этого ентити. Т.е. неважно скейлил ты матрицу или нет, все равно трансформация будет производиться.
|
Re: ScaleEntity & ScaleMesh
Цитата:
при scaleentity просто устанавливается новый размер и если значение скала не изменилось, то мы не видим изминений !! а в случае с scalemesh, там координаты каждой точки меша домножаются и по этому с каждым цыклом он увеличевается !! всё ясно !! спасибо !! |
Часовой пояс GMT +4, время: 16:38. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot