Из журнала Demo or Die #2, 1999 (C) by Devil of eTc/Scene'99 FLAT - shading (освещенность по Ламберту) Итак в первом номере журнала Demo or Die вы наверняка читали статью Wolf'а о различных видах освещенностей треугольников. В данной статье я решил развить эту тему и более глубоко рассмотреть один из наиболее простых и в тоже самое время основных способов заливки полигонов с освешенностью по Ламберту (далее Flat-shading). Без понимания Flat-shading'a я думаю вам не стоит дальше лезть в 3D-графику. Flat-shading наиболее простой и в тоже время наиболее быстрый метод заливки треугольника. Но так как в мире нет ничего идеального, то он и наименее реалистичный. Для начала прийдется вспомнить немного теории: Пусть мы имеем три вершины A,B и C. Первначально точки могут быть в любом положении на плоскости что-то вроде этого: TABLENG DB 0 ;Y3 DB 0 ;X3 DB 100 ;Y1 DB 0 ;X1 DB 100 ;Y2 DB 100 ;X2 Но нам надо их выстроить в строго определенном порядке (как показано на рисунке) т.е. Y1 >= Y2 >= Y3 Применим процедуру сортировки: ;++++++++++++++++++++++++++++++++++++; ;Сортитовка вершин по Y1,Y2,Y3... ; ; В HL,TABLENG ;++++++++++++++++++++++++++++++++++++; SORT LD DE,HL INC HL,HL LD A,(DE) ;заносим в А:=Y1 LD C,(HL) ; а в С:=Y2 CP C JR NC,NEXT1 ;сравниваем... LD (HL),A ;Обмениваем местами LD A,C ;Y1,X1<=>Y2,X2 LD (DE),A ;если Y1Y3,X3 LD (DE),A ;если Y2