@!!ex
> С чего оно в колор то пойдет?
А как? Держать в видеопамяти два вида меша?
Executor
> А как? Держать в видеопамяти два вида меша?
нет. зачем же. тесселяция же шейдером делается.
или ты про использование на старом железе?
UPD:
Даже со старым железом нет проблем.
вершинный буффер один, отличается только индексный.
один индексный - это обычный меш.
второй индексный, чуть больше по размеру, учитывает тесселированные вершины.
Хотя, конечно, придется делать тесселятор который будет это все запекать правильно.
Однако, ИМХО, это куда меньший костыль, чем требуют все остальные техники.
Все гениальное просто (относительно просто).
Будем прикручивать:)
intptr
ага, похоже на то, как я придумал делать антиалиазинг тупо с помощью GL_LINES. для этого не нужны никакие MSAA и работает везде, где поддерживается GL_LINE_SMOOTH. я, конечно, тоже велосипед изобрел, но нашел я только реализацию такого на шейдерах.
@!!ex
> или ты про использование на старом железе?
Именно.
> Однако, ИМХО, это куда меньший костыль, чем требуют все остальные техники.
Ну чтобы сделать тесселяцию, нужно либо это делать кодом, либо напрягать артистов объясняя им как же нужно оттеселировать.
Помоему это не лёгкий путь.
Executor
"...объясняя им как же нужно оттеселировать..."
"Если предмет длиннее стольких метров - жмите "субдивайд"!"
А, вообще, надо конечно проверить на практике это "длиннее скольких метров".
Или я ничего не понял или этот метод не-view depended, т.е. вблизи от камеры может получиться не очень качественная тень.
Imaginary unit
вблизи от камеры всегда качественно, т.к. искажение идет относительно позиции камеры.
Аврелий
> вблизи от камеры всегда качественно, т.к. искажение идет относительно позиции
> камеры.
Ага, въехал.
Хм, а искажения можно же вносить в пиксельном шейдере?
Executor
> Ну чтобы сделать тесселяцию, нужно либо это делать кодом, либо напрягать
> артистов объясняя им как же нужно оттеселировать.
> Помоему это не лёгкий путь.
Достаточно примитивно же делается такой тесселятор. Порезать треугольник, если он больше определенного размера. и зашить в дополнительный индекс буффер. Думаю задачка на пол дня работы.
.Scotina
> "Если предмет длиннее стольких метров - жмите "субдивайд"!"
И тогда мы получим лишние вершины при рендере в колор тоже.
Чего как раз хочется избежать.
@!!ex
> И тогда мы получим лишние вершины при рендере в колор тоже.
> Чего как раз хочется избежать.
я вас умоляю, тут даже нетеселированая дорожка вполне скатит для даного метода
http://www.dvhardware.net/news/unigine_dx11_tessellation_hardocp.jpg
сейчас уже не делают землю уровней одним полигоном
Аврелий
> сейчас уже не делают землю уровней одним полигоном
Делают, делают. :)
Аврелий
Всякое бывает. :) Бывает что и большие ровные полигоны встречаются.
Однако, лично я - не против метода.
Просто обсуждаем варианты, чтобы сделать метод максимально пригодным для использования везде.
Спасибо тебе огромное за статью.
Аврелий
А ты демку рабочую не можешь выложить? Ну чтобы покрутить, поглядеть как оно.
мм, надо специально готовить ее, сейчас со временем не очень.
Тема в архиве.