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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.12.2010, 15:34
kyzi007 вне форума Посмотреть профиль Отправить личное сообщение для kyzi007 Найти все сообщения от kyzi007
  № 1  
Ответить с цитированием
kyzi007

Регистрация: Nov 2008
Сообщений: 78
По умолчанию генерация UVW MAPPING

Планируется реалтайм подстановка фотографии лица в 3d модель. Не знаю как начать искать - как сделать руками текстуру гугл говорит, как сделать финт ушами и автоматизировать процесс без понятия.
пс. на фотографии будут проставлены пользователем контрольные точки - углы глаз, подбородок, губы, нос, углы губ.
Тоесть надо сделать текстуру. Как нятянуть и тд, это уже другая задача, там я знаю более менее что делать.

Старый 07.12.2010, 16:00
zuxul вне форума Посмотреть профиль Отправить личное сообщение для zuxul Найти все сообщения от zuxul
  № 2  
Ответить с цитированием
zuxul

Регистрация: Dec 2009
Адрес: 59°13′N, 39°54′E
Сообщений: 445
Записей в блоге: 1
Так в чем вопрос то?
http://bash.org.ru/quote/408849


Последний раз редактировалось zuxul; 07.12.2010 в 16:02. Причина: добавил ссылку, очень похоже
Старый 07.12.2010, 16:10
kyzi007 вне форума Посмотреть профиль Отправить личное сообщение для kyzi007 Найти все сообщения от kyzi007
  № 3  
Ответить с цитированием
kyzi007

Регистрация: Nov 2008
Сообщений: 78
zuxul - если нечего сказать чего постить то?
Мой вопрос не из ряда "помогите мне сделать самолет я молоток держать умею".
Нужно сгенерить текстуру. все. Наложить и тд я знаю как.
Такого плана проекты есть, значит это возможно.

Старый 07.12.2010, 16:18
zuxul вне форума Посмотреть профиль Отправить личное сообщение для zuxul Найти все сообщения от zuxul
  № 4  
Ответить с цитированием
zuxul

Регистрация: Dec 2009
Адрес: 59°13′N, 39°54′E
Сообщений: 445
Записей в блоге: 1
Что значит "сгенерить текстуру"?
Нарисовать программно лицо человека?

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

Регистрация: Nov 2008
Сообщений: 78
Пользователь грузит фото. Раставляет метки. Я анализируя метки вырезаю лицо и выбираю 3d модель подходящую к лицу.
А вот тут я делаю финт ушами и накладываю лицо на 3d модель. Но просто так наложить нельзя. Надо перед этим ее покарежить чтобы она не покарежилась уже на модели. Вопрос - КАК?

Старый 07.12.2010, 16:41
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 6  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Ну если морда триангулирована соответственно модели морды, на которую накладывается фотка, то в чем вопрос? Фотка - это и есть текстура, не надо ничего генерить)
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 07.12.2010, 16:43
kyzi007 вне форума Посмотреть профиль Отправить личное сообщение для kyzi007 Найти все сообщения от kyzi007
  № 7  
Ответить с цитированием
kyzi007

Регистрация: Nov 2008
Сообщений: 78
Короче мне сказали что достаточно обрезанный фотки а информацию по покареживанию будет заложена в 3d обьекте.

Старый 07.12.2010, 16:50
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 8  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
ну как бы я это делал:
все-равно у тебя есть только вид лица спереди — фотография. значит мапинг будет планарным. значит у каждой точки на лице координата UV будет напрямую зависеть просто от координаты XY (проекция любой точки лица на плоскость параллельную экрану).
и лицо прямо вырезать не надо — просто квадратный crop. ну и простой алгоритм подбора оптимального "попадания" разных моделей лиц под контрольные точки фотки.
__________________
Поймай яблоко 2!

Старый 07.12.2010, 19:26
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 9  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Цитата:
Сообщение от kyzi007 Посмотреть сообщение
Короче мне сказали что достаточно обрезанный фотки а информацию по покареживанию будет заложена в 3d обьекте.
Правильно сказали, а чего фотку обрезать пусть юзер сам решает чего ему накладывать на лицо, мож он заднюю часть вдруг захочет наложить. Такой квадратик лицоискатель сделать и все дела. Демку делал когда-то.

А чего пытаюсь загрузить свф файл во вложения пишет некорректный файл, а на фтп залился
http://murmadillo.tut.su/m/female-face.swf
__________________
Гоночка


Последний раз редактировалось Alex Lexcuk; 07.12.2010 в 19:31.
Старый 09.12.2010, 00:14
kyzi007 вне форума Посмотреть профиль Отправить личное сообщение для kyzi007 Найти все сообщения от kyzi007
  № 10  
Ответить с цитированием
kyzi007

Регистрация: Nov 2008
Сообщений: 78
Спасибо всем за ответы.
Нет задней части не планируется, как и ушей.
Все наложилось, анимация стартанула.
Если кому интересно вот код с магией.
Код AS3:
package 
{
	import flash.display.MovieClip;
	import alternativa.engine3d.containers.ConflictContainer;
	import alternativa.engine3d.core.Camera3D;
	import alternativa.engine3d.core.View;
	import alternativa.engine3d.core.Object3D;
	import flash.display.Bitmap;
	import alternativa.engine3d.materials.TextureMaterial;
	import alternativa.engine3d.primitives.Box;
	import alternativa.engine3d.materials.FillMaterial;
	import flash.events.Event;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import alternativa.engine3d.loaders.ParserCollada;
	import alternativa.engine3d.animation.Animation;
	import alternativa.engine3d.animation.AnimationController;
	import alternativa.engine3d.animation.AnimationTimer;
	import alternativa.engine3d.objects.Mesh;
	import flash.events.MouseEvent;
 
	public class main extends MovieClip
	{
		var l:URLLoader = new URLLoader  ;
		var cont:ConflictContainer = new ConflictContainer();
		var camera:Camera3D = new Camera3D  ;
		var camera_target:Object3D;
		var material:FillMaterial = new FillMaterial(0xff0000,1,1,0x0000ff);
		var material1:TextureMaterial = new TextureMaterial(new fase_bmp());
		var animation:Animation;
		var animationController:AnimationController = new AnimationController();
		var animationTimer:AnimationTimer = new AnimationTimer();
		public function main()
		{
			l.load(new URLRequest('a.DAE'));
			l.addEventListener(Event.COMPLETE,onLoadModel);
 
		}
		public function onLoadModel(e:Event)
		{
			var parser:ParserCollada = new ParserCollada;
			parser.parse(new XML(l.data));
			trace(1)
			var obj:Mesh = parser.getObjectByName('Box01') as Mesh;
			trace(obj)
			obj.setMaterialToAllFaces(material1);
 
			trace(1)
			camera_target = parser.getObjectByName('Camera_1') as Object3D;
			animation = parser.getAnimationByObject(camera_target as Object3D);
			trace(animation.length);
			animationController.addAnimation('anim', animation);
 
			animationTimer.addController(animationController);
			animationController.play('anim');
			animationTimer.start();
			camera.view = new View(1000,1000);
			addChild(camera.view);
			cont.addChild(camera);
 
			cont.addChild(obj);
			//cont.addChild(obj2);
			//cont.addChild(obj3);
			camera.rotationX = camera_target.rotationX + 3.2;
			camera.rotationY = -camera_target.rotationY;
			camera.rotationZ = camera_target.rotationZ;
			camera.x = camera_target.x;
			camera.y = camera_target.y;
			camera.z = camera_target.z;
 
			camera.debug = true;
			addChild(camera.diagram);
			addEventListener(Event.ENTER_FRAME, onEntFr);
			stage.addEventListener(MouseEvent.CLICK,function(){
								   removeEventListener(Event.ENTER_FRAME, onEntFr)
								   });
		}
		var ii:int = 0;
		public function tyRad(value:Number):Number
		{
			return (value*Math.PI)/180;
		}
		public function tyGrad(value:Number):Number
		{
			//trace(value);
			return (value/Math.PI)*180;
		}
 
		public function onEntFr(e:Event):void
		{
			camera.rotationX = camera_target.rotationX + 3.2;
			camera.rotationY = -camera_target.rotationY;
			camera.rotationZ = camera_target.rotationZ;
			camera.x = camera_target.x;
			camera.y = camera_target.y;
			camera.z = camera_target.z;
			//camera.rotationX+=0.01;
			animationTimer.update();
			camera.render();
		}
	}
 
}
Теперь делаю вырезалку лиц...


Последний раз редактировалось kyzi007; 09.12.2010 в 00:16. Причина: пысы... код тестовый, вы не думайте что такое будет в проекте:)
Создать новую тему Ответ Часовой пояс GMT +4, время: 17:33.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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