На главную Наши проекты:
Журнал   ·   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
  
> Работа с моделями в 2d , Теория
    Существуют всякие игрушки, которые имеют модели, но отображаются в 2d.
    Примеры таких игр

    Badland:
    Скрытый текст

    Прикреплённая картинка
    Прикреплённая картинка

    http://www.youtube.com/watch?v=7nkxyKo09Qs


    Patapon:
    Скрытый текст

    Прикреплённая картинка
    Прикреплённая картинка

    http://www.youtube.com/watch?v=lp173Si-XZM


    LocoRoco:
    Скрытый текст

    Прикреплённая картинка
    Прикреплённая картинка

    http://www.youtube.com/watch?v=pFKpyScxv0k



    Они рисуются в двумерном пространстве, но по факту видно, что они имеют некоторую модель персонажа (т.е. это не спрайтовый рендер, хотя в случае Patapon - это сомнительно, скорее как раз спрайты, не важно). Интересует теория, как делаются такие игры. Это ведь не просто отрисовка линий по точкам? Если есть возможность - тыкните пожалуйста в форум геймдева или ссылку на msdn, разберусь.

    З.Ы. Технологии - OpenGL 2.0+, Libgdx (Lwjgl), но не думаю, что это важно.

    Добавлено
    Расширю немного вопрос. При использовании абстрактных 2D канвасов - обычно используются методы drawLine, drawBezieCurve и проч., используя OpenGL - чёрным по белому везде написано, что использование подобных вещей - плохая и порочная практика, очень сильно всё замедляют и только для дебага.

    Получается отрисовка подобных вещей - это отрисовка 3d моделей с диффузным одноцветным материалом и отключённым освещением, верно я размышляю? :huh:
      Если учесть, что спрайты для плоских и изометрических игр часто получались рендерингом 3D-моделей (иногда фотографированием фигурок, как в первых DOOM'ах), такой подход вполне может иметь место. Другой вариант: плоская модель с анимацией, как в игре "Another World".

      И думается, модель освещения вообще нужно отключать, если это возможно, а рисовать текстуры как есть.
        Да, так и подумал. Ещё есть вариант вообще избавиться от моделей (как таковых, со скелетом и анимациями) и тупо всё из мешей создавать :)

        Пока что вполне получилось, примерно как надо:
        Прикреплённая картинка
        Прикреплённая картинка


        Думаю не буду закрывать вопрос, вдруг ещё какие идеи будут

        З.Ы. Ну и бинарнички, если кому интересно: http://docs.rudev.org/d/3151e019aafb64d89bac8eaaabc8ce2f (7.8 метров)
        Сообщение отредактировано: Serafim -
          Цитата Serafim @
          как таковых, со скелетом и анимациями

          wat?

          причём тут скелеты и анимации?

          меши с весами отдельно, скелет отдельно, анимации отдельно
            Цитата imbaFireFenix @
            причём тут скелеты и анимации

            Цитата Serafim @
            от моделей


            Например экспорт из блендера
              Цитата amk @
              И думается, модель освещения вообще нужно отключать, если это возможно, а рисовать текстуры как есть.

              Ну освещение в приложении требуется. Решил кардинально сменить стек технологий, раньше остановился вот на таком: http://forum.sources.ru/index.php?act=Atta...attach_id=33266 Хочется как-то это повторить, но без гемора особого.
                Свет фонаря можно сымитировать задником. На столбы и деревья этот свет похоже никак не влияет.

                Здесь интересно передаётся глубина. Во-первых, масштаб. Во-вторых, дымка. В-третьих, резкость.
                  Цитата amk @
                  сымитировать задником.

                  Тупо меш с заливкой?

                  Цитата amk @
                  На столбы и деревья этот свет похоже никак не влияет.

                  Если по порядку - освещение, работая с OpenGL в 2d, я делал сферическим спрайтом и накладывал его два раза, один раз в самом низу (В самом начале), и засветлял фон в местах, где прозрачность спрайта наименьшая, второй раз накладывал уже поверх всего слоя с шейдером, который изменял значение размытия, меньше прозрачность - меньше блюра, т.е. в местах, где деревья больше всего соприкасаются с центром "освещения" происходит размытие границы и небольшое засветление. На скрине этого нету (тогда ещё не было), зато вот тут отчётливо видно:
                  Прикреплённая картинка
                  Прикреплённая картинка


                  Но понято всё это, что это не родное освещение, а сэмулированное, хз, стоит ли сейчас поступать точно так же.

                  Добавлено
                  Цитата amk @
                  Здесь интересно передаётся глубина.

                  Т.к. изначально всё было на 2d - было значение z-index, т.е. глубина (дальность) от основного слоя. Чем выше этот z-index, тем выше прозрачность слоя и его размытие по-гауссу. А т.к. это были спрайты, а не модель - размыть можно было в оперативной памяти, т.е. всё летало. А вот запилить всё это в реальном времени было адово лагуче: http://output.jsbin.com/aTivEjO/2 По-этому и решил более нативно начать пилить.
                  Сообщение отредактировано: Serafim -
                    Цитата Serafim @
                    Тупо меш с заливкой?
                    Ещё проще - текстура, натянутая позади всей сцены - то есть фон. Фактически дальше ты написал, что так и делал - высветлял фон в местах расположения источников света.

                    Вообще, не вижу для 2d и изометрических игр существенных преимуществ от перехода на использование моделей.
                      Цитата amk @
                      Ещё проще - текстура, натянутая позади всей сцены - то есть фон. Фактически дальше ты написал, что так и делал - высветлял фон в местах расположения источников света.

                      Всё же нужен меш: http://forum.sources.ru/index.php?act=Atta...attach_id=33321

                      Цитата amk @
                      Вообще, не вижу для 2d и изометрических игр существенных преимуществ от перехода на использование моделей.

                      Расчёт физики, скелет, анимация, построенные на геометрии модели. Например.

                      Я уже успел состряпать генератор json и *.fbx моделей из фотошопного psd, так что трудоёмкости это не добавит особо.
                      1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                      0 пользователей:


                      Рейтинг@Mail.ru
                      [ Script execution time: 0,1366 ]   [ 20 queries used ]   [ Generated: 18.05.24, 09:43 GMT ]