Register for your free account! | Forgot your password?

You last visited: Today at 09:21

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

Advertisement



Runde Minimap

Discussion on Runde Minimap within the Flyff Private Server forum part of the Flyff category.

Closed Thread
 
Old   #1
 
elite*gold: 4
Join Date: Mar 2010
Posts: 3,148
Received Thanks: 1,535
Runde Minimap

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

AccuFrame();
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/19/2012, 16:05   #2
 
xTwiLightx's Avatar
 
elite*gold: 0
Join Date: Jan 2009
Posts: 1,739
Received Thanks: 1,669
Such die Stelle, wo die Form gerendert wird (die der Minimap) und lass sie statt viereckig rund rendern.
xTwiLightx is offline  
Old 06/19/2012, 16:07   #3
 
elite*gold: 4
Join Date: Mar 2010
Posts: 3,148
Received Thanks: 1,535
Quote:
Originally Posted by xTwiLightx View Post
Such die Stelle, wo die Form gerendert wird (die der Minimap) und lass sie statt viereckig rund rendern.
ya die idee hatte ich auch schon... aber sobald ich eine x / y auslasse wird garnichts mehr gerendert
Jopsi332 is offline  
Old 06/19/2012, 18:22   #4
 
elite*gold: 0
Join Date: Jun 2012
Posts: 6
Received Thanks: 5
Dein Code sieht ziemlich verwirrend aus. Du setzt teilweise RenderStates die unötig sind, andere setzt du doppelt und überschreibst sie so wieder.
Dein BeginScene und EndScene ist da auch total fehl am Platz.
Die Alpha Mask nach AccuFrame zu rendern bringt dir auch überhaupt nichts da zu dem Zeitpunkt bereits die Minimap gerendert wurde.
Code:
pLand->m_texMiniMap.Render( p2DRender, point, 200 );//CWndBase::m_nAlpha );
Erstell dir eine neue Render Funktion die eine extra Texture animmt (Deine Alpha Mask). Dann passt du die Vertex Struktur an und fügst UV Koordinaten für die AlphaMask hinzu. Setz die richtigen RenderStates und dann render das ganze.

Oder Alternativ, mach es mit einem Shader. Ganz ehrlich, RenderStates sind so DX6.
_Farbrausch is offline  
Thanks
2 Users
Old 06/19/2012, 19:16   #5
 
elite*gold: 0
Join Date: Aug 2008
Posts: 93
Received Thanks: 57
Man findet in dem Snippet nicht 1x PI, wenn du weißt was PI ist, benötigst du für das Rendern eines Kreise's.

Was willst mit dem ganzen Blenden da, hat 0 mit einem Kreis zutun, dazu kommt das Offi wenn du es nachmachen willst, wovon ich ausgehe, KEINE Blend sachen drin hat.
polsterspeed is offline  
Old 06/19/2012, 19:48   #6
 
elite*gold: 4
Join Date: Mar 2010
Posts: 3,148
Received Thanks: 1,535
Quote:
Originally Posted by polsterspeed View Post
Man findet in dem Snippet nicht 1x PI, wenn du weißt was PI ist, benötigst du für das Rendern eines Kreise's.

Was willst mit dem ganzen Blenden da, hat 0 mit einem Kreis zutun, dazu kommt das Offi wenn du es nachmachen willst, wovon ich ausgehe, KEINE Blend sachen drin hat.
ich hab da nen textur (alpha circle) so wie offi es auhc macht

Quote:
Originally Posted by _Farbrausch View Post
Dein Code sieht ziemlich verwirrend aus. Du setzt teilweise RenderStates die unötig sind, andere setzt du doppelt und überschreibst sie so wieder.
Dein BeginScene und EndScene ist da auch total fehl am Platz.
Die Alpha Mask nach AccuFrame zu rendern bringt dir auch überhaupt nichts da zu dem Zeitpunkt bereits die Minimap gerendert wurde.
Code:
pLand->m_texMiniMap.Render( p2DRender, point, 200 );//CWndBase::m_nAlpha );
Erstell dir eine neue Render Funktion die eine extra Texture animmt (Deine Alpha Mask). Dann passt du die Vertex Struktur an und fügst UV Koordinaten für die AlphaMask hinzu. Setz die richtigen RenderStates und dann render das ganze.

Oder Alternativ, mach es mit einem Shader. Ganz ehrlich, RenderStates sind so DX6.
hab das oben aus meinem c++ buch. aber wenn s bessere wege gibt werde ich die testen
Jopsi332 is offline  
Old 06/19/2012, 20:41   #7
 
elite*gold: 0
Join Date: Aug 2008
Posts: 93
Received Thanks: 57
Quote:
Originally Posted by Jopsi332 View Post
ich hab da nen textur (alpha circle) so wie offi es auhc macht
die testen
Schwachsinn, Offi nutzt keine Textur, der Runde Kreis diese Schwarze kacke da ist dafür da wenn es ein Dungeon ist, da wird keine Karte angezeigt.
polsterspeed is offline  
Old 06/19/2012, 21:50   #8
 
elite*gold: 0
Join Date: Jun 2012
Posts: 6
Received Thanks: 5
Quote:
Originally Posted by polsterspeed View Post
Schwachsinn, Offi nutzt keine Textur, der Runde Kreis diese Schwarze kacke da ist dafür da wenn es ein Dungeon ist, da wird keine Karte angezeigt.
Du meinst wohl NavDunFog.tga, alphacircle.tga ist die Mask für die Minimap.
_Farbrausch is offline  
Thanks
1 User
Old 06/19/2012, 22:02   #9
 
elite*gold: 4
Join Date: Mar 2010
Posts: 3,148
Received Thanks: 1,535
habs ganze nu in ner eigenen draw funktion

.. schaut jetz so aus :C
Code:
void CWndNavigator::OnDraw(C2DRender* p2DRender)
{
	
#ifdef __NEW_THEME
		if( g_pPlayer == NULL ) return;
	LPDIRECT3DDEVICE9 pd3dDevice = p2DRender->m_pd3dDevice;




	pd3dDevice->BeginScene();

device->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
device->SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_GREATEREQUAL);
device->SetRenderState(D3DRS_ALPHAREF, (DWORD)8);
device->SetRenderState(D3DRS_ALPHATESTENABLE, TRUE); 
m_billBlend.Render(pd3dDevice);

pd3dDevice->EndScene();

	
#endif
Jopsi332 is offline  
Old 06/20/2012, 02:24   #10
 
elite*gold: 0
Join Date: Jun 2012
Posts: 6
Received Thanks: 5
Quote:
Originally Posted by Jopsi332 View Post
habs ganze nu in ner eigenen draw funktion

.. schaut jetz so aus :C
Code:
void CWndNavigator::OnDraw(C2DRender* p2DRender)
{
	
#ifdef __NEW_THEME
		if( g_pPlayer == NULL ) return;
	LPDIRECT3DDEVICE9 pd3dDevice = p2DRender->m_pd3dDevice;




	pd3dDevice->BeginScene();

device->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
device->SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_GREATEREQUAL);
device->SetRenderState(D3DRS_ALPHAREF, (DWORD)8);
device->SetRenderState(D3DRS_ALPHATESTENABLE, TRUE); 
m_billBlend.Render(pd3dDevice);

pd3dDevice->EndScene();

	
#endif
Du gehst das falsch an. Du musst den Inhalt der Minimap und die Mask in einem Draw Call rendern. Wofür du wiederum eine eigene Vertex Struct brauchst, die eine Mask überhaupt akzeptiert. Schau dir einfach mal die C2DRender Klasse an. Würde die aber immer noch die Shader Variante ans Herz legen, da spaarst du dir auch die erstellung einer weiteren Vertex Struct.
Das Begin/End Scene ist btw immer noch total unötig da in CNeuzApp::Render() bereits begonnen und beendet wird und dein Fenster wie alles andere was gerendert wird in desen Scope fällt.
_Farbrausch is offline  
Old 06/20/2012, 10:03   #11
 
elite*gold: 4
Join Date: Mar 2010
Posts: 3,148
Received Thanks: 1,535
Quote:
Originally Posted by _Farbrausch View Post
Du gehst das falsch an. Du musst den Inhalt der Minimap und die Mask in einem Draw Call rendern. Wofür du wiederum eine eigene Vertex Struct brauchst, die eine Mask überhaupt akzeptiert. Schau dir einfach mal die C2DRender Klasse an. Würde die aber immer noch die Shader Variante ans Herz legen, da spaarst du dir auch die erstellung einer weiteren Vertex Struct.
Das Begin/End Scene ist btw immer noch total unötig da in CNeuzApp::Render() bereits begonnen und beendet wird und dein Fenster wie alles andere was gerendert wird in desen Scope fällt.


Hab jetzt ne neue vertex sstruct und ne function gemach nen kreis us beliebig vielen dreicken zu machen mit qrgv x y radius. In texturpack. Teste das heute nachmittag und render dan die minimao in meinem kreis
Jopsi332 is offline  
Old 01/25/2013, 13:30   #12
 
trashee09's Avatar
 
elite*gold: 0
Join Date: Aug 2005
Posts: 231
Received Thanks: 66


T_T
trashee09 is offline  
Old 01/26/2013, 12:24   #13



 
Sedrika's Avatar
 
elite*gold: 18
The Black Market: 103/0/0
Join Date: Sep 2009
Posts: 20,177
Received Thanks: 14,471
What's your reason to push an old thread like this ?
Sedrika is offline  
Old 01/26/2013, 12:45   #14
ベトナム警察




 
Lumi's Avatar
 
elite*gold: 725
The Black Market: 516/0/0
Join Date: Jan 2012
Posts: 16,377
Received Thanks: 3,429

Lumi is offline  
Closed Thread


Similar Threads Similar Threads
Warrock 8er Runde ?
09/10/2011 - WarRock - 5 Replies
Moin Leute, wer hat den Lust auf 8er Wr suche 7 Leute mit denen man heute nacht mal zocken kann , den nachts ist ja nichts mehr los und ohne Hacks Zocken !!! Pn me :) (da der Thread eh geclosed wird ) Yeah Flammt alle hier rum das es einen Level ingame treff gibt aber der ist fürn arsch da eh nur jeder 10 reinguckt ...
Value Finder Runde
12/21/2009 - S4 League - 3 Replies
Ich wollte Fragen ob es erlaubt ist einen Thread zu starten (hier weil in s4league section wenige sind) in dem sich leute verabreden können, in s4league einen raum zu machen um values zu suchen oder ähnliches, und dass man in diesem thread keine post`s bekommt? weil wenn ja dann würde es so z.B. aussehen. _________________________________________________ __________________ Server= German Raum= Free Raumname= Valuefinder
gruß in die runde
04/22/2009 - Say Hello - 1 Replies
dann werd ich hiermit auch mal mein begrüßungsthread posten. hallo alle zusammen:mofo: das ist ja hiermit geschehen. also denn sag ich mal bis demnächst. gleiche stelle, gleiche welle. grüße
Club, runde 2
01/03/2008 - Off Topic - 12 Replies
Weniger Auswahlmöglichkeiten
Ban Runde
07/30/2006 - World of Warcraft - 3 Replies
Hatts hier jemanden erwicht? mich net :D



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


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.