forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=109)
-   -   Рендер в Image с альфой (http://forum.boolean.name/showthread.php?t=5689)

jimon 01.02.2008 18:22

Рендер в Image с альфой
 
пишу рендер текста, сейчас рендерит он по картинке на буковку
пробовал рендерить и грабить через GrabPixmap
столкнулся с проблемой :
как сделать после граба картинку с альфой ? мне не нужен черный фон

из выходов я вижу возможность написать свой GrabPixmap :)
но может есть что нибудь по-проще ?

dimanche13 01.02.2008 18:27

Ответ: Рендер в Image с альфой
 
Function MaskPixmap:TPixmap( pixmap:TPixmap,mask_red,mask_green,mask_blue)
?
Покаж как пишешь примерно...

jimon 01.02.2008 18:48

Ответ: Рендер в Image с альфой
 
dimanche13
маска там сразу не катит - нужна плавная альфа

ето как в фотошопе на прозрачном слое поставить мягкой кистью штрих
побокам эго будет такая мягкая полупрозрачная альфа :)

пишу как...
Код:

cls

drawall

pixmap = grabpixmap(...)
img.setpixmap(0,pixmap)


dimanche13 01.02.2008 18:57

Ответ: Рендер в Image с альфой
 
грузи фонт с альфой для каждой буквы, через loadanimimage.
потом из имаджа алфавита выдирай пиксамапы букв, они же уже с альфой.

jimon 01.02.2008 19:04

Ответ: Рендер в Image с альфой
 
dimanche13
рисуется то он с альфой ... и как ето трахатся накладывая один pixmap на другой ? O_o ... растояние между буквами меньше чем размер кадра в котором находится ета буква

dimanche13 01.02.2008 20:41

Ответ: Рендер в Image с альфой
 
jimon
не понял в чем проблема, если честно. Грузишь алфавит:
img = loadanimimage("alphafit.png",64,64,0,33)
потом рисуешь нужную букву через пиксмап
drawpixmap(img.pixmaps[num], x, y)
или через
drawimage(img,x,y,num)
рисуется то уже с альфаканалом, можно располагать буквы тесно-тесно.

jimon 01.02.2008 21:19

Ответ: Рендер в Image с альфой
 
dimanche13
вот нарисуй мне картинки в картинку так чтобы сохранилась альфа
в етом и проблема

dimanche13 01.02.2008 21:50

Ответ: Рендер в Image с альфой
 
Я так понял, что ты реализовывашь диалоги. Все буквы у тебя в одном файле. Файл с альфаканалом. И ты хочешь формировать из этих букв, картинку с диалогом и чтобы сохранился альфаканал букв. Так?
Постучи в понедельник в аську, помогу чем смогу.
Мне тоже интересна реализация диалогов. Думаю там ничего сложно нет.

jimon 01.02.2008 22:00

Ответ: Рендер в Image с альфой
 
ОМГ ... я рисую очки в гуи игрока ...
и рендер 30 картинок имхо лутче заменить рендером одной

не знаю с чем будет говорить змейка, но если змейка будет
говорить с бонусом жизни чтобы тот ее лечил и ето в форме
диалога по среди екшн игры ... я подумаю

ps. ты прав, именно я и хочу отрендерить буковки с альфой в картинку
чтобы альфа осталась

Igorr 06.02.2008 23:29

Ответ: Рендер в Image с альфой
 
Я думаю в очках можно и 30 картинок рендерить. Я лично так делаю. )

Taugeshtu 26.02.2008 14:18

Ответ: Рендер в Image с альфой
 
Не обессудьте неразумного: по-моему генерить рисунок из нарезки с альфой - более ресурсно, чем выводить 30 картинок на очки. . .

jimon 26.02.2008 14:28

Ответ: Рендер в Image с альфой
 
Ize'g0re
генерить надо будет один раз минимум на 20-50 кадров ....
пусть даже генерация занимает в два раза больше времени
чем рендер етих жалких 30 картинок ... в любом случае выигрышь
в скорости ....

на крайняк можно добавить оптимизацию - если текст меняется
меньше чем через каждые 100 мс то рендерить уже просто буковками

ps. хотя рендер 30 буковок как-то не слишком сильно
влияет на производительность :)

HolyDel 26.02.2008 15:08

Ответ: Рендер в Image с альфой
 
Цитата:

не знаю с чем будет говорить змейка, но если змейка будет
говорить с бонусом жизни чтобы тот ее лечил и ето в форме
диалога по среди екшн игры ... я подумаю
подумай... возможно, это рождение нового жанра - casual-RPG.

jimon 26.02.2008 16:41

Ответ: Рендер в Image с альфой
 
HolyDel
ага ага, матч3-рпг
чтобы переставить фигурки нужно пройти квест на убийство 200 монстров
прокачать скилл перестановки фигурок, победить какого-то там арагорна к примеру ..
превратится в дракона и спалить поле с фигурками матч3
потом выводится что ты убил главный логический базис етого мира
и поделил на ноль, всё взрывается и пишется game over ...
ахахахахаха

dimanche13 26.02.2008 17:01

Ответ: Рендер в Image с альфой
 
Цитата:

Сообщение от jimon (Сообщение 78078)
HolyDel
ага ага, матч3-рпг
чтобы переставить фигурки нужно пройти квест на убийство 200 монстров
прокачать скилл перестановки фигурок, победить какого-то там арагорна к примеру ..
превратится в дракона и спалить поле с фигурками матч3
потом выводится что ты убил главный логический базис етого мира
и поделил на ноль, всё взрывается и пишется game over ...
ахахахахаха

Хочу в это погамать

Taugeshtu 26.02.2008 18:37

Ответ: Рендер в Image с альфой
 
присоединяюсь... Тоже хочу...

Munigas 02.06.2009 06:59

Рендер в Image с альфой
 
Подскажите пожалуйста как в модо отрендрить картинку очень большим размером, примерно так в пиксей 30000. Он мне пишет, не хватает памяти. Нашел там настройку рендер по частям, выставляю даже очень маленькую часть, один фиг пишет, что не хватает памяти.
Очень надо помогите. Не хочу в лаве все по новой настраивать

SBJoker 02.06.2009 10:16

Ответ: Рендер в Image с альфой
 
Никак, нельзя отрендерить картинку больше чем макс. поддерживаемый размер текстуры. Обычно 4096*4096.

IGR 02.06.2009 16:17

Ответ: Рендер в Image с альфой
 
это вы про 3Dmax сейчас говорите ??
несохраняет в jpeg и в bmp, а вот png-24bit еще 8192 pixel с альфой сохраняет !! пробовал 16384 - фигЪ !! :)

SBJoker 02.06.2009 18:07

Ответ: Рендер в Image с альфой
 
Это значит видяха держит такое. У кого то может не держать и 4096.

Черный крыс 02.06.2009 23:15

Ответ: Рендер в Image с альфой
 
нашел тему...по которой я сечас немного загоняюсь....итак поехали!
Вот меня уже сколько времени добивает этот пресловутый GrabPixmap() - метод настолько медленный, что диву даешься - оно всех устраивает??? Ее в реалтайме можно использовать, чтобы скопировать максимум квадратик 16*16 пикселей, да и то будет ощутимое падение производительности. Или же никто в своих проектах не использует спецэффекты при рендере в текстуру? Вот взять тот же Blitz3D - тама RTT работает на ура.
Оставим тофтологию и перейдем к делу...откроем исходник D3D7Max2D и глянем на этот тормознутый метод :
Код:

Method GrabPixmap:TPixmap( x,y,width,height )
If Not IsValid() Return
 
Local pixmap:TPixmap
Local srcdc,destdc
Local surf:IDirectDrawSurface7
Local renderSurf:IDirectDrawSurface7
 
D3D7GraphicsDriver().EndScene
device.GetRenderTarget Varptr renderSurf
 
pixmap=TPixmap.Create( width,height,PF_BGR888 )
renderSurf.GetDC Varptr srcdc
surf=surffrompixmap( pixmap )
surf.GetDC Varptr destdc
BitBlt(destdc, 0, 0, width, height, srcdc, x, y, ROP_SRCCOPY)
surf.ReleaseDC destdc
renderSurf.ReleaseDC srcdc
surf.Release_()
D3D7GraphicsDriver().BeginScene
Return pixmap
End Method

Как видно из кода - Марк как всегда отжигает не по детски!
BitBlt(destdc, 0, 0, width, height, srcdc, x, y, ROP_SRCCOPY) - с такими котовасями, неудивительно, что оно тормозит. Вообще то за такие вещи надо руки отрывать (с) Knightmare.
Тут всего то требуеться - залочить таргет, получив при этом указатель на сюрфейс и скопировать участок памяти в pixmap.pixels, и всего то делов...функция заработает в 100 раз быстрее.

jimon 02.06.2009 23:23

Ответ: Рендер в Image с альфой
 
Diablo1909
по-пиксельные еффекты делают на шейдерах, 20 век уже прошел :)


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot