Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.11.2009, 12:46
vector3d вне форума Посмотреть профиль Отправить личное сообщение для vector3d Найти все сообщения от vector3d
  № 1  
Ответить с цитированием
vector3d
[+1 02.03.11]

Регистрация: Nov 2005
Адрес: г.Воронеж
Сообщений: 139
Отправить сообщение для vector3d с помощью ICQ Отправить сообщение для vector3d с помощью Skype™
Question Как сделать плоскость с текстурой в Papervision3D односторонней?

Задумался над следующим, вот бы моделировать зоны в 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.
Старый 19.11.2009, 09:50
vector3d вне форума Посмотреть профиль Отправить личное сообщение для vector3d Найти все сообщения от vector3d
  № 2  
Ответить с цитированием
vector3d
[+1 02.03.11]

Регистрация: Nov 2005
Адрес: г.Воронеж
Сообщений: 139
Отправить сообщение для vector3d с помощью ICQ Отправить сообщение для vector3d с помощью Skype™
Нашел вот такой вот скрипт:

(но он для AS2, а надо бы AS3)

Код AS1/AS2:
// 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.
Старый 24.11.2009, 23:21
Функционер вне форума Посмотреть профиль Отправить личное сообщение для Функционер Найти все сообщения от Функционер
  № 3  
Ответить с цитированием
Функционер
 
Аватар для Функционер

Регистрация: Oct 2008
Сообщений: 48
Гм...у меня проблема противоположна. В свифте натягиваю текстуру на плоскость , експортирую в папервижн... получаю материал с одной стороны, хотя в коде где парсится дае свойство doubleSided = true.

Старый 25.11.2009, 11:33
Mur4ik вне форума Посмотреть профиль Отправить личное сообщение для Mur4ik Найти все сообщения от Mur4ik
  № 4  
Ответить с цитированием
Mur4ik
ветеран форума

Регистрация: Sep 2008
Сообщений: 717
Записей в блоге: 4
Отправить сообщение для Mur4ik с помощью ICQ
А в чем проблема с созданием плоскости в PV3D и наложением нужной текстуры кодом?
__________________
trace("Остановите Землю, я сойду!!!");

Старый 25.11.2009, 12:16
Функционер вне форума Посмотреть профиль Отправить личное сообщение для Функционер Найти все сообщения от Функционер
  № 5  
Ответить с цитированием
Функционер
 
Аватар для Функционер

Регистрация: Oct 2008
Сообщений: 48
Цитата:
Сообщение от Mur4ik Посмотреть сообщение
А в чем проблема с созданием плоскости в PV3D и наложением нужной текстуры кодом?
Проблема со свифтом, не хочет накладывать текстуру на обратную сторону. Хотелось бы разобраться почему...ведь они утверждают: The next three functions will turn all of the materials to double sided.
Вот их парсер:
Код AS3:
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 );
			}
		}

Старый 25.11.2009, 14:43
vector3d вне форума Посмотреть профиль Отправить личное сообщение для vector3d Найти все сообщения от vector3d
  № 6  
Ответить с цитированием
vector3d
[+1 02.03.11]

Регистрация: Nov 2005
Адрес: г.Воронеж
Сообщений: 139
Отправить сообщение для vector3d с помощью ICQ Отправить сообщение для vector3d с помощью Skype™
Цитата:
Сообщение от Функционер Посмотреть сообщение
Гм...у меня проблема противоположна. В свифте натягиваю текстуру на плоскость , експортирую в папервижн... получаю материал с одной стороны, хотя в коде где парсится дае свойство doubleSided = true.
Напиши по подробней:
1. Какая версия Свифта?
2. Какие действия ты делаешь?

По подробней.

//---------ПОСЖЕ----------------
Моя версия Swift.3D.v5.00.628
Самое смешное ПОЛУЧИЛОСЬ!!!!!!
Код AS3:
		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 );
			}
		}
Правда я lMaterial.doubleSided = false; изменял в ручную


Последний раз редактировалось vector3d; 25.11.2009 в 14:47.
Старый 26.11.2009, 09:51
Функционер вне форума Посмотреть профиль Отправить личное сообщение для Функционер Найти все сообщения от Функционер
  № 7  
Ответить с цитированием
Функционер
 
Аватар для Функционер

Регистрация: Oct 2008
Сообщений: 48
1. v6 билд 876
2. к примеру самое простое: plane - drag текстура-экспорт в папервижн.

Да уж, смешно, попробую другую сборку.


Последний раз редактировалось Функционер; 26.11.2009 в 09:59.
Старый 26.11.2009, 12:30
vector3d вне форума Посмотреть профиль Отправить личное сообщение для vector3d Найти все сообщения от vector3d
  № 8  
Ответить с цитированием
vector3d
[+1 02.03.11]

Регистрация: Nov 2005
Адрес: г.Воронеж
Сообщений: 139
Отправить сообщение для vector3d с помощью ICQ Отправить сообщение для vector3d с помощью Skype™
Цитата:
Сообщение от Функционер Посмотреть сообщение
1. v6 билд 876
2. к примеру самое простое: plane - drag текстура-экспорт в папервижн.

Да уж, смешно, попробую другую сборку.
Чёт я тебе ответить не смог, пишет:

Цитата:
Вы не можете отправить сообщение Функционер, поскольку он(а) решил(а) не принимать личные сообщения, либо ему(ей) не разрешено это делать.

Если вы пытаетесь отправить сообщение нескольким адресатам, то удалите Функционер из списка получателей и отправьте сообщение снова.
отвечу тебе на почту


Последний раз редактировалось vector3d; 26.11.2009 в 12:32.
Старый 26.11.2009, 15:48
Функционер вне форума Посмотреть профиль Отправить личное сообщение для Функционер Найти все сообщения от Функционер
  № 9  
Ответить с цитированием
Функционер
 
Аватар для Функционер

Регистрация: Oct 2008
Сообщений: 48
Разобрался. Глюки софта.

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:41.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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