Render.ru

Inside?

#1
Писатели шейдеров, вопрос к вам. Допустим, я пишу поверхность футбольного мяча. Неужели единственный способ определения принадлежности P какой-либо "заплатке" - это создание массива координат всех вершин (ребер заплат) и потом тупой dot product между вектором (P - начало ребра) и ребром? Ну, то есть, конечно, можно еще по каждой заплатке сделать bounding box и вначале сравнивать с ними, но "точная" настройка - только dot product? Как-то все это слишком тяжеловесно выглядит....
 
#2
"Тяжеловесно" - не то слово...
При таком раскладе нужно еще выщимить между какими именно
ребрами брать дот, потом перевести это в индексы массива координат твоих вершин, что гораздо сложнее, а учитывая что эту операцию придется проделывать для каждой sampled point можно себе представить сколько лет будет считаться такой шейдэр.
ОЧЕНЬ НЕУВЕРЕН но можно попробывать написать процедуру генерации
пентагона с исходящими из вершин лучами с планарной прэкцией для которой (проэкции) написать процедуру вычисляющую откуда и как ее плэйсить, на какой угол вращать, сколько раз тайлить, где смещать на 0.5
Всего 4 зоны:
Сверху, 0 гр., Tile 1, Offset 0
Под углом 60 , 90 гр., Tile 5, Offset 0
Под углом 120 , 180 гр., Tile 5, Offset 0.5
Под углом 180 , 270 гр., Tile 1, Offset 0
Выщимить зону можно по Y компоненте нормализованой нормали в "shader" space.
Хотя все это может оказаться полным бредом. Сори если что.
Да и задачка вообщето неслабая.
За такое на Phoenix-е денег просють.
Если чо придумаеш - дай знать. ИНТЕРЕСНО.
 
#3
Там же не только пентагоны, но и шестиугольники. Вообще мысль с генерацией мне в голову приходила, но уж очень сложной в реализации кажется. Ладно, еще немного голову поломаю. В конце концов, текстурный битмап-то я уже давно нарисовал, просто вначале показалось, что процедурно это было бы эффективнее...
 
#4
Битмап самое правильное решение.
Просто задачка интересная.
А хексагоны получаются из тех самых лучей выходящих из вершин пентагона. Жаль сюда нельзя постить картинки я бы нарисовал что имею ввиду.
 
#5
Я понял, понял. Задача, кстати, становится еще интереснее, если учесть, что для дисплейсмента хорошо было бы определять расстояние от точки P до центра полигона...
 
Сверху