Отрисовка моделей


Автор Сообщение

частый гость
Группа: Участники
Сообщений: 11
Добавлено: 19-03-2011 12:10
Прошло время, из чуланов вылезли на свет божий недоработки для Экстрим 3Д. И всё бы хорошо, но...
При отрисовке моделек заметил интересную вещь, одна сторона модели содержит полностью прозрачные грани. Другая сторона отрисовывается нормально... Как сие понимать? Сначала подумалось, что геометрия модели слишком сложная. Но вот загрузил обычный приметив собранный из полигонов и получил тот же эффект. Что делать господа?

бывалый
Группа: Участники
Сообщений: 49
Добавлено: 21-03-2011 15:03
Это не недоработка. Это отсечение задних граней, которое используется для оптимизации. Сделай эти грани лицевыми (для этого вершины должны идти против часовой стрелки) или напиши MaterialSetFaceCulling("Имя материала модели", fcNoCull). Второй вариант легче, но будет медленнее.

частый гость
Группа: Участники
Сообщений: 11
Добавлено: 21-03-2011 20:05
Спасибо. В моём случае производительностью пока можно пожертвовать.
На будущее, учту ориентацию вершин.

частый гость
Группа: Участники
Сообщений: 17
Добавлено: 28-01-2018 00:14
Я тут темку апну, чтобы новых не плодить.

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

В чем может быть проблема?

Причем, вот этот код из примеров тоже не применяется к моей модели:

MaterialCreate('mHellknight', 'data/hellknight/diffuse.png');
MaterialLoadTextureEx('mHellknight', 'data/hellknight/normal.png', 1);
MaterialSetShininess('mHellknight', 32);
MaterialSetAmbientColor('mHellknight', c_gray, 1);
MaterialSetDiffuseColor('mHellknight', c_white, 1);
MaterialSetSpecularColor('mHellknight', c_ltgray, 0.25);
ObjectSetMaterial(actor, 'mHellknight');

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 28-01-2018 11:43
Похоже на проблему с UV-координатами. Хотя без модели трудно судить, можешь ее выложить?

частый гость
Группа: Участники
Сообщений: 17
Добавлено: 28-01-2018 14:30
https://yadi.sk/d/najGfxDu3RrH4C

В архиве SMD и MS3D.

Как оказалось, черной модель становится из-за контура. Мне кажется, что шейдер тупит. Отключил обводку - шейдер освещения вроде работает, но так, словно это не целшейдинг, а энвайронмент: как отблески на хроме отображается.
Написал для упрощения освещения свой шейдер - вроде работает.

Кстати, что происходит, когда я создаю несколько акторов? Модель грузится заново и занимает память? Или она кэшируется? Нашел ActorProxy, но... на него нельзя повесить диапазон кадров, нельзя повесить скорость анимации...

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 29-03-2018 14:09
У ActorProxy еще есть проблема с вершинными актерами (MD2 и пр.) - скорость анимации почему-то очень низкая. Так что модуль однозначно требует доработки. Я его взял из GLScene 1.0, и в исходник пока особо не вникал.
А без него - да, модель загружается заново.

частый гость
Группа: Участники
Сообщений: 17
Добавлено: 01-05-2018 02:33
Есть новости по прокси?
И вообще, есть ли какой-то другой способ грузить модель только один раз и использовать ее везде, раз прокси не работает нормально?
А то как то глупо получается - на сто врагов грузить сто моделей заново?

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 01-05-2018 12:18
Пока не занимался - к сожалению, сейчас совсем нет времени.
Другого способа нет, разве что дублирование (ObjectCopy), но это практически то же самое, что новая загрузка.

 

Offtop.ru © 2003