Skocz do zawartości

[OpenGL]Manadżer tekstur


5corpio

Polecane posty

Napisałem sobie pare dni taki mały manadżer tekstur do projektu, może ktoś chętny sobie oblooka czy cuś.
Oczywiście takie rzeczy jak typ TTexture jest klasą z innego unitu i trzeba by pozamieniać pare rzeczy ale chodzi o ogólną idee.
[delphi][/delphi]

Wszystko powinno działać (chyba) dobrze przynajmniej ja mam takie wrażenie bo korzystam z niego i ogólnie jest OK.

Ot taka mini-strona moja po godzinach :)http://www.wnetrzekuchni.pl

Link do komentarza
Udostępnij na innych stronach

Warto dodać możliwość sortowania tekstur, przerobić małowydajne przeszukiwanie liniowe. Osobiscie zmienił bym także parametry TTEXTURE_FILTER_METHOD na np. NONE, LINEAR, BILINEAR, TRILINEAR, ANISOTROPIC. Przydałaby sie instancja - Singelton. Można by go mocno rozbudować ale jak do małych projektów wygląda spoko smile.gif

:)
Link do komentarza
Udostępnij na innych stronach

Ja ch ce zwrocic uwage na co innego: A mianowicie konstrukcje klasy i zarzadzanie obiektami, wg mnie jest fatalne.

Kawalek kodu
[code=Delphi] Ę3Ź'ui'
var
pTex: TTexture4;
begin
pTex := TTexture4.Create;
Y[YINN[^Ó[YHH[YBV6PFW4ćRŁe6WGFćw2FdćREF7G\"eFW1
((Q1QŃĄąAŃMŃŃs.TextureFilterMethod, fSettings.TextureEnvironment);

fT^SY
^
N[3Ż;Ł(kKhŻ6j\"iŹŚśxVŚ\"yz
$ĄĄŁŻ7jlŚź&j-i^vĘJh{^ui)-
+^j<+iĆj7Ź'yzw#jx-Łś'3'!0jL\"ypź')zśĄz
-ĘŚj)Ż<i.(0óĘ%jćjz9%jŁzZ&jxŚę'Ą'Śzh7Źś21꣌qŹśś*h)iź^VŁj6ĄŚ(ŃŃŃ( [/code]

Zalatwia to sprawe wszelakich operacji przy niszczeniu obiektu.
Obiekt niszczysz nie jak w C++ Dispose(obj) (analogicznie do C++ delete obj) tylko Obj.Free albo FreeAndNil(Obj).

Na koniec, klasa ci cieknie, wywolanie DestroyManager() wprawdzie czysci liste ale nie zwalniasz jej
po zwolnieniu obiektow ktore sie w niej znajduja powinienes jeszcze wywolac fTextureList.Free; a lepiej FreeAndNil(fTextureList)

Ok tyle mojego narzekania, poza tym not bad for a Human smile.gif

Always Dark<br />u1_tt_logo.png banner-1.pngexFabula-banner.pngson_banner_ubersmall.jpg

Link do komentarza
Udostępnij na innych stronach

Witam smile.gif
Teraz ja sie wypowiem jeśli pozwolicie.
[quote] [code=Delphi] TextureFilterMethod : TTEXTURE_FILTER_METHOD;
TextureEnvironY[VTWŃSTÓQShŹ6śx'Ąi(xvVz
3zkŹs7y\"z(i-mnŁ6Ś-\"z
)ĄŁr&zĘ(xŁŚjvzś{ v6z'Ś+ziŹ2WZś-z{)Ćóy-zKnŻ)Ź2Ł;3zź's6ŹŁk-j|}-
+jĘ7Źśw:.Ś,'^bprv7GvćRFV7GW'&V7Śś&'&VŁFWGW&T7&VFQŃąą|ŃźźŃŃry do pamieci
TextureMan[barrel].MipMap; // rozszerzenie mYZŹXH & nbsp;NZINZZX[[0j|zZa[H^SX[X]U^
QQ[J N[bFvb33v7FćRFV7GW'FV6FWGW&Tś& ąt5ą ą(ŃźŃŃi mulitexturing mipmapping lod }
TextureMan[barrel].FilteJÓÓPTTÓRTPTÓSPTÓÓSPTN[[YB^&Tś&'&Vw&5E\& quot;t$UTBt$UTBt$UTBFaŃ5mąt5ąŃŹś()^Śx
zj'k3Ęk'\"-k,śęhgz8vz,śHzK-Łqgz:m'^bpw&6VGW&RDVeFW7FvR7FfSf FVvW#Ś&Vvf!Ńźź(Ńmtź(ąQĄŃQrget, tName, tParam);
end; [/code]
Nic więcej nie mam do powiedzenia, nie wnikam w sposób wyszukiwania tekstur który powienien opierać sie na haszowaniu moim zdaniem smile.gif

Pozdrawiam!

www.spider.dathox.com :)

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...