legomir Napisano 8 Luty 2013 Napisano 8 Luty 2013 Jak zasugerował SYmek utworzyłem temat na forum i zadaje kilka pierwszych pytań. Nr.1: Utworzenie osobnej grupy dla każdego primitiv albo kilku z nich za pomocą jakiegoś wzoru.
SYmek Napisano 8 Luty 2013 Napisano 8 Luty 2013 (edytowane) PartitionSOP tworzy grupy zgodnie z wyrażeniem w polu "Rule". Wyrażenie group_`$PR` zwraca nazwę grupy stworzoną ze zmiennej $PR, czyli numeru prymitywu. Łatwiej się nie da... Oczywiście wyrażenie może być dowolne. Będzie wykonane dla każdego elementu (punktu lub prymitywu). W menu po prawej jest taki na przykład preset: color_`rint($CR*255)`_`rint($CG*255)`_`rint($CB*255)` który, jak widać, tworzy grupę według koloru elementu. Edytowane 8 Luty 2013 przez SYmek
legomir Napisano 9 Luty 2013 Autor Napisano 9 Luty 2013 Nr. 2. Mam kilka boxów o różnej długości i teraz skopiować w jednej linii aby losowo wybierało ich długość jak coś takiego można osiągnąć?
SYmek Napisano 9 Luty 2013 Napisano 9 Luty 2013 Nr. 2. Mam kilka boxów o różnej długości i teraz skopiować w jednej linii aby losowo wybierało ich długość jak coś takiego można osiągnąć? Słowa klucze: CopySOP/stamping, SwitchSOP, instancje. Wszystko o kopiach oraz instancjach: http://www.sidefx.com/docs/houdini12.1/copy/ Wszystko o technice copy/stamping: http://www.sidefx.com/docs/houdini12.1/copy/tutorial_stamping Poręczne video: http://www.sidefx.com/index.php?option=com_content&task=view&id=1868&Itemid=132 ... i w końcu link z Helpa z *dokładnym* przykładem tej techniki: http://localhost:48626/examples/nodes/sop/copy/StampRandom
SYmek Napisano 9 Luty 2013 Napisano 9 Luty 2013 No, dobra, ponieważ Legomir nalegał wczoraj, żeby grupy per prymityw zrobić tak jak w Mai, bo w Mai to jest proste, teraz wersja a'la Maya: def createGroup(group_name, pattern, inNode): """ Tworzy GroupSOP per prymityw. """ group_name = group_name + str(pattern) parent = inNode.parent() groupNode = parent.createNode("group") groupNode.parm("crname").set(group_name) groupNode.parm("pattern").set(str(pattern)) groupNode.setFirstInput(inNode) groupNode.moveToGoodPosition() return groupNode # Wybrany node: selected = hou.selectedNodes()[0] # Interesują nas tylko Sopy: if selected.type().category() == hou.sopNodeTypeCategory(): #Lista wszystkich prymitywów: prims = selected.geometry().prims() inNode = selected groupNodes = [] name = "group_" for prim in prims: outNode = createGroup(name, prim.number(), inNode) inNode = outNode groupNodes.append(inNode) # Na koniec spakujemy tę kupę bezsensownych nodów w subnet: subnet = selected.parent().collapseIntoSubnet(groupNodes) subnet.moveToGoodPosition() subnet.setDisplayFlag(1) subnet.setRenderFlag(1) Chyba nie ma głupszego powodu użycia skryptu, ale w ramach wprowadzenia może się przyda. Możemy to wkleić w shell Pythona, a potem zaznaczyć i przeciągnąć na shelf, aby utworzyć nowy tool. Potem trzeba mu niestety ręcznie zmienić język z hscript na Python i gotowe.
legomir Napisano 9 Luty 2013 Autor Napisano 9 Luty 2013 Wcale nie nalegał tylko naginanie jego wyobraźni w jeden dzień ma pewne granice poza tym ciągle się uczy jak to cholerstwo działa po całości, a działa (nie)stety całkiem inaczej niż wszystko. Tak czy inaczej dzięki.
legomir Napisano 10 Luty 2013 Autor Napisano 10 Luty 2013 NR.3 Walki i pytań ciąg dalszy, bo jednocześnie Stamping to jest to czego chce i nie jest to czego chce. Chodziło mi o stworzenie czegoś w rodzaju generatora podłóg dla ćwiczenia, ale parametr $PT działa dla każdego punktu tempelate, a ja chce żeby działało dla każdego nowo wykreowanego prima albo punktu z użyciem $CY albo $NCY nie działało. W poszukiwaniu innych rozwiązań doszedłem do tego, że albo można zrobić prosty L-System dla tego aczkolwiek nie wiem czy to sensowne, albo można napisać kod w Pythonie, którego jak na razie bym wolał unikać. Jaka opcja jest najlepsza albo ja powinno się to robić no i gdzie popełniam błąd w myśleniu?
SYmek Napisano 10 Luty 2013 Napisano 10 Luty 2013 Nie wiem o jakie podłogi Ci chodzi, ale podejrzewam, że wszystko, co potrzebujesz widzieć jest opisane w linkach powyżej. Zostaw LSystemy i Pythona, bo to armata na komara. Załączam prosty przykład. Można to zrobić dużo, dużo lepiej i pewnie prościej, ale dałem sobie 10 minut, a poza tym nie znoszę tych wszystkich proceduralnych generatorów, nudzą mnie :(. Celowo nie opisuję nodów, żebyś miał z tego jakąś zabawę :P podGen.otl.zip
legomir Napisano 16 Luty 2013 Autor Napisano 16 Luty 2013 Nr. 4. mam chmurę punktów ze scattera, animuje na niej scaleX i Z rotacjeY, potem lekkie tubulance za pomocą vop sopi teraz chcę na to dać lekką rotacje per point z ograniczonym kątem jak coś takiego uzyskać?
SYmek Napisano 16 Luty 2013 Napisano 16 Luty 2013 Z matematycznego punktu widzenia punkty nie mają orientacji, więc nie mogą się obracać. To co się obraca to układ współrzędnych przyczepiony to punktu. W najprostszym przypadku układem współrzędnych może być wektor, choć to bardzo niedoskonały układ. Solidnym układem jest macierz (3 x wektor). Układ w przeciwieństwie do punktu ma swoją orientację (względem innego układu, czyli obiektu). Macierz rotujesz w Vopach jednym nodem który przyjmuje kąt w radianach oraz oś obrotu. Gotową rotację najprościej obserwować przenosząc dowolny wektor do układu współrzędnych punktu. Czyli macierz -> rotacja -> aplikacja na wektor. A reszta jest w Helpie :)
legomir Napisano 16 Luty 2013 Autor Napisano 16 Luty 2013 Cały problem w tym, że średnio mi idzie chyba szukanie czegokolwiek w helpie. Zwykle jak coś robię to tworzę większość w parę minut i zonk na cały dzień. Hmm... nie ma jakiejś książki, która opisuje wszystko?
SYmek Napisano 16 Luty 2013 Napisano 16 Luty 2013 Zwykle jak coś robię to tworzę większość w parę minut i zonk na cały dzień. No to jak w parę minut rotujesz punkty w Mai? Hmm... nie ma jakiejś książki, która opisuje wszystko? Ponoć Britannica jest niezła, tylko droga. Za to Wikipedia jest na wyciągnięcie ręki :) Podałem Ci słowa klucze: macierz, rotacja. Mam wrażenie, że Ci się po prostu nie chce szukać. Jakbyś wklepał "rotate" w Helpie wiedziałbyś, że dwa z trzech przykładów do RotateVOP wyjaśniają wszystko.
legomir Napisano 16 Luty 2013 Autor Napisano 16 Luty 2013 Dziś nawet chciałem użyć tego noda ;) Więc w takim razie to chyba moja tendencja to pomijania plików z examples, obiecuje się poprawić :P Użyłbym pewnie particli do tego, co zupełnie nie byłoby potrzebne z tego co widzę ;) Poza tym żeby przestać być ignorantom chyba najpierw trzeba nim być :P
SYmek Napisano 16 Luty 2013 Napisano 16 Luty 2013 Wszyscy jesteśmy ignorantami, inaczej się dziś nie da. Chodzi o to, żeby walczyć samemu a pytać o konkrety, kiedy czegoś nie możesz znaleźć. ps cząsteczkami też mógłbyś to zrobić w H. btw.
peters Napisano 17 Luty 2013 Napisano 17 Luty 2013 Hmm... nie ma jakiejś książki, która opisuje wszystko? Jakis czas (dawno) temu Symek pokazal mi to: https://www.khanacademy.org/ , sam czesto zagladam, jak nie zrozumiesz na Wiki to tu najprawdopodobniej znajdziesz video, przyklady.
legomir Napisano 17 Luty 2013 Autor Napisano 17 Luty 2013 Dzięki wielkie. Popatrzę, poszukam, pewnie się przyda :)
legomir Napisano 5 Lipiec 2013 Autor Napisano 5 Lipiec 2013 Jakieś wskazówki jak uzyskać taki efekt przy fracturingu? Kombinuję z tym dziś, ale nie mam pomysłów. (1:17)
SYmek Napisano 6 Lipiec 2013 Napisano 6 Lipiec 2013 Przecież chłopak opowiada w video, jak to osiągnął. Zacznij robić, sposoby się znajdą.
legomir Napisano 13 Sierpień 2013 Autor Napisano 13 Sierpień 2013 Używam PointWrangle i robię coś takiego att=max(P.Y) uzyskuje wynik dla każdego punktu(co jak już wiem jest całkiem logiczne z uwagi na to działa), więc jak rozumiem muszę stworzyć listę/tablicę i z niej wyznaczyć max z tym, że według tego co widzę wranglery nie mogą tworzyć tablic, więc w takim razie czy się mylę i da się jakoś to zrobić czy muszę wyznaczyć max dla att primitive i promoteAtt zmienić do dla punktów? Szczerze mówiąc upierałbym się bym przy wykorzystaniu wraglera/vopSOP żeby mieć całość w jednym nodzie.
mantragora Napisano 14 Sierpień 2013 Napisano 14 Sierpień 2013 Używam PointWrangle i robię coś takiego att=max(P.Y) uzyskuje wynik dla każdego punktu(co jak już wiem jest całkiem logiczne z uwagi na to działa), więc jak rozumiem muszę stworzyć listę/tablicę i z niej wyznaczyć max z tym, że według tego co widzę wranglery nie mogą tworzyć tablic, więc w takim razie czy się mylę i da się jakoś to zrobić czy muszę wyznaczyć max dla att primitive i promoteAtt zmienić do dla punktów? Szczerze mówiąc upierałbym się bym przy wykorzystaniu wraglera/vopSOP żeby mieć całość w jednym nodzie. Nie bawilem sie jeszcze pointWrangle ale podejrzewam ze dziala podobnie jak reszta Vexa wiec bedziesz musial zrobic to w dwoch nodach. Podobna sprawe mialem tu (jest tam tez link do topica z hip'em). Mierzylem dystans kazdego punktu ale zeby znalezc ten ktory jest najbardziej podobny do mojego wzorowego dystansu musialem wywalic to porownanie do PythonSOP. Ewentualnie jak chcesz mozna zrobic to w jednym nodzie za pomoca inlineCPP lub HDK. Prosta sprawa.
legomir Napisano 14 Sierpień 2013 Autor Napisano 14 Sierpień 2013 (edytowane) W takim razie pozostawię na 2. nie chce zaczynać nowych rzeczy i odwracać uwagi od tego co teraz robię, bo przeważnie kończy się porzuceniem jakiegoś projektu. Dzięki za odpowiedź :) Edit Poradziłem już sobie inaczej przepisując funkcje z użyciem absolute Edytowane 14 Sierpień 2013 przez legomir
legomir Napisano 14 Sierpień 2013 Autor Napisano 14 Sierpień 2013 (edytowane) Jeszcze jedno pytanie robię jakiś głupi błąd, ale za cholere nie wiem gdzie. Mam ten atrybut z wczoraj i teraz w filter expression wpisuje $TY == @att dostaje błąd w postaci expression stack error EDIT poradziłem sobie point expression, ale kolejny problem w details viem widzę, że jakieś 20 punktów ma TY równe mojemu max_y z tym, że expressia znajduje 3 punkty na tej wysokości domyślam się, że problem jest zaokrąglenie jak mogę je zmienić? Edytowane 15 Sierpień 2013 przez legomir
mantragora Napisano 15 Sierpień 2013 Napisano 15 Sierpień 2013 W Vexie masz tylko rint ale to ci da integer. Mozesz pomnozyc przez 1000 lub inna sume aby przesunac przecinek i zrobic poronanie integer. Porownywanie floatow ma wiele minusow i nie ma sensu z tym walczyc czasami. Co ty chesz zrobic, bo moze za bardzo kombinujesz? Nie moglys zapodac Hipa jak kazdy normalny uzytkownik Houdego? ;)
legomir Napisano 15 Sierpień 2013 Autor Napisano 15 Sierpień 2013 Ogólnie to chce zrobić asset robiący wiązki kabli mam pattern kabli(circle lub znormalizowany shape, tworzy mi za pomocą prostego równania n shapów tworzących wiązkę kabli układającą sie w koło). Tutaj już wszystko ogarnięte. Teraz mi potrzebny wave deformer(żeby kable zwisały powiedzmy z sufitu ;) ) ponieważ to raczej dla nauki pobawiłem się http://www.fundza.com/expressions/expressionsqr.html i utworzyłem prostą deformacje, teraz chce dodać do tego trochę kontroli, a ponieważ nie do końca jestem fanem suwaczków wymyśliłem sobie żeby można było to trochę ręcznie modyfikować za pomocą czegoś w rodzaju handle z circle i modyfikowania krzywej za pomocą att transfer, ponieważ nie mam pomysłu na inną metode, a minimalne i maksymalne wartości są według details viem dla sporej ilości obiektów takie same i zgadzają się mniej więcej z ilością rowków chciałem utworzyć grupę punktów do, której będę kopiował circle. Z grubsza o to chodzi chociaż w planach jest sporo więcej ^^ Tego hipa dołączę jak ogarnę trochę to co tam się dzieje, bo z reguły mam dużo własnych przyzwyczajeń i jestem chaotyczny.
legomir Napisano 24 Sierpień 2013 Autor Napisano 24 Sierpień 2013 (edytowane) Problem, którego nie potrafię sam rozwiązać jak na razie: Niebieskie moja krzywa a właściwie jej odcinek, białe to przykładowe punkty strzałka w bok pokazuje jak rozchodzi się att od funkcji jaką mam(w drugą strone to lustrzane odbicie), czerwony kwadrat to nazwijmy to hanle, które zamierzam wykorzystać do modyfikatora. W czym problem: chce aby handle można było modyfikować to jak "głęboki" jest konkretny cykl ponieważ modyfikuje krzywą od sinusa to dostaje piękne liczby ułatwiające wszystko, ale nie potrafię wymyślić metody transportu atrybutów tak, aby P.y konkretnego handle(primitiv) działało tylko na punkty w jednym cyklu. Jeśli coś jest niejasne postaram się jeszcze doprecyzować. Edytowane 24 Sierpień 2013 przez legomir
legomir Napisano 1 Październik 2013 Autor Napisano 1 Październik 2013 Kolejne pytanie, wrzucam plik nie do końca rozumiem dlaczego w output od XYZdist otrzymuje -1: https://dl.dropboxusercontent.com/u/13342201/xyz.hipnc
SYmek Napisano 1 Październik 2013 Napisano 1 Październik 2013 masz spacje w nazwie pliku, więc funkcja w ogóle nie działa (zwraca domyślną wartość parametru). op:[spacja]`opinpupath()...`
legomir Napisano 1 Październik 2013 Autor Napisano 1 Październik 2013 Nawet by mi to do głowy nie przyszło, dzięki :)
legomir Napisano 3 Październik 2013 Autor Napisano 3 Październik 2013 Ruszyłem nieco dalej, ale kolejny problem jest jakiś sposób aby tworzyć lub edytować parametry primitive w VOP, albo aby tworzyć grupy primitiv? Mam niejasne poczucie iż powinienem do tego użyć AttVOP, ale nie wiem jak.
SYmek Napisano 7 Październik 2013 Napisano 7 Październik 2013 Pierwsze zdanie Helpa Vop SOPa odpowiada na Twoje pytanie.
legomir Napisano 17 Grudzień 2013 Autor Napisano 17 Grudzień 2013 (edytowane) Dobra to kolejne, tym razem python SOP, chce dostać się do att punktu, który był o dwa przed tym, który jest obecnie przetwarzany mam coś w tym rodzaju: # This code is called when instances of this SOP cook. node = hou.pwd() geo = node.geometry() #init delete point #Some UI parametr to control a curve. iteration = node.parm("iteration").eval() #Some params for interation lengh = range(iteration) # Add code to modify the contents of geo. for i in lengh: point = geo.createPoint() position = 0.0 if i==0: geo.addAttrib(hou.attribType.Point, "pos", (position)) point.setPosition((position,position,0.0)) elif i==1: position = 1.0 point.setPosition((position,position,0.0)) point.point.setAttrib("pos",(position)) else: a = geo.iterPoints()[i-1] b = geo.iterPoints()[i-2] i teraz jak chce się dobrać do a.point.atributValue("position") zwraca mi błąd. Nie za bardzo mam pomysł jak to ruszyć z miejsca. Edytowane 17 Grudzień 2013 przez legomir
mantragora Napisano 17 Grudzień 2013 Napisano 17 Grudzień 2013 Troche za duzo tego "point'a" tutaj: point.point.setAttrib("pos",(position)) Poza tym nie chodzi ci czasem o point.setAttribValue? Po co tyle razy wolasz iterPoints? nie lepiej wrzucic raz, zachowac w zmiennej i potem od tej zmiennej odejmowac? a = geo.iterPoints()[i-1] b = geo.iterPoints()[i-2] Nadal moze nie dzialac bo nie sprawdzalem kodu w akcji ale tyle widze na pierwszy rzut oka.
bareja Napisano 18 Grudzień 2013 Napisano 18 Grudzień 2013 nie uzywaj range, jezeli zamierzasz operowac na duzej ilosci danych.
legomir Napisano 18 Grudzień 2013 Autor Napisano 18 Grudzień 2013 Dzisiaj to posprawdzam. Ogólnie chce zrobić krzywą fibonacciego, więc chciałem dodawać pos z a i b. A czemu nie stosować tego range?
mantragora Napisano 18 Grudzień 2013 Napisano 18 Grudzień 2013 W Pythonie 2.x range robi liste numerow przez co zapychasz pamiec dodatkowymi danymi a xrange tylko generuje numery bez tworzenia obiektow. W Pythonie 3.X range przejelo funkcje xrange. Google it i wywali ci tone topikow na ten temat.
legomir Napisano 31 Grudzień 2013 Autor Napisano 31 Grudzień 2013 You can pin wire points to their positions in the source geometry with the pintoanimation or gluetoanimation point attribute. (pintoanimation locks the point’s position, while gluetoanimation locks the point’s position and normal.) In the wire source geometry network, create a group containing the root points, and use the AttribCreate node to create the attribute. Use the following settings: Group The name of the group containing the root points, such as roots. Name pintoanimation or gluetoanimation Class Point Value 1 Trochę próbuję z wire solverem i natrafiłem na coś takiego. O ile rozumiem do w SOPach przed dopimport mam zrobić grupę i att(integer czy float?) i pin automatycznie mi to rozpozna. Próbuje źle czy trzeba coś zrobić jeszcze czego nie opisano?
SYmek Napisano 31 Grudzień 2013 Napisano 31 Grudzień 2013 Wszystko jest tak, jak opisano... the only catch is, że to powinien być float. W H13 możesz po prostu w PointWrangerze dać jedną linię: @pintoanimation = 1 ? !vertexprimindex(0, @ptnum) : 0;
legomir Napisano 24 Styczeń 2014 Autor Napisano 24 Styczeń 2014 Nie mogę znaleźć wskazówki jak to zrobić mam kulę na nią wrzucony animowany noise, a potem wyskaterowane particle chciałbym teraz aby particle poruszały się po kulce. Próbowałem to zrobić particlami i kolizją ustawioną na slide jednak w tej sytuacje particle spadają chciałbym aby po prostu się poruszały po powierzchni.
mantragora Napisano 18 Luty 2014 Napisano 18 Luty 2014 (edytowane) To ci bedzie potrzebne http://forums.odforce.net/topic/18705-is-there-a-way-to-snap-points-on-a-surface-using-an-sdf/ Dodatkowo mozesz jeszcze w to sie zaopatrzyc https://cmivfx.com/store/163-houdini+fluid+effects+for+td's PS. Wlasnie doszedl nowy topik w ktorym szerzej omowione sa metody raySOP i intersectVOP : http://forums.odforce.net/topic/14903-project-a-point-onto-a-geometry-in-vops/ Edytowane 20 Luty 2014 przez mantragora
legomir Napisano 9 Marzec 2014 Autor Napisano 9 Marzec 2014 (edytowane) W Houdinim12 zużycie RAMu mam na poziomie 300/400Mb bez niczego po uruchomieniu programy na XP 32bit W H13 na win7 64 jakieś 3gb to normalne? Edit jeszcze screen z task menagera zaraz po otwarciu: Edytowane 9 Marzec 2014 przez legomir
mantragora Napisano 12 Marzec 2014 Napisano 12 Marzec 2014 Na Windowsie kombinuja cos z tym jak jest pamiec zarzadzana i dlatego sa jakies jaja przy symulacjach, ale 3GB na swiezo? U mnie po uruchomieniu zajmuje 138,400 K.
jaras Napisano 12 Marzec 2014 Napisano 12 Marzec 2014 .... i sprawdzcie teraz (jak mozecie) ta samą akcję pod linuxem :) - aczkowliek słyszałem ze juz nad tym pracują i moze niebawem będzie to poprawione pod windą (tzn. zarządzanie pamięcią)
SYmek Napisano 12 Marzec 2014 Napisano 12 Marzec 2014 Domyślny alokator pamięci Visual Studio jest tak wolny, że panowie postanowili go podmienić alokatorem z TBB (o ile pamiętam), który jednak okazał się pod Windowsem potwornie zasobożerny (albo ma buga). Pod Linuksem używają jemalloca, który jest bodaj jednym z najlepszych rozwiązań.
legomir Napisano 13 Marzec 2014 Autor Napisano 13 Marzec 2014 Dzięki wielkie wszystkim za odpowiedzi. Na linuxie nie będę mógł na razie sprawdzić, ale zainstaluje najnowszy built i zobaczymy co z Tego wyjdzie(u znajomego też na windzie jest ok, więc może to naprawili już a ja po prostu przegapiłem.
legomir Napisano 15 Marzec 2014 Autor Napisano 15 Marzec 2014 Zainstalowałem dziś 13.0.343 Problem nadal jest według Houdiniego prawie 2gb zajmuje OpenGL cashe wie ktoś jak można to zmniejszyć, bo przeglądając opcje nie mogłem znaleźć takiej opcji.
mantragora Napisano 15 Marzec 2014 Napisano 15 Marzec 2014 Szukaj w menu Windows -> Cache Manager. 2048 to jest max standardowy przypisany. Na swiezo nie powinien byc zapelniony. Cos grzebales w ustawieniach lub sterowniki zmieniales?
legomir Napisano 15 Marzec 2014 Autor Napisano 15 Marzec 2014 W sensie nie jest zapełniony, ale jako, że domyślne rozmiary innych cashy są pozmniejszałem, więc przyszło mi na myśl, że to być przez to.
legomir Napisano 22 Kwiecień 2014 Autor Napisano 22 Kwiecień 2014 Kolejna rzecz. Mam takiego oto coś: https://dl.dropboxusercontent.com/u/13342201/hip/untitled.hipnc i tak się zastanawiam jak zrobić tak aby każdy wykryty kiedyś punkt miał att np. active gdyby kiedykolwiek był aktywny.
legomir Napisano 26 Maj 2014 Autor Napisano 26 Maj 2014 Mam taką sytuacje obiekt z animowanym att podpięty pod Solver SOP. Tam porównuje wartości animowanego att, żeby dowiedzieć się w jakiej klatce został aktywowany z tym, że z tego wywnioskowałem empty object zczytuje wartości tylko w 1 klatce przez co nie ma animacji z drugiej strony jeśli włączę, że obiekt jest aktywny to w każdej klatce tworzy się obiekt jest jakiś sposób na rozwiązanie tego? Na razie spróbuję to zrobić podpinając jakoś zamiast emptyObj coś innego co będzie czytać att z dop import. ale chciałbym się dowiedzieć czy można to zrobić jakoś inaczej.
tmdag Napisano 26 Maj 2014 Napisano 26 Maj 2014 strasznie zagmatwales to pytanie ;] zlap dwa oddechy, napisz jeszcze raz i jak sie da to tez podepnij przyklad
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się