Jump to content

MaxScript: Dynamiczna zmiana materialu particla


Recommended Posts

Posted

Hej

 

Pod tym strasznym tytulem kryje sie (mam nadzieje) prosty skrypt. Ktorego jak narazie nie umiem sam wykonac (pomimo paru prob, jak do teraz widok maxscripta wywoluje u mnie zimny pot na czole :) ). W zwiazku z tym, zwracam sie do was z prosba, czy ktos bylby tak mily, i napisal go?

 

Posiedzialem nad tym troche, i mam (wydaje mi sie) dosc dokladnie rozpisane co od skryptu potrzebuje, a wiec:

 

1. Skrypt musi byc w petli odpalanej co klatke.

2. Skrypt sprawdza czy dana czasteczka porusza sie w strone kamery, czy przeciwna.

3. Jesli czasteczka porusza sie w strone kamery, ma miec material 1, nazwijmy go Bialy

4. Jesli czasteczka nie porusza sie w strone kamery, ma miec material 2, powiedzmy Czerwony.

 

I to w zasadzie tyle, potrzebuje to wrzucic do ScriptOperatora w Particle Flow, i bede szczesliwy jak cholera :)

 

z gory dziekuje jakiejs dobrej duszy :)

mirach

  • Replies 2
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Posted (edited)

Skrypt jest prosty do napisania tylko potrzeba znalesc w dokumentacji kilka waznych rzeczy :). Najwazniejsza to pozycja particla z poprzedniej klatki. Majac ta informacje tworzymy wektor z pozycji poprzedniej oraz pozycji aktualnej particla . Po jego normalizacji obliczamy crossproduct(iloczyn skalarny) tego wektora oraz wektora utworzonego z pozycji kamery i pozycji particla, wychodzi czy particle porusza sie w strone kamery czy w strone przeciwna. Obliczanie tego crossproducta co klatke wykonujemy w uchwycie on Proceed pCont do (kod przetwarzania), gdzie pCont jest kontenerem zawierajacym dane o kazdym particlu. Zmiane materialu particla wykonujemy za pomoca pCount.setParticleMtlIndex lub pCount.setParticleMtlIndexByID w uchwycie Proceed. To chyba tyle :)

 

\\Update

Nie trzeba tworzyc wektora z pozycji poprzedniej,aktualnej particla... wystarczy uzyc znormalizowanego wektora pCont.particleOrientation lub pCont.particleAcceleration

\\Update

Zamiast crossproduct chodzilo mi oczywiscie o dotproduct

Edited by Ziper
Posted

Dam to do przeczytania mojej dziewczynie, powinna zrozumiec wiecej odemnie :) Jak mi tylko przejdzie deszczowa sennosc sproboje sie zmierzyc jeszcze raz z zagadnieniem.

wielkie dzieki za pomoc i twoj czas.

 

pozdrawiam

mirach

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...

Important Information

We are using cookies. Read about our Privacy Policy