ExporterA3D doesn't export materials #19

Closed
gonchar opened this Issue Aug 29, 2012 · 23 comments

Comments

Projects
None yet
4 participants
Contributor

gonchar commented Aug 29, 2012

Оказалось, что ExporterA3D не умеет экспортировать обычный StandartMaterial в котором находится BitmapTextureResource.

private function exportMap(source:TextureResource, channel:int, dest:A3D2):int {
            if (source == null) return -1;
            var result:A3D2Map = mapsMap[source];
            if (result != null) return result.id;
            if (source is ExternalTextureResource) {
                var resource:ExternalTextureResource = source as ExternalTextureResource;
                result = new A3D2Map(channel, mapID, exportImage(resource, dest));
                if (dest.maps == null) dest.maps = new Vector.<A3D2Map>();
                dest.maps[mapID] = result;
                mapsMap[source] = result;

                return mapID++;
            }
            return -1;
        }

Почему только if (source is ExternalTextureResource) { ???????? Невероятно!
Я бы сделал пуллреквест только у вас там бинарные библиотеки.

Contributor

makc commented Aug 29, 2012

lol
ответ в 5 строчках ниже )

var result:A3D2Image = new A3D2Image(imageID, source.url);
Contributor

gonchar commented Aug 29, 2012

где там ответ? они просто внешнюю ссылку на ExternalTextureResource берут! Я хочу чтобы экспортер сразу же сохранял BitmapData из BitmapTextureResource.

Contributor

gonchar commented Aug 29, 2012

A3D2Image хранит только ID и url. И причем внутрь A3DImage bitmapData никак не положить.

Contributor

makc commented Aug 29, 2012

так отож - в ExternalTextureResource url есть, а с BitmapTextureResource что делать? разве что запилить поддержку http://en.wikipedia.org/wiki/Data_URI_scheme (кстати с этим вполне можно и в BitmapTextureResource пулл-реквест заслать)

Contributor

Yaski commented Aug 30, 2012

Было бы прикольно хранить картинку прямо в файле A3D. Но нужно решить вопрос в каком формате сохранять изображение в файле. BitmapData - это неупакованное изображение, а следовательно весит значительно больше чем PNG или JPG. Паковать при экспорте - будет очень затратно по времени.

Contributor

gonchar commented Aug 30, 2012

Это же экспортер, он может экспортировать хоть пол часа. Сделайте опцию, запоминать урлы или закачивать в себя. Пусть экспорт будет асинхронной операцией.

Contributor

makc commented Aug 30, 2012

Паковать при экспорте - будет очень затратно по времени

Alan Givati с тобой несогласен:

With the April 5 public Beta1 I saw a 34x speedup in debug mode for a [method](http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/flash/display/BitmapData.html#encode(%29) that combined the two vs the pure AS3 implementation.

😏

Но нужно решить вопрос в каком формате сохранять изображение в файле

зачем, пусть пользователь решает. сделайте где-нибудь параметр, где они смогут указать JPEGEncoderOptions, JPEGXREncoderOptions или PNGEncoderOptions.

Contributor

gonchar commented Aug 30, 2012

И еще, ExporterA3D имя материала не экспортит, алиж капец. И что вот мне теперь делать? Я оставлял хоть последний шанс, уже самому хотябы заэкспортить отдельно геометрию и отдельно материалы, а замапить я их уже не смогу назад. Сейчас придется фейк делать, временно мапить материалы хотябы по имени mesh.

Contributor

makc commented Aug 30, 2012

пихай в урл, серьёзно ) конечно, base64 добавит жирка, но меньше чем jpegxr съест

Contributor

gonchar commented Aug 30, 2012

да или так) ща буду пробовать, спасиб

Contributor

gonchar commented Aug 30, 2012

моделька 1мб стала весить 15мб)

Contributor

makc commented Aug 30, 2012

1мб с текстурами?

Contributor

gonchar commented Aug 30, 2012

да, в png формате

Contributor

makc commented Aug 30, 2012

это WTF какойто 😶 а ты пробовал new FileReference().save (encoderResult, "test.jxr")? чтобы посмотреть, сколько выходит до упаковки в a3d формат?

Contributor

Yaski commented Aug 30, 2012

Там в A3D формате возможно какие-то экстра поля есть, но я не уверен, надо с Иваном будет посоветоваться.

зачем, пусть пользователь решает. сделайте где-нибудь параметр, где они смогут указать JPEGEncoderOptions, JPEGXREncoderOptions или PNGEncoderOptions.

Тогда этот параметр надо будет указывать для каждой текстуры.

моделька 1мб стала весить 15мб) <

В каком формате 1мб? анимация есть?

Contributor

gonchar commented Aug 30, 2012

В каком формате 1мб? анимация есть?

нене, не обращай внимание, это когда я в Base64 запихал текстурку к вам в урл))

Contributor

gonchar commented Aug 30, 2012

исправьте пожалуйста, очень нужно

В A3D нет имен материалов(нет такого поля). Единственный способ исправить - это дописывать формат, а это точно в ближайшее время сделано не будет.

Contributor

gonchar commented Aug 30, 2012

как нету если есть?

/**
 * Name of the material
 */
public var name:String;

https://github.com/AlternativaPlatform/Alternativa3D/blob/master/src/alternativa/engine3d/materials/Material.as

gonchar closed this Aug 30, 2012

gonchar reopened this Aug 30, 2012

В формате A3D нет имен материалов
http://alternativaplatform.com/public/A3DFormat_ru.pdf

Contributor

gonchar commented Aug 30, 2012

Странно, даже в OBJ есть есть имена материалов, которые описываются в MTL

Contributor

makc commented Aug 30, 2012

ну в а3д много чего нет, например там только один анимационный клип, хотя по формату может быть несколько, на другой пример там вообще говоря нету материалов - и это всё тыщу раз обсуждалось на форуме, но просто для танчиков не нужно ) Серёга как будто первый раз об этом слышишь

gonchar closed this May 21, 2013

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment