Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 21:53

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



AlphaBlending hilfe gesucht

Discussion on AlphaBlending hilfe gesucht within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 4
Join Date: Mar 2010
Posts: 3,148
Received Thanks: 1,535
AlphaBlending hilfe gesucht

ich komm nich weiter und mein schlaues buch sagt mir auch nicht viel drüber. Ich brauhc hilfe bei AlphaBlending mit der MiniMap :C

irgendwie sieht es ingame bei mir jetz so aus



das is mein code in

Cwndnavigator:nreasebkgn

nach


Code:
//	pd3dDevice->SetVertexShader(D3DFVF_LVERTEX);

	pd3dDevice->SetRenderState(D3DRS_STENCILENABLE, TRUE);
	pd3dDevice->SetRenderState(D3DRS_STENCILZFAIL, D3DSTENCILOP_KEEP);
	pd3dDevice->SetRenderState(D3DRS_STENCILFAIL, D3DSTENCILOP_KEEP);
	pd3dDevice->SetRenderState(D3DRS_STENCILPASS, D3DSTENCILOP_REPLACE);
	pd3dDevice->SetRenderState(D3DRS_STENCILFUNC, D3DCMP_ALWAYS);
	pd3dDevice->SetRenderState(D3DRS_STENCILREF, 0x1);
	pd3dDevice->SetRenderState(D3DRS_STENCILMASK, 0xffffffff);
	pd3dDevice->SetRenderState(D3DRS_STENCILWRITEMASK, 0xffffffff);

	pd3dDevice->SetRenderState(D3DRS_ALPHATESTENABLE, TRUE);
	pd3dDevice->SetRenderState(D3DRS_ALPHAREF, 50);
	pd3dDevice->SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_GREATEREQUAL);

	pd3dDevice->BeginScene();

	//pd3dDevice->DrawIndexedPrimitiveUP(D3DPT_TRIANGLELIST, 0, 4, 2,&m_billBlend , D3DFMT_INDEX16, &m_billBlend, sizeof(D3DLVERTEX));

	pd3dDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ONE);
	pd3dDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ZERO);
	pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,FALSE);
	pd3dDevice->SetRenderState(D3DRS_ALPHATESTENABLE, FALSE);
///
	//pd3dDevice->DrawIndexedPrimitiveUP(D3DPT_TRIANGLELIST, 0, 4, 2, &m_billBlend , D3DFMT_INDEX16, &m_billBlend, sizeof(D3DLVERTEX));
pd3dDevice->SetRenderState(D3DRS_ZWRITEENABLE, TRUE);

	///


pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
pd3dDevice->SetRenderState(D3DRS_ALPHATESTENABLE, TRUE);
pd3dDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
pd3dDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);

m_billBlend.Render(pd3dDevice);

pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE);
pd3dDevice->SetRenderState(D3DRS_ALPHATESTENABLE, FALSE);
pd3dDevice->EndScene();
wenn jemand mehr ahnung von directx hat und hilfbereit ist würd ich mich freun

wenn gewünscht kann ich auch mal die Seiten ausm buch hier mit reinstellen wo ich das ganze her hab.
Jopsi332 is offline  
Old 06/22/2012, 15:29   #2


 
Ende!'s Avatar
 
elite*gold: 1
Join Date: Feb 2009
Posts: 6,379
Received Thanks: 7,998
Ich kenne dieses Spiel nicht, daher kann ich nur vermuten, dass du damit sagen willst, dass das Spiel nach der Aktivierung deines Hooks nicht mehr korrekt rendert? Welche DirectX Version wird verwendet?
Ende! is offline  
Old 06/22/2012, 17:21   #3
 
elite*gold: 4
Join Date: Mar 2010
Posts: 3,148
Received Thanks: 1,535
Quote:
Originally Posted by Ende! View Post
Ich kenne dieses Spiel nicht, daher kann ich nur vermuten, dass du damit sagen willst, dass das Spiel nach der Aktivierung deines Hooks nicht mehr korrekt rendert? Welche DirectX Version wird verwendet?
dx 9

ich will oben die kleine karte anstatt eckig rund render. hab das jetz mit alphablending aufgegeben und wollte es mit einer anzahl an vertexen rund rendern lassen.
aber das klappt jetz auch nicht irgendwie..

code is

Code:
//sturct
struct TEXTUREVERTEX
{
	D3DXVECTOR3 vec;//
	//FLOAT x, y, z, 
	FLOAT rhw, u, v;
};


//eine eckige textur rund rendern
BOOL C2DRender::RenderTextureCircle( int iVertices, float iRadius, CTexture* pTexture, DWORD dwBlendFactorAlhpa, FLOAT fScaleX , FLOAT fScaleY)
{

	if(!pTexture) return FALSE;

	int nVertex = iVertices + 1;

	TEXTUREVERTEX * pVertices;

    pVertices = new TEXTUREVERTEX [nVertex];


	
 float fComplete;
 FLOAT x;
 FLOAT y;

for ( int iVertex = 0; iVertex < nVertex; iVertex ++)
 {
fComplete = (float)iVertex / nVertex;
		x = (float)((fScaleX) + (float)iRadius * cos(6.2831f*fComplete));
		y = (float)((fScaleY) + (float)iRadius * sin(6.2831f*fComplete));

  SetTextureVertex( pVertices, x, y, pTexture->m_fuRB, pTexture->m_fvRB);
  
  pVertices++;
 }
	
	m_pd3dDevice->SetSamplerState( 0, D3DSAMP_ADDRESSU, 1 );
	m_pd3dDevice->SetSamplerState( 0, D3DSAMP_ADDRESSV, 1 );
	m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR );		
	m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR );		

	m_pd3dDevice->SetRenderState( D3DRS_CULLMODE, D3DCULL_NONE );	
	m_pd3dDevice->SetRenderState( D3DRS_ALPHABLENDENABLE,   TRUE );

	m_pd3dDevice->SetRenderState( D3DRS_TEXTUREFACTOR, D3DCOLOR_ARGB( dwBlendFactorAlhpa, 0, 0, 0 ) );
	m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP,   D3DTOP_SELECTARG1 );
	m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
	m_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP,   D3DTOP_MODULATE );
	m_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );
	m_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAARG2, D3DTA_TFACTOR  );

    m_pd3dDevice->SetVertexShader( NULL );
	m_pd3dDevice->SetTexture( 0, pTexture->m_pTexture );
	m_pd3dDevice->SetFVF( D3DFVF_TEXTUREVERTEX );
	m_pd3dDevice->DrawPrimitiveUP( D3DPT_TRIANGLESTRIP, 2, pVertices, sizeof( TEXTUREVERTEX ) );
	m_pd3dDevice->SetTexture( 0, NULL );

	return TRUE;
};

mit dem kommt ingame nur noch ein flackern und nicht eine runde textur ( die eigentlich eckig ist)

habe mal nen radius von 10 angeben, x center und y center 10 und 10 vertices aber iwas muss ich wohl im algorythmus falsch gemacht haben
Jopsi332 is offline  
Old 06/22/2012, 17:51   #4


 
Ende!'s Avatar
 
elite*gold: 1
Join Date: Feb 2009
Posts: 6,379
Received Thanks: 7,998
Code:
m_pDevice->SetRenderState(D3DRS_CULLMODE,          D3DCULL_NONE);
m_pDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,  TRUE);
m_pDevice->SetRenderState(D3DRS_SRCBLEND,          D3DBLEND_SRCALPHA);
m_pDevice->SetRenderState(D3DRS_DESTBLEND,         D3DBLEND_INVSRCALPHA);
m_pDevice->SetRenderState(D3DRS_LIGHTING,          FALSE);
m_pDevice->SetRenderState(D3DRS_STENCILENABLE,     FALSE);
Versuch's mal damit.
Ende! is offline  
Old 06/22/2012, 18:18   #5



 
Sedrika's Avatar
 
elite*gold: 18
The Black Market: 103/0/0
Join Date: Sep 2009
Posts: 20,177
Received Thanks: 14,471
Wieso setzt du noch den Renderstate, nach dem die Navigation bereits gerendert wurde ?
Das ergibt doch keinen Sinn.

Die Navigation wird im Source bereits leicht abgerundet, musst nur das etwas umschreiben.
Sedrika is offline  
Old 06/22/2012, 23:39   #6
 
elite*gold: 4
Join Date: Mar 2010
Posts: 3,148
Received Thanks: 1,535
Quote:
Originally Posted by Sedrika View Post
Wieso setzt du noch den Renderstate, nach dem die Navigation bereits gerendert wurde ?
Das ergibt doch keinen Sinn.

Die Navigation wird im Source bereits leicht abgerundet, musst nur das etwas umschreiben.
ich mach ne ganz neue funktion die ne textur rund rendern soll anhand von einer anzahl an vertices & radius
Jopsi332 is offline  
Old 06/25/2012, 15:59   #7
 
elite*gold: 4
Join Date: Mar 2010
Posts: 3,148
Received Thanks: 1,535
jemand ne idee wo jetz der fehler liegt?
Jopsi332 is offline  
Old 06/25/2012, 16:01   #8




 
Omdi's Avatar
 
elite*gold: 93616
Join Date: Apr 2010
Posts: 13,737
Received Thanks: 14,990
Was meinst du mit flackern?
Kann man die Karte denn sehen?
Omdi is offline  
Old 06/25/2012, 17:03   #9
 
elite*gold: 4
Join Date: Mar 2010
Posts: 3,148
Received Thanks: 1,535
Quote:
Originally Posted by Neeya Nanaa View Post
Was meinst du mit flackern?
Kann man die Karte denn sehen?
nein es ist ein flackern mit einer farbe meistens grün oder braun.
ich meine mit flackern

also wen man die maus schnell drüber zieht dann kommt für ein paar millisekunden ein 5 eck das so aussieht ( ein viereck und unten links ist eine kante)
Jopsi332 is offline  
Old 06/25/2012, 17:55   #10




 
Omdi's Avatar
 
elite*gold: 93616
Join Date: Apr 2010
Posts: 13,737
Received Thanks: 14,990
Versuchs mal so

Code:
    pDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
    pDevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_DIFFUSE);
    pDevice->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
    pDevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
Omdi is offline  
Old 06/25/2012, 18:26   #11
 
elite*gold: 4
Join Date: Mar 2010
Posts: 3,148
Received Thanks: 1,535
Quote:
Originally Posted by Neeya Nanaa View Post
Versuchs mal so

Code:
    pDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
    pDevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_DIFFUSE);
    pDevice->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
    pDevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
komplett ersetzen oder ein teil oder hinzufügen? ( bei c2drender::rendertexturecircle)
Jopsi332 is offline  
Old 06/25/2012, 18:49   #12




 
Omdi's Avatar
 
elite*gold: 93616
Join Date: Apr 2010
Posts: 13,737
Received Thanks: 14,990
Quote:
Originally Posted by Jopsi332 View Post
komplett ersetzen oder ein teil oder hinzufügen? ( bei c2drender::rendertexturecircle)
Ersetzen.
Du ersetzt z.B :
Code:
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
mit
Code:
pDevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_DIFFUSE);
Omdi is offline  
Old 06/25/2012, 20:10   #13
 
elite*gold: 4
Join Date: Mar 2010
Posts: 3,148
Received Thanks: 1,535
Quote:
Originally Posted by Neeya Nanaa View Post
Ersetzen.
Du ersetzt z.B :
Code:
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
mit
Code:
pDevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_DIFFUSE);
damit kackt mein client ab


so mit deineer veärnderung flackert es einfahc weiß xD

ich wieß jetz warscheinlich wo der fehler ist, aber weiß nich genau wie ich den behebe

also mein algorythmus zum errechnen von x und y hab ich u und v koordinaten vergessen. ich gebe dem vertex immer rechts unten uv koordinaten.. weiß jemand wie ich für ienen kreis die uv koordinaten berrechne?
Jopsi332 is offline  
Reply


Similar Threads Similar Threads
Dämonen Jäger Guid gesucht [Hilfe gesucht]
05/31/2012 - Diablo 3 - 3 Replies
Hallo, ich bin nun ein lvl 21 Dämonen Jäger und würde mal gerne wissen was ich so brauche (auch für später) z.b Viel DMG oder viel Def oder Hp sowas halt. Und was empfiehielt ihr 2 einhand armbrüste oder eine 2 Hand armbrust. Und, und, und... Brauche halt nur Tipps. MFG
[Hilfe gesucht]: Erfahrener AutoIt Nutzer als Supporter gesucht
08/12/2011 - AutoIt - 2 Replies
Hat sich erledigt.
[SUCHE HILFE] Hilfe für meinen Metin2 P.server gesucht
06/30/2011 - Metin2 Private Server - 8 Replies
Hallo zusammen :) Wie euch mein Titel schon sagt, suche ich Hilfe zu diversen Dingen um meinen Metin2 P.server fertig zu bekommen. Das Wären: - Eine neue Map beim Teleporter eintragen - Ca. 4 neue Quests einbauen - Die allgemeinen Drops der Mobs runter zu setzen - Die allgemeine Yang-drop chance runter zu setzen (Wildhund ca. 80 Yang) - Reittiere einbauen
[Hilfe gesucht] FreeWar2 [Hilfe gesucht]
12/26/2009 - Metin2 Private Server - 15 Replies
Hallöchen zusammen. Ich suche eine Person die mir meinen Server erstellen kann. Habe schon aus Früheren Zeiten, noch Virtual PC drauf, mit einem alten Metin2 Server, und da müssen halt noch paar Sachen geändert werden. Navicat habe ich Installiert, dort sollte man nur 2 Accounts erstellen und diese GM machen. Dann sollte man am besten wissen welche Rates Metin2 DE hat, den es soll eine Perfekt Nachbildung von Metin2 Germany werden. Wer wird darauf Spielen? Zuerst wird es eine...



All times are GMT +2. The time now is 21:53.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.