Процедурная генерация графики

Тема в разделе "WASM.GRAPHICS", создана пользователем Rel, 10 май 2021.

  1. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.330
    Заинтересовался вопросом процедурной генерации графики для компьютерных игр. Вспомнил, что когда динозавры были большими, вместе с vx-сценой существовала демо-сцена, в которой делали весьма занимательные вещи в плане процедурной генерации графики (смотри видос внизу). Возможно, тут есть олдфаги, которые в этой самой сцене участвовали и что-то делали. Внимание вопрос! Понакидайте мне полезной на ваш взгляд информации по процедурной генерации графики, книги там, статьи или видосы. Само собой сам тоже гуглю на эту тему, просто может кто-то из вас знает хорошую инфу по этому вопросу. Ну и пообсуждать эту тему тоже было бы интересно. Спасибо!

     
  2. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    875
  3. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.330
    Выглядит хорошо, она трехмерная и вращается вокруг оси z, или двухмерная и этот эффект вращения процедурный?
     
  4. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    875
    Полностью генерируется 3-хмерная модель и текстуры к ней.
     
  5. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.330
    Я пока смотрю в сторону 2D графики, более того в сторону пиксель-арта))
     
  6. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    875
    А какая процедурная генерация для пиксель-арта? Пиксель-арт это же стилизованное рисование. Делал 2D генерацию, правда на GDI+ https://www.cyberforum.ru/blogs/354370/blog1867.html
     
  7. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.330
    Ну оно и есть. Просто там есть некоторые правила и ограничения, чтобы она смотрелась красиво и аутентично. Нельзя просто нарисовать картинку в векторе или высоком расширении, а потом даунскейлить ее до 24х24 пикселя, например.

    Ты, я смотрю, любитель ёлок))
     
  8. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    875
    Ну для текстур я думаю можно сначала делать генерацию в полном цвете/размере, потом уменьшать размер/цветность + дизеринг.
     
  9. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.330
    Надо поэкспериментировать, но из того, что я видел, обычно так не делают пиксель арт. Есть еще воксель арт, примерно тоже самое, но в 3д, довольно интересная тема тоже.
     
  10. Intro

    Intro Active Member

    Публикаций:
    0
    Регистрация:
    29 авг 2009
    Сообщения:
    603
    Посмотрел код. Да, там используется библиотека gdiplus и user32. Можно переписать на UASM. А то я васик совсем разлюбил, хотя когда то, на заре, что-то там кодил, вроде даже что-то сохранилось.
    gdiplus.inc и user32.inc в наличии, посмотрим сколько будет файл весить. Хотя наглядный васик делает так же очень компактные файлы.
     
  11. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.735
    Да помню демосцену начала 90х ... была тема до 256 байт демка.
    Это чудо на дискетах носили 5" показывали под MsDOS.
     
  12. Intro

    Intro Active Member

    Публикаций:
    0
    Регистрация:
    29 авг 2009
    Сообщения:
    603
    Сделал процедурную реализацию фейерверка в сталкере. В конфиге можно задавать количество, тип и партикл звезд а так же как они должны разлетаться.

    Сама реализация, как я считаю правильная, но сами звезды сделаны на основе геймобъектов с физ. оболочкой ака взрывчатка или проджектайл. И вот, как видно, получил существенную задержку при создании этих объектов, т.е. в момент взрыва люсткугеля. Как видно один люсткугель взорвался на маленькой высоте, это баг связан с просадкой ФПС. Кстати это чисто скриптовая реализация.
    Так же сделал движкой реализацией, стало чуть лучше, но много звёзд не сделаешь. Остаётся сделать на основе пуль, при этом их надо доработать чтобы не исчезали при нулевых скоростях и правильно реагировали на геометрию и на физические объекты. Если получится, то можно задать хоть 1000 звёзд без снижения ФПС. XRay может просчитывать большое количество пуль на сцене, если проц много ядерный. Тут я думаю он уделывает и CryEngine и даже новый UnrealEngine, но это не точно.
     
  13. Sashasan

    Sashasan New Member

    Публикаций:
    0
    Регистрация:
    17 фев 2008
    Сообщения:
    23
    Адрес:
    Воронеж
    когда-то делал простую игру видео даже на ютубе сохранилось :) Генерируется большое количество метеоров, проверяется на столкновения с мостом 6 000 000 полигонов на родионе hd4600 shader 2.0 dx9