Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 03.04.2009, 17:42   #1
rr333
Нуждающийся
 
Регистрация: 07.02.2009
Сообщений: 92
Написано 16 полезных сообщений
(для 38 пользователей)
Отсечение меша плоскостью

Вот, сделал функцию, чтобы отсекать часть меша горизонтальной плоскостью. Но она работает не совсем правильно. Я копирую нужные треугольники, и преобразую те,что пересекают плоскость. И если загрузить rocket.3ds, то blitz пишет что вершины находятся не в радиусе камеры. Что я делаю не правильно?
(Offline)
 
Ответить с цитированием
Старый 03.04.2009, 17:52   #2
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Отсечение меша плоскостью

ты бы показал как ты делаешь. лучше чтобы был минимальный bb и медиа.
(Offline)
 
Ответить с цитированием
Старый 03.04.2009, 18:45   #3
rr333
Нуждающийся
 
Регистрация: 07.02.2009
Сообщений: 92
Написано 16 полезных сообщений
(для 38 пользователей)
Ответ: Отсечение меша плоскостью

Тут браузер у меня глючит. Вообщем качайте тут -
http://blitz.pp.ru/forum/showthread....&threadid=4432 .
(Offline)
 
Ответить с цитированием
Старый 03.04.2009, 18:52   #4
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Отсечение меша плоскостью

фигасе!
"Vertex Index Out of Range" это оказывается "вершины находятся не в радиусе камеры"
на самом деле это значит что ты обращаешься к несуществующим вершинам.

не
For ct=0 To CountTriangles(gs)
а
For ct=0 To CountTriangles(gs) -1

кстати, твоя функция работает весьма и весьма криво. я бы даже сказал что она совсем не работает. и еще, нафиг ты ее вызываешь в главном цикле?

я бы на твоем месте просто бы плющил верхушку.

Последний раз редактировалось HolyDel, 03.04.2009 в 19:02.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо HolyDel за это полезное сообщение:
Alex__Noc (22.07.2012), rr333 (03.04.2009)
Старый 03.04.2009, 19:39   #5
rr333
Нуждающийся
 
Регистрация: 07.02.2009
Сообщений: 92
Написано 16 полезных сообщений
(для 38 пользователей)
Ответ: Отсечение меша плоскостью

Да, я согласен, что сильно кривая функция,но я бы её оптимизировал. 'плющил верхушку'- в смысле fit mesh или двигать вершины mesha. Но если вверху модель широкая, и к низу сильно сужается. Тогда способ создания будет виден. И еще включи wireframe и жми кнопку вверх (это как бы двигать плоскость вверх и становится видно как строится mesh). И значит если поменять эту строку то все работает.
P.s. я в blitz работал мало и сделать такую функцию способ научится работать с геометрией и также смогу использовать это в игре.
(Offline)
 
Ответить с цитированием
Старый 03.04.2009, 19:44   #6
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: Отсечение меша плоскостью

в блитце индексы вертексов треугольников сурфейсов начинаются с единицы !!!

For ct=1 To CountTriangles(gs)
__________________
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо tormoz за это полезное сообщение:
ABTOMAT (03.04.2009), HolyDel (03.04.2009), rr333 (03.04.2009)
Старый 03.04.2009, 20:07   #7
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Отсечение меша плоскостью

tormoz, я вот тут подумал а есть ли разница?
например TriangleVertex принимает параметр в 0..(ct-1).

т.е в твоем случае прийдеся писать так:
for ct = 1 to counttriangles(gs)
TriangleVertex(gs,ct-1,....

а в моем
for ct = 0 to counttriangles(gs)-1
TriangleVertex(gs,ct,....

короче тот же код, только в профиль.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
rr333 (03.04.2009)
Старый 04.04.2009, 00:44   #8
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: Отсечение меша плоскостью

да нет в принципе разницы
кроме того, что треугольника с индексом 0 не существует
__________________
(Offline)
 
Ответить с цитированием
Старый 04.04.2009, 16:11   #9
rr333
Нуждающийся
 
Регистрация: 07.02.2009
Сообщений: 92
Написано 16 полезных сообщений
(для 38 пользователей)
Ответ: Отсечение меша плоскостью

Обновил функцию, и теперь она работает, но не правильно. Не правильно строятся треугольники, пересеченые с плоскостью. И если сделать активными 2 строчки создания треугольника elseif c=2, то появляются треугольники идущие в бесконечность (прикольно, но мне нужно другое). Попробуйте в mesh загружать 3 модели в архиве или создать вместо него конус, куб, сферу, и посмотрите как стоятся треугольники. Управление смотрите в коде. Качать во 2 посте.
http://blitz.pp.ru/forum/showthread....7663#post57663
(Offline)
 
Ответить с цитированием
Старый 04.04.2009, 17:27   #10
rr333
Нуждающийся
 
Регистрация: 07.02.2009
Сообщений: 92
Написано 16 полезных сообщений
(для 38 пользователей)
Ответ: Отсечение меша плоскостью

Вот, смотрел телек и догнал, что не так. Надо все переменные kv у меня не целыми сделать, ну т.е. перед kv решетку поставить надо. Тогда треугольники ложатся правильно. Но остальные проблемы остались.
(Offline)
 
Ответить с цитированием
Старый 04.04.2009, 23:05   #11
Артем Валерьевич
Бывалый
 
Аватар для Артем Валерьевич
 
Регистрация: 25.12.2007
Адрес: г. Краснодар
Сообщений: 894
Написано 421 полезных сообщений
(для 1,079 пользователей)
Ответ: Отсечение меша плоскостью

Помню, был такой пример на офф сайте блица
(Offline)
 
Ответить с цитированием
Старый 05.04.2009, 13:00   #12
rr333
Нуждающийся
 
Регистрация: 07.02.2009
Сообщений: 92
Написано 16 полезных сообщений
(для 38 пользователей)
Ответ: Отсечение меша плоскостью

Всё! Исправил все ошибки. Теперь качайте там же, в последнем посте.
(Offline)
 
Ответить с цитированием
Старый 05.04.2009, 18:02   #13
Артем Валерьевич
Бывалый
 
Аватар для Артем Валерьевич
 
Регистрация: 25.12.2007
Адрес: г. Краснодар
Сообщений: 894
Написано 421 полезных сообщений
(для 1,079 пользователей)
Ответ: Отсечение меша плоскостью

хороша фича, для появления персов можно применить,
(Offline)
 
Ответить с цитированием
Старый 05.04.2009, 18:52   #14
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: Отсечение меша плоскостью

или резать перцов на куски ! (кровожадно)
расчлененка рулит
пошел писать концепт для аркады "Пила"
домохозяйки оценят
__________________
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо tormoz за это полезное сообщение:
ABTOMAT (05.04.2009), h1dd3n (05.04.2009)
Старый 05.04.2009, 20:36   #15
rr333
Нуждающийся
 
Регистрация: 07.02.2009
Сообщений: 92
Написано 16 полезных сообщений
(для 38 пользователей)
Ответ: Отсечение меша плоскостью

Как ты догадался? Именно для этого я и делал это! Но функция не закончена. Надо еще сделать плоскость, прикрывающую внутреннюю часть меша. И если разделяющая плоскость разделит меш
не на 2, а на 3 части. Надо, чтобы каждый был отдельным объектом.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доступ к частям Меша ІГРОГРАЙКО FAQ 4 21.12.2010 18:55
Как отсечь лишнее с картинки??? Jlemyp 2D-программирование 9 23.05.2010 18:52
Разрез 3D модели плоскостью? SBJoker Алгоритмика 8 04.03.2009 17:06
Irrlicht -> Загрузка *.Х меша DarkKnight C++ 4 17.06.2007 22:15
Как узнать размер меша? untonee 3D-программирование 37 29.05.2007 01:42


Часовой пояс GMT +4, время: 06:35.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com