Menu

Problems with materials

2015-05-16
2015-09-20
  • Nickolay Sosnovikov

     
  • Raizel

    Raizel - 2015-05-24

    Можно пример меша с материалом и xml - файла шрифта?

     
    • Nickolay Sosnovikov

      Шрифты - это не к мешам, а к спрайтам. Для вывода шрифта нужно создавать shSpritesLayer и из него - shSpriteFont. shSpriteFont может иметь ресурс в виде TTF, FNT и XML. Из XML - это свой собственный шрифт из картинок.

      Пример XML для кастомного шрифта:
      <?xml version = '1.0' encoding = 'UTF-8'?>

      <space>30</space>


      <offset>0 0 38</offset>
      <coord>0 0 39 50</coord>

      <array index="012345678" path="monkey/font/rb_%.png" first="0">
      <offset>
      0 0 38
      0 0 29
      0 0 38
      0 0 39
      0 0 40
      0 0 38
      0 0 40
      0 0 38
      0 0 38
      </offset>
      <coord>
      0 0 39 50
      7 0 26 50
      0 0 39 50
      0 0 40 50
      0 0 42 50
      0 0 40 50
      0 0 41 50
      0 0 39 50
      0 0 39 50
      </coord>
      </array>

      <frame/>

      • в этом шрифте заданы цифры от 0 до 9, соответственно такой шрифт может рисовать только их. Класть файлы XML для шрифтов по умолчанию нужно в папку "../Animations".
       

      Last edit: Nickolay Sosnovikov 2015-05-24
  • Raizel

    Raizel - 2015-09-11

    Все-таки, выложите, пожалуйста, пример меша с материалом. Не могу понять, что не так делаю.

     
    • Nickolay Sosnovikov

      А какое отношение меши имеют к шрифтам?

       
  • Raizel

    Raizel - 2015-09-12

    Да дело не в шрифтах.Сейчас я прошу МЕШ с МАТЕРИАЛОМ. Тогда я просил и меш, и файл шрифта, а это ДВЕ разные вещи.

     
  • Nickolay Sosnovikov

    https://drive.google.com/file/d/0B1Sb6IrBqtgsREx1bk1WemdNN2c/view?usp=sharing
    Сделал для вас сборку на основе бинарника из SVN. То есть это код из SVN, из класса demoListener.
    Модели положил не все, так как иначе слишком большой архив будет.

    Напишите когда скачаете и запустится.

     
  • Raizel

    Raizel - 2015-09-12

    Ну, должен сказать, я впечатлен. При таком развитии движка, вы вскоре превратите его в отличную вещь! Все работает, буду моделировать свою сцену. Спасибо!

     
  • Raizel

    Raizel - 2015-09-12

    Бывает такое, что "спотыкаешься" на ровном месте. Не указал кодировку xml - вот ничего и не работало. Обалдеть!

     
  • Raizel

    Raizel - 2015-09-12

    А почему можно использовать только одну карту деталей в материале? Или я что-то не понял?

     
    • Nickolay Sosnovikov

      Потому что больше уже не влезает в слоты: 8 текстур под материалы, 2 под кубмапу окружения (цвет и глубина), 2 зарезервировано под изображение сцены (цвет и глубина), ещё 3 зарезервировано под шедоумапы и одна под лайтмапы. Всё, в притык 16.
      Однако, потенциально эту одну карту можно использовать для нескольких компонентов, как в кризисе. Там одна текстура используется для нормалей, диффузии и блеска. Это можно прикрутить при желании.

      Тут более детально расписано:
      https://sourceforge.net/p/shengine/wiki/Шейдеры%20и%20их%20встроенные%20данные/

       

      Last edit: Nickolay Sosnovikov 2015-09-12
  • Raizel

    Raizel - 2015-09-12

    Так что, на вещи типа параллакса уже места нет? Плохо... хотя, можно карту высот запихать в альфа канал карты нормалей.

     

    Last edit: Raizel 2015-09-12
    • Nickolay Sosnovikov

      Не можно, а нужно. 4-й компонент карты нормалей используется в качестве высоты при рассчётах эмбиента. Если этот компонент не задан, то высота всегда равна 1.0, то есть эмбиент максимальный.
      Параллакс изначально предусмотрен в существующей системе, для этого даже 4 параметра интегрированы для его настроек. Даже не представляю почему вы решили что его нельзя добавить.

      Единственное что нельзя делать - это комбинация альфа-теста и параллакса.

       

      Last edit: Nickolay Sosnovikov 2015-09-12
  • Raizel

    Raizel - 2015-09-19

    А как сильно повлияет на производительность OpenGL такая техника, как step parallax, ну или relief mapping? В SoftPixelEngine рельеф напрочь убивал ФПС.

     
    • Nickolay Sosnovikov

      Параллакс достаточно сильно просаживает производительность. А так как эффект от него достаточно слабый, лучше его вообще не использовать. В играх кроме первого кризиса его больше никуда не пихали. Игроки параллакс не заметят, а тормоза заметят.

       
  • Raizel

    Raizel - 2015-09-19

    А вот тут я не согласен, я говорил не о простом параллаксе а о step и relief. Вобщем, посмотрите сами.

     
    • Nickolay Sosnovikov

      Обычно под параллаксом подразумевается именно "степ параллакс". "Обычный" от него отличается только тем, что в нём шаг один.

       
  • Raizel

    Raizel - 2015-09-19

    Вообще обидно за OpenGL, т.к. для него почти нет учебной литературы по современной графике(ну разве что супербиблия с примерами). Поэтому и учить его тяжело.

     
  • Raizel

    Raizel - 2015-09-20

    Вы очень часто упоминаете Кризис, но я не могу понять, почему, ведь он на DirectX. Я еще никогда не работал с директом, так что я не могу судить о нем, я знаю, что OpenGL намного лучше обрабатывает треугольники - а это уже что-то. И вообще, почему все создатели игр используют директ?
    И еще один момент, относительно параллакса: Посмотрите исходники движка X-Ray(это который в игре сталкер), ну ОЧЕНЬ интересный двиг, тока код очень корявый, и явно заточен под WIN API :(

     
    • Nickolay Sosnovikov

      Direct3D и OpenGL - это только интерфейс к видеокарте. Производительность зависит от видеокарты, а не от GAPI. Если от GAPI что-то и зависит, то только работа на процессоре, то есть скорость отправки команд.
      Про кризис я указал, так как это единственная игра где применяли параллакс.

      А Direct3D используют из-за наработок в коде. Раньше D3D9 был очень популярным, так как дрова под OpenGL были кривоваты. Сейчас ситуация с дровами намного лучше.

       

      Last edit: Nickolay Sosnovikov 2015-09-20
  • Raizel

    Raizel - 2015-09-20

    В смысле, из-за наработок в коде? Я знаю, что примеров по D3D больше, или они как-то друг у друга тырят код(очень частое стало явление!)?
    Еще одно: Нашел движок, который меня заинтересовал - UXGEN SDK - писал русский, весь код под LGPL(полностью свободный), поддержка OpenGL 3.3 - 4.2(core и compatibility), но сыроват, и похоже заброшен.

     
    • Nickolay Sosnovikov

      Ну вот есть контора, которая пишет игры с 95 года. Она использовала D3D, так как в те времена в дровах и железе был зоопарк, а D3D вроде как работал более-менее. 20 лет - это и опыт программистов и наработки. С чего им вдруг резко всё менять? Тем более что винда обещает хорошую поддержку именно D3D. Вот так оно и получается.

      А движков всяких десятки. Что мне с них?

       

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.