Benjamin Breeg
нет look тут не причем. модель поворачивается только если look принимает значение 2 и 1. как модель повернуть на 90 градусов по оси х?
switch(look) { case 0: { model.node->setRotation( vector3df( 180,0,180)); break; } case 1: { model.node->setRotation( vector3df( -90.f,0,-90.f)); break; } case 2: { model.node->setRotation( vector3df( 90.f,0,0)); break; } case 3: { model.node->setRotation( vector3df( 90,0,180)); break; } }
так не пробывал???
Кстати, у кого нибудь работает приседание?????
увы но это не работает. проверял на различных значениях и обезумел: при setRotation(vector3df(20,0,0)); модель вообще вперед отлетает
как создать 3д квадрат и залить его цветом?
Проше всего сделать модельку и загрузить её на сценуну а если кубик через код то
sceneManager->addCubeSceneNode (f32 size=10.0f, ISceneNode *parent=0, s32 id=-1, const core::vector3df &position=core::vector3df( 0, 0, 0), const core::vector3df &rotation=core::vector3df( 0, 0, 0), const core::vector3df &scale=core::vector3df( 1.0f, 1.0f, 1.0f))=0);//Adds a cube scene node. //со цветом сейчас не скажу-cтудии под рукой нету а так всегда мона заглянуть в паку docs и открыть фаил index.htm тама все будет написано
кто может обьяснить как выгружать обьекты иррлихта из памяти?
Под объектами имеется ввиду экземпляры классов или ресурсы?
ресурсы: модели и текстуры
Это дело вроде в кеше хранится. У менеджера сцены есть метод getMeshCache(). Если не ошибаюсь в этом кеше каждому мешу присвоены индексы через которые можно обращаться к ним. Точнее сказать пока не могу.
У меня есть ландшафт созданный из SMeshBuffer (треугольников) как мне наложить текстуру на нужный треугольник?(или квадрат из двух треугольников).
Карта не плоская а содержит в себе "Пещеры". Генерируется динамически по этому загрузить .bsp и тп. я не могу. :(
Подскажите, пожалуйста, как можно обратиться к камере в Irrlicht.NET?
Как указано в документации, это можно сделать так:
// add a user controlled camera and the animated mesh to the scene ICameraSceneNode cam = device.SceneManager.AddCameraSceneNodeFPS(null, 100, 100, -1);
Но CameraSceneNode (или ICameraSceneNode) неизвестен в текущем контексте, а AddCameraSceneNodeFPS возвращает System.IntPtr, что невозможно привести к CameraSceneNode (или SceneNode).
Как решить эту проблему? Казалось бы, элементарная операция.
Если активная камера уже есть то обратиться к ней думаю надо так:
device.SceneManager.getActiveCamera();
Хотя не знаю есть ли этот метод в .NET версии.
В том и дело, что такого метода там нет.
использую Irrlicht 1.7.2
А точнее заголовки под delphi.
Не могу разобаться с аниматорами : демки в комплекте на столкновения работают.
Но сам написать тоже самое не могу :
Добавлю к камере аниматор - все работает, но если я пытаюсь раньше или позже изменить позицию камеры или любой ноды , прорисовка вылетает (без ошибок в консоли и в отладке)
если аниматор не добавляю - то могу спокойно менять позицию нодов на сцене.
рендер в отдельном потоке, сцена грузится в отдельном классе (однако и если в теле main функции грузить, результат тот же)
может я упустил что то важное?
WALL
P.S. в голову взбрело поменять DriverType с OpenGl на DX9 и все заработало оО но меня не устраивает такой расклад..
Тема в архиве.