Page 1 of 1

Direct2D - Bildes caurspīdīgms

Posted: 24 Jul 2013, 01:50
by ArtisDz
Sveiki, vēlējos pajautāt kā uz Direct2D var iegūt/ padarīt caurspīdīgāku bildi..
Image
Līdzīgi kā attēlā.

Zinu ka uz OpenGL to varēja pavisam viegli panākt..
mainot krāsas A-alfa kanalu pirms tika zīmēts attēls..

Code: Select all

glColor4f(..,...,..,A)
//attels
Bet kā ir ar Direct2D?
Sākumā mēģināju mainīt

Code: Select all

..->CreateSolidColorBrush(ColorF(1,1,1,0.5f),&ota)
Bet cik sapratu tad tas neatbild par attēlu apstrādi..

Lai ko tādu iegūtu ir javeido kādi filtri vai kas tāds..?
Jautāju jo paris dienas atpakaļ sāku apgūt Directx un tā ir lieta kuru esmu izmeklējies bet tā ari uz jautajumu nesmu guvis tiešu atbildi..
-Ceru uz sapratni

Re: Direct2D - Bildes caurspīdīgms

Posted: 24 Jul 2013, 09:24
by bubu
Tu gribi zīmēt ID2D1Bitmap uz render-target'a lietojot konstantu caurspīdīgumu?
Man šķiet, ka tam tev derēs ID2D1RenderTarget::DrawBitmap metode. Tam ir float opacity parametrs, kurā tu norādi, cik caurspīdīgu bildi rezultātā gribi.

Reku piemērs ar visu kodu: How to Draw a Bitmap

Re: Direct2D - Bildes caurspīdīgms

Posted: 24 Jul 2013, 21:38
by ArtisDz
Konstantu nee..
Parlaboju visu no Image uz Bitmap un viņam pie zimešanas parametriem ir Opacity kur reali to ari var regulēt.. :)

Paldies bubu Image

Re: Direct2D - Bildes caurspīdīgms

Posted: 24 Jul 2013, 21:59
by bubu
Nesapratu. Kā tas ir - "palaboju visu no Image uz Bitmap"? Pati par sevi Image ir abstrakta klase, kuru nevar instancēt. Un Bitmap ir Image apakšklase, kuru var instancēt.

Ja tev vajag ne-konstantu opacity, tad vajadzēs lietot opacity maskas - Opacity Masks Overview

Re: Direct2D - Bildes caurspīdīgms

Posted: 24 Jul 2013, 22:18
by ArtisDz
Nu es pirmstam izmantoju

Code: Select all

ID2D1Image
un pectam zimeju ar .DrawImage(..); caur efektu...

Un nē maskas man nevajag.. panācu to ko vēlējos.. :)

Re: Direct2D - Bildes caurspīdīgms

Posted: 25 Jul 2013, 02:30
by elvman
Man gan vairāk ir jautājums, vai tu esi pārliecināts, ka gribi izmantot Direct2D. Pats 10 gadus atpakaļ izmantoju Direct2D, un jau tad tas bija salīdzinoši ļoti lēns. Ieteiktu apsvērt gatavas bibliotēkas izmantošanu (piemēram, SDL) vai kaut vai plika Direct3D izmantošanu 2D zīmēšanai.

Re: Direct2D - Bildes caurspīdīgms

Posted: 25 Jul 2013, 03:00
by ArtisDz
Amm nu patiesībā nezinu vai velos vispār izmantot DirectX.
Sanāk ka bezmazvai esmu spiests izmantot viņu, jo ir doma bāzēties uz Window Store pusi
un tur pārsvarā dominē XAML un DirectX.

Iesākumam nedaudz domāju paņemties ar Direct2D. Neizskatas nemaz tik švaki..kautgan pielagoties ir pagrūti.. :P

Re: Direct2D - Bildes caurspīdīgms

Posted: 25 Jul 2013, 06:40
by bubu
elvman wrote:Man gan vairāk ir jautājums, vai tu esi pārliecināts, ka gribi izmantot Direct2D. Pats 10 gadus atpakaļ izmantoju Direct2D, un jau tad tas bija salīdzinoši ļoti lēns. Ieteiktu apsvērt gatavas bibliotēkas izmantošanu (piemēram, SDL) vai kaut vai plika Direct3D izmantošanu 2D zīmēšanai.
What? Kādus 10 gadus atpakaļ? Tu to nejauc ar GDI? Direct2D tika izlaists kopā ar Windows 7 - 2009. gadā (tātad 4 gadus atpakaļ).
Un Direct2D nav lēns, jo izmanto to pašu hardware akselerāciju, ko Direct3D, t.i. tas gandrīz visu savu darbu veic izmantojot Direct3D.

Reku uzskatāmas diagrammas:
Image

Image

Re: Direct2D - Bildes caurspīdīgms

Posted: 25 Jul 2013, 13:35
by elvman
Auch, sajaucu ar DirectDraw. Sen neesmu sekojis līdzi MS pasaulei :).

Re: Direct2D - Bildes caurspīdīgms

Posted: 24 Feb 2014, 13:25
by plaimuts
laba info,noderēja, paldies!