|
3D-программирование Вопросы, касающиеся программирования 3D мира |
20.01.2008, 01:30
|
#1
|
Гигант индустрии
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений (для 92 пользователей)
|
Странный баг рендера
Дело обстоит так. Есть модель. Она состоит из 2 мешей и 1 кости. Один из мешей привязан к кости. Гружу модель АнимМешем. Далее нахожу через ФайндЧайлд кость и кручу её. Всё отлично. Но такая модель должна быть не одна. Копирую её через КопиЕнтити. Опять таки каждый раз нахожу кость. Естественно всё занесено в типы. Всё работает. Но! Если на экране появляется больше 1 такой модели, то в некоторых почему-то не отображается меш, привязаный к кости С хендлами всё в порядке. Доказательство тому то, что сначала меш отображается, а потом вдруг пропадает... Попробовал разбить модель на 2 и гузить 2 меши. Аналогичная ситуация.... Кто сталкивался с подобной проблемой? Я впервые такое вижу.
Последний раз редактировалось Raiter, 20.01.2008 в 01:35.
|
(Offline)
|
|
20.01.2008, 02:56
|
#2
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Ответ: Странный баг рендера
Ты паренты не меняешь ?
__________________
|
(Offline)
|
|
20.01.2008, 03:28
|
#3
|
Разработчик
Регистрация: 09.08.2006
Адрес: Украина
Сообщений: 431
Написано 65 полезных сообщений (для 53 пользователей)
|
Ответ: Странный баг рендера
А если попробовать поменять на любую другую модель и попробовать ище раз? Может пройдет, может модель какаято некачественная! У меня разок было такое, поменял анимацию и все прошло, но модель у меня пропадала токо если смотреть ей в лиццо! Тоесть EntityYaw(CamP,1) = больше 90 или менше -90, или Pitch также более 90 или менее -90! Просто анимацию я сам делал !!!
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
20.01.2008, 03:32
|
#4
|
Гигант индустрии
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений (для 92 пользователей)
|
Ответ: Странный баг рендера
Нет.
Вот код:
Global EnemyModel = LoadAnimMesh("enemy1_model.b3d") ;
HideEntity EnemyModel
Дальше в ф-ции загружки уровня создаю врагов:
LevelFile = ReadFile("levels\"+ LevelName$ + "_enemy.RLL")
While Not Eof(LevelFile)
Enemy = New EnemyType
Enemy\ID = ReadLine(LevelFile)
EnType = ReadLine(LevelFile)
Enemy\EnType = EnType
Select EnType
Case 1
Enemy\Entity = CreatePivot()
Enemy\Model = CopyEntity(EnemyModel,Enemy\Entity)
Enemy\Vint = FindChild(EnemyModel,"vint2")
End Select
Enemy\XPos = ReadLine(LevelFile)
Enemy\YPos = ReadLine(LevelFile)
Enemy\ZPos = ReadLine(LevelFile)
PositionEntity Enemy\Entity,Enemy\XPos,Enemy\YPos,Enemy\ZPos
Wend
CloseFile LevelFile
В ф-ции обновления врагов:
TurnEntity Enemy\Vint,0,-15,0
Ну и в цыкле:
For Enemy = Each EnemyType
UpdateEnemy(Enemy)
Next
|
(Offline)
|
|
20.01.2008, 03:41
|
#5
|
Гигант индустрии
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений (для 92 пользователей)
|
Ответ: Странный баг рендера
А если попробовать поменять на любую другую модель и попробовать ище раз? Может пройдет, может модель какаято некачественная!
|
Ради эксперимента попробую.
У меня разок было такое, поменял анимацию и все прошло, но модель у меня пропадала токо если смотреть ей в лиццо! Тоесть EntityYaw(CamP,1) = больше 90 или менше -90, или Pitch также более 90 или менее -90! Просто анимацию я сам делал !!!
|
У меня пропадает, когда на экране появляется вторая модель...
|
(Offline)
|
|
20.01.2008, 03:52
|
#6
|
Гигант индустрии
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений (для 92 пользователей)
|
Ответ: Странный баг рендера
Итак я нашёл где собака зарыта...
Сделал в Максе "модель" (Halk-DS ) (2 бокса и кость) и вставил в игру. Всё заработало.
И тут мне в голову пришла 1 мысль. В модельке к мешу, который привязан к кости я применял альфу (накладывал Блицовский материал с альфой в 60%). Проделываю тоже самое с боксом, экспортирую, запускаю... И вот тебе! Вылазит тот же баг.
Открываю нормальную модель, убираю альфу, экспортирую - бага нет.
Ок. Пробую назначить альфу в блице:
EntityAlpha FindChild(Enemy\Model,"vint"),0.3
Опять баг.
Значит поблема в альфе. Странно...
Последний раз редактировалось Raiter, 20.01.2008 в 04:15.
|
(Offline)
|
|
20.01.2008, 09:37
|
#7
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Странный баг рендера
С фильтровкой было постоянно много проблем, в 1.99 вроде как стало немного лучше. Но относительно CopyEntity, учитывай что он не создаёт дубликат модельки, а только делает дополнительный рендер, со своей матрицей трансформации и брашем.
|
(Offline)
|
|
20.01.2008, 13:53
|
#8
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Ответ: Странный баг рендера
Enemy\Model = CopyEntity(EnemyModel,Enemy\Entity)
Enemy\Vint = FindChild(EnemyModel,"vint2")
поменяй на:
Enemy\Model = CopyEntity(EnemyModel)
Enemy\Vint = FindChild(Enemy\Model,"vint2")
EntityParent Enemy\Model,Enemy\Entity
__________________
|
(Offline)
|
|
20.01.2008, 14:44
|
#9
|
Гигант индустрии
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений (для 92 пользователей)
|
Ответ: Странный баг рендера
tormoz, безрезультатно. Всеравно вылазит баг. Ну да ладно. Без альфы смогу как нибуть
|
(Offline)
|
|
20.01.2008, 15:44
|
#10
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Странный баг рендера
попробуй назначить вертолету альфу 0.999
|
(Offline)
|
|
20.01.2008, 15:51
|
#11
|
Гигант индустрии
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений (для 92 пользователей)
|
Ответ: Странный баг рендера
попробуй назначить вертолету альфу 0.999
|
Не помогает. Придётся "забить" на альфу
|
(Offline)
|
|
20.01.2008, 16:47
|
#12
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Ответ: Странный баг рендера
Если хочешь чтобы при кручении винта он у тебя был размытым, полупрозрачным, то ставь на его место спрайт с размытой тексой, а винт пряч.
|
(Offline)
|
|
20.01.2008, 16:52
|
#13
|
Гигант индустрии
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений (для 92 пользователей)
|
Ответ: Странный баг рендера
Знаешь спрайт и меш - вещи разные. Спрайт имхо выглядит похуже чем лопасти сделанные полигонально Да и спрайт тут не прокатит имхо. Тут нужно меш в виде круга + тестура с маской.
Но посмотрим. Тем более, что так можно будет секономить немного полигонов.
ЗЫЖ Чаво ты меня за полного нупа держиш то?
|
(Offline)
|
|
20.01.2008, 17:47
|
#14
|
scientist.alien
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений (для 2,593 пользователей)
|
Ответ: Странный баг рендера
эмм, я немного туповат, или такая конструкция гораздо расточительнее в плане полигонов, нежели биллборд с (маск/альфа)-текстурой?
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab. We LOVE you. We MADE you.
|
(Offline)
|
|
20.01.2008, 18:12
|
#15
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Странный баг рендера
эмм, я немного туповат, или такая конструкция имеет хоть какое нибудь приемущество перед квадом с размытой текстурой винта?
Последний раз редактировалось HolyDel, 20.01.2008 в 18:20.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:00.
|