LINUX.ORG.RU

Посоветуйте софтварный растеризатор 3D -> 2D

 ,


0

2

Хочу рисовать трехмерные картинки. Если быть точным - объемный текст (как в ворде «ворд арт»), кубики, простейшие фигурки из 20-30 треугольников. На одной сцене может быть достаточно много текста, фигурок и кубиков.

Желания по мере важности:

1. Софтварная отрисовка, потому всякие игровые движки не нужны от слова совсем. Предполагается рендерить видео, скорость не особенно важна, зато надо делать это где-то на сервере амазона.

2. Поддержка нормального света и бликов, теней и быть может чего-то еще, от каустики я конечно не откажусь, но оно не особенно и нужно.

3. Минималистичный интерфейс для сишки, чтобы не надо было писать 3 страницы кода только для инициализации сцены и рисования 1 треугольника.

Конечно, можно самому ручками перемножать матрицы, заливать треугольнички, а вот на обсчет света меня уже нехватает. Рендеринг полным рейтрейсом тоже не интересует - дорого.

OpenGL с llvmpipe

Deleted
()

зато надо делать это где-то на сервере амазона.

Можно брать инстансы с графическими картами именно что для вычислений.

invy ★★★★★
()
Ответ на: комментарий от Deathstalker

Осталось понять, как заставить текстуры отбрасывать тени

ruzisufaka
() автор топика

Твое пожелание пишется на коленке за 2 дня. Или берется OpenGL (если нужно предельное качество (но никакая скорость), то смотрятся движки растеризации, вроде Circles из Blender-а)

peregrine ★★★★★
()
Ответ на: комментарий от Kuzy

Там надо:

  • реализация разбиения 3D фигур на треугольники
  • афинные преобразования
  • нормальный свет и блики единственная сложность, хотя есть три варианта:
    • нам годится что-то вроде затенения по Гуро и Фонгу, это вообще изи
    • нам надо что-то вроде AO, это чуть сложнее, но особых проблем не вызывает
    • что-то более серьёзное, чем SSAO, тогда да, вылезают проблемки
  • По последнему пункту в виде интерфейса всё зависит от того, какой он должен быть.
peregrine ★★★★★
()
Ответ на: комментарий от peregrine

реализация разбиения 3D фигур на треугольники

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

афинные преобразования

Это вычисление матриц и перемножение вершин на них. Первое достаточно сложно, если нету гуя, но будем считать, что он у нас есть. Осталось только быстро перемножить вершины.

что-то более серьёзное, чем SSAO, тогда да, вылезают проблемки

Выше 2 ссылки на ролики - это что?

По последнему пункту в виде интерфейса всё зависит от того, какой он должен быть.

Какой интерфейс имеется в виду? Программный или пользовательский? Если первое, то хотелось бы скормить указатели на пиксели и вершины/полигоны, а на выходе получить готовую картинку в переданных пикселях.

Где-то тут был забыт антиалиасинг и отсечения, ведь не сортировкой же будем все рисовать?

ruzisufaka
() автор топика
Ответ на: комментарий от ruzisufaka

Выше 2 ссылки на ролики - это что?

Сложно сказать, не берусь сделать это на глаз, хотя судя по ровным теням, резкость которых не меняется в зависимости от ширины затеняющего объекта, выглядит как гауссово размытие границы, наложенное на контур проекции тени.

Отсечения тебе даст Z буфер, он же буфер глубины.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от peregrine

на контур проекции тени

И вот как его посчитать, я очень слабо представляю. Хочу такое за 2 дня.

Отсечения тебе даст Z буфер, он же буфер глубины.

Т.е. рендерим абсолютно всё, а там разбираемся что осталось?

ruzisufaka
() автор топика
Ответ на: комментарий от anonymous

Вероятно что-то похожее на трассировку лучей (например трассировка + наложение шумов).

peregrine ★★★★★
()
Ответ на: комментарий от ruzisufaka

Нет, рендерим все, что попадает в кадр и видимо. Если надо рендерить большую карту с огромным количеством объектов, то режем её на чанки.

peregrine ★★★★★
()
Ответ на: комментарий от anonymous

Пиши, у меня сейчас есть работа. Я нигде в треде не предлагал свои услуги.

peregrine ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.