Skocz do zawartości

l-system


alexx600

Rekomendowane odpowiedzi

Witam:) Chciałbym napisać jakiś prosty l-system. Trochę bardziej tak dla pogłębienia własnej wiedzy.(wiem, że jest np darmowe arbaro)

Zastanawiam się tylko w czym to pisać jest najłatwiej?

Początkowo myślałem o pythonie bezpośrednio w blenderze. Wiem jak dodawać punkty, tworzyć polygony więc nie byłoby źle. Gotowe funkcje do grafiki 3d, bez ściągania bibliotek. Jest jednak taka wada, że API blendera się zmienia w dość znacznym stopniu. Dodatkowo jest to python więc wiadomo, że będzie wolniejszy od c.

Myślałem tez o tym, żeby wykorzystać MaxScript. Nigdy nie robiłem niczego związanego z tworzeniem mesha, ale nie wydaje mi się żeby było to jakoś mega skomplikowane. Jeżeli chodzi o szybkość działania to jest podobnie jak z pythonem. Z drugiej strony przecież nie muszę mieć tego real time i mogę poczekać aż mi wygeneruję geometrię.

Myślałem też o Processing, ma gotowe biblioteki do operacji 3d ale nie wiem jak one się sprawuję. Nie widziałem też, żeby ludzie robili tam naprawdę fajne rzeczy w 3d,raczej jest wykorzystywane do 2d.

Może źle kombinuję i najlepiej jest robić takie rzeczy w c#?Na pewno są gotowe biblioteki(może ktoś coś może polecić)

 

Ktoś może robił coś podobnego i może coś polecić. Powiedzieć co sprawiło największa trudność. Nie wiem jak jest z teksturami w przypadku processing i c#, dodatkowo musiałbym poszukać czegoś co umożliwia export OBJ. Generalnie wydaję mi się,że c# jest chyba najlepszym rozwiązaniem,prawdopodobnie do tego rozwiązania będę się skłaniał. Jakieś rady? Z góry dzięki za podpowiedzi:)

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 5
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Top Posters In This Topic

Z jednej strony stawiasz processing, czyli wysokopoziomowe środowisko do robienia grafiiki, a z drugiej języki C# czy Pythona... nie rozumiem. Jeśli znajdziesz podobne środowisko w C# czy Pythonie (a są takie), to wtedy możemy rozmawiać i porównywać, ale na razie tak zwany brak danych.

 

1) Ma być real time, czy nie?

2) Ma być wieloplatformowe, czy nie?

3) Chcesz się pobawić l-systemami, czy chcesz zrobić coś, co będzie wyglądało, ruszało się etc.

4) Chcesz to dalej rozwijać, cz nie?

5) Zależy Ci na środowisku czy na konkretnym języku?

 

- Jeśli real time, to nie Python, nawet jeśli są środowiska real time na pythona to są złe.

- Jeśli real time, i ma to być szybka piłka, to processing jest bardzo dobre. Ma dobre 3d, tylko tyle, że zrobić ładne 3d jest trudno, więc ludzie robią raczej ładne 2d, bo w processing siedzą ludzie, którzy lubią ładne. Poza tym Twoje l-systemy mają dobre towarzystwo na każdej platformie, kamera, mokrofon, Kinex, etc.

- Jeśli wieloplatformowe, to nie C#.

- Jeśli ma być realtime, chcesz mięć całe środowisko i nie programować od zera, ma być wieloplatformowe, chcesz to rozwijać, ma dobrze wyglądać i nie przeszkadza Ci C++, to zobacz Cynder albo OpenFrameworks (Cynder tylko Win i OSX).

- Jeśli nie musi być real time, ma to być szybka piłka, i może być Python, to wystarczy dowolny program DCC, Maya, Max, Softimage, Blender. Oczywiście najlepiej Houdini ;)

 

pozdr.,

skk.

Odnośnik do komentarza
Udostępnij na innych stronach

Z tym porównywaniem masz rację. Faktycznie dziwnie zestawiłem... Jeżeli chodzi o pythona to chodzi mi konkretnie o pythona wbudowanego w blendera.Gotowe funkcję i w sumie łatwość zastosowania. Dlatego też porównanie do processingu, który też daje mi gotowe rozwiązania.

Jeśli znajdziesz podobne środowisko w C# czy Pythonie (a są takie)

Możesz coś polecić?

 

1) Ma być real time, czy nie?

2) Ma być wieloplatformowe, czy nie?

3) Chcesz się pobawić l-systemami, czy chcesz zrobić coś, co będzie wyglądało, ruszało się etc.

4) Chcesz to dalej rozwijać, cz nie?

5) Zależy Ci na środowisku czy na konkretnym języku?

1) W sumie nie musi być real time. Jeżeli by się udało to byłoby fajnie. Wiadomo jest, że np. python jako język interpretowany nie będzie działał tak szybko jak C. Generalnie zależy mi na tym, aby napisanie tego nie było jakieś super skomplikowane, wiadomo,że w tym wypadku musze pujść na kompromis np z szybkością działania.

2) Nie musi być wieloplatformowe, jeżeli będzie to będzie to zdecydowanie na plus, nie jest to jednak wyznacznikiem.

3) Myślałem raczej o czymś statycznym, do renderowania nie do interakcji.

4) Jeżeli uda mi się zrobić coś co może się komuś przydać, to z chęcią bym to rozwijał dalej na tyle na ile pozwoli mi czas wolny.

5) Nie zależy mi na konkretnym języku czy środowisku szukam czegoś co mi po prostu ułatwi zadanie. Chyba o to chodzi:)

 

 

- Jeśli real time, i ma to być szybka piłka, to processing jest bardzo dobre. Ma dobre 3d, tylko tyle, że zrobić ładne 3d jest trudno, więc ludzie robią raczej ładne 2d, bo w processing siedzą ludzie, którzy lubią ładne. Poza tym Twoje l-systemy mają dobre towarzystwo na każdej platformie, kamera, mokrofon, Kinex, etc.

Brzmi naprawdę ciekawie. Wprawdzie samym założeniem nie był real time i integracja z "multimediami" ale brzmi interesująco i może jest to dobra droga w przypadku dalszego rozwoju. A z tym 3d to masz prawdopodobnie racje.

Kiedyś potrzebowałem operacji na trójkątach, ściągnąłem bibliotekę traingulate widać,że jest rozwój w tym kierunku. Gdybym widział pracę 3d na tak fantastycznym poziomie jakie prezentują 2d to bym nie wahał się ani chwili. Aczkolwiek brak prac 3d wzbudził pewne moje wątpliwości.

 

chcesz to rozwijać, ma dobrze wyglądać i nie przeszkadza Ci C++, to zobacz Cynder albo OpenFrameworks (Cynder tylko Win i OSX).

 

Dzięki:) Poczytam o tym

 

Oczywiście najlepiej Houdini ;)

Nigdy go nie używałem. Możesz powiedzieć dlaczego akurat ten soft.Ma jakieś narzędzia ułatwiające tego typu rzeczy. Z tego co widziałem jest on bardzo nastawiony na nody. Czy l-systemy są w nim jakoś specjalnie wspierane?

 

Dzięki jeszcze raz za tak rozwiniętą odpowiedź:) Wnosi naprawdę dużo:)

Odnośnik do komentarza
Udostępnij na innych stronach

Z tym porównywaniem masz rację. Faktycznie dziwnie zestawiłem... Jeżeli chodzi o pythona to chodzi mi konkretnie o pythona wbudowanego w blendera.Gotowe funkcję i w sumie łatwość zastosowania. Dlatego też porównanie do processingu, który też daje mi gotowe rozwiązania.

Możesz coś polecić?

 

No właśnie o to idzie, że niczego nie polecam. PyGame jest przykładem prostego środowiska OpenGL dla Pythona, ale to ślepa uliczka (aczkolwiek prosta sprawa).

 

 

Nigdy go nie używałem. Możesz powiedzieć dlaczego akurat ten soft.Ma jakieś narzędzia ułatwiające tego typu rzeczy. Z tego co widziałem jest on bardzo nastawiony na nody. Czy l-systemy są w nim jakoś specjalnie wspierane?

 

No, nie wiem, poza tym, że tam po prostu już , co Ciebie, jak rozumiem, nie interesuje. Generalnie to dobre środowisko do gmerania na niskim poziomie, ale jeśli chcesz programować geometrię w Pythonie, to może nie jest to najlepszy pomysł.

 

Raz, że robienie rekursywnych systemów na nodach jest mało eleganckie w ogólności, więc nawet jeśli możesz (a możesz) zrobić lsystem tylko na nodach, chyba nie o to idzie. Dwa, że VEX (ganialny patent w Houdinim) się nie nadaje, bo nie tworzy geometrii, tylko ją modyfikuje.

 

Zostaje Ci więc Python albo C++. Implementacja Pythona w H. jest wzorowa, ale dość ograniczona jeśli chodzi o generowanie geometrii (bo po co, jeśli wszystko jest na nodach...), choć z drugiej strony zawsze możesz Pythona rozwijać przez C++, co jest genialnie proste. C++ przez SDK jest super, ale można to robić w każdym sofcie.Wprawdzie, żaden program nie da Ci takich możliwości technicznych, ale jeśli chodzi o samo kodowanie L-Systemu i jego wyświetlenie, to Blender może być lepszy, a także Max czy Maya, po prostu dlatego, że w Houdinim geometrii się nie programuje (tylko noduje), a w pozostałych programach owszem.

Odnośnik do komentarza
Udostępnij na innych stronach

No właśnie o to idzie, że niczego nie polecam. PyGame jest przykładem prostego środowiska OpenGL dla Pythona, ale to ślepa uliczka (aczkolwiek prosta sprawa).

Dzięki za informację:) Uczenie się czegoś co może w najbliższym czasie "umrzeć" jest raczej bezcelowe, ale zobaczę co to za cudo.

 

, co Ciebie, jak rozumiem, nie interesuje.
Dzięki za link:) Ogólnie rzecz ujmując fajnie by było wiedzieć, jak l-systemy działają, żeby samemu zrobić generowanie nie tylko krzaków ale i np kwiatków.

 

Dwa, że VEX (ganialny patent w Houdinim) się nie nadaje, bo nie tworzy geometrii, tylko ją modyfikuje.
Brzmi ciekawie. Widziałem kiedyś filmik jak w rhino 3d ktoś właśnie nodami edytował mesh. Fajnie to wyglądało.

Jeżeli chodzi o nody to np w C4D Xpresso się genialnie sprawdza do animacji. Więc widać,że zastosowań nodów jest pełno, ale czy modyfikacja mesha jest za ich pomocą jest rzeczywiście tak przydatna ciężko powiedzieć...

 

Jeżeli chodzi o Houdini to poczytam, zainstaluje tą darmową wersję. Widać, że się na nim znasz i że ma ogromne możliwości.

 

jeśli chodzi o samo kodowanie L-Systemu i jego wyświetlenie, to Blender może być lepszy, a także Max czy Maya, po prostu dlatego, że w Houdinim geometrii się nie programuje (tylko noduje), a w pozostałych programach owszem.

OK rozumiem.

Dzięki za pomoc. Pomyślę nad tym co wybrać.Teraz wybór trochę łatwiejszy jest:)

PS. Jeżeli ktoś również jest zainteresowany tematem. W poprzednim poście była mowa o Cynder. Nazywa się to Cinder:)

Google dawało pełno wyników do jakiejś postaci z animowanego filmu.

Odnośnik do komentarza
Udostępnij na innych stronach

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ę



×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności