MrShoor
Главное что разобрались кто что имел ввиду. :)
Suslik
> пиксельным шейдером через GL_POINTS с записью в буфер глубины
FROL
> рисовал бы квады и дискардил бы углы по текстурным координатам в ps
Battle Angel Alita
> Signed distance field же.
Sergio
> point sprite надо юзать
gary_cho
> можно нарисовать одним треугольником, шарик будет вписан в правильный
> треугольник
еще варианты? нужно больше дурацких решений
CapSopener
Нарисую квад с текстурой 2х2 потому что у меня 8-бит инди
так тебе дурацкие нужны, или оптимальные?
CapSopener
> еще варианты? нужно больше дурацких решений
если это была неуклюжая попытка сарказма, то мимо, потому что, хочется тебе того или нет, способа по соотношению качество/время лучше всё ещё не придумали: https://habrahabr.ru/post/253791/
CapSopener
> еще варианты? нужно больше дурацких решений
Нужны круглые пиксели
Помню этот конкурс, делал им этот арканоид в качестве тестового задания под Windows, Android, iOS. Но по цене не сошлись :)
XProger
Крутой арканоид.
Suslik
> если это была неуклюжая попытка сарказма, то мимо, потому что, хочется тебе
> того или нет, способа по соотношению качество/время лучше всё ещё не придумали:
> https://habrahabr.ru/post/253791/
блин... спасибо, я что то раньше не знал что в шейдере можно менять point size
это же самый простой способ рисовать билборды и все что хочешь на них, в принципе получается можно запилить нечто вроде SDF без необходимости траверсить объекты,
но вынести весь траверс из шейдера, юзать куллинг, и более плотной юзать фичи стандартного пайплайна,
в вершинном шейдере нужно только определять размеры скрин спейс боундинг квада, а в фрагментном уже обсчитывать SDF и прочую фигню... интересно интересно )
cNoNim
А что тебе до этого мешало двигать вершины квада необходимым образом?
Blew_zc
> А что тебе до этого мешало двигать вершины квада необходимым образом?
так ни чего не мешало, просто есть же разница посылать на рендер точку или квад, не существенная в общем то, но есть
и раньше я для того что бы это провернуть юзал геометрический шейдер, который из точки лепил квад
Blew_zc
хотя не, признаюсь, юзать сами билборды для SDF, и подобных более сложных расчетов в фрагментном шейдере, мне тоже пришло в голову не так давно,
где то после конкурса 4к на новый год )
cNoNim
> это же самый простой способ рисовать билборды и все что хочешь на них
Я теперь вспомнил в чём у меня была проблема с этими поинт спрайтами. И понимаю почему из ДХа их вырезали.
Размер точки гарантируется, что может быть равен 1. Всё остальное зависит от железа/дров. Причём ограничение есть не только на максимальное значение, но и на минимальное.
Одно железо будет держать к примеру размер от 0.1 до 10.0, а другое от 1.0 до 64.0.
Поэтому не смотря на кажущуюся простоту, этот способ таит кучу проблем.
ES 2.0.25, 3.3. Points
Point size is taken from the shader builtin gl_PointSize and clamped to the
implementation-dependent point size range. If the value written to gl_PointSize
is less than or equal to zero, results are undefined. The range is determined by the
ALIASED_POINT_SIZE_RANGE and may be queried as described in chapter 6.
The maximum point size supported must be at least one.
Воистину.
Что ж, остаётся только спрашивать размеры у каждой реализации. Или забить и сделать только через квады.
Delfigamer
> Воистину.
> Что ж, остаётся только спрашивать размеры у каждой реализации. Или забить и
> сделать только через квады.
Удивительное рядом. Я помню когда на FFP работал с point sprite-ами - то да, было ограничение, но когда я перевел все это дело на шейдер - то ограничений не было. Я это точно помню, потому что отказался от поинтспрайтов на FFP из-за этого... Но походу у меня такие драйвера были, а ограничние все таки было.
Тема в архиве.