 |
Ver Mensagens sem resposta | Ver Tópicos Activos
| [ +/- ]
[ Data/Hora: 23 Mai 2013, 14:29 ]
|
|
| Autor |
Mensagem |
|
Guilherme_xyz
|
Assunto da Mensagem: Objetos Transparentes Com Cor Difusa ? Enviado: 09 Ago 2010, 23:02 |
|
Registado: 08 Mai 2010, 22:12 Mensagens: 32 Localização: Porto Alegre - RS - Brasil
|
Opa. Estou tentando fazer uma espécie de console in game com o DX9. A parte das fontes e texto já tá ok, agora eu estou tentando fazer um background para a janela do console. Minha idéia é fazer um fundo semi-transparente a partir de 2 triangulos q forman um quad. A princípio seria só aplicar uma transparência na cor difusa do objeto, eu acho, mas não estou conseguindo acertar a transparência de jeito nenhum. E como não tenho muita esperiência com o D3D, vou pedir um help ae pra quem puder me ajudar. Não sei se o problema está no fato de eu estar usando os vertices com cordenadas homogênias (D3DFVF_XYZRHW), é que desta maneira o quadrado do console fica sempre em primeiro plano, me pareceu + fácil que setar um projeção ortogonal. Bom, oque eu tenho até agora: Code: struct Vertex { float x, y, z, rhw; unsigned long color; static const unsigned long FVF = (D3DFVF_XYZRHW | D3DFVF_DIFFUSE); };
unsigned short Indices[6] = { 0, 1, 2, 2, 3, 0 };
Vertex Window[4] = { { 0.0f , 0.0f , 0.0f, 0.0f, D3DCOLOR_ARGB(50, 0, 0, 0), }, { 500.0f, 0.0f , 0.0f, 0.0f, D3DCOLOR_ARGB(50, 0, 0, 0), }, { 500.0f, 500.0f, 0.0f, 0.0f, D3DCOLOR_ARGB(50, 0, 0, 0), }, { 0.0f , 500.0f, 0.0f, 0.0f, D3DCOLOR_ARGB(50, 0, 0, 0), }, };
// E na hora de renderizar:
GraphicSystem::Device->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
// Aqui deveria acontecer o Alpha Blend ... Mas deve ter algum erro ... Não sei GraphicSystem::Device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA); GraphicSystem::Device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
GraphicSystem::Device->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
GraphicSystem::Device->SetFVF(Vertex::FVF); GraphicSystem::Device->DrawIndexedPrimitiveUP(D3DPT_TRIANGLELIST, 0, 4, 2, Indices, D3DFMT_INDEX16, Window, sizeof(Vertex));
GraphicSystem::Device->SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE);
Se alguém puder me dar uma ajuda, fico muito agradecido. Eu já tentei combinar alguns outros flags nas função, mas nada do quadrado ficar transparente... Bom valeu pessoal. Até.
|
|
| Topo |
|
 |
|
Vitali
|
Assunto da Mensagem: Re: Objetos Transparentes Com Cor Difusa ? Enviado: 09 Ago 2010, 23:11 |
|
| Colaborador(a) |
 |
Registado: 02 Set 2004, 20:01 Mensagens: 1801 Localização: São Carlos, SP
|
Eu faço do seguinte modo: Code: //diffuse color added (NEW) #define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_DIFFUSE | D3DFVF_TEX1)
//structures struct D3DVERTEX { float fX, fY, fZ; D3DVECTOR Normal; DWORD dwColor; //DWORD for color float fU, fV; }; Code: //depth buffer deactivated m_pDirect3DDevice->SetRenderState(D3DRS_ZENABLE,D3DZB_FALSE);
//alpha blending enabled m_pDirect3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,true); //source alpha m_pDirect3DDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA); //destination alpha m_pDirect3DDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);
m_pDirect3DDevice->SetTextureStageState(0,D3DTSS_ALPHAARG1,D3DTA_DIFFUSE);
_________________ Meu blog http://mateusvitali.wordpress.com/
|
|
| Topo |
|
 |
|
|
The following user would like to thank Vitali for his or her post: Visitante |
 |
|
Guilherme_xyz
|
Assunto da Mensagem: Re: Objetos Transparentes Com Cor Difusa ? Enviado: 10 Ago 2010, 15:37 |
|
Registado: 08 Mai 2010, 22:12 Mensagens: 32 Localização: Porto Alegre - RS - Brasil
|
Ah, valeu cara. Agora tá funcionando certinho. Code: GraphicSystem::Device->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
GraphicSystem::Device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA); GraphicSystem::Device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
// ******* Faltava essa linha aqui: ******* GraphicSystem::Device->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_DIFFUSE);
GraphicSystem::Device->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
GraphicSystem::Device->SetFVF(Vertex::FVF); GraphicSystem::Device->DrawIndexedPrimitiveUP(D3DPT_TRIANGLELIST, 0, 4, 2, Indices, D3DFMT_INDEX16, Window, sizeof(Vertex));
GraphicSystem::Device->SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE);
Foi só acressentar isso que ficou okey. Valeu pela ajuda. Até mais.
|
|
| Topo |
|
 |
|
Vitali
|
Assunto da Mensagem: Re: Objetos Transparentes Com Cor Difusa ? Enviado: 10 Ago 2010, 16:19 |
|
| Colaborador(a) |
 |
Registado: 02 Set 2004, 20:01 Mensagens: 1801 Localização: São Carlos, SP
|
 Só por curiosidade, tem como postar um print de como ficou? vou começar a implementar um console na minha engine. []'s
_________________ Meu blog http://mateusvitali.wordpress.com/
|
|
| Topo |
|
 |
|
Guilherme_xyz
|
Assunto da Mensagem: Re: Objetos Transparentes Com Cor Difusa ? Enviado: 10 Ago 2010, 17:40 |
|
Registado: 08 Mai 2010, 22:12 Mensagens: 32 Localização: Porto Alegre - RS - Brasil
|
Ai as duas imgs: preg_replace($acronyms_match, $acronyms_repl, '[url] http://img25.imageshack.us/i/console1o.jpg/[/url]') preg_replace($acronyms_match, $acronyms_repl, '[url] http://img709.imageshack.us/i/console2.png/[/url]') Tá bem simples ainda. O meu foco principal é o cenário que aparece no fundo, estou carregando ele de um arquivo .bsp, do Quake 3. O console é mais pra debug e futuramante pra aceitar alguns comandos do usuário. Falow. T+
|
|
| Topo |
|
 |
|
Vitali
|
Assunto da Mensagem: Re: Objetos Transparentes Com Cor Difusa ? Enviado: 10 Ago 2010, 19:12 |
|
| Colaborador(a) |
 |
Registado: 02 Set 2004, 20:01 Mensagens: 1801 Localização: São Carlos, SP
|
|
| Topo |
|
 |
|
Guilherme_xyz
|
Assunto da Mensagem: Re: Objetos Transparentes Com Cor Difusa. (Resolvido) Enviado: 11 Ago 2010, 14:46 |
|
Registado: 08 Mai 2010, 22:12 Mensagens: 32 Localização: Porto Alegre - RS - Brasil
|
|
| Topo |
|
 |
|
Vitali
|
Assunto da Mensagem: Re: Objetos Transparentes Com Cor Difusa ? Enviado: 11 Ago 2010, 19:18 |
|
| Colaborador(a) |
 |
Registado: 02 Set 2004, 20:01 Mensagens: 1801 Localização: São Carlos, SP
|
|
| Topo |
|
 |
|
Vitali
|
Assunto da Mensagem: Re: Objetos Transparentes Com Cor Difusa ? Enviado: 13 Ago 2010, 09:18 |
|
| Colaborador(a) |
 |
Registado: 02 Set 2004, 20:01 Mensagens: 1801 Localização: São Carlos, SP
|
|
| Topo |
|
 |
Quem está ligado: |
Utilizadores a ver este Fórum: Nenhum utilizador registado e 0 visitantes |
|
Criar Tópicos: Proibído Responder Tópicos: Proibído Editar Mensagens: Proibído Apagar Mensagens: Proibído
|
|
 |
|

|
 |