Страница: 1 | 2 | 3 | 4 |
Вопрос: >> Alpha-Blending <<
Добавлено: 19.11.05 00:00
Автор вопроса: AgentFire | ICQ: 192496851
Ответы
Всего ответов: 47
Номер ответа: 16
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #16
Добавлено: 22.11.05 19:10
Кстати, вот что я пишу:
[http://www.NoviksPlavnik.narod.ru/CrazyTanks.rar]
Номер ответа: 17
Автор ответа:
AASoft
Вопросов: 86
Ответов: 920
Профиль | | #17
Добавлено: 22.11.05 21:33
gy-y-y-y...OGL ved` tozhe 3D...tol`ko 3D....a DLL'ka est` po ssylke chto ya prislal...esli vseravno ne nashel, prishlyu kogda domoj pridu....a vashe 2D igry shas v 3D pishut->bystree ves` rendering idet v principe.
Номер ответа: 18
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #18
Добавлено: 22.11.05 22:44
я в 3D полный нуль
Если кому-нибудь меня жалко, отправьте, плз, примерчик с комментами...
Номер ответа: 19
Автор ответа:
Страшный Сон
Вопросов: 46
Ответов: 848
Профиль | | #19
Добавлено: 24.11.05 16:36
А хрен. Накрылся сайт у тебя.
Номер ответа: 20
Автор ответа:
AASoft
Вопросов: 86
Ответов: 920
Профиль | | #20
Добавлено: 24.11.05 22:31
ugu, cheto tam ne tak. skachal, govorit arhiv povrezhden.
a nashed DLL'ki, ty nashel? ili poslat`?
Номер ответа: 21
Автор ответа:
Victor
ICQ: 345743490
Вопросов: 42
Ответов: 385
Web-сайт:
Профиль | | #21
Добавлено: 25.11.05 00:22
Как насчет того, чтобы откодить все ручками, раз на то пощло?
Или использовать Image, в которые совать bmp-шки с альфа-каналом (32-битные). Я, правда, не уверен, что Image такое поймет, но думаю что да.
Номер ответа: 22
Автор ответа:
AASoft
Вопросов: 86
Ответов: 920
Профиль | | #22
Добавлено: 25.11.05 07:34
Image to pojmet takei kartinkie (BMP takin netu voobsheto...). vot tol`ko zachem cheloveku Image esli on v DX'e kodit?
Номер ответа: 23
Автор ответа:
AASoft
Вопросов: 86
Ответов: 920
Профиль | | #23
Добавлено: 25.11.05 07:35
a ruchkami nakodit` esli, to budet TAAAAAAAK medlenno, chto voobshe luchshe obojtis` bez alpha-blending'a...imho vbdabl yuzaj da i vse...nu ili izuchaj 3D teoriyu i delaj v 3D, kak ugodnee.
Номер ответа: 24
Автор ответа:
Страшный Сон
Вопросов: 46
Ответов: 848
Профиль | | #24
Добавлено: 25.11.05 18:54
Да я могу довольно быстрый альфа-блендинг сделать. Если 256 цветов - то таблица, если полноцветное - то примерно так:
[ C As Byte, V1 As Byte, V2 As Byte, Alpha As Long ]
C = V1 + CByte((CLng(V2) - CLng(V1)) * Alpha \ 256)
А если Alpha=128, то вообще фигня, можно и без преобразований обойтись:
C = V1 \ 2 + V2 \ 2
Главное в графике - не делать вещественную арифметику.
Номер ответа: 25
Автор ответа:
AASoft
Вопросов: 86
Ответов: 920
Профиль | | #25
Добавлено: 25.11.05 19:10
nda, sdelat` to ty sdelaesh, no teper` predstav` cheloveku nado risovat` kartinku razmerom 100x100 pixelej, i gdeto 20-30 i bol`she raz v sekundu...imho torpoza budut uzhasnye.
Номер ответа: 26
Автор ответа:
AASoft
Вопросов: 86
Ответов: 920
Профиль | | #26
Добавлено: 25.11.05 19:10
nda, sdelat` to ty sdelaesh, no teper` predstav` cheloveku nado risovat` kartinku razmerom 100x100 pixelej, i gdeto 20-30 i bol`she raz v sekundu...imho tormoza budut uzhasnye.
Номер ответа: 27
Автор ответа:
Victor
ICQ: 345743490
Вопросов: 42
Ответов: 385
Web-сайт:
Профиль | | #27
Добавлено: 25.11.05 19:37
Мало того, эти картинки, как я понял из другого топика, еще и поворачивать надо на лету. Ой возни-то...
С процедурой альфа-блендинга могу кодом поделиться. Я попробовал его на рисунке 100х100 и не заметил абсолютно никаких тормозов. FPS правда не считал.
Надо еще заметить, что там не самый оптимальный способ вывода этой картинки на экран.
Номер ответа: 28
Автор ответа:
Victor
ICQ: 345743490
Вопросов: 42
Ответов: 385
Web-сайт:
Профиль | | #28
Добавлено: 25.11.05 19:42
OfcYSel = Y * SelW
yd = y0 + Y
For X = x1 To x2
xd = x0 + X
SelOutputRGB(OfcYSel + X).rgbRed = ((CLng(DataRGB(xd, yd).rgbRed) - SelDataRGB(OfcYSel + X).rgbRed) * TransDataRGB(OfcYSel + X).rgbRed) \ 255& + SelDataRGB(OfcYSel + X).rgbRed
SelOutputRGB(OfcYSel + X).rgbGreen = ((CLng(DataRGB(xd, yd).rgbGreen) - SelDataRGB(OfcYSel + X).rgbGreen) * TransDataRGB(OfcYSel + X).rgbGreen) \ 255& + SelDataRGB(OfcYSel + X).rgbGreen
SelOutputRGB(OfcYSel + X).rgbBlue = ((CLng(DataRGB(xd, yd).rgbBlue) - SelDataRGB(OfcYSel + X).rgbBlue) * TransDataRGB(OfcYSel + X).rgbBlue) \ 255& + SelDataRGB(OfcYSel + X).rgbBlue
Next X
Next Y
Вот. Самое интересное место. Только вырезано из контекста. Но, я думаю, суть ясна. Тестил ессесно на откомпилированной проге.
Номер ответа: 29
Автор ответа:
Страшный Сон
Вопросов: 46
Ответов: 848
Профиль | | #29
Добавлено: 25.11.05 22:47
Ну собственно, это те же самые яйца, которые запостил я, только с RGBQUAD'ом или как там его...
Номер ответа: 30
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #30
Добавлено: 27.11.05 13:26