1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Игры с воксельной графикой

Тема в разделе "PC Игры", создана пользователем Дарк Шнайдер, 31 окт 2007.

  1. daemolisher

    daemolisher

    Регистрация:
    2 дек 2009
    Сообщения:
    1.704
    Нормали - это метод для полигонов - то есть "традиционный"

    А для вокселей нужно использовать то, что обычно НЕ используют.
    К примеру, фотоны.
    Лучше честные фотоны не трогать.
    Просто из каждого вокселя выпускаем 100 антилучей во все стороны.
    Если пересекается с другими вокселями, то 0
    Если антилуч упирается в небо, то +1
    В итоге получаем число от 0 до 100
    Это число и будет освещённостью вокселя.
    С рассеянными тенями в одном флаконе.

    Такой метод будет медленнее если пытаться его использовать для полигонов и нормалей.
     
  2. INHELLER

    INHELLER

    Регистрация:
    19 май 2009
    Сообщения:
    7.228
    daemolisher > Блин. Нормали это не традиционный, или нетрадиционный метод. Это такая штуковина, которая показывает куда смотрит полигон, или другой направленный обьект. И он есть, даже без карт нормалей. Карты нормалей, просто изменяют направление нормалей на основе основных нормалей полигонов.
    Ладно, давай на секунду забудем о скорости вычислений. И подумаем о том, в чем проблема) Первое, что приходит на ум - а, что делать, если нужно добавить источник света(в помещении)? Обычные источники света бесконечно малы, поэтому, они просто не смогут отлавливать "лучи". Поэтому, придется ставить что-то вроде "экранов" с которыми могут столкнуться эти лучи. Только вот, как контролировать силу освещения? Конечно, можно делать их побольше, только как нормально контролировать количество попавших на них фотонов? Да, и что делать, если комната маловата? Конечно можно добавить к источникам света и фотонам информацию о количестве освещения от каждого луча. Только это добавит "тяжести". Да, и придется держать еще кучу параметров, для облегчения настройки освещения.
    А, теперь, о главных проблемах:
    На самом деле, 100 лучей это слишком мало) Не забывай, что речь идет о 360 градусах(более грубо сферическом испускании). Таким образом, они просто проглядят любые мелкие детали, или небольшие окна, особенно на средних дистанциях(про дальние, я уже молчу). Можно было-бы увеличить их количество, только и при ста лучах, получается огромная цифра. Даже, если у нас будет всего 100 вокселей, получаем 10000 фотонов. В то, время, как для хоть немного нормальной картинки понадобится хотя-бы 1000 вокселей. И уже имеем 100000 фотонов!!! А теперь, самое сложное - контроль столкновений. Конечно, воксели выглядят как кубики, спрайты, или как взбредет в голову) Только, все это бутафория - на самом деле, они тоже бесконечно малы) А, различные эффекты "попадания" просчитываются с помощью некоторых алгоритмов. Их можно использовать для просчета столкновений с фотонами(даже, возможно, их можно сильно оптимизировать). Только, все равно, придется просчитывать слишком много столкновений. Даже, 10000 это не шутка) И про риал-тайм уже не будет идти и речи.
    Кстати, про "поверхности" "без нормалей" это-различные Volume примитивы(с соответствующими шейдерами) Типичный пример таких обьектов - облака) Только вот, обычно, они рендерятся без само-затенения(не равномерное освещение обьекта), не умеют отбрасывать тени и. т. д. Конечно, есть алгоритмы помогающие в этом нелегком деле, только для этого нужен алгоритм рендеринга Raytrasing(он умеет считать честные отражения, преломления света и. т. д.) да и включить самый сложный режим просчета теней) С этим, они выглядят куда более впечатляюще, только, время рендеринга увеличивается в разы))
    Кстати, то, что ты назвал "нечестными фотонами" очень похожи на "настоящие" разве, что "во-взрослых" рендерингах их выпускают источники света, и у них немного больше параметров+дополнительных свойств)
     
    Последнее редактирование: 11 окт 2010
  3. daemolisher

    daemolisher

    Регистрация:
    2 дек 2009
    Сообщения:
    1.704
    А если предположить, что воксель - это сфера.
    Где бы ни был источник - сфера будет всегда освещена одинаково (учитывается только расстояние до источника)

    Воксель окружён другими 26 вокселями (67108864 вариантов размещения)
    Нам столько и не надо.
    Если предположить что окружающие воксели могут закрывать или не закрывать воксель, то можно из этого сделать вывод о его освещённост (тут предположим, что сферы достаточного размера что бы не образовывать просветов между собой)
    Да и учитывать придётся только четверть - 7 вокселей направленных на источник.
    А 7 вокселей могут разместиться 128 вариантами (всего то)
    Учитывая что будет считаться ещё и расстояние (0 - источник света слишком далеко, а 256 - в упор рядом с вокселем), то этого более чем достаточно для качественной картинки.
     
    Последнее редактирование: 11 окт 2010
  4. INHELLER

    INHELLER

    Регистрация:
    19 май 2009
    Сообщения:
    7.228
    daemolisher > Вот, сделал нечто схожее, правда с помощью частиц(но,разницы в отображении нет)... вьюпорт тормозит)))) Обьект = кубик с разрешением 41х41х41)) Первые 2 рендера - сферы, второй - спрайты) Отрендерено с помощью MaYa Hardware. Каждый кадр рендерило примерно минуту(спрайты, чуть быстрее, но тоже довольно медленно))) В сцене всего 2 источника света. Правда, я не пробовал включать просчет освещенности, в зависимости от дальности от источника света, но, потом, постараюсь отловить этот параметр. Только, вот просчет с перекрыванием вокселей вряд-ли получится сделать... а, если и получится, то, думаю, можно будет смело идти спать - к утру как раз будет готово)
    Кстати, Hardware Render Buffer отрендерил вариант со-спрайтами за секунду, только вот, он не обновлялся с 1998-ого) То-есть никаких современных эффектов(шейдеры, бамп и. т. д.) - его основная задача быстро рендерить МИЛЛИОНЫ и МИЛЛИАРДЫ частиц)

    Sphere Voxels1
    Sphere Voxels2
    Sprite Voxels
    Harware Render Buffer Sprite Voxels

    П. С. У меня опять сдох кдвин,а русских букв на клавиатуре нет, поэтому не против, если по-позже дам четкий ответ?)
     
  5. Guyver

    Guyver

    Регистрация:
    2 окт 2005
    Сообщения:
    4.957
    Чо тут происходит? Нубы, не видевшие Outcast и прочие воксельные игры, открывают Америку?
     
  6. Дарк Шнайдер Недопустимо инфантилен

    Дарк Шнайдер

    Регистрация:
    18 окт 2004
    Сообщения:
    22.283
    Guyver, засрали мне тему оффтопом, вот что :) неплохо бы подчистить и придерживаться темы, может ещё что нароем
     
  7. INHELLER

    INHELLER

    Регистрация:
    19 май 2009
    Сообщения:
    7.228
    Guyver > Не а, некоторые пытаются обьяснить специфику игровых вокселей.

    Дарк Шнайдер > Так, ведь речь об использовании вокселей в игровой графике))))
     
  8. Guyver

    Guyver

    Регистрация:
    2 окт 2005
    Сообщения:
    4.957
    Азбуку в первом классе проходят. А тут люди игры ищут. В конце-концов заведите себе отдельную тему.
     
  9. Werecat13 Gone fishing

    Werecat13

    Регистрация:
    8 янв 2007
    Сообщения:
    5.506
    Ищут их немножко в других разделах. А здесь их, как правило, обсуждают.

    Это ничего, что я поправил?
     
    INHELLER нравится это.
  10. daemolisher

    daemolisher

    Регистрация:
    2 дек 2009
    Сообщения:
    1.704
    INHELLER > sprite voxels выглядит странно

    воксель не должен выглядеть объёмно, сферами не надо рендерить (когда я говорил про сферы я подразумевал то, что воксель весь будет окрашен средним значением цвета всей поверхности сферы. извините)

    последний скрин правильный

    с Maya не знаком
    я бы тоже попробовал
    если очень надо могу на дельфи состряпать (с OpenGL всмысле)
    но, блин, боюсь овчинка выделки не стоит
     
  11. Guyver

    Guyver

    Регистрация:
    2 окт 2005
    Сообщения:
    4.957
    Да ничего-ничего, парой офф-топов больше, парой меньше...

    Я вот, на сколько помню, в Ring Cycle, Lords of Midnight ландшафт вроде как воксельный был. По крайней мере визуально чем-то напоминал Voxel Space.
     
    Дарк Шнайдер нравится это.
  12. INHELLER

    INHELLER

    Регистрация:
    19 май 2009
    Сообщения:
    7.228
    daemolisher
    Да, я это понял) Такие сферы это те же спрайты(просто круглые). Единственное, скорее всего, просчет освещения, как сфер и дальнейшее усреднение дороговато обойдется) Из проблем, "перекрывание" одних вокселей другими очень сложно просчитать((( Не, в одном обьекте и без освещения, еще ничего(просто смотрим наличие вокселей в соседних "клетках", но, как это привязать к освещению, и как смотреть перекрывание вокселями из других контейнеров... вот это проблема...
    А, вот "дальность" от источников света, скорее всего удастся просчитать)

    Да, для них я просто "включил" освещение) Думаю, они выглядят примерно так-же, как выглядели бы воксели если бы использовались в современных играх(с освещением).

    Угу) По-моему, пришлось бы написать "Войну и Мир"))

    Guyver
    И с каких это пор обсуждение игр стало оффтопом?
     
  13. Werecat13 Gone fishing

    Werecat13

    Регистрация:
    8 янв 2007
    Сообщения:
    5.506
    Первым сообщением тема призывает именно к перечислению соответствующих игр. Только я не уверен, что она не утонула бы намного раньше, если бы в ней только этим и занимались.
     
    Bato-San нравится это.
  14. INHELLER

    INHELLER

    Регистрация:
    19 май 2009
    Сообщения:
    7.228
    Werecat13 >
    И это на первой странице да и от автора темы)
     
  15. daemolisher

    daemolisher

    Регистрация:
    2 дек 2009
    Сообщения:
    1.704
    offtop
     
  16. Werecat13 Gone fishing

    Werecat13

    Регистрация:
    8 янв 2007
    Сообщения:
    5.506
    INHELLER нравится это.
  17. INHELLER

    INHELLER

    Регистрация:
    19 май 2009
    Сообщения:
    7.228
    daemolisher > Угу) Это частицы) Просто, основная проблема не столько в форме, сколько в "нахождении" цвета для каждого вокселя. Без дополнительных функций(вроде служебной информации о расположении картинок на спрайты) они будут очень быстро рендериться) Вся проблема в вычислении освещения и отражениях, детализации, хранении и других эффектах для вокселей.

    Offtop
    А частицы, это уже отдельная и очень интересная тема))
     
    Последнее редактирование: 12 окт 2010
  18. Ogr 2 лол

    Ogr 2

    Хелпер Переводчик

    Регистрация:
    25 мар 2008
    Сообщения:
    6.831
    id Tech 6 - вокселы возвращаются! – они-то и сожрут тысячи поточных конвейеров в будущих поколениях видеокарт, с гигабайтами памяти, и потребуют добавки!
    Пока что только в ландшафтах, и статичных объектах.
     
    INHELLER нравится это.
  19. INHELLER

    INHELLER

    Регистрация:
    19 май 2009
    Сообщения:
    7.228
    Ogr 2 > С SDS поверхностями вышел облом?
     
  20. Teron Lifeslayer Malkavian

    Teron Lifeslayer

    Регистрация:
    14 ноя 2004
    Сообщения:
    7.603
    Затовариваемся Quadro 6000, 6 гигов видеопамяти, думаю, хватит =)
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление