Archived

This topic is now archived and is closed to further replies.

How to set a transparent color to a plain?

This topic is 5147 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

quote:

How can I add some RGB value to be transparent?



The RGB values do not make your object transparent; you need to modify the alpha values. Based on your other post; I would recommend that you start with some tutorials. Try the following site:

http://www.drunkenhyena.com/docs/d3d_tutorial.phtml#Lesson8



_______________________________________
Understanding is a three edged sword...

Share this post


Link to post
Share on other sites
No, no, no. I dont mean to use Aplha Blending. It makes the whole object transparent. But I''m making a 2d game using plains. I just want to make lets say black parts of the textured plain to be FULLY transparent. I know this is possible. Anyone?

thx

Share this post


Link to post
Share on other sites
quote:

I have a plain which has a texture mapped in it. How can I add some RGB value to be transparent?



quote:

No, no, no. I dont mean to use Aplha Blending. It makes the whole object transparent. But I'm making a 2d game using plains. I just want to make lets say black parts of the textured plain to be FULLY transparent. I know this is possible. Anyone?



Strange that it wasn’t perfectly clear to me what you were looking to do from your original post. You can make a single color fully transparent using a Color Key or you can use Alpha Testing to make a range of alpha values fully transparent.

There are tutotials for both at the site I recommended:

http://www.drunkenhyena.com/docs/d3d_tutorial.phtml#DHColourKey
http://www.drunkenhyena.com/docs/d3d_tutorial.phtml#DHAlphaChannel

PS: What is a “plain”? I am assuming that you are talking about a textured Quad?


_______________________________________
Understanding is a three edged sword...


[edited by - Sean Doherty on November 8, 2003 8:58:05 AM]

Share this post


Link to post
Share on other sites
quote:
Original post by Sean Doherty
quote:

I have a plain which has a texture mapped in it. How can I add some RGB value to be transparent?



quote:

No, no, no. I dont mean to use Aplha Blending. It makes the whole object transparent. But I''m making a 2d game using plains. I just want to make lets say black parts of the textured plain to be FULLY transparent. I know this is possible. Anyone?



Strange that it wasn’t perfectly clear to me what you were looking to do. Alpha Testing will do what you want.

PS: What is a “plain”? I am assuming that you are talking about a textured Quad?


I think as in a large area. Like a dessert. Or the Toendra plains (spelling).

Creator of: Science Fiction Career
Percent finnished: 0.1%

Site: comming soon
Forum: comming soon

Share this post


Link to post
Share on other sites
quote:

I think as in a large area. Like a dessert. Or the Toendra plains (spelling).



I am pretty sure that you can''t make either of these areas transparent? Maybe if you try blinking you eyes really fast!

Share this post


Link to post
Share on other sites
Ok... I havent got it working yet.

This is what I''m doing:

InitDeviceObjects()
(not the full code of the function, just what I have added related to the transparency thingy)


if( FAILED (D3DXCreateTextureFromFileEx(m_pd3dDevice, "main.bmp", D3DX_DEFAULT,
D3DX_DEFAULT, 1,0,D3DFMT_A8R8G8B8,D3DPOOL_MANAGED,D3DX_DEFAULT,
D3DX_DEFAULT,0xFF000000,NULL,NULL,&m_pCharacter) ) )




RestoreDeviceObjects()
(not the full code of the function, just what I have added related to the transparency thingy)



m_pd3dDevice->SetTextureStageState(0,D3DTSS_COLOROP,D3DTOP_SELECTARG1);

//D3DTSS_COLORARG1 is set to D3DTA_TEXTURE which means that colour1 is
//entirely taken from the texture and nothing else.
m_pd3dDevice->SetTextureStageState(0,D3DTSS_COLORARG1,D3DTA_TEXTURE);


//Similarly to the COLOR TextureStageStates, the D3DTOP_SELECTARG1
//says to take the result from arguement 1. We set D3DTSS_ALPHAARG1
//to D3DTA_TEXTURE, which makes the alpha value for each pixel comes
//from the alpha component of the texture pixel (texel).
m_pd3dDevice->SetTextureStageState(0,D3DTSS_ALPHAOP,D3DTOP_SELECTARG1);
m_pd3dDevice->SetTextureStageState(0,D3DTSS_ALPHAARG1,D3DTA_TEXTURE);

//The next 2 RenderStates determine how the blending is done.
//The source is our object, destination is the drawing surface.
//SRCBLEND specifies that the final colour should be 50% (because
//that''s what we set our souce alpha to) from our source and 50%
//(INVSRCALPHA, 100%-SRCALPHA(50% in this case))
m_pd3dDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);
m_pd3dDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);

//This enables Alpha Blending
m_pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,TRUE);

m_pd3dDevice->SetTextureStageState( 0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2 );



Thats all I think. In the rendering part I got nothing related to this transparency thingy. Everything works but black isnt transparent...

Share this post


Link to post
Share on other sites
Heh... I''M REALLY SORRY I BOTHERED YOU... :D

I got it working... The problem was that the "black" wasnt 0,0,0 in my pic even tho I thought I coloured it with it. Now that I changed it, it works. :D

Thanks for all trying to help me.

Share this post


Link to post
Share on other sites