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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.04.2013, 17:49
gin_sea вне форума Посмотреть профиль Отправить личное сообщение для gin_sea Найти все сообщения от gin_sea
  № 1  
Ответить с цитированием
gin_sea
[+6 30.10.12]

Регистрация: Jul 2005
Сообщений: 35
По умолчанию Вращение изображения, "натянутого на цилиндир"

Заранее извиняюсь, если неправильно выбрал ветку.
Есть изображение - стрелка. Нужно сделать следующее: как-будто стрелка нарисована на прозрачном цилиндре (сама стрелка изображена на цилиндрической поверхности), цилиндр вращается, и при этом цилиндр немного повернут в сторону наблюдателя (т.е. видно что цилиндр объемный). При этом самого цилиндра не видно. Насколько я понял, в Swift 3D этого сделать нельзя, вроде бы можно в Papervision, но это достаточно сложно. Может быть есть более легкие способы?
Миниатюры
Нажмите на изображение для увеличения
Название: CAM00268.jpg
Просмотров: 79
Размер:	88.0 Кб
ID:	29467  

Старый 29.04.2013, 19:50
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 2  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Варианты:
1. Нарисовать в любой знакомой вам программе 3d моделирования. Сделать серию картинок. Последовательно показать картинки.
2. Нарисовать текстуру со стрелкой. С помощью drawTriangles создать цилиндр и натянуть на него текстуру. Вращать цилиндр.
3. Нарисовать текстуру со стрелкой. С помощью любого 3d движка (Papervision уже четыре года не обновлялся и устарел) создать цилиндр и натянуть на него текстуру. Вращать цилиндр.

Кстати, почему вы решили, что Swift 3D не справится?
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 29.04.2013, 20:09
gin_sea вне форума Посмотреть профиль Отправить личное сообщение для gin_sea Найти все сообщения от gin_sea
  № 3  
Ответить с цитированием
gin_sea
[+6 30.10.12]

Регистрация: Jul 2005
Сообщений: 35
Цитата:
Сообщение от alatar Посмотреть сообщение
Кстати, почему вы решили, что Swift 3D не справится?
Я так решил, бегло изучив его функционал (возможно, что то упустил). Информации о нем на русском практически нет, в английском не очень силен. Я так понимаю, задача бы решалась в Swift'те, если бы можно было загрузить свою текстуру со стрелкой, но я не нашел там подобной функции.

Старый 29.04.2013, 20:15
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 4  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
http://www.erain.com/swift_3d_v6.html#/3
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 29.04.2013, 21:18
gin_sea вне форума Посмотреть профиль Отправить личное сообщение для gin_sea Найти все сообщения от gin_sea
  № 5  
Ответить с цитированием
gin_sea
[+6 30.10.12]

Регистрация: Jul 2005
Сообщений: 35
Цитата:
Сообщение от alatar Посмотреть сообщение
Спасибо! Буду разбираться.

Старый 30.04.2013, 01:44
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 6  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
если ограничений по wmode=direct нет, то имо самый простой это #3 из того, что alatar расписал
пример для away3d:
Код AS3:
package 
{
	import away3d.containers.View3D;
	import away3d.entities.Mesh;
	import away3d.materials.TextureMaterial;
	import away3d.primitives.CylinderGeometry;
	import away3d.utils.Cast;
	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.events.Event;
	import flash.geom.Vector3D;
 
 
	public class Main extends Sprite 
	{
		private var view:View3D;
		private var cylinder:Mesh;
		[Embed(source = "arrow.png")] private const arrow_png:Class;
		public function Main():void 
		{
 
			view = new View3D();
			view.width = 256;
			view.height = 256;
 
			view.camera.z = 150;
			view.camera.y = 50;
			view.camera.lookAt(new Vector3D());
 
			var mat:TextureMaterial =  new TextureMaterial(Cast.bitmapTexture(arrow_png));
			mat.bothSides = true;
			mat.alphaBlending = true;
			cylinder = new Mesh(new CylinderGeometry(50, 50, 100, 32, 1, false, false), mat);
 
 
			addChild(view);
			view.scene.addChild(cylinder);
 
			addEventListener(Event.ENTER_FRAME, render);
		}
 
		private function render(e:Event):void 
		{
			cylinder.rotationY -= 1;
			view.render();
		}
 
	}
 
}
cylinder.swf   (104.5 Кб)

но не уверен, что флешка здесь правильно покажет, ибо wmode=direct нужен
Вложения
Тип файла: swf cylinder.swf (104.5 Кб, 147 просмотров)

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

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

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


 


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


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