Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.226.185.103] |
|
Сообщ.
#1
,
|
|
|
В DirectX все делается треугольными вертиксами? Т.е если я хочу нарисовать цилиндр (например в CAD системе NX Unigraphics цилиндры выгледят как цилиндры в не зависимости от приближения или удаления) то как это сделать в DirectX ?
Приходит мысль: Создать очень большое количество эл. чтобы при максимальном приближении окружности были окружностями,тогда при удалении окружность тоже будет окружностью. Но даже на ломаных окружностях примеров DirectX комп сильно греется (он у меня не супер крутой). Однако когда я запускаю Unigraphics и открываю сборку, и даже не простую, все приближается, удаляется и сечения можно делать и т.д, и самое главное - комп не сильно греется. Так в чем секрет ? Как создавать круглые поверхности чтобы они были круглыми а не ломаными. Движок там на сколько я слышал Parasolid. Это так все оптимизировано или что-то другое? |
Сообщ.
#2
,
|
|
|
Подозреваю, что в Unigraphics всё-таки используется не DirectX, а OpenGL, хотя существа вопроса это не меняет.
Из оптимизаций: Все действия совершаются с исходными объектами Кривые аппроксимируются ломаными. Поверхности аппроксимируются мешами. На аппроксимацию обычно накладываются ограничения на угол между соседними сегментами и на их отклонение от исходного объекта. Кривизна поверхностей аппроксимируется интерполяцией нормалей. Ломаные и меши подбираются один раз и используется пока исходные объекты не изменятся, или не поменяются параметры аппроксимации. |
Сообщ.
#3
,
|
|
|
Цитата amk @ Из оптимизаций: Это всё верно, но, скорее всего, всё дело в отключенной вертикальной синхронизации в имеющихся примерах DirectX . Designer Кроме включения vsync, есть ещё более радикальный метод борьбы с нагревом - рисовать только тогда, когда что-то изменилось, в играх такое мало применимо, но в 3D редакторах это как раз то, что надо. |
Сообщ.
#4
,
|
|
|
Спасибо, буду пробовать писать свой 3D редактор.
|
Сообщ.
#5
,
|
|
|
Mikle, то, что пока на экране ничего не меняется, можно ничего не перерисовывать, я как-то посчитал само собой разумеющимся. Но ты прав, этот способ уменьшения трудоёмкости самый эффективный.
|