|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Serge Kanilo 2:5020/400 25 May 2001 07:19:38 To : All Subject : Re: текстурирование (сырэц) -------------------------------------------------------------------------------- "Aleksey Malov" <Aleksey.Malov@p8.f30.n5052.z2.fidonet.org> wrote in message news:57895260@p8.f30.n5052.z2.ftn... > Кстати. Учитывает ли народ то, что для корректной растеризации треугольника > надо обсчитывать по несколько различающимся формулам смещения в экране и в > текстуре по крутым и по пологим ребрам, а также учитывать то, какй треуголльник > - левосторонний или правосторонний (с какой стороны находится средняя вершина). Hе знаю как народ, а я учитываю, народ наверное тоже :). Берется обычный Брезенхем для линии, который ИМХО уже учитывает крутизну. Делается 2 чуть-чуть различающихся алгоритма для получения самой правой или самой левой точки линии в горизонтальном ряду пикселов. Кстати в тавоем рисунке использован Брезенхем для линий, который строит более двух точкек по горизрнтали. Для заливки это не надо, достаточно получить только самую правую или левую точку в каждом ряду (они конечно могут и совпадать наверху и внизу). Результатом для линии является массив горизонтальных (х) координат точек. Индекс массива вертикальная (у) координата. Треугольники и прочее уже набирается из этих линий, приводя к двум массивам правых и левых точек. А потом заполняются остальные пикселы в рядах между этими точками. Можно наверное учесть, что для смежных треугольников пикселы на границе совпадают, но не думаю, что это приведет к сильному ускорению, а алгоритм точно усложнится. Cheers, Serge --- ifmail v.2.15dev5 * Origin: Excite@Home - The Leader in Broadband http://home.com/f (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/21067524e2e4b.html, оценка из 5, голосов 10
|