Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   Ошибка при подгрузке 3D модели (http://www.flasher.ru/forum/showthread.php?t=175894)

areostar 26.02.2012 17:37

Ошибка при подгрузке 3D модели
 
попытался подгрузить 3D модель

использовал свою модель а код вот от сюда:
http://wiki.alternativaplatform.com/...80%D0%B0%D1%8F

Получил ощибку выполнения

Error: Error #2030: End of file was encountered.
at flash.utils::ByteArray/readUTFBytes()
at alternativa.protocol.codec.complex::StringCodec/doDecode()
at alternativa.protocol.codec::AbstractCodec/decode()
at versionBase1Custom0.a3d.material.codec::A3DImageCodec/doDecode()
at alternativa.protocol.codec::AbstractCodec/decode()
at platform.client.A3DModelsBase.versionBase1Custom0.a3d.material.codec::A3DImageNotNullVectorCodec/doDecode()
at alternativa.protocol.codec::AbstractCodec/decode()
at versionBase1Custom0.a3d.codec::A3DCodec/doDecode()
at alternativa.protocol.codec::AbstractCodec/decode()
at alternativa.protocol::Protocol/decode()
at alternativa.engine3d.loaders::ParserA3D/parse()
at simple3D/onA3DLoad()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()

В чём может быть ощибка

etc 26.02.2012 21:03

Модель неправильного формата, например.

areostar 26.02.2012 23:40

Взял другую модель, из сети, эфект тот же

etc 28.02.2012 11:55

Тогда, кмк, лучше спросить на профильном форуме.

areostar 29.02.2012 12:17

В прилогаемых примерах есть пример парсинга, пару моментов ни как не пойму

По порядку

Код AS3:

private function onContextCreate(e:Event):void {
                        stage3D.removeEventListener(Event.CONTEXT3D_CREATE, onContextCreate);
 
                        // Загрузка моделей
                        // Models loading
 
                        var loaderA3D:URLLoader = new URLLoader();
                        loaderA3D.dataFormat = URLLoaderDataFormat.BINARY;
                        loaderA3D.load(new URLRequest("parsersexample/model.A3D"));
                        loaderA3D.addEventListener(Event.COMPLETE, onA3DLoad);
 
                        var loaderCollada:URLLoader = new URLLoader();
                        loaderCollada.dataFormat = URLLoaderDataFormat.TEXT;
                        loaderCollada.load(new URLRequest("parsersexample/model.DAE"));
                        loaderCollada.addEventListener(Event.COMPLETE, onColladaLoad);
 
                        var loader3DS:URLLoader = new URLLoader();
                        loader3DS.dataFormat = URLLoaderDataFormat.BINARY;
                        loader3DS.load(new URLRequest("parsersexample/model.3DS"));
                        loader3DS.addEventListener(Event.COMPLETE, on3DSLoad);
 
                        // Listeners
                        // Подписка на события
                        stage.addEventListener(Event.ENTER_FRAME, onEnterFrame);
                        stage.addEventListener(Event.RESIZE, onResize);
                        onResize();
                }

.3DS - модел 3D maxa
.A3D - формат для альтернативы(как конвертировать знаю)
.DAE - А вот это что за зверь и как его получить?

далее по тексту назначаются текстуры для моделей, а если моделки уже с текстурами, этого можно не делать?

Добавлено через 9 часов 34 минуты
что так ни кто и не подскажет

artcraft 29.02.2012 23:01

.dae это диалект ХМL под названием COLLADA
он поддерживает не только модели с материалами но и анимацию
родная поддержка или плагин для экспорта в колладу есть в любом уважающем себя 3д редакторе

все эти форматы описывают модель и материалы,
некоторые материалы используют текстуры
эти текстуры не содержатся в файле с моделью.

текстура это картинка, которую необходимо подгрузить отдельно,
для корректного отображения материала

Добавлено через 3 минуты
ваша ошибка скорее всего связана с тем что модель содержит что-то, что не поддерживается альтернативой
попробуйте загрузить эту модель вот сюда http://a3dplayer.com/ и если тут заработает, то ищите ошибку у себя

areostar 01.03.2012 00:49

а не подбросите статейку или мануал как .dae фаил писать надо? так значит если фактуры в самой моделки то с .dae маяться не надо? модели не мои к сожалению

artcraft 01.03.2012 01:19

.dae файл писать не надо, в него надо экспортировать модели из 3д редактора
например в cinema4D можно просто зайти в меню file > export > collada 1.4

Формат .3ds тоже не содержит в себе саму текстуру, только её имя

преимущество .3ds в том что это бинарный формат - меньше весит
преимущество .dae в том что там есть анимация
про альтернативовский формат не знаю, но скорее всего его преимущество в том что он быстро парсится

areostar 01.03.2012 01:49

В привидённом мною в посте № 5 примере используются все три файла, это обязательно?

Второй вопрос: далее в том же примере написано


Код AS3:

        private function onA3DLoad(e:Event):void {
                        // Model parsing
                        // Парсинг модели
                        var parser:ParserA3D = new ParserA3D();
                        parser.parse((e.target as URLLoader).data);
                        trace(parser.objects);
                        var mesh:Mesh;
                        for each (var object:Object3D in parser.objects) {
                                if (object.name == "Cylinder01") {
                                        mesh = object as Mesh;
                                        break;
                                }
                        }

А где и как имена присваивать которые тут проверяются!?

redefy 01.03.2012 01:57

Вы же сами сказали что там загружаются 3 разных типа моделей... Естественно грузить все подряд не нужно, грузите только то что нужно вам для создания сцены...

Одна модель может состоять из нескольких мешей... У каждого этого меша есть имя. Имя задается в программе 3D-моделирования...

ЗЫ: C такими знаниями я бы вам не советовал пока лезть в 3D... Почитайте про основы хотя бы. Что такое вьюпорт, виртуальная камера, фрустум, 3D-сцена...


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

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.