Miracle #03
16 июля 1999

Кто там кодит? - Attribute bump mapping: bump mapping для тех кто не въехал.

<b>Кто там кодит?</b> - Attribute bump mapping: bump mapping для тех кто не въехал.
    (c) Crite/Triumph
    (i) Blade/Triumph
    ------------------


                              
                              
                              
                              


    Как  то раз скучая, я решил написать
эффект  освещения  объемной поверхности,
умнее  говоря bump mapping. Конечно мно-
жество таких эффектов вы видели в разных
демах,  но  мой  эффект  более  прост  и
укладывается   во  фрэйм,  точнее  около
40000 тактов.

    Я  долго думал каким методом отобра-
жать  свет на экране и грипп мне подска-
зал,  в итоге получился атрибутный вари-
ант ;)  Сразу же оговорюсь, что все ниже
изложенное  ничто иное, как просто алго-
ритм  bump  mapping'а и предназначен для
развития идеи начинающим кодерам.


           Итак мой метод заключается
           в том, что вы задаете объ-
           ект  в виде набора пласти-
           нок  с разным углом накло-
           на.  Вот номера пластинок,
           принятые в моем исходнике:
          
           4,3,2,1 - изменяют яркость
                     света;
           5,0     - не изменяют.  
        

    Теперь о том как я определяю яркость
наклонной пластинки. Для этого мне нужно
задать   координаты  центра  и  текущего
кусочка пучка света. По идее это делает-
ся следующим образом: запоминаем коорди-
наты левого верхнего угла пучка, связан-
ные  с левым верхним углом экрана, затем
прибавляем  числа для определения центра
этого   пучка  и  сравниваем  полученные
значения  с координатами текущего кусоч-
ка.

    Все это пожирает очень много времени
и  я  поступил другим способом: связываю
систему координат с левым верхним углом,
но  не экрана, а пучка света. Координаты
центра относительно этой системы коорди-
нат - константа,  т.е.  не  изменяющееся
число.  Константу  сравниваем  с текущей
координатой,  и  в  зависимости  от типа
текущей площадки, вызываем разные проце-
дуры  (о  них  немного ниже). Координату
левого верхнего угла пучка света относи-
тельно  левого  верхнего  угла  экрана я
использую  всего  один  раз  за один шаг
эффекта, для вычисления начального адре-
са в атрибутах.

    Процедуры  вычисления  яркости рабо-
тают так: возьмем к примеру пластинку 1,
если  она  расположена  левее  чем центр
источника,  то назовем это положение #1,
а  если  правее  (т.е.  ее  освещает под
углом более близким к 90 градусов, чем в
положении #1), то назовем соответственно
положение #2.

    В  таблице  Light  задан  вид  пучка
света,  где  числа  это  цвет  и  радиус
кольца  одной яркости. Яркость я не стал
вычислять сложными методами, а задал две
таблицы  TABL1  и  TABL2  (для  #1  и #2
положения).  Формат  таблицы:  1  -  для
0-ой,  2 - для  1-ой  и  так  далее до 8
яркости.

    Координаты задаются в отдельном фай-
ле.  Сначала идет координата x, потом y.
Но  вы  должны  учитывать  то, что пучок
света не должен вылетать за края экрана.
Я не стал делать на это проверку, потому
что она  занимает  много времени. Кстати
координаты  вы сможете задавать програм-
мой  COORD (находится в приложении), она
задает 100 координат фигуры лиссажу.

    Для того чтобы узнать скорость прог-
раммы - удалите  точку с запятой в стро-
ках  со  знаком "@". Исходник вы найдете
также  в приложении, называется он "LIG-
HT.H"  (естественно  в формате рулезного
ассемблера ALASM).


       That's all folx!


 




Другие статьи номера:

От редакции - Предисловие: С какой целью мы выпускаем журнал?

От редакции - Оболочка: описание новой оболчки к журналу.

От редакции - письма в журнал: Dr.Sioux/Phantom Family, Fistsoft, Mr.Z/HardWave, Куров Н., Eagle/Computer Ratz Group, Rom Corp/Virtual Vision Group.

От редакции - в этом номере: содержание номера.

Проект года - презентация версии игры Robo от KT-soft/ETC.

Проект года - презентация игры от группы Spark: Городки.

Проект года - презентация игры "12 Тайных книг".

Проект года - несколько слов о готовящейся к выходу игре Chip & Dale.

Проект года - потрясающая новелла к игре "Навигатор".

Проект года - Мир тьмы: описание новой real-time strategy.

Погремушки - свежие и не очень, но смачные читы.

Погремушки - крематорий: игра Сталкер - описание всех предметов.

Погремушки - крематорий: Страна мифов - советы спеца.

Основы SWAP'А - информация для начинающих, а также несколько хитрых извратов, которые можно провернуть с почтой.

Кто там кодит? - Быстрая графика: несколько рецептов от Zetter'а (печать спрайтов, обновление экрана).

Кто там кодит? - Packer'ы и Depacker'ы: вся правда о паковщиках, или разглагольствования сэра Kot'а.

Кто там кодит? - Работаем с MS-DOS: Все о mod файлах - полное описание структуры mod-файла, а также описание всех эффектов.

Кто там кодит? - Работаем с MS-DOS: Ms-Dos дискеты - описание структуры Ms-Dos диска.

Кто там кодит? - Chanky flame: описание алгоритма чанкового огня.

Кто там кодит? - Attribute bump mapping: bump mapping для тех кто не въехал.

Кто там кодит? - Гуру медитирует: оптимизация программ по времени исполнения и по размеру.

Кто там кодит? - Приближенный поиск заданной последовательности байт!

Кто там кодит? - Fast 42 print: быстрая процедура печати 42 символов в строке.

Party zone - KidSoft'98: репортаж с Воронежского фестиваля компьютерного искусства.

Party zone - EarthQuake'99: репортаж с Челябинского фестиваля компьютерного искусства.

Я сама - 128 цветов на Spectrum: схема доработки до 128 цветов от донецкой группы Spark.

Я сама - Чайникам: подключение General Sound к Profi через системный разъем.

Я сама - Бесперебойные блоки питания: информация об UPS-технологии.

Я сама - General Sound Filter: рассказ о новой примочке к GS.

Я сама - Модемы: Схемы, схемы! Схемы Г.Шепелева и М.Кондратьева подключения Hayes модема.

Я сама - Модемы: Описание команд - описание команд терминала.

Я сама - Модемы: Тотальная модемизация - призыв к подключению момедов.

Системный софт - FastCopy 3.0: полное описание навороченного турбо-копировщика.

Системный софт - Pro Tracker глюки!!! несколько глючков в ProTracker'ах.

Системный софт - Pro Tracker 3.4 final презентация ремикса Pro Tracker из Самары.

Новости - Челябинск: X-Raizor вернулся на спектрум, Wocen пишет boot, Blade отдахыет, Steelzer вступил в Triumph, Crite доделал альфа версию "Мира тьмы", Bytic купил GS, Edison делает сайт, Ironman хочет купить спектрум.

Новости - Омск: полный состав и ожидаемы продукты от группы U98.

Новости - Калининград: громкая смерть или тихая жизнь Spectrum в Калининграде.

Techno-nature - Электронная музыка: Dj.Ironman рассказывает о техно (часть 1).

Techno-nature - Электронная музыка: Dj.Ironman рассказывает о техно (часть 2).

Techno-nature - Internet music-sites: куча адресов,где можно узнать нового об электронной музыке.

Techno-nature - Наркомания XX: байка от Dj.Ironman'а.

Без четверти четыре - рассказ из повседневной жизни от X-Raizor'а.

Комната смеха - Запахи вокруг и внутри: прикольный рассказ из журнала ПТЮЧ.

Комната смеха - Пердмен: убийственный рассказ из все того-же ПТЮЧ'а.

Комната смеха - Фитиль: неколько сценариев из киножурнала ФИТИЛЬ.

Комната смеха - Ореол: окончание рассказа опубликованного во втором номере.

Прокламация - реклама и обьявления о поиске друзей на спектруме.

Прокламация - реклама и обьявления о поиске друзей на спектруме.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
TOP-4 - 4-ка лучших дискет.
News - Новости о Спектрумовских делах в городе Коврове, и не только...
Сплошные приколы - Приключения Буратино.
Программирование - процедура печати сообщений в нижних строках экрана.
Разберемся - Подробное описание игры LASER SQUAD

В этот день...   9 декабря