|
You last visited: Today at 09:21
Advertisement
Runde Minimap
Discussion on Runde Minimap within the Flyff Private Server forum part of the Flyff category.
06/19/2012, 16:02
|
#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.
|
|
|
06/19/2012, 16:05
|
#2
|
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.
|
|
|
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
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
|
|
|
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.
|
|
|
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.
|
|
|
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
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
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
|
|
|
06/19/2012, 20:41
|
#7
|
elite*gold: 0
Join Date: Aug 2008
Posts: 93
Received Thanks: 57
|
Quote:
Originally Posted by Jopsi332
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.
|
|
|
06/19/2012, 21:50
|
#8
|
elite*gold: 0
Join Date: Jun 2012
Posts: 6
Received Thanks: 5
|
Quote:
Originally Posted by polsterspeed
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.
|
|
|
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
|
|
|
06/20/2012, 02:24
|
#10
|
elite*gold: 0
Join Date: Jun 2012
Posts: 6
Received Thanks: 5
|
Quote:
Originally Posted by Jopsi332
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.
|
|
|
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
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
|
|
|
01/25/2013, 13:30
|
#12
|
elite*gold: 0
Join Date: Aug 2005
Posts: 231
Received Thanks: 66
|
T_T
|
|
|
01/26/2013, 12:24
|
#13
|
elite*gold: 18
Join Date: Sep 2009
Posts: 20,177
Received Thanks: 14,471
|
What's your reason to push an old thread like this ?
|
|
|
01/26/2013, 12:45
|
#14
|
ベトナム警察
elite*gold: 725
Join Date: Jan 2012
Posts: 16,377
Received Thanks: 3,429
|
|
|
|
|
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.
|
|