|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Dmitry Kalinin 2:5009/5.43 22 Sep 2001 21:44:12 To : Alexander Dyachenko Subject : Re: ZBuffer -------------------------------------------------------------------------------- 22 Сен 01 15:00, Alexander Dyachenko -> All: AD> Э-э-эй!!! All, ты меня слышишь?!! Привет. *Ж8-)* AD> Hарод, объясните, пожалуйста, как реализовать ZBuffer. Принцип я AD> понял, но теперь встала задача реализации. Когда вычисляется глубина AD> точки (x,y), то какие это x и y? Если те, что уже спроецированы, AD> получается вигня, да оно и так понятно. А если те, что до AD> проецирования (проход по трёхмерной грани) то, как это добро вывести AD> на экран. При проецировании каждой точки получаются "щели". Hа сколько AD> я сейчас представляю, надо чтобы разрешение экрана было меньше чем у AD> ZBuffer'а, или используется интерполяция? Hе уж-то он так тупо и AD> задуман, или я не понял идеи и сделал из самого плохого алгоритма ещё AD> хуже? AD> *P.S.* Hикаких других, подходящих эх нет. Очень просто, есть экран screen[x, y] и еще один такой экран buffer[x, y]. Проецируем точку, получаем координаты x` и y`, проверяем в буфере значение с координатами x` и y` со значением Z проецируемой точки. Если значение в буфере больше, то выводим нашу точку на экран и заносим в буфер новое значение. Еще обычно вместо сравнения z сравнивают значения 1/Z. Вот кусочек кода из моей проги: ECX - кол-во точек в прямой EDI - начало прямой ESI - начало в буфере EDX - цвет для заливки st - текущее значение 1/Z st(1) - приращение 1/Z за одну итерацию ... xor ebx, ebx @pixel_loop: fcom dword ptr [esi + ebx*4] fstsw ax shr eax, 9 jc @z_smaller fst dword ptr [esi + ebx*4] mov dword ptr [edi + ebx*4], edx @z_smaller: fadd st, st(1) inc ebx dec ecx jne @pixel_loop Dmitry ... "Что нас ждет море хранит молчанье, Жажда жить сушит сердца до дна" (с) Ария. --- 0f 0f 0e 0e 0e 0e 0c 0c 0a 09 09 06 03 00 00 00 ДВБВДБДДВДДДДДБДДДДД * Origin: mailto: dim0k@mail.ru (2:5009/5.43) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/27843baccfb2.html, оценка из 5, голосов 10
|