Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];

Вниз

Как работать с альфой   Найти похожие ветки 

 
Cash ©   (2003-11-30 10:42) [0]

В одном из сырцов, скачаных с этого сайта, я увидел хороший, на мой взгляд, эффект (в сырцах его нет, компилированное мной приложение оным не обладает): пламя не выгледит нарисованным, в центре почти не прозрачное, по краям оно ели заметно (самого спрайта). В ImageList-е посмотрел: картинка и картинка. Вопрос. Как это реализовывается. Ожидаю код или ссылку.


 
miek ©   (2003-11-30 14:54) [1]

Скриншот есть? По описанию похоже на обычное пламя с "честным" альфа-каналом.


 
Cash ©   (2003-12-09 14:18) [2]

прошу пращеня за опоздание.
miek ©   (30.11.03 14:54) [1] Скриншота нет, ссылка на сайт этой игры лежит в Samples разделе. Сама игра, кажись, Towers, или чтото наподобие, называется. Она похожа на "Червяков". miek закачай, посмотри, а остальное я описал выше. :)


 
miek ©   (2003-12-09 17:03) [3]

Ну я, е-мое, в упор не вижу там никаких Towers. Ссылку приведи прямую, что ли.


 
Cash ©   (2003-12-11 22:39) [4]

Виноват. Не туда направил. Даю точные координаты:
Game Sourses\Раздел 3\GunsСсылка
Вся прилада в есит менее мега.


 
miek ©   (2003-12-12 19:04) [5]

Фигня творится!

Microsoft OLE DB Provider for ODBC Drivers error "80004005"

[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key "Temporary (volatile) Jet DSN for process 0x568 Thread 0x4a0 DBC 0xec0efc4 Jet".

/viewdoc.asp, line 38


 
Cash ©   (2003-12-14 00:35) [6]

Блин. Уменя тоже. miek © : расскажи, что знаешь про "Честный" альфа-канал. ниче боле не вижу.


 
miek ©   (2003-12-14 09:27) [7]

Я тебе демку пошлю мылом, если ты не против?


 
miek ©   (2003-12-14 23:03) [8]

Кому интересно, демка про альфа-канал будет лежать здесь:
www.miek.narod.ru/alpha.zip
(60 KB)


 
Cash ©   (2003-12-16 22:19) [9]

miek: пример просто супер. Судя по нему меня интересует Полноценный альфа-канал. Но про остальные тоже непроч прочесть.


 
miek ©   (2003-12-17 00:20) [10]

Не понял - исходники интересуют или сам принцип?


 
SiJack ©   (2003-12-17 09:43) [11]

И мне охота, и того и другого если можно без хлеба :))


 
Cash ©   (2003-12-17 12:48) [12]

miek в большей степени исходники, мне нужен код (а еще понять как он работает :) ).


 
miek ©   (2003-12-17 18:57) [13]

Вот так я делаю альфа-блендинг без MMX.
(Здесь обрабатывается только 1 пиксел. Kак сделать из этого цикл, сами знаете)

//  ESI - указатель на пиксель источника
//  EDI - указатель на пиксель приемника
//  Формат пикселей - ARGB 8-8-8-8

   mov   bl, byte ptr [esi+3]
   mov   bh, byte ptr [esi+3]
   and   bl, bl
   je    @skiptransparent

   mov   al, [esi]
   not   bh

   mul   al, bl
   mov   dl, ah
   mov   al, [edi]
   mul   al, bh
   add   dl, ah
   mov   [edi], dl

   mov   al, [esi+1]
   mul   al, bl
   mov   dl, ah
   mov   al, [edi+1]
   mul   al, bh
   add   dl, ah
   mov   [edi+1], dl

   mov   al, [esi+2]
   mul   al, bl
   mov   dl, ah
   mov   al, [edi+2]
   mul   al, bh
   add   dl, ah
   mov   [edi+2], dl

 @skiptransparent:
   add   esi, 4
   add   edi, 4


 
Cash ©   (2003-12-18 18:35) [14]

Незнал, что на асме. Круто! miek Спасибо!


 
miek ©   (2003-12-18 20:06) [15]

Могу выложить и сам модуль, только к нему хелпа нет. Есть демки.


 
Cash ©   (2003-12-19 11:42) [16]

miek давай. В демках понятнне(вроде)будет, если с коментариеми :).


 
miek ©   (2003-12-19 15:46) [17]

ОК, качаем с www.miek.narod.ru/spriteutils2.zip
Около 400 КБ.


 
Cash ©   (2003-12-19 21:56) [18]

Блин. Чеб мы, начинающие, без таких, как ты miek делали. :)


 
miek ©   (2003-12-24 16:30) [19]

Это значит "хорошо" или "плохо"?


 
Cash ©   (2004-02-14 16:41) [20]

miek: есесьвенно хорошо!


 
Vertex   (2004-02-14 22:59) [21]

spriteutils?)
это твоя весчь или ты ее присвоил?


 
miek ©   (2004-02-14 23:10) [22]

Это ты кому, кстати? Не забывай уточнять.
SpriteUtils - моя нетленка, там и копирайт стоит.


 
Vertex   (2004-02-16 03:23) [23]

Ну тогда респект
Извиняй за сомнения


 
cyborg ©   (2004-02-16 10:34) [24]

[13] miek ©
на gamedev.ru я читал статью (давно) прозрачность с использованием ММХ, вроде пискел за семь тактов обрабатывался, поищи, сам я не помню где читал, может полезно будет.


 
Cash ©   (2004-02-20 18:35) [25]

Своими десятью нащупал такую проц-у:
DxImageList.Items.Find("Pic").DrawAlpha();
Шо ето интересное такое? И ни то ли я ищу... вНаТури?
А када ее вызывать? Ну вобщем и т.д.


 
miek ©   (2004-02-20 19:31) [26]

2Сyborg: ты не мог бы посмотреть в своих архивах эту статью? Я сейчас ее там не вижу. 7 тактов на пиксел было бы неплохо.


 
cyborg ©   (2004-02-20 21:12) [27]

[26] miek ©   (20.02.04 19:31)
К сожалению ту страничку я не нашёл, нашёл в архиве только это:


4. Канал прозрачности (alpha blending) [далее ab] – одно изображение плавно появляется или растворяется поверх другого (также очень часто применяется при работе с видео).

Формула ab:a = b + (a - b) * alpha

Где: a – основное изображение
b – изображение которое накладывается
alpha – количество градаций(позиций) ab - обычно хватает 0...255.

переведем это все в MMX-команды:

a) инициализация регистров

биты31...2423...1615...8 7...0
eax = alpha alpha alpha alpha

movd mm4,eax; переносим данных из eax в mm4
punpcklwd mm4,mm4 ; создаем четыре cлова alpha-канала
psrlw mm4,8 ; переносим старшую часть слов в младшую
pxor mm7,mm7 ; обнуляем mm7

б) основная процедура

movd mm0,[esi] ; загрузить в mm1 четыре байта накладываемого изображения
movd mm1,[edx] ; загрузить в mm0 четыре байта основного изображения
punpcklbw mm0,mm7
punpcklbw mm1,mm7
psubw mm0,mm1 ; вычитаем из накладываемого, основное изображение
psllw mm1,8 ; переносим младшую часть слов регистра mm1 в cтаршую
pmullw mm0,mm4 ; умножаем накладываемое изображение на alpha-кана
paddw mm1,mm0 ; складываем его с основным
psrlw mm1,8 ; переносим результат из старшей части слова в младшую
packuswb mm1,mm1 ; и переводим его в 32 бита
movd [edi],mm1 ; кладем полученное изображение на экран (в видеобуфер)
add esi,4
add edx,4
add edi,4

В данном примере используется быстрое 16-битное MMX-умножение, которое и дает максимальное ускорение нашей процедуре. Плюс - уже ставшая традицией – обработка сразу четырех байт...


 
cyborg ©   (2004-02-20 21:27) [28]

Похоже я ошибся, в инете упоминается на семь тактов только освещение :(.



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.031 c
6-1082971824
Dmitriy_R
2004-04-26 13:30
2004.06.20
Помогите с сокетом разобраться


6-1082542462
Denis555
2004-04-21 14:14
2004.06.20
как програмно открыть страницу спаролем в TWebBrowser?


9-1076807518
Kulrom
2004-02-15 04:11
2004.06.20
Проблемма с Direct x - ом


11-1075212085
Boguslaw
2004-01-27 17:01
2004.06.20
Stack overflow in KOL


14-1086173050
}|{yk
2004-06-02 14:44
2004.06.20
Что я нашел !!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский