|
Buzz
#14
29 апреля 1998 |
|
Ассемблер - Описание алгоритмов: 2D bump mapping, Gouraud Shading, Fast Phong Shading, Z Buffering, Flat Shading, Voxels.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
┌┼┘┌─┴┘└┐─┘┌┘┌─┘▒▒▒░░░ ├┐└──┬─┘ ° ° ░ ░▒▓▒▓██▓█
└┬┌─████│████ ████░█ ·┘│┬ · @@@##∙· ° ° ░ ░▒▓█▓███
┌┼┘┌█ █ █ █▒█░░█ █ ·┤·└─· ·@/ #° ° ░ ░▒▓▒▓██▓█
┌─┘█ █▒▒█░█░ █ █ └┐ ###%° ў ° ° ░ ░▒▓█▓███
├┴┼─█ █▒█▒░█░█ █ █ █┼┐└· -&/ ў °/ ° ░ ░▒▓▒▓██▓█
┌┼┴┐████▒█░░█ █ █ ████│┼┤ &/ \°°·#/ ° ° ░ ░▒▓█▓███
┐┘└─▒▒▒░░████ ████┌┘└┘┐└─ · &/ ·##/ ° ° ░ ░▒▓▒▓██▓█
└─▒▒▒░░░─┐┼──┐┼──┐│┌ ┌┘┌──┤ #/@@ ° ° ░ ░▒▓█▓███
▒▒▒░░░└─┐└┘┌──┘┌┼─┌┴ └─┘┌┴└─· @/ \@ ° ░ ░▒▓▒▓██▓█
^^^^^^^^^^^^^^^^^^^^ ПРОСТО КЛЕВЫЙ ЭФФЕКТ ! ^^^^^^^^^^^^^^^^^^^
(c) 1998 main text by Sat / MegaCode / Extreme
(c) 1998 asciigfx & add.text by Demiurge Ash / Eternity Industry
-------------------
С течением времени спектрумовские эффекты все более навора-
чиваются. Вместе с эффектами меняется и лексикон кодера. Предла-
гаем Вам приобщится к миру 'выскоих материй' :-). Прочитав сие
руководство по словоблудию вы сможете поразить своих друзей, при
просмотре очередной демы, ткнув пальцем в экран со словами:
" Дык, эт ж voxel, е-мое! Оппаньки !".
2D bump mapping
---------------
Выглядит как будто источник света
шарится по объемной поверхности. Такой
эффект вы можете наблюдать в деме "Power 1
Up" by Megacode. °
Делается очень просто: 4 ° X ° 2
a) вычисляем нормали в °
точке X: 3
Nx= 2x - 4x
Ny= 1y - 3y
б) по этим координатам выбираем уровень яркости из
таблички, которая как правило представляет собой
концентрические окружности с максимальной яркостью
в центре и затухает к краям.
░░▒▒▒▒▒░░
░░▒▒▓█▓▒▒░░ │
░▒▒▓███▓▒▒░ Ny
░░▒▒▓█▓▒▒░░ │
░░▒▒▒▒▒░░
───Nx───
в) перебрасываем яркость в точку X - и все !
Gouraud Shading
---------------
По качеству закраски выступает на втором месте после fong'a.
Существенный недостаок - при использовании нeбольшого количества
цветов становятся заметны переходы (как правило это видно все-
гда). Закраска gouraud строится интерполированием цвета от одной
точки с известной яркостью, к другой - также с известной яркос-
тью, иначе говоря необходимо в качестве входного параметра иметь
3 точки, т.к. интерполирование происходит по уравнению 2-ой сте-
пени ax¤+bx+c, 3 точки нужны для нахождения коэффициентов a,b,c.
Eсли объект - 4-хугольник, нам понадобятся любые 3 вершины.
Все остальные точки полигона можно найти по этим трем.
Fast Phong Shading
------------------
Самый смачный способ закраски. Его отличительная черта-очень
плавные цветовые переходы. Очень часто можно заметить, что на
объекте отражается источник света (этого больше нет ни в одной
другой закраске). Итак, нам опять понадобятся нормали к поверх-
ности, как и в bump mapping'e, но вот как их вычислять шустро и
безболезненно - это для нас до сих пор вопрос. Все остальные
операции аналогичны bump'у.
Z Buffering
-----------
Довольно грубая закраска. Цвет точки определяется по ее
Z-координате. Характерна закраска 'пластами', которые всегда
параллельны плоскости экрана. Кажется, здесь ничего объяснять
не надо - все просто очевидно.
Flat Shading
------------
Самый ламерский способ, широко распространенный на ZX, т.к.
требует минимальных затрат времени. Вся грань закрашивается мо-
нотонно. Ее цвет определяется расстоянием до источника света и
углом к нему. На ZX практически всегда считают, что источник
света располагается за экраном, он неподвижен - и рассчитывают
цвет грани по ее Zср координате, которая вычисляется как средняя
из координат составляющих грань точек.
Voxels
------
Простой способ изобразить земную поверхность. При постро-
ении используется метод Z-buffer'a, т.е. начинаем строить ланд-
шафт от самой дальней точки, удаленной от наблюдателя к экрану.
При этом необходимо иметь карту высот. Высота точки определяется
яркостью в карте высот. Причем, когда
мы русуем точку на экране, необходимо ██▓▓▓▒▒▒▒░ ░░▒▓▒▒░
прорисовать ее на всей высоте (протя- ▓▓▓▒▒▒░░ ▒░ ░░▒░
нуть ), чтобы сохранялась цельность ▒▒▒▒░ ░▒▒▓▒░ ░
изображения. ░░░ ░▒▒▓██▓▒░ ░░▒
Ко всему этому добавим перспективу, ░░ ░░▒▓██▓▒▒░ ░░░▒▒
немножко поизвращаемся - и получится ландшафт
вплоне симпатичный ландшафт. ███
Кстати, как Voxel'и строятся, так ▓▓███▓▓ 0
они и выглядят: масса точек, которые ▒▒▓▓███▓▓▒▒▒▒ 0 |
несколько прыгают с места на место ▒▒▓▓███▓▓▒▒▒▒ | |
при перемещении ландшафта. ▒▒▓▓███▓▓▒▒▒▒ W W
'протягивание' точек
по высотам
Другие статьи номера:
Похожие статьи:
В этот день... 19 ноября