Модераторы: Rickert

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Закпаска многоугольника в Direct3D, способы закраски сложных полигонов не тр 
:(
    Опции темы
bublik478
Дата 15.2.2006, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



Вопрос в следующий:

Имеется многоугольник в 3D например как ниже или прекреплённый:
___
/ ....\____
| .............\
| ..............\
\-------.......|
…….....\___|

Необходимо его закрасить одним цветом, Как ето сделать?

Direct3D понимает закраску треугольника, значит надо разбивать многоугольник на треугольники?

Есть ли какой-нибудь другой способ?

Заранее спасибо!


Присоединённый файл ( Кол-во скачиваний: 10 )
Присоединённый файл  k_voprosu.JPG 33,38 Kb
PM MAIL   Вверх
mr.DUDA
Дата 15.2.2006, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 7
Всего: 232



По-любому, фигуру придётся разбить на треугольники.


--------------------
user posted image
PM MAIL WWW   Вверх
bublik478
Дата 16.2.2006, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



тогда такой вопрос -> как ето легче всего сдалать?

есть много методов триангуляции, но те что я смотрел подходят не идеально, Делоне например сделает сетку немного с большей поверхностью чем полигон, особенно если есть выступающие части, Ухорезание работает если полигон весь составлен по часовой стрелки.

а в моем случае ето предсказать тяжело!
PM MAIL   Вверх
MaxB
Дата 17.2.2006, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 10.2.2004
Где: Украина, Одесса

Репутация: нет
Всего: 1



Я как-то нашёл не плохую реализацию алгоритма триангуляции на C++, правда не знаю, что там за алгоритм используется.
Он поддерживает любые полигоны, и даже полигоны с дырами, при чём довольно быстро. Если надо могу скинуть.

PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 17.2.2006, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 7
Всего: 232



Скинь ссылочку, пожалуйста.


--------------------
user posted image
PM MAIL WWW   Вверх
MaxB
Дата 17.2.2006, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 10.2.2004
Где: Украина, Одесса

Репутация: нет
Всего: 1



Вот сылка:
gpc232.zip
PM MAIL WWW ICQ   Вверх
bublik478
Дата 17.2.2006, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



eto triangulyaciya poligonov, izvestnaya stranica, avtor dazhe okazivaet nekiy support esli napisat',

no bistro ona ne rabotaet esli poligon bol'shoy.

no vseravno spasibo.
PM MAIL   Вверх
mr.DUDA
Дата 17.2.2006, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 7
Всего: 232



Насколько я понял, bublik478, необходим алгоритм заливки для полигона, выводящего реку или что-то подобное, я прав ? smile


--------------------
user posted image
PM MAIL WWW   Вверх
bublik478
Дата 20.2.2008, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



прав mr.DUDA, реку закрасить надо
PM MAIL   Вверх
arilou
Дата 21.2.2008, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 6
Всего: 61



bublik478, т.е. ты за два года её так и не закрасил? smile 


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Dronchik
Дата 21.2.2008, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Звукач ёмаё
**


Профиль
Группа: Участник
Сообщений: 451
Регистрация: 1.5.2007

Репутация: 8
Всего: 37



Проще текстуру натянуть. smile 


--------------------
Вместо слов делай дело, от которого ты фанатеешь. (с)

PM MAIL WWW ICQ   Вверх
bublik478
  Дата 21.2.2008, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



arilou, ты тоже прав! два года я не стал ломать голову над этим! smile
я не стал голову ломать, я на openGL сделал! там есть готовая функция!

а ещё написал триангулятор, отдельно данные о полигоне загоняю туда и триангулирую при необходимости, перевожу в формат TIN (triangle network) и показываю в DirectX как закрашенный полигоне.

жалко что это не работает в DirectX на лету как ето делат OpenGl

Добавлено через 2 минуты и 24 секунды

Dronchik, а не подскажите как это делается???

т.е. есть замкнутая кривая линия (полигон) и можно текстуру натянуть на это дело? это было бы здорово!
PM MAIL   Вверх
Dronchik
Дата 21.2.2008, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Звукач ёмаё
**


Профиль
Группа: Участник
Сообщений: 451
Регистрация: 1.5.2007

Репутация: 8
Всего: 37



bublik478, можно воспользоваться функцией 
Код

D3DCreateTextureFromFile(pD3DDevice/*девайс устройства*/, "tex.bmp"/*файл текстуры*/, &tQuadTexture/*адрес, указывающий на квадратность текстуры, вроде :biggrin */)


Добавлено @ 17:28
Вот как выглядит описанная выше мною функция
Код

HRESULT D3DXCreateTextureFromFile(
       LPDIRECT3DDEVICE9 pDevice,
       LPCTSTR pSrcFile,
       LPDIRECT3DTEXTURE9 *ppTexture);


Это сообщение отредактировал(а) Dronchik - 21.2.2008, 17:29


--------------------
Вместо слов делай дело, от которого ты фанатеешь. (с)

PM MAIL WWW ICQ   Вверх
bublik478
Дата 21.2.2008, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 15.2.2006

Репутация: нет
Всего: нет




как текутуру загрузить - это понятно.

а вот как ёё наложить на замкнутую линию????

даже если присвоить координаты текстурные правильно, то DirektX рисует её как линию а не полигон!!

даже если стоит frame в solid! т.к. DirectX насколько я понимаю может закрашивать цветом или текстурой тока примитивный полигон! (треугольник)

Я не прав?

PM MAIL   Вверх
Dronchik
Дата 21.2.2008, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Звукач ёмаё
**


Профиль
Группа: Участник
Сообщений: 451
Регистрация: 1.5.2007

Репутация: 8
Всего: 37



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


--------------------
Вместо слов делай дело, от которого ты фанатеешь. (с)

PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование игр, графики и искуственного интеллекта"
Rickert

НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.

  • Литературу, связанную с программированием графики, обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы связанные с программированием графики и мультимедии на языках С++ и Delphi
  • Вопросы по реализации алгоритмов рассматриваются здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема »


 




[ Время генерации скрипта: 0.0520 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.