Andrey
> Я имел виду что что-бы тот код разобрать нужно иметь хорошую квалификацию
а что, конкретно, вызывает сомнения ? я хоть не "отец", но может что-то поясню там, а ?
Andrey
> Кому не нравиться, делайте лучше.
у меня нет претензий, есть пожелания
Andrey
> Кому не нравиться, делайте лучше.
> нравиться
> ь
Идею статьи я понял, понравилась, надо будет применить как-нибудь.
Software Occlusion Culling хорош, когда у вас есть свободное ядро и вы ну совсем не знаете чем его занять. В другом случае реалищация того же самого, но на GPU будет быстрее.
Описание, правда в сколзь, здесь:
http://www.selfshadow.com/talks/rwc_gdc2010_v1.pdf
Единственный минус - чтение из вижеопамяти, соответственно остановка потока дравйвера и ожидание видеокарты. Но в реальности это довольно быстро. На все про все около 1 милисекунды, так что алгоритм практически никак не помешает вам уложиться в 60 фпс, если все остальное работает с нужной вам скоростью.
VirT
>динственный минус - чтение из вижеопамяти, соответственно остановка потока дравйвера и ожидание видеокарты. Но в реальности это довольно быстро. На все про все около 1 милисекунды
LOL, это синхронизация CPU-GPU, каждый фрейм, нафиг оно тогда нада.
Executor
> Иногда? Кроме хардваре инстансинг остальное не работает.
> Плюс алгоритм фейлит, тебе даже скрины показали.
очевидно не работает, это же не демо инстансинга. надо было комбобокс убрать, да. фейлит не алгоритм а реализация, но это наверно тоже не интересно
У меня такой вопрос ещё.
1. Отрисовка в меньшем разрешении не даст ненужные погрешности? Надо же чтобы при отрисовке преграждения закрашивались только те пикселы, что строго внутри, а при отрисовке границы проверялось и то, что частично внутри.
2. Раз уж объект всё равно рисуется, то может забить на преграждение, и просто для каждого следующего объекта быренько проверять, не вписалась ли граница полностью за. Или это быренько не получится?
Outlaw
> LOL, это синхронизация CPU-GPU, каждый фрейм, нафиг оно тогда нада.
Не напугал )
Нафиг надо почему?? Из-за мифической "синхронизация CPU-GPU". Что тебя в этом пугает? Медленно? 1 миллисекунда - это медленно? Или что? Последнии версии DX довольно хорошо это все разруливают. Т.е. при OpenGL реализации оно работает хуже, но на DX синхронизация почти незаметна. Тем более можно запросто использовать буффер меньшего разрешения, который шина перегонит в системную память почти моментально, дольше времени уйдет на переключание режимов.
Если у тебя в игре CPU почти не используется, а GPU заюзан по полной, то да, такая синхронизация губительна. Но почти все последние крупные тайтлы, которые я встречал - упирались в CPU, так что подобная синхронизация ничего драмматического не принесла бы.
TarasB
> 1. Отрисовка в меньшем разрешении не даст ненужные погрешности? Надо же чтобы
> при отрисовке преграждения закрашивались только те пикселы, что строго внутри,
> а при отрисовке границы проверялось и то, что частично внутри.
ну когда мы рисуем сканлайн мы знаем оклюдер или тест треугольник рисуем. одним можно делать floor, другим ceil
TarasB
> 2. Раз уж объект всё равно рисуется, то может забить на преграждение, и просто
> для каждого следующего объекта быренько проверять, не вписалась ли граница
> полностью за. Или это быренько не получится?
а вот это я не понял
VirT
так не вопрос - вот есть база для бенчмарка, дописывай, поглядим результаты
kas
> ну когда мы рисуем сканлайн мы знаем оклюдер или тест треугольник рисуем. одним
> можно делать floor, другим ceil
При рисовании преграды получится пропуск пиксела на границе из-за того, что пытаемся внутрь вписаться.
TarasB
В пейпере DICE говорят, что окклюдеры артистами делаются немного меньше, чем реальная геометрия. Поэтому окклюжн буфер с разрешением, меньшим чем бэкбуфер, работает нормально.
Core i7 870
Geforce GTS 250
1280x1024 Full Screen
SI = 135 fps
SI + OC = 55 fps
HI = 48 fps
HI + OC = 53 fps
.Squid
> В пейпере DICE говорят, что окклюдеры артистами делаются немного меньше, чем
> реальная геометрия.
Это я понял. Но как ты не уменьшай его, всё равно ты не гарантируешь, что его образ при отрисовке в меньшем разрешении будет строго содержаться в образе объекта. Картинку нарисовать могу.
Outlaw
> LOL, это синхронизация CPU-GPU, каждый фрейм, нафиг оно тогда нада.
Вы забываете, что уже не тот мир, когда жили динозавры, и для HOQ есть сейчас более человеческая синхронизация, которая не требует опустошения всего буфера.
Я думаю все эти техники софтового OQ существуют больше из-за наличия консолей, у которых там и куча ядер и прочие штучки.
Тема SOC не такая уж новая, как многие тут могли подумать. А именно эту статью я читал кажется в начале марта еще, на ff, демо конечно не идеальное, но сам алгоритм интересен! С другой стороны мало кого на этом форуме может заинтересовать подобная тема, в силу того, что тут по большей части не целевой читатель. Думается мне оттого и все выпады :)
ashujon
инстансинг вообще трогать не надо, моя ошибка. работает только когда включен в комбобоксе HI
Тема в архиве.