Подобие масок на DirectX

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

SergeyZuzic
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 20.03.2009 (Пт) 14:36

Подобие масок на DirectX

Сообщение SergeyZuzic » 20.08.2010 (Пт) 18:37

Есть два изображения:
1) Это маска - картинка 2 цветная
2) Текстура
На задний буфер печатается текстура, а поверх неё маска с удаленим 1 цветового тона
Код: Выделить всё
Backbuffer.BltFast 10, 10, ddS, rMain, DDBLTFAST_NOCOLORKEY + DDBLTFAST_WAIT
Backbuffer.BltFast 10, 10, ddS1, rMain, DDBLTFAST_SRCCOLORKEY + DDBLTFAST_WAIT

А потом нужно вырезать из получившегося изображения 2 цветовой тон, как можно реализовать?

SergeyZuzic
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 20.03.2009 (Пт) 14:36

Re: Подобие масок на DirectX

Сообщение SergeyZuzic » 29.08.2010 (Вс) 16:06

Ничего умнее не пришло в голову ;)
Код: Выделить всё
Dim mask(1) As PictureBox
Dim back(1) As PictureBox
Dim earth(3) As PictureBox
Dim num
Private Sub Form_Load()
    For i = 0 To UBound(mask)
        Set mask(i) = Me.Controls.Add("VB.PictureBox", "PicM" & i, Me)
        mask(i).Picture = LoadPicture("mask" & i & ".bmp")
        mask(i).AutoRedraw = True
        mask(i).AutoSize = True
    Next
    For i = 0 To UBound(back)
        Set back(i) = Me.Controls.Add("VB.PictureBox", "PicB" & i, Me)
        back(i).Picture = LoadPicture("back" & i & ".bmp")
        back(i).AutoRedraw = True
        back(i).AutoSize = True
    Next
    For i = 0 To UBound(back)
        For j = 0 To UBound(mask)
            num = i * (UBound(mask) + 1) + j
            Set earth(num) = Me.Controls.Add("VB.PictureBox", "PicE" & num, Me)
            earth(num).Picture = mask(j).Picture
            earth(num).AutoRedraw = True
            earth(num).AutoSize = True
            earth(num).PaintPicture back(i).Picture, 0, 0, , , , , , , vbSrcAnd
        Next
    Next


Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15

    TopList