dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

Advanceets 2D?
Goto page 1, 2  Next
 
dev.gamez.lv Forum Index -> Microsoft DirectX
View previous topic :: View next topic  
Author Message
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: Thu Jun 14, 2007 12:02 am    Post subject: Advanceets 2D?

Sveiki Smile kalju plaanus uz nelielu bet nopietnu projektinju kam nodoties turpmakos meeneshus (iespeejams daudzus Razz) un man ir ideja par TBS tipa speeli (kaa heroes/disciples) un gribu izveidot pasauli 2D (manupraat visas heroes daljas peec IIIaas ir izgaasanaas tiesi deel taa ka 3D neljauj iisti izveidot to pasauliiti Razz ) un kaujas/pilis 3D.

Saaksim ar 2D
mani interesee iespeejas uzlabot/ieveist jaunas iespeejas 2D grafikaa un kaa panaakt muusdieniigus 2D effektus un kaa vareetu pacelt 2D mazliet augstaakaa liimenii un kaadus progrramisstiskos materiaalus/panjeemienus kaads var piedaavaat Smile. Nekaadu revoluuciju taisiit netaisos Wink Very Happy
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Thu Jun 14, 2007 12:31 am    Post subject:

Ja runa ir par DirectX, tad galvenais nepaņem DirectDraw. Obligāti ņem Direct3D (kaut arī zīmēsi 2D).
A infromācija par to ir pilns internets - atliek tikai gūgli atvērt un linki birst kā no pārpilnības raga:
http://www.gamedev.net/reference/articles/article1972.asp
http://nexe.gamedev.net/directKnowledge/default.asp?p=2D%20In%20Direct3D
http://pixwiki.bafsoft.com/wiki/index.php/2D_using_OpenGL
...

Galvenais jau bonuss ir, ka dabūsi gandrīz vai bezmaksas spraitu staipīšanu/rotēšanu/transformēšanu, blendošanu, u.tml efektus. Jo to visu d3d/gl varēs hardwariski akselerēt. DirectDraw'ā man liekas tur ne viss akselerējās.

Ar d3d/gl varēsi arī visādus ūberīgus šeideru efektus pielietot, ja vajadzēs. Ar tiem uz jaunākajām videokartēm labā ātrumā diezgan sarežģītas attēlu kalkulācijas varēsi izdarīt.

Tā ka jautā konkrētāk. Uz tavējiem patreizējiem jautājumiem vienīgais, ko var atbildēt, ir "google 2d in direct3d".
Back to top
View user's profile Send e-mail
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: Thu Jun 14, 2007 12:50 am    Post subject:

2D in direct3D zinu kaa dariit tas pats par transformaacijaam un fullscreen post-effektiem.. bet kaa panaak piem spraadziena vilnja effektu ar shaderi? Veel ir ideja katram spraita objektam piedot taadu atribuutu kaa blend mode un tad vadoties peec formulinjaam no photoshop http://www.simpelfilter.de/en/grundlagen/mixmods.html ar shaderu paliidziibu ziimeet ar interesantiem effektiem Smile protams galvaa ir dazas idejas kaa to vareetu izdariit bet visticamaak ka buus "uber smagas" kompiitim :D

edit : kljuudinjas
Back to top
View user's profile
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Thu Jun 14, 2007 1:36 pm    Post subject:

Tajaa linkaa, ko tu iedevi formulas jau ir priekshaa. Izveido pixel sheideri peec shiim formulaam un izveido kaadu efektu vien vajag. Principaa shie jau nav baigie efekti, vienkaarshi pixelju blendoshana. Ar efktiem es saprotu - gaismas izkliedeeshanaas virs ugunskura deelj sabiezinaataa gaisa, sniegs, lietus (partiklju sisteemas), vari arii bumpmapu ar celjojoshaam gaimaam uztaisiit, reaalistisks uudens (reflection/retraction) utt.
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Thu Jun 14, 2007 3:35 pm    Post subject:

Vairākas formulas pie tam var diezgan vienkārši pielietot izmantojot visparastāko multitexturing'u. Nekādi šeideri tur nav vajadzīgi. Tādējādi tiks supportētas vairāk videokartes un uz būs lielāks renderēšanas ātrums uz vājākajām videokartēm (kurām šeideri ir lēni).
Back to top
View user's profile Send e-mail
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: Thu Jun 14, 2007 3:40 pm    Post subject:

Gribētos tev, bubu, pajautāt stulbu jautājumu -

P.S. Kā shaders var būt lēni?

Cik esmu novērojis, tad jaudas patēriņš skar vairāk animācijas jeb skin operācijas, bet tekstūrām maz.
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday


Last edited by EDDY on Thu Jun 14, 2007 3:43 pm; edited 1 time in total
Back to top
View user's profile
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Thu Jun 14, 2007 3:43 pm    Post subject:

Atbilde ir ljoti vienkaarsha - tavu speeli speelees ne tikai baigie geimeri, bet arii kaiminju Juris, kam ir GeForce 2 MX400. Tavs uzdevums ir censties neliegt vinjam sho prieku, ja iespeejams.

EDIT: EDDY ir labojis savu postu, taapeec mana atbilde vairs nesakriit ar jautaajumu.
_________________
long time; /* know C */


Last edited by elvman on Thu Jun 14, 2007 6:34 pm; edited 1 time in total
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Thu Jun 14, 2007 6:09 pm    Post subject:

Kur nu GF2, kuram nemaz šeideru nav.
Man darbā ir GeForce FX 5200. Un uz tā šeideri IR lēni. Mūsu pašu Squares 3D skaistais HDR vai Shadowmapings uz tā iet zem 10 fps. Sākumā mums bija variants, kurā šadowmappings tika pielietots bez šeideriem. Un tad fps bija >40, ja nemaldos. Taču tas tika izņemts ārā dažādu iemeslu dēļ (galvenokārt lai kods ir vienkāršāks). Pats šadowmappinga šeideris ir ļoti vienkāršs - diffuse apgaismojums + tekstūras nolasīšana (viens pikselis) + ēnojuma tekstūras nolasīšana (viens pikselis).

Protams uz mūsdienīgākām videokartēm šeideri ir ātri. Par to es nešaubos. Taču oar šeideru lēnumu es teicu uz tieši vājākajām videokartēm (NV3x, vecie radeoni).

Pašlaik jaunajai spēlei tiek taisīts liels terrains, kura renderēšanā arī izmanto šeideri. Šeideris ir visai netriviāls - tajā katram pikselim tiek fetčoti 7 pikseļi no 7 dažādām tekstūrām. Ar to fps ir ap 30-40 plikam terrainam (bez nekā cita). Savukārt ja izvāc šeideri ārā un renderē vienkārši vienu tekstūru izstieptu pār visu terrainu + vēl grayscale detail tekstūru, kura ir satailota daudzas reizes izmentojot multiteksturingu, tad fps ir 100-200 mierīgi. Tie fps ir uz tā paša GeForce FX 5200. Uz mana laptopa ar ATI X1600 Mobility Radeon fps ar šeideri ir pietiekoši liels 200-300 (ja nemaldos). Bez šeidera ir līdz pat 500 (arī ja nemaldos). Gan šo, gan arī skvēru spēli mēs rakstījām tā, lai to var palaist uz videokartēm, kuras nesuportē visādus opengl extensionus (šeiderus, FBO, VBO, utml). Un vienmēr, ja uz videokartes, kura suportē šeiderus, tie tika atslēgi un izmantota nedaudz nesmukāka renderēšana, tad fps pieauga. Citreiz vairāk, citreiz mazāk, bet pieauga (tas tāpēc, ka vietām spēle bija cpu-limited, nevis gpu-limited).

Šeideri, EDDY, nav nekāds brīnumlīdzeklis pret mazu FPS. Tie var pamatīgi noēst laiku, ja tiek izmantoti katram pikselim uz ekrāna vairākkārt. Tāpēc ir vajadzīgs veikt visādas maģiskas LOD (Level-Of-Detail) optimizācijas.
Back to top
View user's profile Send e-mail
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: Thu Jun 14, 2007 7:03 pm    Post subject:

izmantojot shaderus uz 2d protams performancei arii ir noziime bet nemot veeraa pasu konkreetaas speeles situaaciju, pietiks arii ar fikseetiem 30 vai 60 fps Razz
Back to top
View user's profile
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: Fri Jun 15, 2007 8:22 pm    Post subject:

Sorry par dubultpostu Embarassed

Varbuut kaadam liksies triviaals jautaajums bet ir neliela situaacija:

Man viena bilde ir norendereeta viewportaa un es rendereejot tam pa virsu citu bildi gribu zinaat kaads pikselis ir tiesi zem taa pikselja bildee ko tagad rendereeju. (probleema ka nevaru izdomaat kaa atrast backgrounda bildes attieciigaa pikselja uv Razz)
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Fri Jun 15, 2007 9:54 pm    Post subject:

Ja tas tiek renderēts Direct3D/OpenGL, tad tu to nevari. To tu vari tikai tad, ja tev renderētā bilde atrodas kādā tekstūrā (render-to-texture), vai arī tu pats nolasi visus pikseļus no patreizējās norenderētās bildes (glReadPixels openglā, bet tas ir ļoti lēni). Bez tā tu vari tikai ieslēgt Blend modi, un blendot izmantojot alfa kanālu (vai kautkādus citus režīmus, ja ir piedāvāts).

Last edited by bubu on Fri Jun 15, 2007 10:18 pm; edited 1 time in total
Back to top
View user's profile Send e-mail
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: Fri Jun 15, 2007 10:10 pm    Post subject:

apreekinaaju izmantojot spraita offsetu, tekstuuras izmeeru un viewporta izmeeru Razz

uv_no_bacgrounda = (spriteOffset + spriteSize * texCoord)/screenCoords;

un visprimitiivaakais piemeers ko vareeja izdariit xD :

Code:

extern float2 screenCoords;
extern float2 spriteOffset;
extern float2 spriteSize;
static float2 texy;


sampler FrontSampler : register(s0);
sampler BackSampler : register(s1);


float4 main(float4 color : COLOR0, float2 texCoord : TEXCOORD0) : COLOR0
{
    texy = (spriteOffset + spriteSize * texCoord)/screenCoords;
   
    float4 img_back = tex2D(BackSampler, texy);
    float4 img_front = tex2D(FrontSampler, texCoord);
   
    color = img_back + img_front;

    return color;
}


technique AddColor
{
    pass Pass1
    {
        PixelShader = compile ps_2_0 main();
    }
}


mani tuuliit nogalinaas par greizu/leenu kodu bet vins straadaa Very Happy
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Fri Jun 15, 2007 10:18 pm    Post subject:

Direct3D iznāk ļauj piebindod tekošo freimbufferi kā tekstūras sampleri?
Nemāku HLSL, bet vai kāds GLSL zinātājs varētu pakomentēt - sampler ir tas pats, kas samplerXX opengl šeiderī?
Back to top
View user's profile Send e-mail
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: Fri Jun 15, 2007 10:25 pm    Post subject:

bubu wrote:
Direct3D iznāk ļauj piebindod tekošo freimbufferi kā tekstūras sampleri?


visticamaak nee, es sajaa gadiijumaa izmantoju vnk tekstuuru, bet to pasu vareetu panaak vnk norenderejot visu sceenu uz tekstuuru un tad taapat izmantojot Smile
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Sat Jun 16, 2007 12:23 am    Post subject:

Ak tekstūru izmantojot jā, to var. Es bij sapratis, ka tu prasi, kā jau no esošas uzrenderētas bildes uz ekrāna nolasīt pikseļus.
Back to top
View user's profile Send e-mail
Display posts from previous:   
dev.gamez.lv Forum Index -> Microsoft DirectX All times are GMT + 2 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group