Войти
ПрограммированиеФорум2D графика и изометрия

2D движок ... попиксельное рисование фигур

#0
23:31, 18 фев. 2010

Народ дело вот в чём … мне дали практически голый движок для 2D игр …
Есть буфер – массив объёмом количества пикселей экрана, который хранит код цвета пикселя
….
static unsigned *shadow_buf=NULL;
….
shadow_buf=new unsigned [width*height];
….
memset(shadow_buf,0,width*height*4);
….
shadow_buf [ X + Y * width ] = 0xFFFF0000;  ... тут он выведет по координатам X,Y красный пиксель.

И как бы что бы вывести пиксель надо просто присвоить код цвета в нужное место буфера …
Вот … а функций рисования линий, окружностей нет …. Их надо писать самому ….
Я как бы написал вывод линий … горизонтальные и вертикальные выводятся без проблем.
Линии под углом 45 градусов тоже выводятся нормально ... так как там координаты "х" и "у" увеличиваются на 1-цу
линия 1 | 2D движок ... попиксельное рисование фигур
а вот с остальными линиями бока ....
линия 2 | 2D движок ... попиксельное рисование фигур
тут получается что "y" надо увеличивать на 1-цу , а "х" на 0,5 ....  а дробных координат нету ... и что делать я не знаю ....

Непосредственно вопрос а точнее просьба ... народ вы могли бы выложить алгоритм попиксельного рисования линии и окружности .... если выложите код то буду очень признателен !!!


#1
23:57, 18 фев. 2010

Алгоритмы Брезенхема тебе помогут

http://hardsign.hardsign.com/prog/6

#2
15:12, 9 мар. 2010

Вот ещё ссылочку нашёл: http://window.edu.ru/window/library?p_rid=23960

#3
15:58, 9 мар. 2010

Вот еще, если нужно чтобы линии были со сглаживанием, а не ступеньками http://ru.wikipedia.org/wiki/Алгоритм_Ву

#4
16:11, 9 мар. 2010

griseus
> мне дали практически голый движок для 2D игр
уверены, что это движок ля игр?
спрайты на нем тоже софтварно надо рендерить?

#5
16:25, 9 мар. 2010

Тебя по ходу обманули ;)
Или ты вернулся на 20 лет назад и пишешь игру под DOS.

#6
16:47, 9 мар. 2010

memset(shadow_buf,0,width*height*4);
….
shadow_buf [ X + Y * width ] = 0xFFFF0000;

Мы даже под дос так в своё время не писали...
И вообще, как чувак должен узнать игровой перед ним движок или нет, если "Брезенхем" для него пустой звук.
И вообще, если это игровой движок, там наверное и звук есть? Запонение массива PCM-ом было бы брутально и бессердечно. Представляю как следующим вопросом чувака будет что он научился брать высокие и низкие ноты, но плохо получается музыка... интересно даже, куда его отправят...

#7
0:40, 10 мар. 2010

oistalker
Ву чет не очень хорошо "мультисэмплит". Я когда-то сделал растеризатор произвольных полигонов с АА, так можно любые линии любой толщины с АА выводить и вообще любые фигуры.

#8
0:48, 10 мар. 2010

d.m.k
Wu не мультисемплит, если быть точным. Он рисует НЕЧТО, подобное результату мультисемплинга.
Мультисемплинг это рисование на экране в несколько раз более широком, чем наш, и потом уменьшение результата со сглаживанием.

ПрограммированиеФорум2D графика и изометрия

Тема в архиве.