А вообще можно не делать круг выбора. Не так уж и трудно придумать замену.
PS: "Ани клали декали!" - это про вас :)))
xDimka
> На мой взгляд это разные сущности, с разными требованиями по производительности
> - первый - динамический текстурный проектор, им можно тени делать или видео
> играть, а второй декали, на который, к примеру спроецированы брызги крови.
> первый - штучные экземпляры, второй сотни на сцене. Да, алгоритмы у них внешне
> похожи, но как дело доходит до конкретики, все доводится под свои задачи.
Хотелось бы поконкретнее...
ashujon
> какой еще рендеринг в текстуру? в играх круги выбора делаются отдельной
> моделью, просто высчитываются в зависимости от рельефа, разбиваются и
> рендерятся чуть выше ландшавта
То бишь как предложил DEN 3D, но встаёт вопрос производительности, не жирно 10-20-30 кружков каждый кадр вершинный буфер обновлять?
нежирно
Нашёл немного инфы как в КОХ сделаны кружочки...
http://users.livejournal.com/__vortex__/1896.html
http://img208.imageshack.us/i/selectionoutline3vp.jpg/
Правда конкретики нету, что и как...
Ради интересу проверил быстродействие своего способа:
Текстура крестика 256х256...
Текстура для декалей каждый кадр обновляется...
Каждый крестит рисуется с блендингом...
Текстура для декалей 2048x2048:
Без декалей (текстура пустая): 240 фпс
С декалями (100 штук): 201 фпс
С декалями (1000 штук): 92 фпс
Текстура для декалей 1024x1024:
Без декалей (текстура пустая): 252 фпс
С декалями (100 штук): 229 фпс
С декалями (1000 штук): 120 фпс
незнаю никакую 3d стратегию где было бы выделение больше 20 юнитов
p.s.
попробуй вообще без накладываемой текстуры
ashujon
Земля 2150
Zakus наверно потому в ней и нет кругов выбора под юнитами
ashujon
> незнаю никакую 3d стратегию где было бы выделение больше 20 юнитов
Empire: Total War
http://www.ag.ru/screenshots/empire_total_war/267817
Но тут возможно ландшафт оно не огибает...
> попробуй вообще без накладываемой текстуры
284 фпс
ладно, сдаюсь, но это не снимает тот факт что это не отдельные модели, притом достаточно ровная поверхность земли там, наверно просто квадратик рисуется каждая вершина которого чуть над землей, а при приближении для ближних включается какаой-нибудь агоритм более правильной отрисовки
ashujon
> ладно, сдаюсь, но это не снимает тот факт что это не отдельные модели, притом
> достаточно ровная поверхность земли там, наверно просто квадратик рисуется чуть
> над землей, а при приближении для ближних включается какаой-нибудь агоритм
> более правильной отрисовки
Скорее всего на сильно большом расстоянии кружочки уберуться и будет над головами значок какойнить гореть... Не знаю, игру не видел...
Ландшафт у меня не кеш френдли, там потупому щас геометрия строится, поэтому поболее фпсов будет, если нормально его построить...
Executor
Что касается обводки вокруг солдат так что бы кружки не пересекались я думаю такое можно легко сделать при помощи стенцил буфера отрисовав геометрию крудочков вокруг солдат, таким образом, что бы на тех местах где наиши кружочки пересекаются значения стенцил буфера отличались от тех мест где они не пересекаются. Потом рисуем свои текстурки с обводкой только там где значение в стенцил буфере соотвествует нашим запросам, в нашем случае там где кружки не пересекаются.
Кстати, если внимательно присмотреться к скриншоту из Tales of Valor, который автор привёл в первом посте, то можно увидеть, что там тоже круги висят над ландшафтом на некоторой высоте. Камушек слева их выдаёт.
Пруф, что кружки огибают в КОХе ландшафт:
http://www.picamatic.com/show/2009/06/27/12/43/4144388_1360x768.jpg
ashujon
> незнаю никакую 3d стратегию где было бы выделение больше 20 юнитов
Вот тот же КОХ:
http://www.picamatic.com/show/2009/06/27/12/43/4144390_1360x768.jpg
42 юнита выделены... Можно больше сделать... :)
Как вариант - имеем ландшафт во view в виде одного буфера - вертекс и индекс. Для каждого декаля строим его индекс буферок (заливаем динамический кусочек в большой буфер) с ландшафтом под ним.
Рисуем текстуру кружка, которую режем 4-мя текстурами соседних юнитов в виде черно-белъх кружков, отмапленнъх с их позиций. Alpha-test / texkill.
Все ети декали разумеется можно отрисовать за один възов, если запечь правильнъе текстурнъе координатъ для всех текстур per-vertex.
Тема в архиве.