| 
			| 
					
						| Артем 
								Опытный    Offline 
								Пол:   
								Beware the wolf in sheep's clothing.
								
								
								
								
								
							 | 
								|  | « :  30-06-2003 16:54 »   |  | 
 
 Подскажите, если кто в курсе: На эту карточку (GeForсe2) приходит изображение, как мне его поворачивать на 90, 180, 270, ... градусов. Т.е. какие функции юзать? Надеюсь это можно сделать из приложения   |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| PSD 
								Главный специалист    Offline 
								Пол:    | 
								|  | « Ответ #1 : 30-06-2003 17:04 »  |  | 
 
 DX должны быть, но прроще всего транспонировать матрицу изображения. |  
						| 
								|  |  
								|  |  Записан | 
 
 Да да нет нет все остальное от лукавого. |  |  | 
	| 
			| 
					
						| grozny 
								Гость
 | 
								|  | « Ответ #2 : 30-06-2003 20:12 »  |  | 
 
 тыща и один способ. Смотря откуда идёт изображение. Из лесу, вестимо, а?    Я правильно понимаю, что это обычное GDI приложение в окошке? И ты хочешь повернуть клиентскую область окна? Тогда см. слова предыдущего оракула. Кстати, GetDC() = ДиректДро Lock() = большой тормоз, но вряд ли это тебе критично (раз это GDI, там по-любому эти локи случаются на каждом шагу). В директИкс просто - сразу рендеришь повёрнутым, даж если у тебя только битмапы - натяни их текстурой на треугольнички в 3Д, потом матрицу параллельной проекции скомбинируй с нужным поворотом и всё. Альтернатива: локировать бэкбуфер и перелопачивать пикселя руками, но это сильно просаживает производительность - нынешние ускорители оптимизированы под прямой поток данных (ЦП->ГП), а не на обратный (ГП->ЦП) В последних драйверах nView умеет вращать десктоп на 90-180-270 градусов. Так что мож проще крыжик в опциях дисплея поставить, а? Этому крыжику соответствует некое значение в реестре, ты его сможешь найти, я полагаю |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| grozny 
								Гость
 | 
								|  | « Ответ #3 : 30-06-2003 20:30 »  |  | 
 
 PS. Если не нравится Директ - в ОпенЖЛ так  же, как и в Директе. Параллельную проекцию*матрицу вращения и пр. |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Артем 
								Опытный    Offline 
								Пол:   
								Beware the wolf in sheep's clothing.
								
								
								
								
								
							 | 
								|  | « Ответ #4 : 01-07-2003 07:47 »  |  | 
 
 Уточню немного задачу: На видео вход карточки подается сигнал (ну, скажем, с видеомагнитофона), кадры 640х480 (24 кадра/сек), и вот енто самое изображение мне и надо крутить в реальном времени    Под Win2000/XP. В последних драйверах nView умеет вращать десктоп на 90-180-270 градусов. Так что мож проще крыжик в опциях дисплея поставить, а? Этому крыжику соответствует некое значение в реестре, ты его сможешь найти, я полагаю Дык надо чтобы юзер мог во время работы программы менять угол поворота картинки. |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Артем 
								Опытный    Offline 
								Пол:   
								Beware the wolf in sheep's clothing.
								
								
								
								
								
							 | 
								|  | « Ответ #5 : 01-07-2003 11:31 »  |  | 
 
 До этого я никогда не имел дело не только с видео, но и с просто картинками. Поэтому слова типа "рендеришь", я пока плохо воспринемаю... Повторю просьбу про ссылочки     И вообще, насколько "малыми" силами это можно сделать? |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| grozny 
								Гость
 | 
								|  | « Ответ #6 : 01-07-2003 23:14 »  |  | 
 
 просьбы про ссылочку не увидел, погибла, видать, при переезде  :twisted:  Если крутить надо во время прогона программы, тогда тебе nView ничем не поможет. Ты уже умеешь читать и декодировать сырой видеопоток? Или пока нет? Если умеешь, то куда? В системную память или в видео? И что тебе с повёрнутым потоком надо сделать? Тихо выкинуть? (само идеальное, скорость будет выше некуда    )  Показать? Спасти на диск? При спасении на диск затык ессно переместится с видеоопераций на дисковую запись. Если ещё нет, то стоит изучить DirectShow, это специальный кусок ДиректИкс для работы с видео. Довольно тяжёлое занятие, зато освоив эту беду сможешь с видео делать всё, что захочешь. А если умеешь, то можно и врукопашную - тебе надо создать текстурную поверхность, лочить её на каждом кадре и заливать с одновременным поворотом (меняешь х с у - вот и поворот на 90, а если знаки менять - то и все остальные кратные углы получатся). 24 кадра 640х480 - на грани филлрэйта ГФ2 (если лочить), может и подтормаживать.  ССЫЛКИ: самым интересным может быть вот это:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwmt/html/vmr_new.asp ДиректШоу:http://msdn.microsoft.com/library/en-us/dnwmt/html/cplusvbappdevs.asp может быть небезынтересным:http://www.microsoft.com/whdc/hwdev/tech/stream/DirectX_VA/default.mspx работа с текстурами в Директ3Д:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndrive/html/directx08202002.asp см. Loading from memory |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Lex | 
								|  | « Ответ #7 : 02-07-2003 05:13 »  |  | 
 
 Какие Direct3D? зачем ?Ну DirectShow как API для захвата картинок с видевхода это еще понятно.
 Но можно и Video for Windows испльзовать, если поддержка есть. Дальше все просто Картинка у тебя представляет двумерную матрицу, каждый элемент которой зависит от формата, но обычно RGB компоненты. Повороты это перестановка элементов из строк в столбцы
 
 И сильно рекомендую почитать чего-нить про матричные операции.
 |  
						| 
								|  |  
								|  |  Записан | 
 
 Megabyte be with you! |  |  | 
	| 
			| 
					
						| grozny 
								Гость
 | 
								|  | « Ответ #8 : 02-07-2003 05:56 »  |  | 
 
 Директ - затем, если вдруг захочется повернуть на произвольный угол или перемасштабировать. К тому ж в N+1 раз напоминаю: хочешь выжать макcимальную производительность - забудь про GDI. При использовании VfW тебе от GetDC (который есть Surface Lock() ) никуда не деться.
 Матрица, ага. Только оч. большая и ни разу неквадратная в видео. Толку от воображения растрового изображения математической матрицей никакого нету - ты эти "матрицы" перемножать собрался? Складывать? Обращать? Приводить к верхнетреугольной форме? Искать собственные значения?
 
 Как есть это двумерный массив пикселов, так и стоит о нём думать как о двумерном массиве, не умножая сущностей. Так случилось, что преобразования отражения и поворота на 90% можно представить выборкой пиксела с заменой +-х на +-у. На этом всё сродство с математическим объектом "матрица" кончается.
 
 А DirectShow - прямой наследник VfW. Если чо.
 
 Знать матричное исчисление не повредит, конешно...
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Lex | 
								|  | « Ответ #9 : 02-07-2003 07:25 »  |  | 
 
 1. На счет максимальной производительности, дело не GetDC и т.п. 25-30 кадров в секунду и с GDI получить можно. А вот к вращению GDI никакого отношения не имеет. И делать это можно довольно шустро, если все писать с использованием SIMD инструкций.http://www.ddj.com/topics/graphics/   есть есколько статей по 2D графике и оптимизации программ под MMX. 2. А вот для вращения картинки на произвольный угол уже точно без матриц не обойтись. Да и в товое любимом D3D все транформации идут через матрицы. P.S. про то, что картинка это обычный двумерный массив (как и матрица) писал еще и PSD, но человеку это было не совсем понятно, я попытался это еще сильнее упростить. |  
						| 
								|  |  
								|  |  Записан | 
 
 Megabyte be with you! |  |  | 
	| 
			| 
					
						| Артем 
								Опытный    Offline 
								Пол:   
								Beware the wolf in sheep's clothing.
								
								
								
								
								
							 | 
								|  | « Ответ #10 : 02-07-2003 07:56 »  |  | 
 
 Ты уже умеешь читать и декодировать сырой видеопоток? Или пока нет? Если умеешь, то куда? В системную память или в видео? И что тебе с повёрнутым потоком надо сделать? Тихо выкинуть? (само идеальное, скорость будет выше некуда    )  Показать? Спасти на диск? При спасении на диск затык ессно переместится с видеоопераций на дисковую запись.1. Нет,  читать и декодировать сырой видеопоток я еще не умею. 2. А  повернутый  поток мне надо показать и тихо забыть о нем.  3. Спасибо за ссылочки    , пошел учить.... |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Артем 
								Опытный    Offline 
								Пол:   
								Beware the wolf in sheep's clothing.
								
								
								
								
								
							 | 
								|  | « Ответ #11 : 02-07-2003 08:00 »  |  | 
 
 Какие Direct3D? зачем ?Ну DirectShow как API для захвата картинок с видевхода это еще понятно.
 Но можно и Video for Windows испльзовать, если поддержка есть. Дальше все просто Картинка у тебя представляет двумерную матрицу, каждый элемент которой зависит от формата, но обычно RGB компоненты. Повороты это перестановка элементов из строк в столбцы
 
 И сильно рекомендую почитать чего-нить про матричные операции.
 Ну, матричным операциям меня за шесть лет, слава Богу, научили    А вот тут до меня дошди слухи о том, что можно для моей цели каким-то образом использовать саму видекарточку (GeForce3/GeForce4), т.е. какие-то функции постовляемые именно nVideo? |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| PSD 
								Главный специалист    Offline 
								Пол:    | 
								|  | « Ответ #12 : 02-07-2003 08:05 »  |  | 
 
 Тогда нужно смотреть спецификацию на чип и драйвер они должны быть (по идее ) у производителя.  Хотя не думаю что у них там чтото такое есть.  Не посредственно для видео. |  
						| 
								|  |  
								|  |  Записан | 
 
 Да да нет нет все остальное от лукавого. |  |  | 
	| 
			| 
					
						| Lex | 
								|  | « Ответ #13 : 02-07-2003 08:08 »  |  | 
 
 это тебе на http://developer.nvidia.com  (если я ничего не напутал) Но там все в основном с 3D графикой. В принципе это можно сделать. Обычно создают прямоугольник и на него натягивают текстуру. В качестве текстуры твое исходное видео. Прямоугольник можно вращать на произвольный угол. На сколько это быстрее будет не знаю.  Поворот картинки на угол кратный 90 довольно простая задача и мне кажеться что поцессор, особенно при использовании SIMD с этим лучше справиться.  Зато при использовании D3D есть возможность нахаляву, т.е. аппаратно реализовано, получить несколько эффектов типа полупрозрачной картинки. |  
						| 
								|  |  
								|  |  Записан | 
 
 Megabyte be with you! |  |  | 
	| 
			| 
					
						| Артем 
								Опытный    Offline 
								Пол:   
								Beware the wolf in sheep's clothing.
								
								
								
								
								
							 | 
								|  | « Ответ #14 : 02-07-2003 08:45 »  |  | 
 
 Поворот картинки на угол кратный 90 довольно простая задача и мне кажеться что поцессор, особенно при использовании SIMD с этим лучше справиться.
 
 Вот именно это мне и нужно сделать :!:  А что такое SIMD? (звиняйте, если не внимательно читал) |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Lex | 
								|  | « Ответ #15 : 02-07-2003 09:02 »  |  | 
 
 SIMD это Simple Instruction Multiple Data. Это общее название расширенных систем команд типа MMX, 3DNow!, SSE, SSE2 и т.п. Все эти команды характерны тем, что за одну команду могут обработать несколько данных, что очень удобно приобработке потоков. В твоем случае это будут в основном команды пересылки. сходи на Dr Dobb's в раздел графики. Ссылку я давал чуть выше. Там есть статьи как правильно использовать эти расширенные команды. Если что не понятно пиши редактору, можешь по русски, он поймет   . |  
						| 
								|  |  
								|  |  Записан | 
 
 Megabyte be with you! |  |  | 
	| 
			| 
					
						| grozny 
								Гость
 | 
								|  | « Ответ #16 : 02-07-2003 20:45 »  |  | 
 
 Тогда нужно смотреть спецификацию на чип и драйвер они должны быть (по идее ) у производителя.  Хотя не думаю что у них там чтото такое есть.  Не посредственно для видео. спецификации  модуль обработки видео называется VPP. В ГФ2МХ VPP дохлый, если что.  всё это железо прозрачно с точки зрения программиста и потому нет особой необходимости знать его устройство, только если свою платку хочешь сделать. Ну а это уже под NDA.  Да не только 3Д, с видеоделами - тоже туда не вредно зайти Обычно создают прямоугольник и на него натягивают текстуру. В качестве текстуры твое исходное видео. Прямоугольник можно вращать на произвольный угол.  Дык и я про то же. |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Артем 
								Опытный    Offline 
								Пол:   
								Beware the wolf in sheep's clothing.
								
								
								
								
								
							 | 
								|  | « Ответ #17 : 03-07-2003 07:51 »  |  | 
 
 Кстати, я так понял, что ситуация с русскоязычной литературой по ДиректХ, подобна ситуации с литературой по ДДК?   |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| PSD 
								Главный специалист    Offline 
								Пол:    | 
								|  | « Ответ #18 : 03-07-2003 08:45 »  |  | 
 
 У меня когдато была электроная книга по ДХ (помоему еще 5) но она какаято детская была. Могу поискать дома и выслать (или выложить). |  
						| 
								|  |  
								|  |  Записан | 
 
 Да да нет нет все остальное от лукавого. |  |  | 
	| 
			| 
					
						| Гром 
								Птычк. Тьфу, птычник... Вот! 
								Готовлюсь к пенсии
								
								    Offline 
								Пол:   
								Бодрый птах
								
								
								
								
								
							 | 
								|  | « Ответ #19 : 03-07-2003 09:03 »  |  | 
 
 Выложить - выложить - если на русском - то вообще хорошо - адрес ftp знаете??? |  
						| 
								|  |  
								|  |  Записан | 
 
 А птичку нашу прошу не обижать!!! |  |  | 
	| 
			| 
					
						| PSD 
								Главный специалист    Offline 
								Пол:    | 
								|  | « Ответ #20 : 03-07-2003 09:21 »  |  | 
 
 Я мейл знаю, а ftp у меня катрирован. Увы |  
						| 
								|  |  
								|  |  Записан | 
 
 Да да нет нет все остальное от лукавого. |  |  | 
	| 
			| 
					
						| Гром 
								Птычк. Тьфу, птычник... Вот! 
								Готовлюсь к пенсии
								
								    Offline 
								Пол:   
								Бодрый птах
								
								
								
								
								
							 | 
								|  | « Ответ #21 : 03-07-2003 09:31 »  |  | 
 
 Мммм.... плохо это все ftp кастрирован   |  
						| 
								|  |  
								|  |  Записан | 
 
 А птичку нашу прошу не обижать!!! |  |  | 
	| 
			| 
					
						| grozny 
								Гость
 | 
								|  | « Ответ #22 : 03-07-2003 16:38 »  |  | 
 
 туториал написать не берусь, но простенький пример со всем необходимым для жизни в ДиректХ мог бы выложить. |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Гром 
								Птычк. Тьфу, птычник... Вот! 
								Готовлюсь к пенсии
								
								    Offline 
								Пол:   
								Бодрый птах
								
								
								
								
								
							 | 
								|  | « Ответ #23 : 03-07-2003 16:50 »  |  | 
 
 Жду... |  
						| 
								|  |  
								|  |  Записан | 
 
 А птичку нашу прошу не обижать!!! |  |  | 
	| 
			| 
					
						| Lex | 
								|  | « Ответ #24 : 04-07-2003 05:01 »  |  | 
 
 Пример со всем необходимым для жизни делается просто. Ставиться DXSDK? в котором есть app wizard для DX проектов, причем не только D3D? но еще и DirectAudio и DirectInput.    |  
						| 
								|  |  
								|  |  Записан | 
 
 Megabyte be with you! |  |  | 
	|  |