PMG

Форумы по созданию игр
Текущее время: 26 апр 2024 07:03

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Штриховка полигона
СообщениеДобавлено: 25 июн 2005 14:54 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 09 окт 2004 17:19
Сообщения: 22
Откуда: Ostrava
В red book написано, что можно задать штриховку многоугольника.
http://www.progz.ru/articles.php?view=60
листать до 2.5.3.3 Шаблонирование полигонов
Показаны примеры штриховок и примеры их рисования, тока я не понимаю этих примеров :cry: . Подскажите, как нарисовать шаблон штриховки.
не понимаю именно это
Код:
void display(void)
{
   GLubyte fly[]= {
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x03,0x80,0x01,0xC0,0x06,0xC0,0x03,0x60,
      0x04,0x60,0x06,0x20,0x04,0x30,0x0C,0x20,
      0x04,0x18,0x18,0x20,0x04,0x0C,0x30,0x20,
      0x04,0x06,0x60,0x20,0x44,0x03,0xC0,0x22,
      0x44,0x01,0x80,0x22,0x44,0x01,0x80,0x22,
      0x44,0x01,0x80,0x22,0x44,0x01,0x80,0x22,
      0x44,0x01,0x80,0x22,0x44,0x01,0x80,0x22,
      0x66,0x01,0x80,0x66,0x33,0x01,0x80,0xCC,
      0x19,0x81,0x81,0x98,0x0C,0xC1,0x83,0x30,
      0x07,0xE1,0x87,0xE0,0x03,0x3F,0xFC,0xC0,
      0x03,0x31,0x8C,0xC0,0x03,0x33,0xCC,0xC0,
      0x06,0x64,0x26,0x60,0x0C,0xCC,0x33,0x30,
      0x18,0xCC,0x33,0x18,0x10,0xC4,0x23,0x08,
      0x10,0x63,0xC6,0x08,0x10,0x30,0x0C,0x08,
      0x10,0x18,0x18,0x08,0x10,0x00,0x00,0x08
   };



Или где прочитать, как рисовать эту штриховку?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 июн 2005 23:03 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 11 дек 2004 22:33
Сообщения: 112
Откуда: Ханты-Мансийск
Я бы это назвал режимом трафарета для его работы надо включить следующие строки в процедуру рисования:

glPolygonStipple(fly); //Устанавливаем трафарет (как бы в память загружаем содержимое массива с данными трафарета)
glEnable(GL_POLYGON_STIPPLE)//Включить режим трафарета
.................... //Здесь рисуется сцена

glDisable(GL_POLYGON_STIPPLE);

Думаю здесь все понятно
_______________________
С уважением eNrix


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 июн 2005 23:05 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 11 дек 2004 22:33
Сообщения: 112
Откуда: Ханты-Мансийск
Можешь сильно на этом не зацыкливаться я думаю, что это врятли понадобиться в будущем. Используй текстуры 8)
_______________________
С уважением eNrix


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 26 июн 2005 13:12 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 09 окт 2004 17:19
Сообщения: 22
Откуда: Ostrava
Дело в том, что в данном случае мне текстуру использовать нельзя, так как я буду штриховать произвольный многоугольник(Количество вершин всегда одинаковое, но очень часто вершины совпадают. Минимум различных координат - 4, но обычно больше.)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 июн 2005 09:13 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Штриховка делается просто:
glEnable(GL_POLYGON_STIPPLE);
glPolygonStipple(fly);
Поучается чт-то странное, т.е. штриховка не учитывает глубины и расположения объекта относительно камеры.

Насчет текстурирования - не знаю, не пробывал. Что собственно не получается?

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 июн 2005 12:33 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 09 окт 2004 17:19
Сообщения: 22
Откуда: Ostrava
Не получается понять, как нарисовать свою штриховку.
Я не понимаю, как вот это работает
Код:
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x03,0x80,0x01,0xC0,0x06,0xC0,0x03,0x60,


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 июн 2005 16:06 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
По-битно. Т.е. если в бит равен 1, то отображается текущий цвет, иначе прозрачность будет. Это как побитный шрифт.

Разложи каждый байт на биты и получишь:
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000011 10000000 00000001 11100000 00000110 11100000 00000011 01100000

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 июн 2005 17:37 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 09 окт 2004 17:19
Сообщения: 22
Откуда: Ostrava
Спасибо, теперь понял, как нарисовать картинку. Но написать еденички и нолики то я смогу, а вот перевести их в байты - нет :-(
Подскажите, пожалуйста, где прочитать про это можно.

_________________
Самым большим доказательством существования разумной жизни во Вселенной является тот факт, что до сих пор никто не попытался с нами связаться 8)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 28 июн 2005 09:43 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Можно так:
http://www.rsdn.ru/article/qna/Cpp/bin.xml - Как вставлять в программу на C++ двоичные константы?

Я делаю через шестнадцатеричные константы (храню в блокноте ;) ) :
0000 - 0
0001 -1
0010 -2
0011 -3
0100 -4
0101 -5
0110 -6
0111 -7
1000 -8
1001 -9
1010 -10 0xA
1011 -11 0xB
1100 -12 0xC
1101 -13 0xD
1110 -14 0xE
1111 -15 0xF
1 0000 -16 0x10

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 28 июн 2005 23:10 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 09 окт 2004 17:19
Сообщения: 22
Откуда: Ostrava
Очень благодарен!! Теперь мне всё понятно. :D

_________________
Самым большим доказательством существования разумной жизни во Вселенной является тот факт, что до сих пор никто не попытался с нами связаться 8)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 76


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB