|
![]() |
#31 |
kenova
Datum registracije: Sep 2003
Lokacija: München / Dubrovnik
Postovi: 918
|
Za negdje cca dvije godine bi se trebao pojaviti Larrabee, samo sto ce (kako je intel najavio) biti uvelike prilagodjen trenutnim tehnikama iscrtavanja kako bi se mogao utrziti. Vjerojatno ce nvidia/ati blago ici u raytracing smjeru a intel prema njoj, pa ce se nac jednom u blizoj buducnosti kad se stvori kriticna masa developera. Obecava to sto je postupak potpuno paraleliziran, a zna se kuda idu trendovi u racunarstvu. |
![]() |
![]() |
![]() |
#32 | |
Banned
Datum registracije: Feb 2006
Lokacija: https://t.me/pump_upp
Postovi: 2,724
|
Citiraj:
![]() ![]() |
|
![]() |
![]() |
![]() |
#33 |
Premium
Datum registracije: Apr 2008
Lokacija: Zagreb - Markusevec
Postovi: 514
|
yedwy - dobro zboris - s obzirom na to kakav hardver danas imamo igre bi mogle izgledati...paaaa, ne znam s cim da usporedim, ali realno bi neka najprosjecnija igra ogla izgledati kao crysis, te se ista pogoniti na nekom prosjecnom kompu sa foruma bez ikakvog trzanja, ali svi samo emuliraju, portaju i konvertiraju, i neda im se radit nesto novo. Konzole su vec jedno 10-ak godina savrsen pokazatelj toga - samo malo pogledajte neku igru na nekoj konzoli (iskljucivsi Wii koji je druga filozofija), iz bilokoje godine u ovom mileniju, i usporedite je sa igrama iz tog razdoblja na PC-u. A onda pogledajte hardver te konzole i PC-a. Savrsen primjer koji i dan danas stoji, iako je nova generacija vec preko 2 godine tu, jest Resident Evil 4 na Gamecubeu - igra na TV rezoluciji danas izgleda jos uvijek vise nego posteno, cak u usporedbi sa najnovijim PC naslovima a vrti se na procesoru od 480 i kusur MHz, sa, ako me pamcenje dobro sluzi, 32MB radne memorije, i grafickim cipom iz 2000-e godine koji mislim da ima negdje oko 16MB video memorije, ili i manje. A danas, na nekom dvojezgrenom procesoru od 2GHz, 2GB RAM-a, i sa nekom mainstream grafuljom sa 512MB video memorije, neke igre izgledaju losije na TV rezoluciji - probajte spustiti smao neke moderne igre na 800x600, ili ne daj boze na 640x480 i pogledajte razliku - opet - prvo u grafici sa npr spomenutim RE4, onda u hardveru, a onda i u glatkoci izvodjenja... OK, sad bih tu mogao pisati dosta, a neda mi se, ali poantu sam izrekao. Jedino sa cime se ne slazem sa yedwyem je da PC igranje umire - mislim da se to nece nikada dogoditi, dapace, kako se danas na svemu moze igrati - od kucnih konzola, preko handheld, preko PC-a, do mobitela, kamera i pizdarija, mislim da nas naprotiv, ocekuju igre na svakom koraku, ali da ce ih biti manje ekskluzivnih, i opcenito manje kvalitetnih, to se slazem...nazalost |
![]() |
![]() |
![]() |
#34 | |||||
E Pluribus UNIX
Datum registracije: Oct 2002
Lokacija: M82
Postovi: 6,727
|
Citiraj:
Citiraj:
Citiraj:
Citiraj:
Nema tu kruha. Iza grafike leze teske teksture i lagana matematika . I to je lose lose situation. Optimizaciju danas koriste oni koji to rade zbog znanosti, ili iz fore. I jedni i drugi u tom slucaju ne zive od toga. Mah, sad sam tek skuzio... ![]() Citiraj:
De asimetricni, od' i slaz' klastere... ![]() ![]()
__________________
https://2.71828182845904523536028747...966967627.com/
Programer Rok od dva mjeseca u stvari znači četiri, ali nikako ispod šest. |
|||||
![]() |
![]() |
![]() |
#35 | |
Moderator
Datum registracije: Nov 2003
Lokacija: Zagreb
Postovi: 10,805
|
Citiraj:
![]() nego ja sam iz cijele rasprave shvatio samo winograd... doduše u početku me zbunio ovaj engleski naglasak, ali sam se snašao ![]() |
|
![]() |
![]() |
![]() |
#36 | |
kenova
Datum registracije: Sep 2003
Lokacija: München / Dubrovnik
Postovi: 918
|
Ovo je na neki daleki nacin povezano s raytracingom. http://www.tgdaily.com/html_tmp/cont...38009-135.html Citiraj:
![]() Dobro bi dosao topic u koji bi isli ovakvi clanci s novim tehnologijama koje nas vrlo vjerojatno cekaju. |
|
![]() |
![]() |
![]() |
#37 |
bycod
Datum registracije: May 2004
Lokacija: Zagreb / Dubrava
Postovi: 6,699
|
asimetricni ja cu vristati ![]() ![]() ![]() svarmisa nelokaj ovo dok je zanimljivo tnx. nego bubba kak nemoze biti napredka u teksturama pa mogli bi napraviti da se realno trgaju ![]() ![]()
__________________
|
![]() |
![]() |
![]() |
#38 | ||||
Premium
Datum registracije: Jun 2008
Lokacija: Zagreb
Postovi: 49
|
Citiraj:
Neznam stvarno koi OS ili kompajler ti to omogucava da kod koi nije pisan za MT iskoristava sve jezgre al volio bi ga vidit... Citiraj:
Citiraj:
Citiraj:
![]() Ovo ti je osnova 3D matematike u renderiranju i moze imat vise efekta na izgled modela nego tekstura. Neznam, ja se dosta zezam s time i zabavno je al nikad nebi reko da je "lagana matematika", pogotovo ne kompleksnija/realna implementacija istoga (subsurface scatering, specular reflekcije ... ), a jos u real-timeu ... On topic ... Raytracing je losa metoda renderiranja za real-time jer iako ima prednost sto su reflekcije ugradjene po defaultu jako puna ray-eva se mora "poslat" u scenu da bi to izgledalo kako treba... Standardni raster je mnogo optimalniji samo sto je neke fenomene (reflekcije, refrakcije i slicno) potrebno malo "drugacije" implementirat (reflekcijske mape, cube mape ...) Vodeci programeri u Gamedev industriji (ovo mi je prvi link koi sam naso mogu nac jos ako treba) rekli da sumnjaju u "standardni" raytracing kao dominantnu metodu renderiranja, ako nekog zanima nek procita (inace za one koi neznaju on je taj koi je napiso orginalni engine za QW-ET), postoje price o hibridnim tehnikama koje bi "mogle" postat optimalne al daleko su od implementacije koliko sam informiran ... |
||||
![]() |
![]() |
![]() |
#39 |
kenova
Datum registracije: Sep 2003
Lokacija: München / Dubrovnik
Postovi: 918
|
Ajmo zavrsit raspravu o nitima. Neka moja bude zadnja jer sam poceo topic ![]() - Istina je da postoje kompajleri koji sami optimiziraju kod za visenitnost. Ako ga netko zeli vidjet neka nabavi kompajler za CELL. - Istina je da u vecini slucajeva programer izgubi dosta vremena pokusavajuci dobro iskoristiti paralelnost. Deadwing oprosti ali cini mi se kao da si se lagano dotaknuo svega spomenutog u praksi i sad se nabacivas pojmovima koji su na niskoj razini i nebitni. Zakljucak da je ray-tracing losa metoda je lose izveden. Radi se o balansiranju elegantnog rjesenja koje je zahtjevno i niza brzih algoritama koji krpaju pojedine probleme. Mozemo usporediti javu i assembler, tu su otprilike po krajnosti rjesenja. Vodeci programeri u gaming industriji svaki tren proreknu nesto, na kraju ce svi plesat kako veliki novac svira. Ovo su sve teska/zanimljiva pitanja, ne postoji neka tajna koju ti znas i padobranom je dostavljas. EDIT: Zaboravio sam, ray-tracing nije rjesenje "za refleksije" kako kazes, vec i za sjene, osvjetljenje, refrakcije. |
![]() |
![]() |
![]() |
#40 | |||
Premium
Datum registracije: Jun 2008
Lokacija: Zagreb
Postovi: 49
|
Nikad nisam reko tako nesto, reko sam da je ray tracing (barem standardna implementacija) losa metoda za realtime aplikacije i tu stojim ... r Citiraj:
Citiraj:
![]() ![]() Citiraj:
A i jos jedan faktor u prici je cinjenica da konzole diktiraju razvoj tehnologije... Crysis je pokazao (proizvodjac je rekao da vise nece radit PC ekskluzive) da se PC ekskluzive sa top of the line grafikom ne isplate ... Ako sljedeca generacija konzola krene u tom smjeru imat ce mo raytracing u igrama (mozda cak i photon mapping ako intel izbaci onog 50 jezgrenog CPU-ua ![]() Na kraju price svodi ti se na ono sta je carmack reko, efikasnije je rastrirat nego raytraceat trokut u bilo kojem slucaju... Zadnje izmijenjeno od: deadwing. 20.06.2008. u 11:28. |
|||
![]() |
![]() |
![]() |
#41 |
kenova
Datum registracije: Sep 2003
Lokacija: München / Dubrovnik
Postovi: 918
|
Ne posjedujem PS3 SDK, samo sam slusao seminar o njemu ![]() Zahtjevi na procesorsku moc su poznati, cijeli topic je usmjeren prema tome kako je fascinantno da je netko uopce uspio izvesti skoro-pa-realtime bez komponenti posvecene samo pracenju (npr. spomenuti cell), znaci na x86 djelovima sa 4 jezgre. Dakle, mozda nismo daleko od toga IMO ![]() Za Crysis postoji opceprihvaceno misljenje da je neoptimiziran i pun glitcheva, iako nemam nikakvih cinjenica/dokaza za optimiziranost. |
![]() |
![]() |
![]() |
#42 |
kenova
Datum registracije: Sep 2003
Lokacija: München / Dubrovnik
Postovi: 918
|
Usput, neobicno mi je sto se nasuprot pojma pracenje zrake stavlja rasterska grafika. Pracenje je samo model osvjetljenja, a rasterska/vektorska grafika kao i rasterizacija=diskretizacija kao zadnji korak prije prikaza nemaju puno veze s time. Mozda se misli na pracenje zrake vs scan-line i slicno. |
![]() |
![]() |
![]() |
#43 | ||
Premium
Datum registracije: Jun 2008
Lokacija: Zagreb
Postovi: 49
|
vise od mene onda ![]() Citiraj:
![]() ![]() Citiraj:
![]() EDIT : ma da meni su to iste stvari (terminologija mi nije jaca stvar ![]() Mozes mi malo ovo pojasnit, imam osjecaj da imas krivi koncept raytracinga, vjerojatno sam u krivu al samo da znam da pricamo o istoj stvari. Zadnje izmijenjeno od: deadwing. 20.06.2008. u 12:21. |
||
![]() |
![]() |
![]() |
#44 |
kenova
Datum registracije: Sep 2003
Lokacija: München / Dubrovnik
Postovi: 918
|
Pracenje zrake: http://www.zemris.fer.hr/predmeti/ir.../8_sjenca1.pdf (Poglavlje "Prijelazni model") Scan-line: http://www.zemris.fer.hr/predmeti/ir..._skrivanje.pdf (Watkinsov postupak) I da zavrsimo vise sa hardverskim zahtjevima - Da, tocno je da ray-tracing zahtijeva vise resursa ![]() Ostaje slicnost sa javom - sve ce u assembleru raditi brze, ali imas toliko specificnih optimizacija i ustimavanja da gubis dosta vremena. Jednom kad snaga izracunavanja predje odredjenu granicu, ubacuje se dodatna razina apstrakcije ili u ovom slucaju problem se prebacuje u drugo podrucje (npr. sa iscrtvanja na fiziku). |
![]() |
![]() |
![]() |
#45 |
Premium
Datum registracije: Jun 2008
Lokacija: Zagreb
Postovi: 49
|
sory ovi tvoji linkovi mi otprilike imaju smisla ko japanski (kojeg neznam)... ne kuzim nis ove pojmove na hrvatskom al dobro, poanta koju mi se cini da nisi svatio je da raytracing nije samo nacin osvjetljenja vec i nacin renderiranja, otprilike funkcionira ovako : Iz kamere posalji zraku u smjeru jednog piksela na ekranu i nadji "sudar" (cesto se koristi vise zraka za jedan piksel radi aliasinga) ... i onda se trazi nova zraka koja se sudara sa izvorom svjetla direktno (ako se sudari sa necim prije onda je piksel unutar sjene)... Sad zasto je to bitno ... zato sto za svaki piksel na ekranu moras poslat barem dvije zrake za samo jedno svjetlo (bez refrakcije i reflekcije) ... to je jako skupo po preformansama E sad kod rastera imas jedan trokut koi se "transformira" u 2D kordinate i onda se jednostavno nacrta preko ekrana, nema nikakvih zraka ni miljona racunanja a rezultat je isti ... e sad "problem" je "odbijanje" tih zraka tj odredjivanje sjena reflekcija refrakcija al svi ti problemi su rjesivi... I buduci da vecina engina funkcionira na ovom principu a od raytracinga nema "nikakve koristi" (sporije je i nekvalitetnije u realtimeu, ali ima nekih prednosti priznat cu ![]() ![]() aj umorio sam se za danas ... odo se "spremat" za utakmicu ![]() |
![]() |
![]() |
![]() |
#46 |
kenova
Datum registracije: Sep 2003
Lokacija: München / Dubrovnik
Postovi: 918
|
Malo ti steka ovaj "rasterski" dio ![]() Sve je to prica koja nije bitna, procitaj malo detaljnije "japanski" pa ces se uvjerit da sam u kupe a ti u spade. |
![]() |
![]() |
![]() |
#47 | |
Premium
Datum registracije: Jun 2008
Lokacija: Zagreb
Postovi: 49
|
Citiraj:
u raytracingu bacas zrake kroz svaki piksel na objekte u svemiru ... nema nikakve projekcije vidis one strelice kako ti ilustriraju ray-eve ... ono sta si ti meni pokazo u onom pdf-u mi se cine ko opisi BRDF-ova tj. sjenčanja, to nema veze sa raytracingom (ne direktne barem). EDIT Nema nikakve projekcije trokuta sam mislio rec... u raytracingu projeciras tocke koje si pogodio sa rayevima ... to ti je glavna mana raytracinga kod renderiranja trokuta i o tome govori carmack u onom linku |
|
![]() |
![]() |
![]() |
#48 |
Premium
Datum registracije: Apr 2008
Lokacija: Zagreb - Markusevec
Postovi: 514
|
Hmmm, citam ovu zanimljivu raspravu, ali sad ste me zbunili skroz sa rasterom. Pa sta nije rasterizacija proces koji se desava neposredno prije nego mi dobijemo sliku, tj "pikselizacija" (da ju tako nazovem, ne vladam bas terminologijom) na rasteru? Odn, koliko sam ja upoznat, grafika se dijeli na 2 osnovne - vektorsku i rastersku koji se tako zovu iskljucivo zbog nacina kako stvaraju sliku, i na kakvim uredjajima. Sto ima jos drugacijih pojmova koji se tako nazivaju, a da su nesto sasvim drugo? Kolko ja znam, raster je raster, a rasteriziranje (rasterizacija, kako li se vec kaze) samo postupak pretvaranja podataka u ljudskom oku shvatljivu sliku na monitoru. |
![]() |
![]() |
![]() |
#49 | |
Premium
Datum registracije: Jun 2008
Lokacija: Zagreb
Postovi: 49
|
Citiraj:
3D raster je nesto drugo ... prvo postoji raytracer koi baca zrake kroz svaki piksel i vraca ti boju na istom (kroz daljnje pracenje zraka i slicno)... a onda postoji projekcija 3D trokuta u 2D i onda 2D rastriranje u pixele - ovo je standardni raster... |
|
![]() |
![]() |
![]() |
#50 | ||
kenova
Datum registracije: Sep 2003
Lokacija: München / Dubrovnik
Postovi: 918
|
Mislim da si u krivu, stvarno pogledaj malo materijale i pusti Carmacka, nije izumio novu racunalnu grafiku. Citiraj:
Citiraj:
Hoces li gadjat trokut sa zrakama ili npr. izracunavat normale u vrhovima (Gouraud) u potpunosti ovisi o tebi. Sam biras model osvjetljenja, odnosno time i sjencanja. Hibridni model koji si spomenuo je kombinacija prijelaznog i analitickog modela osvjetljenja, dakle opet je vezan za sjencanje. Rasterizacija je ovo o cemu govori Abuser, dakle diskretizacija u prikazu i zapisu grafike. EDIT: Deadwing, prilozi relevantne materijale u vezi racunalne grafike koje potvrdjuju to sto govoris pa cemo moc razvit raspravu. Stalno se pozivas na intervju, sto je pomalo neozbiljno. |
||
![]() |
![]() |
![]() |
#51 | ||||||
Premium
Datum registracije: Jun 2008
Lokacija: Zagreb
Postovi: 49
|
Citiraj:
Citiraj:
u standardnom rasteru prvo projeciras trokut u 2D i onda ga jednostavno rastriras... u raytracingu stalno bacas zrake koje vjerojatno udaraju iste trokute i to je lose jer je bacanje zrake u scenu jako sporo ... Citiraj:
Citiraj:
Citiraj:
Citiraj:
Sorry borgy al imam osjecaj da ja nevladam dovoljno terminologijom da ti zapravo objasnim sta zelim rec al znam o cemu pricam jer sam zapravo implementirao te stvari ... necu da ovo postane prepucavanje jer stvarno nemam poima kako da ti to laicki objasnim. |
||||||
![]() |
![]() |
![]() |
#52 |
kenova
Datum registracije: Sep 2003
Lokacija: München / Dubrovnik
Postovi: 918
|
A eto takodjer imam dosta prakse iz pisanja opengl programa i znam da ne govorim krivo, ali valjda je nesporazum oko nazivlja, podjela itd. pa cemo prekinut ![]() EDIT: Malo sam razmislio i shvatio da je uzrok cijelog nesporazuma to sto su mi djelova postovi dvosmisleni, nista vise. Bezveze mlatimo slamu. Zadnje izmijenjeno od: borgy. 20.06.2008. u 18:22. |
![]() |
![]() |
![]() |
#53 |
Premium
Datum registracije: Jun 2008
Lokacija: Zagreb
Postovi: 49
|
Btw, ako te zanima, evo ti jedan link u kojem se globalna iluminacija (samo difuzne reflekcije) racunaju pomocu rastera http://vis-web.informatik.uni-stuttg...wnload/rsm.pdf Vjerojatno ce ti bit zanimljivo ako si u "next-gen" grafici ... imam cak i ideju kako dodat efikasan shadowing za odbijene zrake na ovu tehniku, ali problem je sto nemoze radit na GPU-u na zalost ![]() ![]() |
![]() |
![]() |
![]() |
#54 |
kenova
Datum registracije: Sep 2003
Lokacija: München / Dubrovnik
Postovi: 918
|
Real-time ray-tracing iz prve ruke (outbound): http://www.pcper.com/article.php?aid...e=expert&pid=1 |
![]() |
![]() |
![]() |
#55 |
P.E.B.K.A.C.
Datum registracije: Jan 2007
Lokacija: Zagreb
Postovi: 2,304
|
__________________
Master: E7200, 3MB L2, M0 {TT Big Typhoon VX @3500mhz}/Gigabyte P35-DS3P/2x1GB SuperTalent CL4 Overclock DDR2 800Mhz + 2GB Kingmax/Coolermaster Extreme Power 430W/XFX 8800GTX {Arctic Cooling Accelero Extreme} /Seagate Barracuda 250GB/Pioneer DVD-RW/ Periferija: LG W2242T 22"/Logitech X-230/Razer - Death Adder/LCD TV Toshiba WL66Z Regza 32"/Thrust Keyboard+Mouse Wifi/Logitech ChillStream/Sharkoon Rebel12
|
![]() |
![]() |
![]() |
#56 |
dark seraphim
Datum registracije: Apr 2006
Lokacija: ZG
Postovi: 777
|
posto o vecini stvari o kojima se ovdje prica nemam pojma, bar za sad, to necu nit komentirati. za mene je sljakerski posao kad ti sef da lopatu i kramp, pokaze mjesto gdje treba da kopas i kaze ti kopaj ili nikaj od 2.5k kuna place. sjediti u nekom prostoru za kompom i prepisivati kod tipkajuci prstima je smijurlija od sljakerskog posla, jer ne trazi mentalni niti fizicki rad. nadodat cu jos, za mene nije programer onaj koji samo utipkava kod a pogotovo ako ga jos ne kuzi, e to je vec za plakati, i nebi se trebao zvati programerom. nazalost, danas je previse takve rulje u svim granama poslovanja. ostala prepucavanja nit ne kuzim nit me ne zanimaju, a kaj se tice ray-tracinga i real lifea, zivi bili, pa vidjeli. uglavnom da se nesto "novo"/"drugacije" radi i da eventualno naprave neki napredak, kakav god taj napredak bio, ja ga podrzavam. eto, mojih 50 centa.
__________________
|
![]() |
![]() |
![]() |
#57 | |
kenova
Datum registracije: Sep 2003
Lokacija: München / Dubrovnik
Postovi: 918
|
Citiraj:
|
|
![]() |
![]() |
![]() |
#58 |
Premium
Datum registracije: Jun 2008
Lokacija: Zagreb
Postovi: 49
|
E borgy, evo nedavno sam imo slicnu raspravu oko raytracinga sa nekim, al na engleskom hvala bogu pa sam mu brzo objasnio, e onda sam se sjetio da smo se ovdje prepirali oko toga sta je raytracing pa evo samo da klarificiram sa structnim quotom : Our system also takes advantage of GPUs' strengths at rasterization and shading to offer a mode where rasterization replaces eye ray scene intersection, and primary hits and local shading are produced with standard Direct3D code. Evo i link Vidis sad da rasterizacija i raytracing nemaju nista zajdnicko, i da raytracing nije metoda "sjencanja" ko sto si naveo ako se dobro sjecam (ovo mi je bas jucer neko htio "objasnit" pa zato sad postam), a i link ti isto ima realtime raytracing samo sto je ovdje implementacija i dokumentacija dostupna ![]() |
![]() |
![]() |
![]() |
#59 |
kenova
Datum registracije: Sep 2003
Lokacija: München / Dubrovnik
Postovi: 918
|
Ova zena -> http://www.zemris.fer.hr/clan.php?clan=12&lang=2 <- je osoba koju trebas uvjeriti buduci da sam kod nje polagao ![]() Mislim da smo vec rijesili da se sve svodi na nazivlje/podjele i da bi se i taj koji je napisao strucni quote slozio s ovim jer nema nista kontradiktorno. Vjerojatno bi rekao nesto tipa "pod rasterizacijom ja smatram to i to". Doduse, google define govori u moj prilog. Meni se vise ne da ovdje natezat ![]() |
![]() |
![]() |
![]() |
#60 | |
Premium
Datum registracije: Jun 2008
Lokacija: Zagreb
Postovi: 49
|
Citiraj:
![]() Ono sto mene buni : "Ray-tracing je postupak sjencanja u prijelaznom modelu osvjetljenja. Ovdje se nema sto dodati." Ali šta nije ray tracing metoda dobivanja svojstva materijala nekog objekta u odredjenom smjeru zrake ? Prjealzni model osvjetljenja - možda pod time misliš prjenos svijetla sa izvora na površinu ? "Rasterizacija je ovo o cemu govori Abuser, dakle diskretizacija u prikazu i zapisu grafike." Rasterizacija 3D trokuta podrazumjeva translaciju objekta u 2D prostor ekrana i onda sljedi proces 2D rasterizacije sta bi bilo crtanje 2D trokuta u bitmapu i interpolacija parametara. E sad IMO ovo ne postoji u raytracingu zato sto tamo pocinjes od piksela tj. on je osnovna jedinica u jednazbi, ti bacas zraku iz kamere kroz piksel i uvjek znas u koji ces piksel crtat, samo trebas odredit koju si tocku pogodio - znaci nema rasterizacije u smislu pretvaranja 2D geometrije u bitmapu, zato sto u raytracingu pocinjes sa pixelom - znaci rasterizacije nema, jer ako ray iz piksela ne pogodi nista imat ces crni piksel al svejedno ces napravit raycast - a nema smisla rec da si tim raycastom rastriro nista ![]() I jos jedno pitanje, ovo si radio na faksu ? Mislio sam da na programiranju ucis bedastoce ko sorting algoritme i uvode u C (i jos kolko sam cuo na PMF-u moras cekat do 3 godine da pocnes s ovim ![]() ![]() Zadnje izmijenjeno od: deadwing. 05.07.2008. u 22:41. |
|
![]() |
![]() |
![]() |
|
|