Рисуване на линии по земята

Всичко за програмирането на игри - архитектура, графика, звук, изкуствен интелект, мрежи.
HALF
Site Admin
Site Admin
Мнения: 172
Регистриран: 08 фев 2004 16:04

Рисуване на линии по земята

Мнение от HALF » 23 апр 2014 11:07

Правим малка футбол игра и опитахме няколко начина за рисуване на линиите по земята но нито един от тях не дава задоволителни резултати.
Първо опитахме със шейдър да рисуваме линиите - предимството беше че колкото и да е близо камерата винаги се виждаха перфектно заоблени, под ниски ъгли обаче далечните линии изчезват.
После опитахме линиите да са част от текстурата - без достатъчно anistropic filtering в далечината се замъглява доста, а ако увеличим филтъринга става доста бавно (играта ще е за мобилни телефони), освен това размера на текстурата е доста голям.
Финално сложихме геометрия - по-бързо от шейдъра, не се blur-ва, но за сметка на това под ниски ъгли изглежда кофти насечено.

Някакви предложения как да процедираме?
Прикачени файлове
Screen Shot 2014-04-23 at 9.49.33 AM.png
Screen Shot 2014-04-23 at 9.49.33 AM.png (502.35 KиБ) Видяна 3913 пъти

Потребителски аватар
themean
Power User
Power User
Мнения: 860
Регистриран: 02 дек 2010 22:51

Re: Рисуване на линии по земята

Мнение от themean » 23 апр 2014 12:20

Не съм експерт в областа, но можебе микс от няколко техники би ти свършила работа.Тоест в зависимост от дистанцията ползваш техниката, която се справя най-добре.
Иначе ако разполагах с достатъчно памет бих подходил по друг начин. Гледам, че си наложил една текстура за трева многократно върху цялото игрище, вместо това можеш да ползваш множество текстури, такива че като ги подредиш правилно да ти дават как трябвада ти изглежда игрището(незнам дали се разбира какво имам предвид).Така ще можеш да се възползваш и от възможноста да ползваш текстури с различно качество в зависимост от разтоянието до камерата.

HALF
Site Admin
Site Admin
Мнения: 172
Регистриран: 08 фев 2004 16:04

Re: Рисуване на линии по земята

Мнение от HALF » 23 апр 2014 12:26

Текстурата на земята е само за пример.

Проблема е че за далечните линии под такъв ъгъл не намерих техника която да дава задоволителен резултат:
текстура-замъглено
геометрия и шейдър - ефект като на скрииншота

една идея която имам е да променя генерацията на геометрията да е такава:
photo-ss-tee-bar.jpg
photo-ss-tee-bar.jpg (39.36 KиБ) Видяна 3907 пъти
но не съм сигурен какъв ще е резултата все още, ще тествам и ще публикувам снимки с резултата

HALF
Site Admin
Site Admin
Мнения: 172
Регистриран: 08 фев 2004 16:04

Re: Рисуване на линии по земята

Мнение от HALF » 23 апр 2014 18:07

Ето с новата геометрия, има подобрение но за жалост не е достатъчно, явно трябва друг подход.
Някакви други идеи?
Прикачени файлове
Screen Shot 2014-04-23 at 5.06.42 PM.png
Screen Shot 2014-04-23 at 5.06.42 PM.png (368.11 KиБ) Видяна 3897 пъти

Потребителски аватар
stoiko
Power User
Power User
Мнения: 617
Регистриран: 04 дек 2003 15:44
Контакти:

Re: Рисуване на линии по земята

Мнение от stoiko » 24 апр 2014 09:43

screenspace линии?

SuryIIID
Power User
Power User
Мнения: 431
Регистриран: 01 яну 2004 21:03
Местоположение: София
Контакти:

Re: Рисуване на линии по земята

Мнение от SuryIIID » 24 апр 2014 20:26

Освен алайзинга , да не би да има и z-fighting за да изглежда така геометрията ?

HALF
Site Admin
Site Admin
Мнения: 172
Регистриран: 08 фев 2004 16:04

Re: Рисуване на линии по земята

Мнение от HALF » 25 апр 2014 10:24

в случая не е z-fighting, шейдъра на терена го офсетва достатъчно за да не е проблем, а и за всеки случай го скрих и пак не помогна :/
screenspace го мислих но нямам никаква идея как да го направя

фифа май ползват текстури някак.
Изображение

докато PES май са с геометрия и имат подобен проблем на моя:
Изображение

ikolev
модератор
модератор
Мнения: 1657
Регистриран: 20 ное 2003 22:39
Местоположение: София
Контакти:

Re: Рисуване на линии по земята

Мнение от ikolev » 26 апр 2014 09:47

Може да пробвате да добавите към полигоновата геометрия на линиите по една 2D линия която върви по дължината (оста) на полигона, с включен AA. Така за близките линии ще си личи само полигона, защото осовата линия ще е изцяло вътре в него, а за далечните линии (когато полигоните се късат) осовата линия ще стане видима, и даже ще има заглаждане. Недостатък е че и в двата случая се върши двойна работа, но не мисля че е лесно да се изключи единия от двата елемента според далечината.

Отговори