На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела "Программирование графики"
1) Данный раздел предназначен для обсуждения проблем, возникающих при программировании задач, связанных с чтением, сохранением, обработкой, созданием, отрисовкой графической информации (в том числе - 3D [OpenGL, Direct3D] и анимации [в т.ч. VFW, DirectShow, OpenDML]).
Флэш обсуждают здесь!.

2) Если вы хотите получить совет для конкретной платформы/языка программирования, обязательно укажите их в вопросе.

3) Уважаемые новички! Мы приветствуем Ваше желание научить всех посетителей раздела правильному программированию. Но огромная просьба, перед тем, как писать поучения в старых (последний ответ - "старее" месяца, а особенно, если вопрошавший не появляется на форуме уже не первый месяц, в чем можно убедиться в его профиле) темах, хорошо подумать, будет ли кому-нибудь, кроме Вас cамих, это интересно.



Ваше мнение о модераторах: user posted imageBarazuk, user posted imageOpenGL, user posted imageMikle
Модераторы: OpenGL, Mikle
  
> Круглые поверхности , DirectX
    В DirectX все делается треугольными вертиксами? Т.е если я хочу нарисовать цилиндр (например в CAD системе NX Unigraphics цилиндры выгледят как цилиндры в не зависимости от приближения или удаления) то как это сделать в DirectX ?
    Приходит мысль:
    Создать очень большое количество эл. чтобы при максимальном приближении окружности были окружностями,тогда при удалении окружность тоже будет окружностью.
    Но даже на ломаных окружностях примеров DirectX комп сильно греется (он у меня не супер крутой).
    Однако когда я запускаю Unigraphics и открываю сборку, и даже не простую, все приближается, удаляется и сечения можно делать и т.д, и самое главное - комп не сильно греется.

    Так в чем секрет ? Как создавать круглые поверхности чтобы они были круглыми а не ломаными.

    Движок там на сколько я слышал Parasolid. Это так все оптимизировано или что-то другое?
    Сообщение отредактировано: Designer -
      Подозреваю, что в Unigraphics всё-таки используется не DirectX, а OpenGL, хотя существа вопроса это не меняет.
      Из оптимизаций:
      Все действия совершаются с исходными объектами
      Кривые аппроксимируются ломаными.
      Поверхности аппроксимируются мешами.
      На аппроксимацию обычно накладываются ограничения на угол между соседними сегментами и на их отклонение от исходного объекта.
      Кривизна поверхностей аппроксимируется интерполяцией нормалей.
      Ломаные и меши подбираются один раз и используется пока исходные объекты не изменятся, или не поменяются параметры аппроксимации.
        Цитата amk @
        Из оптимизаций:

        Это всё верно, но, скорее всего, всё дело в отключенной вертикальной синхронизации в имеющихся примерах DirectX :).
        Designer
        Кроме включения vsync, есть ещё более радикальный метод борьбы с нагревом - рисовать только тогда, когда что-то изменилось, в играх такое мало применимо, но в 3D редакторах это как раз то, что надо.
        Сообщение отредактировано: Mikle -
          Спасибо, буду пробовать писать свой 3D редактор.
            Mikle, то, что пока на экране ничего не меняется, можно ничего не перерисовывать, я как-то посчитал само собой разумеющимся. Но ты прав, этот способ уменьшения трудоёмкости самый эффективный.
            1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0223 ]   [ 14 queries used ]   [ Generated: 18.05.24, 17:19 GMT ]