пасибо, буду эксперементировать. Думаю еще можно попробывать так: делать сетку например не 257х257, а 255х255, а бленд карту и карту высот юзать 256х256 - просто последнии крайнии пиксели просто игнорировать.
И немного оффтопа: есть какие-нибудь статейки/примеры/инфа как использовать карту высот через вершинный шейдер (на GLSL)? Т.е. не собирать для каждого чанка отдельный индексный буфер, а использовать один буфер, и затем в шейдере строить высоту для каждого чанка?
CrashB
> карту высот юзать 256х256 - просто последние крайние пиксели просто
> игнорировать.
в статике нормально будет (незаметно), а вот в динамике сразу станет видна граница;
кстати, cracks можно удалять и через GS
Эта подсказка мне кажется неверна. Нельзя делать так, чтоб вершины треугольника лежали на стороне другого. Все вершины треугольников должны сходится с другими вершинами. Чисто математически может это и верно, но вычислительно где гарантии, что не появятся просветы на стыках?
ud1
> Эта подсказка мне кажется неверна
ты, конкретно, про GS или про сабж вообще ?
Про сабж вообще.
ud1
> Про сабж вообще.
а как же тогда будет работать тесселяция на DX11 ? например, там можно указать разный tessFactor для ребра и внутренности квада или треугольника
И спецификации по гл:
Special treatment is given to a fragment whose center lies on a polygon edge. In such a case we require that if two polygons lie on either side of a common edge (with identical endpoints) on which a fragment center lies, then exactly one of the polygons results in the production of the fragment during rasterization.
Думаю это надо понимать как, что если два треугольника имеют общую сторону, то наборы пикселей закрашиваемые ими не пересекаются, и просветов на ребрах нет.
ud1
знаешь, может я что-то не так делаю - у меня сабж работает и дырок нету :)
Я про GS ничего не говорю, я про эту подсказку. Прочел по-быстрому весь тред, люди пишут что просветы иногда видны.
то что у тебя работает, не означает, что это правильно, и что это будет также работать на всех компах.
innuendo
можно. а можно и на VS. Передавать соседей как атрибуты и считать.
ud1
Эта подсказка мне кажется неверна
Так никто и не настаивает. Это хак - дешево и сердито. Быстро. Просто.
Кстати в Морровинде у меня на FX5200 постоянно "точки" мелькали.
Ну а смысл делать неправильные хаки? То что будет работать абы как. А то все начнут именно так и делать, и будут думать что это правильно, и будут потом "точки" мелькать.
ud1
> Прочел по-быстрому весь тред, люди пишут что просветы иногда видны.
я делал по-своему способу, немного не так как у топикастера - точек не видел, тестил на разных картах
Можно вертекс после усреднения поднимать немного вверх, тогда по идее пикселей будет не видно.
Тема в архиве.