![]() |
помогите!!!!
Привет!
Есть две задачи, разрешить их сам не могу, помогите советом, примером: 1 Есть текстура 512х512 - как мне в реальном времени в нужном месте делать прозрачную область?… 2 Есть текстура 512х512, есть изображение 128х128 – как в реальном времени отрисовать на текстуре изображение в нужном мне месте?… вот…. заранее спасибо…. |
Re: помогите!!!!
1)
WritePixel (WritePixelFast) и текстурный флаг 2 тебе помогут: Текстуре ставишь флаг 2 - альфа(прозрачность) Пишешь в нужную область текстуры пиксели с прозрачностью 0 WritePixel(X, Y, $00000000, TextureBuffer(Текстура)) Пример Код:
Function AlphaRect(Tex, X, Y, Width, Height) открываешь текстурный буффер и рисуешь туда изображение Код:
SetBuffer(TextureBuffer(Текстура)) |
Re: помогите!!!!
function writealpha(x,y,alpha,buff)
writepixelfast x,y,(readpixelfast(buff) and $00FFFFFF)+alpha shl 24),buff end function сможете оптимизировать (ускорить расчет)? изменяет альфу пиксела (вы догадались) |
Re: помогите!!!!
Цитата:
самый простой пример с использованием твоей функции можно привести, а то что-то не получается у меня |
Re: помогите!!!!
Цитата:
Код:
Function ChangeAlpha(Px%, Py%, Alpha#, Buffer%) |
Re: помогите!!!!
все получается, но результат не тот...
Если я текстуру не создаю, а гружу с флагом 2 - она стоновится полупрозачной.... мне же для результата необходимо нормально отображаемую текстуру а на ней прозрачная область, которую нужно перемещать в реальном времени... |
Re: помогите!!!!
Да, каникулы в школах- воистину страшное время года...
2 GoodWin: Подсказываю. Слово "мультитекстурирование". |
Re: помогите!!!!
извиняйте, писал в браузере (да вы догадались наверное).
2 Cyan, мне не кажется этот вариант самым быстрым. 2 GoodWin, а как насчет того, чтоб каждому пикселю текстуры задать альфу $FF?. опять пишу в браузере, опять хз buff=texturebuffer(tex) w=BufferWidth(buff) h=BufferHeight(buff) lockbuffer buff for i=1 to w for j=1 to h writepixelfast i,j,readpixelfast(i,j,buff) or $FF000000 next next Unlockbuffer buff |
Re: помогите!!!!
Цитата:
Да и скорость тут целиком зависит от самой функции чтения\записи пикселя - битовые сдвиги и логические операции почти не влияют на скорость выполнения (3-5 тактов всего) |
Re: помогите!!!!
пожалуй ты прав, +/- 3 такта за проход погоды не сделают, все равно чтение запись намного дольше.
|
Часовой пояс GMT +4, время: 16:38. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot