![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+1 02.03.11]
|
Задумался над следующим, вот бы моделировать зоны в 3dmax-е и потом перегонять их через Swift3D в *.fla файл.
Да вот беда задумка воплотима да вот плоскости хоть убей двух сторонние. Объясните что я делаю не так? Вариант 1 --------------------------- 1. Открываем 3dmax (Autodesk 3ds Max 9). Создаем плоскость (Plane), дальше экспортируем в *.3DS 2. Открываем (Swift.3D.v5.00.628). New from 3DS. Открывается наш проект, экспортируем в Papervision3D 3. Открываем Flash CS3 (Adobe Flash CS3 Professional) Результат: всё как надо, плоскость одностороння (но без текстуры). --------------------------- Вариант 2 --------------------------- 1. Открываем 3dmax (Autodesk 3ds Max 9). Создаем плоскость (Plane) накладывам текстуру (тупо можно перетащить с жесткого диска на объект), дальше экспортируем в *.3DS 2. Открываем (Swift.3D.v5.00.628). New from 3DS. Открывается наш проект, экспортируем в Papervision3D 3. Открываем Flash CS3 (Adobe Flash CS3 Professional) Результат: плоскость двух сторонняя (а надо как в Варианте 1, только с текстурой)! --------------------------- Последний раз редактировалось vector3d; 15.11.2009 в 20:09. |
|
|||||
|
[+1 02.03.11]
|
Нашел вот такой вот скрипт:
(но он для AS2, а надо бы AS3) // HelloCollada//подключаем классы из папервижна(я думаю, и так понятно, что именно=)):import org.papervision3d.cameras.Camera3D; import org.papervision3d.materials.BitmapMaterial; import org.papervision3d.objects.Collada; import org.papervision3d.scenes.Scene3D;//а так же замечательный флешовый класс битмап дата, способный творить чудеса на виражах import flash.display.BitmapData;//наш класс дополняет ы) классика =)... class org.papervision3d.samples.collada.HelloCollada extends MovieClip { // _______________________________________________________________________ // vars3D var container :MovieClip;//создаем контейнер для сцены var scene :Scene3D;//создаем сцену var camera :Camera3D;//создаем камеру var sphere :Collada;//создаем объект для загрузки .dae // _______________________________________________________________________ // Main function HelloCollada()//самая важная функция в нашем проекте { init3D();//чтобы понять, что она делает, читаем дальше this.onEnterFrame = loop3D;//вешаем функцию на событие } // _______________________________________________________________________ // Init3D Читаем внимательно, все очень просто и доступно (и по-английски тоже) function init3D() { // Create container movieclip and center it Создаем контейнер из пустого мувика, и центрируем его на сцене флеша container = this.createEmptyMovieClip( "container", this.getNextHighestDepth() ); container._x = 320; container._y = 240; // Create scene Создаем 3д сцену scene = new Scene3D( container ); // Create camera Создаем камеру camera = new Camera3D(); camera.zoom = 1; // Create material Создаем материал var texture :BitmapData = BitmapData.loadBitmap( "Bitmap" );//загружаем прилинкованный битмап из библиотеки (см. файл .fla) - используется как текстура var material :BitmapMaterial = new BitmapMaterial( texture );//запихиваем тексуру в материал material.oneSide = true; // Make it single sided. this gives a performance boost Делаем его ОДНОСТОРОННИМ!!! это так же как и в максе дает прирост скорости при рендере // Load sphere Грузим колладу, ставим настройки ее отображения sphere = new Collada( material, colladaMine, .2 ); sphere.rotationX = 45; // Include in scene Вставляем в сцену коллада модель, которую мы загрузили scene.push( sphere ); } // _______________________________________________________________________ // Loop function loop3D()//Эта функция крутит модель, в зависимости от положения курсора мыши { sphere.rotationY = container._xmouse /2; sphere.rotationX = container._ymouse /2; // Render scene.renderCamera( camera ); //вывод на экран } } on (release){ colladaMine=my_dae.text; container.clear(); init3D();} Последний раз редактировалось vector3d; 19.11.2009 в 09:53. |
|
|||||
|
Регистрация: Oct 2008
Сообщений: 48
|
Гм...у меня проблема противоположна. В свифте натягиваю текстуру на плоскость , експортирую в папервижн... получаю материал с одной стороны, хотя в коде где парсится дае свойство doubleSided = true.
|
|
|||||
|
Регистрация: Oct 2008
Сообщений: 48
|
Цитата:
Вот их парсер: private function EROnFileLoaded( event :Event ):void { var lMaterialsList:Object = mCollada.materials; if ( lMaterialsList ) { for each ( var lMaterial:MaterialObject3D in lMaterialsList ) lMaterial.doubleSided = true; } var lChildren:Dictionary = Dictionary (mCollada.children); ERProcessChildrenMaterials ( lChildren ); } private function ERProcessChildrenMaterials ( aChildren:Dictionary ):void { if ( aChildren ) { for each ( var lChild:DisplayObject3D in aChildren ) ERProcessChildMaterials ( lChild ); } var lChildren:Dictionary = Dictionary (mCollada.children); } private function ERProcessChildMaterials( aChild:DisplayObject3D ):void { if ( aChild ) { if ( aChild.materials ) { for each ( var lMaterial:MaterialObject3D in aChild.materials.materialsByName ) lMaterial.doubleSided = true; } var lChildren:Dictionary = Dictionary (aChild.children); ERProcessChildrenMaterials ( lChildren ); } } |
|
|||||
|
[+1 02.03.11]
|
Цитата:
1. Какая версия Свифта? 2. Какие действия ты делаешь? По подробней. //---------ПОСЖЕ---------------- Моя версия Swift.3D.v5.00.628 Самое смешное ПОЛУЧИЛОСЬ!!!!!! private function EROnFileLoaded( event :Event ):void { var lMaterialsList:MaterialsList = mCollada.getMaterialsList ( ); if ( lMaterialsList ) { for each ( var lMaterial:MaterialObject3D in lMaterialsList.materialsByName ) lMaterial.doubleSided = false; } var lChildren:Dictionary = Dictionary (mCollada.children); ERProcessChildrenMaterials ( lChildren ); } private function ERProcessChildrenMaterials ( aChildren:Dictionary ):void { if ( aChildren ) { for each ( var lChild:DisplayObject3D in aChildren ) ERProcessChildMaterials ( lChild ); } var lChildren:Dictionary = Dictionary (mCollada.children); } private function ERProcessChildMaterials( aChild:DisplayObject3D ):void { if ( aChild ) { if ( aChild.materials ) { for each ( var lMaterial:MaterialObject3D in aChild.materials.materialsByName ) lMaterial.doubleSided = false; } var lChildren:Dictionary = Dictionary (aChild.children); ERProcessChildrenMaterials ( lChildren ); } } Последний раз редактировалось vector3d; 25.11.2009 в 14:47. |
|
|||||
|
Регистрация: Oct 2008
Сообщений: 48
|
1. v6 билд 876
2. к примеру самое простое: plane - drag текстура-экспорт в папервижн. Да уж, смешно, попробую другую сборку. Последний раз редактировалось Функционер; 26.11.2009 в 09:59. |
|
|||||
|
[+1 02.03.11]
|
Цитата:
Цитата:
Последний раз редактировалось vector3d; 26.11.2009 в 12:32. |
|
|||||
|
Регистрация: Oct 2008
Сообщений: 48
|
Разобрался. Глюки софта.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 18:18. |
|
|
« Предыдущая тема | Следующая тема » |
|
|